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