[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] [BUG] Infinite loop in org-agenda-show-new-time
From: |
Matt Lundin |
Subject: |
[O] [BUG] Infinite loop in org-agenda-show-new-time |
Date: |
Mon, 05 Aug 2013 10:42:01 -0500 |
User-agent: |
Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3 (gnu/linux) |
When the agenda buffer is filtered by tag, I find that rescheduling an
item (via org-agenda-do-date-later, org-agenda-schedule, etc.) often
results in an infinite loop.
I believe this loop occurs in the function org-agenda-show-new-time.
Here are the steps I took to debug this:
1. I add a counter to the function:
--8<---------------cut here---------------start------------->8---
(defun org-agenda-show-new-time (marker stamp &optional prefix)
"Show new date stamp via text properties."
;; We use text properties to make this undoable
(let ((inhibit-read-only t))
(setq stamp (concat prefix " => " stamp " "))
(setq my-counter 0) ;; <-- my addition
(save-excursion
(goto-char (point-max))
(while (not (bobp))
(when (equal marker (org-get-at-bol 'org-marker))
(org-move-to-column (- (window-width) (length stamp)) t)
(org-agenda-fix-tags-filter-overlays-at (point))
(setq my-counter (1+ my-counter)) ;; <-- also my addition
(if (featurep 'xemacs)
;; Use `duplicable' property to trigger undo recording
(let ((ex (make-extent nil nil))
(gl (make-glyph stamp)))
(set-glyph-face gl 'secondary-selection)
(set-extent-properties
ex (list 'invisible t 'end-glyph gl 'duplicable t))
(insert-extent ex (1- (point)) (point-at-eol)))
(add-text-properties
(1- (point)) (point-at-eol)
(list 'display (org-add-props stamp nil
'face 'secondary-selection))))
(beginning-of-line 1))
(beginning-of-line 0)))))
--8<---------------cut here---------------end--------------->8---
2. I narrow an agenda diary buffer by tag (e.g., "home").
3. I reschedule an item.
4. Emacs hangs.
5. I hit C-g to stop the process.
6. I check the value of my-counter. The longer I let the process run,
the higher the value of my-counter. E.g., letting it run for
approximately ten seconds results in the following:
--8<---------------cut here---------------start------------->8---
my-counter's value is 32193
Documentation:
Not documented as a variable.
--8<---------------cut here---------------end--------------->8---
Without C-g the number will keep increasing indefinitely.
Thanks,
Matt
- [O] [BUG] Infinite loop in org-agenda-show-new-time,
Matt Lundin <=
- Re: [O] [BUG] Infinite loop in org-agenda-show-new-time, Nick Dokos, 2013/08/05
- Re: [O] [BUG] Infinite loop in org-agenda-show-new-time, Matt Lundin, 2013/08/05
- Re: [O] [BUG] Infinite loop in org-agenda-show-new-time, Nick Dokos, 2013/08/05
- Re: [O] [BUG] Infinite loop in org-agenda-show-new-time, Matt Lundin, 2013/08/06
- Re: [O] [BUG] Infinite loop in org-agenda-show-new-time, Nick Dokos, 2013/08/06
- Re: [O] [BUG] Infinite loop in org-agenda-show-new-time, Nick Dokos, 2013/08/06
- Re: [O] [BUG] Infinite loop in org-agenda-show-new-time, Matt Lundin, 2013/08/14
- Re: [O] [BUG] Infinite loop in org-agenda-show-new-time, Nick Dokos, 2013/08/14
- Re: [O] [BUG] Infinite loop in org-agenda-show-new-time, Nick Dokos, 2013/08/10
- Re: [O] [BUG] Infinite loop in org-agenda-show-new-time, Matt Lundin, 2013/08/14