From mboxrd@z Thu Jan 1 00:00:00 1970 From: Karl Fogel Subject: Re: [PATCH] org-agenda-list (from git) giving "args-out-of-range error" Date: Wed, 29 Feb 2012 13:45:05 -0600 Message-ID: <87zkc15sqm.fsf@floss.red-bean.com> References: <87vcmq1ui3.fsf@floss.red-bean.com> <8636.1330468554@alphaville> <87ehtd78tb.fsf_-_@floss.red-bean.com> <8091.1330543726@alphaville> Reply-To: Karl Fogel Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([208.118.235.92]:33402) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S2pSg-00081g-R2 for emacs-orgmode@gnu.org; Wed, 29 Feb 2012 14:45:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S2pSb-0008Dx-CG for emacs-orgmode@gnu.org; Wed, 29 Feb 2012 14:45:18 -0500 Received: from mail-gx0-f169.google.com ([209.85.161.169]:48438) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S2pSb-0008DS-5V for emacs-orgmode@gnu.org; Wed, 29 Feb 2012 14:45:13 -0500 Received: by ggnf1 with SMTP id f1so3947140ggn.0 for ; Wed, 29 Feb 2012 11:45:11 -0800 (PST) In-Reply-To: <8091.1330543726@alphaville> (Nick Dokos's message of "Wed, 29 Feb 2012 14:28:46 -0500") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: nicholas.dokos@hp.com Cc: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain Nick Dokos 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? --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=agenda-date-only-heading-bug-patch.txt Content-Description: Tentative fix for bug whereby a heading that is empty except for a datestamp causes an args-out-of-range error when an agenda is being generated. >From 7809b35a6e88640006753e28bcb87a6b66a80639 Mon Sep 17 00:00:00 2001 From: Karl Fogel 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: http://thread.gmane.org/gmane.emacs.orgmode/52621 http://thread.gmane.org/gmane.emacs.orgmode/52793 http://thread.gmane.org/gmane.emacs.orgmode/52786 http://thread.gmane.org/gmane.emacs.orgmode/52810 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" TINYCHANGE --- 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)) (add-text-properties (or (match-end 1) (match-end 0)) (match-end 0) (list 'face (org-get-todo-face (match-string 2 x))) -- 1.7.9 --=-=-=--