فهرست منبع

org-agenda.el: Fix another bug with `org-agenda-goto-date' with sticky agendas

* org-agenda.el (org-agenda-list): Allow setting the agenda
buffer name through a temporary variable.
(org-agenda-buffer-tmp-name): New variable to temporary store
the agenda buffer name.

Thanks to Rainer Stengele for reporting this bug.
Bastien Guerry 13 سال پیش
والد
کامیت
b78520e149
1فایلهای تغییر یافته به همراه12 افزوده شده و 8 حذف شده
  1. 12 8
      lisp/org-agenda.el

+ 12 - 8
lisp/org-agenda.el

@@ -85,7 +85,7 @@
 (declare-function org-add-archive-files "org-archive" (files))
 (declare-function org-add-archive-files "org-archive" (files))
 
 
 (defvar calendar-mode-map)                    ; defined in calendar.el
 (defvar calendar-mode-map)                    ; defined in calendar.el
-(defvar org-clock-current-task)               ; defined in org-clock.el
+(defvar org-clock-current-task nil)           ; defined in org-clock.el
 (defvar org-mobile-force-id-on-agenda-items)  ; defined in org-mobile.el
 (defvar org-mobile-force-id-on-agenda-items)  ; defined in org-mobile.el
 (defvar org-habit-show-habits)                ; defined in org-habit.el
 (defvar org-habit-show-habits)                ; defined in org-habit.el
 (defvar org-habit-show-habits-only-for-today)
 (defvar org-habit-show-habits-only-for-today)
@@ -3859,13 +3859,15 @@ given in `org-agenda-start-on-weekday'."
   (if (and (integerp arg) (> arg 0))
   (if (and (integerp arg) (> arg 0))
       (setq span arg arg nil))
       (setq span arg arg nil))
   (catch 'exit
   (catch 'exit
-    (if org-agenda-sticky
-	(setq org-agenda-buffer-name
-	      (cond ((and org-keys (stringp org-match))
-		     (format "*Org Agenda(%s:%s)*" org-keys org-match))
-		    (org-keys
-		     (format "*Org Agenda(%s)*" org-keys))
-		    (t "*Org Agenda(a)*"))))
+    (setq org-agenda-buffer-name
+	  (or org-agenda-buffer-tmp-name
+	      (if org-agenda-sticky
+		  (cond ((and org-keys (stringp org-match))
+			 (format "*Org Agenda(%s:%s)*" org-keys org-match))
+			(org-keys
+			 (format "*Org Agenda(%s)*" org-keys))
+			(t "*Org Agenda(a)*")))
+	      org-agenda-buffer-name))
     (org-agenda-prepare "Day/Week")
     (org-agenda-prepare "Day/Week")
     (setq start-day (or start-day org-agenda-start-day))
     (setq start-day (or start-day org-agenda-start-day))
     (if (stringp start-day)
     (if (stringp start-day)
@@ -6979,12 +6981,14 @@ Negative selection means regexp must not match for selection of an entry."
 (defun org-add-to-string (var string)
 (defun org-add-to-string (var string)
   (set var (concat (symbol-value var) string)))
   (set var (concat (symbol-value var) string)))
 
 
+(defvar org-agenda-buffer-tmp-name nil)
 (defun org-agenda-goto-date (date)
 (defun org-agenda-goto-date (date)
   "Jump to DATE in agenda."
   "Jump to DATE in agenda."
   (interactive (list (let ((org-read-date-prefer-future
   (interactive (list (let ((org-read-date-prefer-future
 			    (eval org-agenda-jump-prefer-future)))
 			    (eval org-agenda-jump-prefer-future)))
 		       (org-read-date))))
 		       (org-read-date))))
   (let ((org-agenda-sticky-orig org-agenda-sticky)
   (let ((org-agenda-sticky-orig org-agenda-sticky)
+	(org-agenda-buffer-tmp-name (buffer-name))
 	org-agenda-sticky)
 	org-agenda-sticky)
     (org-agenda-list nil date)
     (org-agenda-list nil date)
     (setq org-agenda-sticky org-agenda-sticky-orig
     (setq org-agenda-sticky org-agenda-sticky-orig