]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/calendar/todo-mode.el: Use calendar-dlet*
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 4 Dec 2017 20:39:32 +0000 (15:39 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 4 Dec 2017 20:39:32 +0000 (15:39 -0500)
(dayname, monthname, day, month, year): Don't declare globally.
(todo-date-pattern, todo-edit-item--header)
(todo-convert-legacy-date-time, todo-read-date):
Use calendar-dlet* around uses of calendar-date-display-form.

lisp/calendar/todo-mode.el

index 0ae59c588045ba91c6dd850e6e1feaa0e2e3f67a..df3953f7a7091368b2fc4a9039a55d4aca19ebc5 100644 (file)
@@ -188,25 +188,17 @@ The final element is \"*\", indicating an unspecified month.")
   "Array of abbreviated month names, in order.
 The final element is \"*\", indicating an unspecified month.")
 
-(with-no-warnings
-  ;; FIXME: These vars lack a prefix, but this is out of our control, because
-  ;; they're defined by Calendar, e.g. for calendar-date-display-form.
-  (defvar dayname)
-  (defvar monthname)
-  (defvar day)
-  (defvar month)
-  (defvar year))
-
 (defconst todo-date-pattern
   (let ((dayname (diary-name-pattern calendar-day-name-array nil t)))
     (concat "\\(?4:\\(?5:" dayname "\\)\\|"
-           (let ((dayname)
-                 (monthname (format "\\(?6:%s\\)" (diary-name-pattern
-                                                   todo-month-name-array
-                                                   todo-month-abbrev-array)))
-                 (month "\\(?7:[0-9]+\\|\\*\\)")
-                 (day "\\(?8:[0-9]+\\|\\*\\)")
-                 (year "-?\\(?9:[0-9]+\\|\\*\\)"))
+           (calendar-dlet*
+                ((dayname)
+                (monthname (format "\\(?6:%s\\)" (diary-name-pattern
+                                                  todo-month-name-array
+                                                  todo-month-abbrev-array)))
+                (month "\\(?7:[0-9]+\\|\\*\\)")
+                (day "\\(?8:[0-9]+\\|\\*\\)")
+                (year "-?\\(?9:[0-9]+\\|\\*\\)"))
              (mapconcat #'eval calendar-date-display-form ""))
            "\\)"))
   "Regular expression matching a todo item date header.")
@@ -2274,8 +2266,8 @@ made in the number or names of categories."
        ;; `todo-edit-item' as e.g. `-' or `C-u'.
        (inc (prefix-numeric-value inc))
        (buffer-read-only nil)
-       ndate ntime year monthname month day
-       dayname)        ; Needed by calendar-date-display-form.
+       ndate ntime
+        year monthname month day dayname)
     (when marked (todo--user-error-if-marked-done-item))
     (save-excursion
       (or (and marked (goto-char (point-min))) (todo-item-start))
@@ -2416,7 +2408,15 @@ made in the number or names of categories."
              ;; If year, month or day date string components were
              ;; changed, rebuild the date string.
              (when (memq what '(year month day))
-               (setq ndate (mapconcat #'eval calendar-date-display-form ""))))
+               (setq ndate
+                      (calendar-dlet*
+                          ;; Needed by calendar-date-display-form.
+                          ((year year)
+                           (monthname monthname)
+                           (month month)
+                           (day day)
+                           (dayname dayname))
+                        (mapconcat #'eval calendar-date-display-form "")))))
            (when ndate (replace-match ndate nil nil nil 1))
            ;; Add new time string to the header, if it was supplied.
            (when ntime
@@ -4613,12 +4613,13 @@ strings built using the default value of
 (defun todo-convert-legacy-date-time ()
   "Return converted date-time string.
 Helper function for `todo-convert-legacy-files'."
-  (let* ((year (match-string 1))
-        (month (match-string 2))
-        (monthname (calendar-month-name (string-to-number month) t))
-        (day (match-string 3))
-        (time (match-string 4))
-        dayname)
+  (calendar-dlet*
+      ((year (match-string 1))
+       (month (match-string 2))
+       (monthname (calendar-month-name (string-to-number month) t))
+       (day (match-string 3))
+       (time (match-string 4))
+       dayname)
     (replace-match "")
     (insert (mapconcat #'eval calendar-date-display-form "")
            (when time (concat " " time)))))
@@ -5990,8 +5991,8 @@ indicating an unspecified month, day, or year.
 
 When ARG is `day', non-nil arguments MO and YR determine the
 number of the last the day of the month."
-  (let (year monthname month day
-            dayname)                   ; Needed by calendar-date-display-form.
+  (calendar-dlet*
+      (year monthname month day dayname) ;Needed by calendar-date-display-form.
     (when (or (not arg) (eq arg 'year))
       (while (if (natnump year) (< year 1) (not (eq year '*)))
        (setq year (read-from-minibuffer