[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [PATCH] org-agenda-list (from git) giving "args-out-of-range err

From: Karl Fogel
Subject: Re: [O] [PATCH] org-agenda-list (from git) giving "args-out-of-range error"
Date: Wed, 29 Feb 2012 13:45:05 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux)

Nick Dokos <address@hidden> writes:
>Exactly what you've done: send the patch to the list.
>Modulo possible changelog formatting issues (see
>http://orgmode.org/worg/org-contribute.html#sec-5 for the gory details),
>the patch looks good to me. Thanks for submitting it!

Oh, thanks -- I should have looked for those guidelines first.  Here is
the same patch, but with a properly-done log message this time.

I already have copyright assignment papers on file at the FSF for Emacs
itself, by the way; does that cover us for Org Mode too?

>From 7809b35a6e88640006753e28bcb87a6b66a80639 Mon Sep 17 00:00:00 2001
From: Karl Fogel <address@hidden>
Date: Wed, 29 Feb 2012 13:42:35 -0600
Subject: [PATCH] Fix bug whereby a date-only line caused an error when
 generating an agenda

* lisp/org-agenda.el (org-agenda-highlight-todo): Handle the case of a heading 
that has a date but no todo keyword.

This is a fix for the args-out-of-range bug discussed in these threads:


The discussions involved Ilya Shlyakhter, James Atwood, Nick Dokos,
and myself, and the subject headers are:

  bug report: agenda timeline crashes
  Bug report: weekly agenda and blank, timestamped headers
  org-agenda-list (from git) giving "args-out-of-range error"

 lisp/org-agenda.el |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 98a2cc0..ac1b5b1 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -5889,8 +5889,18 @@ could bind the variable in the options section of a 
custom command.")
       (let ((pl (text-property-any 0 (length x) 'org-heading t x)))
        (setq re (get-text-property 0 'org-todo-regexp x))
        (when (and re
+                  ;; Test `pl' because if there's no heading content,
+                  ;; there's no point matching to highlight.  Note
+                  ;; that if we didn't test `pl' first, and there
+                  ;; happened to be no keyword from `org-todo-regexp'
+                  ;; on this heading line, then the `equal' comparison
+                  ;; afterwards would spuriously succeed in the case
+                  ;; where `pl' is nil -- causing an args-out-of-range
+                  ;; error when we try to add text properties to text
+                  ;; that isn't there.
+                  pl
                   (equal (string-match (concat "\\(\\.*\\)" re "\\( +\\)")
-                                       x (or pl 0)) pl))
+                                       x pl) pl))
           (or (match-end 1) (match-end 0)) (match-end 0)
           (list 'face (org-get-todo-face (match-string 2 x)))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]