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


Reply via email to