From: Max Nikulin <manikulin@gmail.com> To: Paul Eggert <eggert@cs.ucla.edu> Cc: orgmode <emacs-orgmode@gnu.org>, 54764@debbugs.gnu.org Subject: Re: bug#54764: encode-time: make DST and TIMEZONE fields of the list argument optional ones Date: Mon, 2 May 2022 00:15:17 +0700 [thread overview] Message-ID: <3bad9506-40ef-9cd7-6f2c-5e3921d4c98c@gmail.com> (raw) In-Reply-To: <7ba6b2ae-bbf6-4e90-169b-78ae6916e0b1@cs.ucla.edu> On 01/05/2022 09:32, Paul Eggert wrote: > On 4/30/22 04:22, Max Nikulin wrote: >> >> I posted a corrected version of my `org-encode-time' macro, but I did >> not add you to Cc (I sent reply through news.gmane.io), and it has no >> special case to check whether `encode-time' supports 6 elements list >> argument: > As I understand it, org-encode-time is intended to be a compatibility > function like org-newline-and-indent and org-string-distance. Those are > in org-compat.el, so I assumed org-encode-time would be there too. Maybe you are right. I believe that it should do a bit more than just ensure compatibility. An additional goal is to avoid pitfall with list vs. separate arguments result discrepancy: (format-time-string "%F %T %z %Z" (encode-time 0 30 23 31 3 2022 nil nil "Europe/Madrid") "Europe/Madrid") "2022-03-31 23:30:00 +0200 CEST" (format-time-string "%F %T %z %Z" (encode-time '(0 30 23 31 3 2022 nil nil "Europe/Madrid")) "Europe/Madrid") "2022-04-01 00:30:00 +0200 CEST" > Also, if the intent is to emulate Emacs 29 encode-time, can't we do > something like the attached instead? The idea is to implement Emacs 29 > encode-time both on pre-29 Emacs (that don't support lists of length 6) > and post-29 Emacs (which might drop support for the obsolescent form). > +(if (ignore-errors (encode-time '(0 0 0 1 1 1971))) > + (if (ignore-errors (encode-time 0 0 0 1 1 1971)) > + (defalias 'org-encode-time #'encode-time) > + (defun org-encode-time (time &rest args) > + (encode-time (if args (cons time args) time)))) > + (defun org-encode-time (time &rest args) > + (if args > + (apply #'encode-time time args) > + (apply #'encode-time time)))) 1. I would prefer macro since it works at compile or load time, so runtime impact is minimal. 2. Your variant may be fixed, but currently I do not like behavior for Emacs-27. Compare encode-time and org-encode-time with new calling style: (format-time-string "%F %T %z %Z" (encode-time '(0 30 23 31 3 2022 nil nil "Europe/Madrid")) "Europe/Madrid") "2022-04-01 00:30:00 +0200 CEST" (format-time-string "%F %T %z %Z" (org-encode-time '(0 30 23 31 3 2022 nil nil "Europe/Madrid")) "Europe/Madrid") "2022-03-31 23:30:00 +0200 CEST"
next prev parent reply other threads:[~2022-05-01 17:16 UTC|newest] Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-04-07 12:37 Max Nikulin 2022-04-09 7:52 ` Paul Eggert 2022-04-10 3:57 ` Max Nikulin 2022-04-13 14:40 ` Max Nikulin 2022-04-13 18:35 ` Paul Eggert 2022-04-14 13:19 ` Max Nikulin 2022-04-14 22:46 ` Paul Eggert 2022-04-15 2:14 ` Tim Cross 2022-04-15 17:23 ` Max Nikulin 2022-04-16 19:23 ` Paul Eggert 2022-04-21 16:59 ` Max Nikulin 2022-04-19 2:02 ` Paul Eggert 2022-04-19 5:50 ` Eli Zaretskii 2022-04-19 22:22 ` Paul Eggert 2022-04-20 7:23 ` Eli Zaretskii 2022-04-20 18:19 ` Paul Eggert 2022-04-20 18:41 ` Eli Zaretskii 2022-04-20 19:01 ` Paul Eggert 2022-04-20 19:14 ` Eli Zaretskii 2022-04-20 19:23 ` Paul Eggert 2022-04-20 19:30 ` Eli Zaretskii 2022-04-21 0:11 ` Paul Eggert 2022-04-21 6:44 ` Eli Zaretskii 2022-04-21 23:56 ` Paul Eggert 2022-04-22 5:01 ` Eli Zaretskii 2022-04-23 14:35 ` Bernhard Voelker 2022-04-20 15:07 ` Max Nikulin 2022-04-20 18:29 ` Paul Eggert 2022-04-25 15:30 ` Max Nikulin 2022-04-25 15:37 ` Paul Eggert 2022-04-25 19:49 ` Paul Eggert 2022-04-30 11:22 ` Max Nikulin 2022-05-01 2:32 ` Paul Eggert 2022-05-01 17:15 ` Max Nikulin [this message] 2022-04-13 15:12 ` Max Nikulin 2022-04-16 16:26 ` Max Nikulin 2022-04-17 1:58 ` Paul Eggert 2022-04-20 16:56 ` Max Nikulin 2022-04-20 19:17 ` Paul Eggert
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://www.orgmode.org/ * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=3bad9506-40ef-9cd7-6f2c-5e3921d4c98c@gmail.com \ --to=manikulin@gmail.com \ --cc=54764@debbugs.gnu.org \ --cc=eggert@cs.ucla.edu \ --cc=emacs-orgmode@gnu.org \ --subject='Re: bug#54764: encode-time: make DST and TIMEZONE fields of the list argument optional ones' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).