unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0
@ 2021-11-18 23:35 dick
  2021-11-19  7:47 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 10+ messages in thread
From: dick @ 2021-11-18 23:35 UTC (permalink / raw)
  To: 51959

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0001-Fallout-from-69f1bc43c0.patch --]
[-- Type: text/x-diff, Size: 4840 bytes --]

From f91206e6d6f56fa2ff6dc018d20f441159f80213 Mon Sep 17 00:00:00 2001
From: dickmao <dick.r.chiang@gmail.com>
Date: Thu, 18 Nov 2021 18:31:37 -0500
Subject: [PATCH] Fallout from 69f1bc43c0

* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
Accommodate TZ string in input.  Fragile.
* test/lisp/calendar/icalendar-tests.el
(icalendar-tests--decode-isodatetime):
Apparently, whoever wrote those tests lived in central Europe.
---
 lisp/calendar/icalendar.el            | 14 +++++------
 test/infra/gitlab-ci.yml              |  7 ++++++
 test/lisp/calendar/icalendar-tests.el | 34 +++++++++++++++------------
 3 files changed, 33 insertions(+), 22 deletions(-)

diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index 2d31101e50..7a483d4062 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -644,13 +644,13 @@ icalendar--decode-isodatetime
           ;; seconds present
           (setq second (read (substring isodatetimestring 13 15))))
 	;; FIXME: Support subseconds.
-        (when (and (> (length isodatetimestring) 15)
-                   ;; UTC specifier present
-                   (char-equal ?Z (aref isodatetimestring 15)))
-          (setq source-zone t
-                ;; decode to local time unless result-zone is explicitly given,
-                ;; i.e. do not decode to UTC, i.e. do not (setq result-zone t)
-                ))
+        (when (> (length isodatetimestring) 15)
+          (cl-case (aref isodatetimestring 15)
+            (?Z
+             (setq source-zone t))
+            ((?- ?+)
+             (setq source-zone
+                   (concat "UTC" (substring isodatetimestring 15))))))
         ;; shift if necessary
         (if day-shift
             (let ((mdy (calendar-gregorian-from-absolute
diff --git a/test/infra/gitlab-ci.yml b/test/infra/gitlab-ci.yml
index 096a293b30..d8e012d6a9 100644
--- a/test/infra/gitlab-ci.yml
+++ b/test/infra/gitlab-ci.yml
@@ -241,6 +241,13 @@ test-lisp-inotify:
     target: emacs-inotify
     make_params: "-C test check-lisp"
 
+test-lisp-calendar-inotify:
+  stage: normal
+  extends: [.job-template, .test-template]
+  variables:
+    target: emacs-inotify
+    make_params: "-C test check-lisp-calendar"
+
 test-lisp-net-inotify:
   stage: normal
   extends: [.job-template, .test-template]
diff --git a/test/lisp/calendar/icalendar-tests.el b/test/lisp/calendar/icalendar-tests.el
index 10b684aacb..1551922028 100644
--- a/test/lisp/calendar/icalendar-tests.el
+++ b/test/lisp/calendar/icalendar-tests.el
@@ -1635,26 +1635,30 @@ icalendar-test--format
 
 (ert-deftest icalendar-tests--decode-isodatetime ()
   "Test `icalendar--decode-isodatetime'."
-  (should (equal (icalendar-test--format "20040917T050910-0200")
-                 "2004-09-17T03:09:10+0000"))
-  (should (equal (icalendar-test--format "20040917T050910")
+  (should (equal (icalendar-test--format "20040917T050910-02:00")
                  "2004-09-17T03:09:10+0000"))
+  (let ((orig (icalendar-test--format "20040917T050910")))
+    (unwind-protect
+        (progn
+          (set-time-zone-rule "UTC-02:00")
+          (should (equal (icalendar-test--format "20040917T050910")
+                         "2004-09-17T03:09:10+0000"))
+          (should (equal (icalendar-test--format "20040917T0509")
+                         "2004-09-17T03:09:00+0000"))
+          (should (equal (icalendar-test--format "20040917")
+                         "2004-09-16T22:00:00+0000"))
+          (should (equal (icalendar-test--format "20040917T050910" 1)
+                         "2004-09-18T03:09:10+0000"))
+          (should (equal (icalendar-test--format "20040917T050910" 30)
+                         "2004-10-17T03:09:10+0000")))
+      (set-time-zone-rule 'wall) ;; (set-time-zone-rule nil) is broken
+      (should (equal orig (icalendar-test--format "20040917T050910")))))
   (should (equal (icalendar-test--format "20040917T050910Z")
                  "2004-09-17T05:09:10+0000"))
-  (should (equal (icalendar-test--format "20040917T0509")
-                 "2004-09-17T03:09:00+0000"))
-  (should (equal (icalendar-test--format "20040917")
-                 "2004-09-16T22:00:00+0000"))
-  (should (equal (icalendar-test--format "20040917T050910" 1)
-                 "2004-09-18T03:09:10+0000"))
-  (should (equal (icalendar-test--format "20040917T050910" 30)
-                 "2004-10-17T03:09:10+0000"))
-  (should (equal (icalendar-test--format "20040917T050910" -1)
-                 "2004-09-16T03:09:10+0000"))
-
+  (should (equal (icalendar-test--format "20040917T050910" -1 0)
+                 "2004-09-16T05:09:10+0000"))
   (should (equal (icalendar-test--format "20040917T050910" nil -3600)
                  "2004-09-17T06:09:10+0000")))
 
-
 (provide 'icalendar-tests)
 ;;; icalendar-tests.el ends here
-- 
2.26.2


[-- Attachment #2: Type: text/plain, Size: 6860 bytes --]




In Commercial Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30, cairo version 1.15.10)
 of 2021-11-18 built on dick
Repository revision: 857bfcf67d29742fc4e48b54a124564692434bd2
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Ubuntu 18.04.4 LTS

Configured using:
 'configure --prefix=/home/dick/.local --with-tree-sitter
 --enable-dumping-overwrite 'CFLAGS=-g3 -O2 -I/home/dick/.local/include/'
 LDFLAGS=-L/home/dick/.local/lib'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
TREE-SITTER LCMS2 LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG
SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XPM GTK3 ZLIB

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

Major mode: Ag

Minor modes in effect:
  async-bytecomp-package-mode: t
  global-git-commit-mode: t
  shell-dirtrack-mode: t
  projectile-mode: t
  flx-ido-mode: t
  override-global-mode: t
  global-hl-line-mode: t
  winner-mode: t
  tooltip-mode: t
  show-paren-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/dick/gomacro-mode/gomacro-mode hides /home/dick/.emacs.d/elpa/gomacro-mode-20200326.1103/gomacro-mode
/home/dick/.emacs.d/elpa/hydra-20170924.2259/lv hides /home/dick/.emacs.d/elpa/lv-20191106.1238/lv
/home/dick/.emacs.d/elpa/magit-3.3.0/magit-section-pkg hides /home/dick/.emacs.d/elpa/magit-section-3.3.0/magit-section-pkg
/home/dick/org-gcal.el/org-gcal hides /home/dick/.emacs.d/elpa/org-gcal-0.3/org-gcal
/home/dick/.emacs.d/lisp/json hides /home/dick/.local/share/emacs/28.0.50/lisp/json
/home/dick/.emacs.d/elpa/transient-0.3.6/transient hides /home/dick/.local/share/emacs/28.0.50/lisp/transient
/home/dick/.emacs.d/elpa/hierarchy-20171221.1151/hierarchy hides /home/dick/.local/share/emacs/28.0.50/lisp/emacs-lisp/hierarchy

Features:
(shadow sort footnote mail-extr gnus-msg gnus-art mm-uu mml2015 mm-view
mml-smime smime dig gnus-sum shr kinsoku svg dom gnus-group mm-url gnus-undo
gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo
gnus-spec gnus-int gnus-range gnus-win whitespace emacsbug sendmail benchmark
dumb-jump f ag vc-svn find-dired s pulse vc cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs eieio-opt speedbar
ezimage dframe shortdoc help-fns radix-tree cl-print edebug backtrace
icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs
tramp-archive tramp-gvfs tramp-cache zeroconf dbus xml tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp
vc-git vc-dispatcher find-func bug-reference misearch multi-isearch
magit-extras mule-util face-remap magit-patch-changelog magit-patch
magit-submodule magit-obsolete magit-popup async-bytecomp async magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files
magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log
which-func imenu magit-diff smerge-mode diff diff-mode git-commit log-edit
message yank-media rmc puny dired-x dired dired-loaddefs rfc822 mml mml-sec
epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode mailabbrev gmm-utils
mailheader pcvs-util add-log magit-core magit-margin magit-transient
magit-process with-editor shell pcomplete server magit-mode transient
format-spec paredit-ext paredit subed subed-vtt subed-srt subed-common
subed-mpv subed-debug subed-config inf-ruby ruby-mode smie company pcase
haskell-interactive-mode haskell-presentation-mode haskell-process
haskell-session haskell-compile haskell-mode haskell-cabal haskell-utils
haskell-font-lock haskell-indentation haskell-string haskell-sort-imports
haskell-lexeme haskell-align-imports haskell-complete-module
haskell-ghc-support noutline outline flymake-proc flymake warnings etags
fileloop generator xref project dabbrev haskell-customize hydra lv
use-package-ensure solarized-theme solarized-definitions projectile lisp-mnt
mail-parse rfc2231 ibuf-ext ibuffer ibuffer-loaddefs thingatpt
magit-autorevert autorevert filenotify magit-git magit-section magit-utils crm
dash rx grep compile comint ansi-color gnus nnheader gnus-util rmail
rmail-loaddefs rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
text-property-search time-date flx-ido flx google-translate-default-ui
google-translate-core-ui facemenu color ido google-translate-core
google-translate-tk google-translate-backend use-package-bind-key bind-key
auto-complete easy-mmode advice edmacro kmacro popup cus-edit pp cus-load
wid-edit emms-player-mplayer emms-player-simple emms emms-compat cl-extra
use-package-core derived hl-line winner ring help-mode finder-inf
json-reformat-autoloads json-snatcher-autoloads sml-mode-autoloads
tornado-template-mode-autoloads info package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map url-vars seq gv subr-x byte-opt
bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tree-sitter tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer
select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer 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
emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help simple
abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 746046 74703)
 (symbols 48 37026 4)
 (strings 32 144360 9896)
 (string-bytes 1 4744547)
 (vectors 16 98627)
 (vector-slots 8 2528293 96955)
 (floats 8 567 2625)
 (intervals 56 14825 3795)
 (buffers 992 27))

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

* bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0
  2021-11-18 23:35 bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0 dick
@ 2021-11-19  7:47 ` Lars Ingebrigtsen
  2021-11-19 12:23   ` dick
                     ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-19  7:47 UTC (permalink / raw)
  To: dick; +Cc: 51959

dick <dick.r.chiang@gmail.com> writes:

> +        (when (> (length isodatetimestring) 15)
> +          (cl-case (aref isodatetimestring 15)
> +            (?Z
> +             (setq source-zone t))
> +            ((?- ?+)
> +             (setq source-zone
> +                   (concat "UTC" (substring isodatetimestring 15))))))

UTC-0200?  Is that the syntax to use here?  I've added Ulf to the CCs.

> +test-lisp-calendar-inotify:
> +  stage: normal
> +  extends: [.job-template, .test-template]
> +  variables:
> +    target: emacs-inotify
> +    make_params: "-C test check-lisp-calendar"

Is this necessary?  

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0
  2021-11-19  7:47 ` Lars Ingebrigtsen
@ 2021-11-19 12:23   ` dick
  2021-11-19 12:26     ` Lars Ingebrigtsen
  2021-11-19 15:59   ` Michael Albinus
  2021-11-20 12:05   ` Ulf Jasper
  2 siblings, 1 reply; 10+ messages in thread
From: dick @ 2021-11-19 12:23 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51959

>> +    make_params: "-C test check-lisp-calendar"

LI> Is this necessary?  

I dunno.  Is EMBA necessary?  To the extent some deluded benefactor is paying
for its hardware and electricity bill, we might as well do something more
useful with it than crypto mining sans the crypto.





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

* bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0
  2021-11-19 12:23   ` dick
@ 2021-11-19 12:26     ` Lars Ingebrigtsen
  2021-11-19 12:38       ` dick
  0 siblings, 1 reply; 10+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-19 12:26 UTC (permalink / raw)
  To: dick; +Cc: 51959

dick <dick.r.chiang@gmail.com> writes:

> LI> Is this necessary?  
>
> I dunno.  Is EMBA necessary?  To the extent some deluded benefactor is paying
> for its hardware and electricity bill, we might as well do something more
> useful with it than crypto mining sans the crypto.

So that's a no?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0
  2021-11-19 12:26     ` Lars Ingebrigtsen
@ 2021-11-19 12:38       ` dick
  0 siblings, 0 replies; 10+ messages in thread
From: dick @ 2021-11-19 12:38 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51959

> So that's a no?

I can see I've met my match for passive aggression.  Touche!





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

* bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0
  2021-11-19  7:47 ` Lars Ingebrigtsen
  2021-11-19 12:23   ` dick
@ 2021-11-19 15:59   ` Michael Albinus
  2021-11-20 10:46     ` Stefan Kangas
  2021-11-20 12:05   ` Ulf Jasper
  2 siblings, 1 reply; 10+ messages in thread
From: Michael Albinus @ 2021-11-19 15:59 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51959, dick

Lars Ingebrigtsen <larsi@gnus.org> writes:

>> +test-lisp-calendar-inotify:
>> +  stage: normal
>> +  extends: [.job-template, .test-template]
>> +  variables:
>> +    target: emacs-inotify
>> +    make_params: "-C test check-lisp-calendar"
>
> Is this necessary?

Not here. I'm working to add such emba jobs dynamically. See commit
cb612c51d6c428aa7d8fd01f1b3fde13284c1c16

Best regards, Michael.





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

* bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0
  2021-11-19 15:59   ` Michael Albinus
@ 2021-11-20 10:46     ` Stefan Kangas
  2021-11-20 10:50       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Kangas @ 2021-11-20 10:46 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Lars Ingebrigtsen, 51959, dick

Michael Albinus <michael.albinus@gmx.de> writes:

> Lars Ingebrigtsen <larsi@gnus.org> writes:
>
>>> +test-lisp-calendar-inotify:
>>> +  stage: normal
>>> +  extends: [.job-template, .test-template]
>>> +  variables:
>>> +    target: emacs-inotify
>>> +    make_params: "-C test check-lisp-calendar"
>>
>> Is this necessary?
>
> Not here. I'm working to add such emba jobs dynamically. See commit
> cb612c51d6c428aa7d8fd01f1b3fde13284c1c16

And the mh test failures have been fixed in a different way now, right?
So this could be closed?





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

* bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0
  2021-11-20 10:46     ` Stefan Kangas
@ 2021-11-20 10:50       ` Lars Ingebrigtsen
  0 siblings, 0 replies; 10+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-20 10:50 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 51959, Michael Albinus, dick

Stefan Kangas <stefan@marxist.se> writes:

> And the mh test failures have been fixed in a different way now, right?
> So this could be closed?

This is about the icalendar time zone test failures, though.  (The
subject here isn't the best, so I understand the confusion.)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0
  2021-11-19  7:47 ` Lars Ingebrigtsen
  2021-11-19 12:23   ` dick
  2021-11-19 15:59   ` Michael Albinus
@ 2021-11-20 12:05   ` Ulf Jasper
  2021-11-21  8:19     ` Lars Ingebrigtsen
  2 siblings, 1 reply; 10+ messages in thread
From: Ulf Jasper @ 2021-11-20 12:05 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 51959, dick

Am 19.11.2021 um 08:47 (+0100) schrieb Lars Ingebrigtsen:
> dick <dick.r.chiang@gmail.com> writes:
>
>> +        (when (> (length isodatetimestring) 15)
>> +          (cl-case (aref isodatetimestring 15)
>> +            (?Z
>> +             (setq source-zone t))
>> +            ((?- ?+)
>> +             (setq source-zone
>> +                   (concat "UTC" (substring isodatetimestring 15))))))
>
> UTC-0200?  Is that the syntax to use here?  I've added Ulf to the CCs.

'source-zone' is passed to 'encode-time'.  'encode-time' accepts a
"string as in the TZ environment variable".  "UTC-0200" appears to be
syntactically correct, according to

    https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html





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

* bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0
  2021-11-20 12:05   ` Ulf Jasper
@ 2021-11-21  8:19     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 10+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-21  8:19 UTC (permalink / raw)
  To: Ulf Jasper; +Cc: 51959, dick

Ulf Jasper <ulf.jasper@web.de> writes:

> 'source-zone' is passed to 'encode-time'.  'encode-time' accepts a
> "string as in the TZ environment variable".  "UTC-0200" appears to be
> syntactically correct, according to
>
>     https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html

OK; I've pushed Dick's patch, then.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

end of thread, other threads:[~2021-11-21  8:19 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-18 23:35 bug#51959: 28.0.50; [PATCH] Fallout from 69f1bc43c0 dick
2021-11-19  7:47 ` Lars Ingebrigtsen
2021-11-19 12:23   ` dick
2021-11-19 12:26     ` Lars Ingebrigtsen
2021-11-19 12:38       ` dick
2021-11-19 15:59   ` Michael Albinus
2021-11-20 10:46     ` Stefan Kangas
2021-11-20 10:50       ` Lars Ingebrigtsen
2021-11-20 12:05   ` Ulf Jasper
2021-11-21  8:19     ` Lars Ingebrigtsen

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).