From 2b49ebc8fc466ba56ae7a48f330837fad0711dc6 Mon Sep 17 00:00:00 2001 From: Carsten Dominik Date: Tue, 16 Dec 2008 05:50:46 +0100 Subject: [PATCH] Fix bug with tags setting from agenda. Setting tags from the agenda no longer updated the agenda display correctly. Now this works again. Report by John Wiegley. --- lisp/ChangeLog | 7 +++++++ lisp/org-agenda.el | 17 ++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9a3ecfb1d..746c577d8 100755 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2008-12-16 Carsten Dominik + + * org-agenda.el (org-agenda-change-all-lines): New argument + FORCE-TAGS. + (org-agenda-set-tags): Cet the new tags and pas them to + `org-format-agenda-item'. + 2008-12-15 Carsten Dominik * org-export-latex.el (org-export-latex-emphasis-alist): Switch to diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 25f2baa9b..8237d8175 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -5067,13 +5067,17 @@ the same tree node, and the headline of the tree node in the Org-mode file." (org-flag-heading nil))) ; show the next heading (org-add-note)))) -(defun org-agenda-change-all-lines (newhead hdmarker &optional fixface just-this) +(defun org-agenda-change-all-lines (newhead hdmarker + &optional fixface just-this + force-tags) "Change all lines in the agenda buffer which match HDMARKER. The new content of the line will be NEWHEAD (as modified by `org-format-agenda-item'). HDMARKER is checked with `equal' against all `org-hd-marker' text properties in the file. If FIXFACE is non-nil, the face of each item is modified acording to -the new TODO state." +the new TODO state. +If JUST-THIS is non-nil, change just the current line, not all. +If FORCE-TAGS is non nil, the car of it ar the new tags." (let* ((inhibit-read-only t) (line (org-current-line)) props m pl undone-face done-face finish new dotime cat tags) @@ -5088,7 +5092,9 @@ the new TODO state." (setq props (text-properties-at (point)) dotime (get-text-property (point) 'dotime) cat (get-text-property (point) 'org-category) - tags (get-text-property (point) 'tags) + tags (if force-tags + (car force-tags) + (get-text-property (point) 'tags)) new (org-format-agenda-item "x" newhead cat tags dotime 'noprefix) pl (get-text-property (point) 'prefix-length) undone-face (get-text-property (point) 'undone-face) @@ -5191,7 +5197,7 @@ the same tree node, and the headline of the tree node in the Org-mode file." (buffer (marker-buffer hdmarker)) (pos (marker-position hdmarker)) (inhibit-read-only t) - newhead) + newhead tags) (org-with-remote-undo buffer (with-current-buffer buffer (widen) @@ -5203,9 +5209,10 @@ the same tree node, and the headline of the tree node in the Org-mode file." (org-flag-heading nil))) ; show the next heading (goto-char pos) (call-interactively 'org-set-tags) + (setq tags (org-get-tags-at)) (end-of-line 1) (setq newhead (org-get-heading))) - (org-agenda-change-all-lines newhead hdmarker) + (org-agenda-change-all-lines newhead hdmarker nil nil (list tags)) (beginning-of-line 1))))) (defun org-agenda-toggle-archive-tag () -- 2.11.4.GIT