unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#28476: 26.0.60; Gnus: broken timezone in citation line
@ 2017-09-17  5:14 Mike Kupfer
  2017-09-17 14:25 ` Eli Zaretskii
  2017-09-18  3:56 ` Paul Eggert
  0 siblings, 2 replies; 7+ messages in thread
From: Mike Kupfer @ 2017-09-17  5:14 UTC (permalink / raw)
  To: 28476

I have message-citation-line-format set to

  "On %e %B %Y %R %Z, %N wrote:\n"

When replying to a message whose date field is displayed as

  Date: Sat, 16 Sep 2017 17:18:30 -0700

the citation comes out as

  On 16 September 2017 17:18 +07, Mike Kupfer wrote:

I expect

  On 16 September 2017 17:18 -0700, Mike Kupfer wrote:

which is what Emacs 25.3 gives me.

The message I'm replying to is on an IMAP server, if that makes any
difference.

In GNU Emacs 26.0.60 (build 1, x86_64-pc-linux-gnu, X toolkit, Xaw scroll bars)
 of 2017-09-16 built on alto
Repository revision: 1d599df5e0fbbc52e8592c0aff1d23e978c29b67
Windowing system distributor 'The X.Org Foundation', version 11.0.11604000
System Description:	Debian GNU/Linux 8.9 (jessie)

Recent messages:
Opening nndoc server on /media/kupfer/KBLUE/ToFile/upload-tofile-home...done
Opening nndoc server on /home/kupfer/Desktop/upload-action...done
Contacting host: [redacted]
Contacting host: [redacted]
Checking new news...done
nnimap read 0k from [redacted]
Processing kill file /home/kupfer/News/KILL...done
No more unseen articles
nnimap read 0k from [redacted]
Mark set [12 times]

Configured using:
 'configure --prefix=/usr/new'

Configured features:
XPM JPEG TIFF GIF PNG SOUND NOTIFY GNUTLS LIBXML2 FREETYPE XFT ZLIB
TOOLKIT_SCROLL_BARS LUCID X11

Important settings:
  value of $LC_TIME: C
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Message

Minor modes in effect:
  gnus-message-citation-mode: t
  mml-mode: t
  shell-dirtrack-mode: t
  delete-selection-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  auto-fill-function: message-do-auto-fill
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow mh-mime mh-identity mh-tool-bar mh-letter mh-show goto-addr
mh-xface mh-utils mh-comp mh-scan mh-gnus mh-e mh-compat mh-buffers
mh-loaddefs emacsbug cl-print help-fns radix-tree vc-hg nnir sort
gnus-cite mail-extr gnus-async gnus-bcklg gnus-kill gnus-dup gnus-ml
disp-table mm-archive url-http url-gw url-cache url-auth url-handlers
nnrss xml mm-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util url-parse url-vars nndoc
nndraft nnmh utf-7 rfc2104 cl-extra help-mode network-stream nsm
starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap nntp
gnus-cache gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap
nnmail mail-source tls gnutls utf7 netrc nnoo parse-time gnus-spec
gnus-int gnus-range gnus-win gnus nnheader mdk-mail smtpmail auth-source
cl-seq eieio eieio-core cl-macs eieio-loaddefs sendmail message subr-x
puny seq byte-opt gv bytecomp byte-compile cconv dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-config
gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev
mail-utils gmm-utils mailheader misearch multi-isearch crm thingatpt
cus-edit cus-start cus-load wid-edit elec-pair warnings server noutline
outline easy-mmode cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs shell pcomplete comint ansi-color
ring xcscope easymenu advice delsel vc cl-loaddefs cl-lib vc-dispatcher
timeclock mdk-hacks time-date mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote inotify dynamic-setting font-render-setting x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 505215 21681)
 (symbols 48 244263 6)
 (miscs 40 586 680)
 (strings 32 198558 4337)
 (string-bytes 1 6115645)
 (vectors 16 33085)
 (vector-slots 8 887601 27067)
 (floats 8 270 670)
 (intervals 56 1582 28)
 (buffers 992 43)
 (heap 1024 75376 11221))





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28476: 26.0.60; Gnus: broken timezone in citation line
  2017-09-17  5:14 bug#28476: 26.0.60; Gnus: broken timezone in citation line Mike Kupfer
@ 2017-09-17 14:25 ` Eli Zaretskii
  2017-09-17 15:29   ` Mike Kupfer
  2017-09-18  3:56 ` Paul Eggert
  1 sibling, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2017-09-17 14:25 UTC (permalink / raw)
  To: Mike Kupfer; +Cc: 28476

> From: Mike Kupfer <mkupfer@alum.berkeley.edu>
> Date: Sat, 16 Sep 2017 22:14:18 -0700
> 
> I have message-citation-line-format set to
> 
>   "On %e %B %Y %R %Z, %N wrote:\n"
> 
> When replying to a message whose date field is displayed as
> 
>   Date: Sat, 16 Sep 2017 17:18:30 -0700
> 
> the citation comes out as
> 
>   On 16 September 2017 17:18 +07, Mike Kupfer wrote:
> 
> I expect
> 
>   On 16 September 2017 17:18 -0700, Mike Kupfer wrote:
> 
> which is what Emacs 25.3 gives me.

I think you should use %z, not %Z.  %Z gives the time-zone _name_, a
string, whereas %z gives its numeric form.  FWIW, I get the time-zone
name from %Z in both Emacs 25.3 and the current emacs-26 branch.  Not
sure why you get different results in 25.3.

Thanks.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28476: 26.0.60; Gnus: broken timezone in citation line
  2017-09-17 14:25 ` Eli Zaretskii
@ 2017-09-17 15:29   ` Mike Kupfer
  2017-09-17 15:59     ` Andreas Schwab
  2017-09-17 16:12     ` Eli Zaretskii
  0 siblings, 2 replies; 7+ messages in thread
From: Mike Kupfer @ 2017-09-17 15:29 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 28476

Eli Zaretskii wrote:

> > From: Mike Kupfer <mkupfer@alum.berkeley.edu>

> > I have message-citation-line-format set to
> > 
> >   "On %e %B %Y %R %Z, %N wrote:\n"
[...]
> I think you should use %z, not %Z.  %Z gives the time-zone _name_, a
> string, whereas %z gives its numeric form.  FWIW, I get the time-zone
> name from %Z in both Emacs 25.3 and the current emacs-26 branch.  Not
> sure why you get different results in 25.3.

How are you testing this?  The docstring for
message-citation-line-format says that %z and %Z are special-cased, with
both producing the time zone in numeric form.

Maybe there was a deliberate change in Gnus to distinguish %z from %Z
for Emacs 26?  If so, there are still 2 issues: the documentation is
wrong, and I'd expect %Z to produce "PDT", not "+07".

(format-time-string "%Z")
=> "PDT"

mike





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28476: 26.0.60; Gnus: broken timezone in citation line
  2017-09-17 15:29   ` Mike Kupfer
@ 2017-09-17 15:59     ` Andreas Schwab
  2017-09-17 16:12     ` Eli Zaretskii
  1 sibling, 0 replies; 7+ messages in thread
From: Andreas Schwab @ 2017-09-17 15:59 UTC (permalink / raw)
  To: Mike Kupfer; +Cc: 28476

On Sep 17 2017, Mike Kupfer <mkupfer@alum.berkeley.edu> wrote:

> Eli Zaretskii wrote:
>
>> > From: Mike Kupfer <mkupfer@alum.berkeley.edu>
>
>> > I have message-citation-line-format set to
>> > 
>> >   "On %e %B %Y %R %Z, %N wrote:\n"
> [...]
>> I think you should use %z, not %Z.  %Z gives the time-zone _name_, a
>> string, whereas %z gives its numeric form.  FWIW, I get the time-zone
>> name from %Z in both Emacs 25.3 and the current emacs-26 branch.  Not
>> sure why you get different results in 25.3.
>
> How are you testing this?  The docstring for
> message-citation-line-format says that %z and %Z are special-cased, with
> both producing the time zone in numeric form.

That was broken by commit 7d835d8e79.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28476: 26.0.60; Gnus: broken timezone in citation line
  2017-09-17 15:29   ` Mike Kupfer
  2017-09-17 15:59     ` Andreas Schwab
@ 2017-09-17 16:12     ` Eli Zaretskii
  1 sibling, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2017-09-17 16:12 UTC (permalink / raw)
  To: Mike Kupfer; +Cc: 28476

> From: Mike Kupfer <mkupfer@alum.berkeley.edu>
> cc: 28476@debbugs.gnu.org
> Date: Sun, 17 Sep 2017 08:29:46 -0700
> 
> Eli Zaretskii wrote:
> 
> > > From: Mike Kupfer <mkupfer@alum.berkeley.edu>
> 
> > > I have message-citation-line-format set to
> > > 
> > >   "On %e %B %Y %R %Z, %N wrote:\n"
> [...]
> > I think you should use %z, not %Z.  %Z gives the time-zone _name_, a
> > string, whereas %z gives its numeric form.  FWIW, I get the time-zone
> > name from %Z in both Emacs 25.3 and the current emacs-26 branch.  Not
> > sure why you get different results in 25.3.
> 
> How are you testing this?  The docstring for
> message-citation-line-format says that %z and %Z are special-cased, with
> both producing the time zone in numeric form.

Sorry, I assumed without checking that the format was handed to
format-time-string.

Anyway, I think Andreas found the reason.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#28476: 26.0.60; Gnus: broken timezone in citation line
  2017-09-17  5:14 bug#28476: 26.0.60; Gnus: broken timezone in citation line Mike Kupfer
  2017-09-17 14:25 ` Eli Zaretskii
@ 2017-09-18  3:56 ` Paul Eggert
  2017-09-18 15:37   ` Mike Kupfer
  1 sibling, 1 reply; 7+ messages in thread
From: Paul Eggert @ 2017-09-18  3:56 UTC (permalink / raw)
  To: Mike Kupfer; +Cc: 28476

[-- Attachment #1: Type: text/plain, Size: 1193 bytes --]

Thanks for the bug report.

I see two issues here. First, the change in message-citation-line-format's 
treatment of %Z was deliberate. The new treatment (unlike the old one) is 
consistent with format-time-string and this consistency simplifies the 
documentation and code. If backward-compatibility is a significant hassle we can 
re-complicate Emacs, but I'm hoping that users can change %Z to %z in their 
settings and move on. In the meantime I installed the first attached patch into 
the emacs-26 branch so that the documentation matches the new behavior. (Sorry, 
I missed that part of the documentation before.)

Second, (format-time-string "%Z" nil -25200) returns "+07" where it should 
return "-07" since -25200 denotes 7 hours west of UTC. This is due to a blunder 
in my commit fdb1ba144ca61185e6457f092f38f59dd9bbe6a0 dated 2016-04-12 09:19:11 
-0700: the %Z code gets the sign wrong on purely-numeric time zones west of 
Greenwich. To fix this bug I installed the second attached patch into the 
emacs-26 branch. This fix should cause your example to come out as:

   On 16 September 2017 17:18 -07, Mike Kupfer wrote:

which at least gets the sign right.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-message-citation-line-format-Z-is-now-tz-name.patch --]
[-- Type: text/x-patch; name="0001-message-citation-line-format-Z-is-now-tz-name.patch", Size: 1519 bytes --]

From 679e05eeb97eae5a32fc67f4673b019c873ebcca Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sun, 17 Sep 2017 17:46:18 -0700
Subject: [PATCH 1/2] message-citation-line-format %Z is now tz name

* etc/NEWS:
* lisp/gnus/message.el (message-citation-line-format):
Fix doc to match new behavior (Bug#28476).
---
 etc/NEWS             | 6 ++++++
 lisp/gnus/message.el | 1 -
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/etc/NEWS b/etc/NEWS
index a042ce9..5aa57a7 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -701,6 +701,12 @@ method is an NNTP select method.
 *** A new command for sorting articles by readedness marks has been
 added: 'C-c C-s C-m C-m'.
 
++++
+
+*** In message-citation-line-format the %Z format is now the time zone name
+instead of the numeric form.  The %z format continues to be the
+numeric form.  The new behavior is compatible with format-time-string.
+
 ** Ibuffer
 
 ---
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 690dd28..a9e66ce 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -991,7 +991,6 @@ message-citation-line-format
   %F   The first name if present, e.g.: \"John\", else fall
        back to the mail address.
   %L   The last name if present, e.g.: \"Doe\".
-  %Z, %z   The time zone in the numeric form, e.g.:\"+0000\".
 
 All other format specifiers are passed to `format-time-string'
 which is called using the date from the article your replying to, but
-- 
2.7.4


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-Fix-format-time-string-Z-bug-with-negative-tz.patch --]
[-- Type: text/x-patch; name="0002-Fix-format-time-string-Z-bug-with-negative-tz.patch", Size: 1760 bytes --]

From 74fbe646c7d735343628979f6e9bb4543f01fe52 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sun, 17 Sep 2017 20:38:12 -0700
Subject: [PATCH 2/2] Fix format-time-string %Z bug with negative tz

* src/editfns.c (tzlookup): Fix sign error in %Z when a purely
numeric zone is negative (Bug#28746).
* test/src/editfns-tests.el (format-time-string-with-zone):
Add test for this bug.
---
 src/editfns.c             | 3 ++-
 test/src/editfns-tests.el | 4 ++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/editfns.c b/src/editfns.c
index b03eb94..2f8b075 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -187,7 +187,8 @@ tzlookup (Lisp_Object zone, bool settz)
 		  if (sec != 0)
 		    prec += 2, numzone = 100 * numzone + sec;
 		}
-	      sprintf (tzbuf, tzbuf_format, prec, numzone,
+	      sprintf (tzbuf, tzbuf_format, prec,
+		       XINT (zone) < 0 ? -numzone : numzone,
 		       &"-"[XINT (zone) < 0], hour, min, sec);
 	      zone_string = tzbuf;
 	    }
diff --git a/test/src/editfns-tests.el b/test/src/editfns-tests.el
index 1c3fde8..f910afa 100644
--- a/test/src/editfns-tests.el
+++ b/test/src/editfns-tests.el
@@ -166,6 +166,10 @@ transpose-test-get-byte-positions
     (should (string-equal
              (format-time-string format look '(-28800 "PST"))
              "1972-06-30 15:59:59.999 -0800 (PST)"))
+    ;; Negative UTC offset, as a Lisp integer.
+    (should (string-equal
+             (format-time-string format look -28800)
+             "1972-06-30 15:59:59.999 -0800 (-08)"))
     ;; Positive UTC offset that is not an hour multiple, as a string.
     (should (string-equal
              (format-time-string format look "IST-5:30")
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* bug#28476: 26.0.60; Gnus: broken timezone in citation line
  2017-09-18  3:56 ` Paul Eggert
@ 2017-09-18 15:37   ` Mike Kupfer
  0 siblings, 0 replies; 7+ messages in thread
From: Mike Kupfer @ 2017-09-18 15:37 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 28476

Hi Paul, thanks for your response.  I'm fine with this sort of
consistency/simplification change.  The doc changes look good to me.

And after thinking about it some more, I realized that Emacs doesn't
really have enough context to ensure that "PDT" is correct in my
example, so I'm good with "-07" as the name.

Feel free to close this bug.

regards,
mike





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-09-18 15:37 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-17  5:14 bug#28476: 26.0.60; Gnus: broken timezone in citation line Mike Kupfer
2017-09-17 14:25 ` Eli Zaretskii
2017-09-17 15:29   ` Mike Kupfer
2017-09-17 15:59     ` Andreas Schwab
2017-09-17 16:12     ` Eli Zaretskii
2017-09-18  3:56 ` Paul Eggert
2017-09-18 15:37   ` Mike Kupfer

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.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).