org-get-category can sometimes invoke org-refresh-category-properties
which can perform a re-search-forward which destroys the existing
match data. When called from org-agenda-get-todos, this can result in
its subsequent call to (match-beginning 2) to return nil, which when
passed as the first parameter to buffer-string causes the above error.
---
lisp/org-agenda.el |9 +
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index ac1b5b1..4efb332 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -4664,10 +4664,11 @@ the documentation of `org-diary'."
(or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
(throw :skip nil)))
(goto-char (match-beginning 2))
- (setq marker (org-agenda-new-marker (match-beginning 0))
- category (org-get-category)
- org-category-pos (get-text-property (point)
'org-category-position)
- txt (org-trim
+ (setq marker (org-agenda-new-marker (match-beginning 0)))
+ (save-match-data
+ (setq category (org-get-category)
+ org-category-pos (get-text-property (point)
'org-category-position)))
+ (setq txt (org-trim
(buffer-substring (match-beginning 2) (match-end 0)))
tags (org-get-tags-at (point))
txt (org-agenda-format-item "" txt category tags)
--
1.7.8.206.g71406