I've started seeing an issues as of a couple of days ago, after upgrading to org 9.4. When I mark a task with a recurring deadline done from the agenda view, sometimes it doesn't recur, but instead marks the task as done. I haven't yet been able to isolate why -- just now I marked a task as done from the agenda, it didn't recur; I went to the org file, undid from there, then tried marking it complete from the agenda again and that time it worked. It seems to always work properly from the org buffer itself, so I assume it's something happening in the agenda, but I'm not sure where to look. I've tried debugging `org-agenda-todo`, but I can't see anything in askance there. Any advice as to what I should be looking for? James Cash ------------------------------------------------------------------------ Emacs : GNU Emacs 28.0.50 (build 5, x86_64-pc-linux-gnu, GTK+ Version 3.24.20, cairo version 1.16.0) of 2020-08-14 Package: Org mode version 9.4 (release_9.4-3-ge6021b @ /home/james/.config/emacs/straight/build/org-plus-contrib/) current state: ============== (setq org-duration-format 'h:mm org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-link-shell-confirm-function 'yes-or-no-p org-pdftools-get-desc-function 'org-pdftools-get-desc-default org-metadown-hook '(org-babel-pop-to-session-maybe) org-clock-out-hook '(org-clock-remove-empty-clock-drawer) org-pdftools-markup-pointer-function 'pdf-annot-add-underline-markup-annotation org-refile-targets '((nil :maxlevel . 9) (org-agenda-files :maxlevel . 9)) org-html-format-inlinetask-function 'org-html-format-inlinetask-default-function org-odt-format-headline-function 'org-odt-format-headline-default-function org-notmuch-open-function 'org-notmuch-follow-link org-agenda-files "~/org/dir" org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default org-modules '(ol-info ol-eshell org-notify ol-notmuch) org-mode-hook '(evil-org-mode (closure (t) nil (let ((default-pred electric-pair-inhibit-predicate)) (set (make-local-variable 'electric-pair-inhibit-predicate) #'(lambda (c) (if (char-equal c 60) t default-pred)))) (visual-line-mode 1)) (closure (t) nil (set (make-local-variable 'company-dabbrev-downcase) nil)) cogent/fix-org-yasnippet-hook #[0 "\301\211.\207" [imenu-create-index-function org-imenu-get-tree] 2] #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-show-all append local] 5] #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes org-eldoc-load) org-odt-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] org-outline-path-complete-in-steps nil org-archive-hook '(org-attach-archive-delete-maybe) org-agenda-restore-windows-after-quit t org-confirm-elisp-link-function 'yes-or-no-p org-mime-src-mode-hook '(org-mime-src-mode-configure-edit-buffer) org-agenda-before-write-hook '(org-agenda-add-entry-text) org-metaup-hook '(org-babel-load-in-session-maybe) org-adapt-indentation 'headline-data org-latex-format-drawer-function #[514 "\207" [] 3 "\n\n(fn _ CONTENTS)"] org-mime-html-hook '((closure (t) nil (org-mime-change-element-style "blockquote" "border-left: 2px solid gray; padding-left: 4px;")) (closure (t) nil (org-mime-change-element-style "pre" (format "color: %s; background-color: %s; padding: 0.5em;" (face-attribute 'default :foreground) (face-attribute 'default :background)) ) ) ) org-notmuch-search-open-function 'org-notmuch-search-follow-link org-babel-pre-tangle-hook '(save-buffer) org-file-apps '((auto-mode . emacs) (directory . emacs) ("\\.mm\\'" . default) ("\\.x?html?\\'" . default) ("\\.pdf\\'" . emacs)) org-tab-first-hook '(yas/org-very-safe-expand org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-hide-leading-stars t org-babel-load-languages '((sql . t) (ruby . t) (js . t)) org-load-hook '(org-pdftools-setup-link) org-hide-emphasis-markers t org-agenda-ignore-properties '(effort appt category) org-ascii-format-drawer-function #[771 ".\207" [] 4 "\n\n(fn NAME CONTENTS WIDTH)"] org-use-fast-todo-selection t org-agenda-loop-over-headlines-in-active-region nil org-src-lang-modes '(("arduino" . arduino) ("redis" . redis) ("php" . php) ("C" . c) ("C++" . c++) ("asymptote" . asy) ("bash" . sh) ("beamer" . latex) ("calc" . fundamental) ("cpp" . c++) ("ditaa" . artist) ("dot" . fundamental) ("elisp" . emacs-lisp) ("ocaml" . tuareg) ("screen" . shell-script) ("shell" . sh) ("sqlite" . sql)) org-catch-invisible-edits 'show-and-error org-occur-hook '(org-first-headline-recenter) org-agenda-mode-hook '((closure (t) nil (display-line-numbers-mode 0))) org-export-before-processing-hook '(cogent/org-inline-css-hook) org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-todo-keywords '((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)") (sequence "WAITING(w@/!)" "HOLD(h@/!)" "|" "CANCELLED(c@/!)" "PHONE" "MEETING")) org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate) org-odt-format-inlinetask-function 'org-odt-format-inlinetask-default-function org-agenda-use-tag-inheritance nil org-babel-tangle-lang-exts '(("prolog" . "pl") ("ruby" . "rb") ("emacs-lisp" . "el") ("elisp" . "el")) org-return-follows-link t org-refile-allow-creating-parent-nodes 'confirm org-refile-use-outline-path t org-export-before-parsing-hook '(org-attach-expand-links) org-font-lock-set-keywords-hook '(org-drill-add-cloze-fontification) org-confirm-shell-link-function 'yes-or-no-p org-link-parameters '(("attachment" :follow org-attach-follow :complete org-attach-complete-link) ("id" :follow org-id-open) ("notmuch-tree" :follow org-notmuch-tree-open :store org-notmuch-tree-store-link) ("notmuch-search" :follow org-notmuch-search-open :store org-notmuch-search-store-link) ("notmuch" :follow org-notmuch-open :store org-notmuch-store-link) ("eshell" :follow org-eshell-open :store org-eshell-store-link) ("info" :follow org-info-open :export org-info-export :store org-info-store-link) ("elfeed" :follow elfeed-link-open :store elfeed-link-store-link) ("pdf" :follow org-pdftools-open :complete org-pdftools-complete-link :store org-pdftools-store-link :export org-pdftools-export) ("file+sys") ("file+emacs") ("shell" :follow org-link--open-shell) ("news" :follow #[514 "\301\300\302.Q.\"\207" ["news" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("mailto" :follow #[514 "\301\300\302.Q.\"\207" ["mailto" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("https" :follow #[514 "\301\300\302.Q.\"\207" ["https" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("http" :follow #[514 "\301\300\302.Q.\"\207" ["http" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("ftp" :follow #[514 "\301\300\302.Q.\"\207" ["ftp" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("help" :follow org-link--open-help) ("file" :complete org-link-complete-file) ("elisp" :follow org-link--open-elisp) ("doi" :follow org-link--open-doi)) org-src-block-faces '(("emacs-lisp" modus-theme-nuanced-magenta) ("elisp" modus-theme-nuanced-magenta) ("clojure" modus-theme-nuanced-magenta) ("clojurescript" modus-theme-nuanced-magenta) ("c" modus-theme-nuanced-blue) ("c++" modus-theme-nuanced-blue) ("sh" modus-theme-nuanced-green) ("shell" modus-theme-nuanced-green) ("html" modus-theme-nuanced-yellow) ("xml" modus-theme-nuanced-yellow) ("css" modus-theme-nuanced-red) ("scss" modus-theme-nuanced-red) ("python" modus-theme-nuanced-green) ("ipython" modus-theme-nuanced-magenta) ("r" modus-theme-nuanced-cyan) ("yaml" modus-theme-nuanced-cyan) ("conf" modus-theme-nuanced-cyan) ("docker" modus-theme-nuanced-cyan) ("json" modus-theme-nuanced-cyan)) org-agenda-skip-scheduled-if-done t org-latex-format-headline-function 'org-latex-format-headline-default-function org-link-elisp-confirm-function 'yes-or-no-p org-latex-format-inlinetask-function 'org-latex-format-inlinetask-default-function org-html-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] org-agenda-compact-blocks t org-latex-classes '(("beamer" "\\documentclass[presentation]{beamer}" ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) ("article" "\\documentclass[11pt]{article}" ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}") ("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) ("report" "\\documentclass[11pt]{report}" ("\\part{%s}" . "\\part*{%s}") ("\\chapter{%s}" . "\\chapter*{%s}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) ("book" "\\documentclass[11pt]{book}" ("\\part{%s}" . "\\part*{%s}") ("\\chapter{%s}" . "\\chapter*{%s}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) ) org-html-format-headline-function 'org-html-format-headline-default-function org-agenda-dim-blocked-tasks nil org-confirm-babel-evaluate nil org-agenda-custom-commands '(("n" "Agenda and all TODOs" ((agenda "" nil) (alltodo "" nil)) nil) ("N" "Notebook search" tags "" ((org-agenda-files '("~/org/notebook"))))) org-link-from-user-regexp "\\<james@gonk\\>\\|\\<James\\>" org-agenda-inhibit-startup t org-default-notes-file "~/org/notes.org" org-agenda-show-future-repeats nil )
> It seems to always work properly from the org buffer itself, so I assume > it's something happening in the agenda, but I'm not sure where to look. > I've tried debugging `org-agenda-todo`, but I can't see anything in > askance there. Any advice as to what I should be looking for? I had similar issue. As I recall, the problem was with some custom function in org-trigger-hook that threw an error because it did not expect to be ran with point in agenda buffer. Do you have any customisation related to todo triggers? Best, Ihor James N V Cash <james.cash@occasionallycogent.com> writes: > I've started seeing an issues as of a couple of days ago, after upgrading to org 9.4. > > When I mark a task with a recurring deadline done from the agenda view, > sometimes it doesn't recur, but instead marks the task as done. > > I haven't yet been able to isolate why -- just now I marked a task as > done from the agenda, it didn't recur; I went to the org file, undid > from there, then tried marking it complete from the agenda again and > that time it worked. > > It seems to always work properly from the org buffer itself, so I assume > it's something happening in the agenda, but I'm not sure where to look. > I've tried debugging `org-agenda-todo`, but I can't see anything in > askance there. Any advice as to what I should be looking for? > > James Cash > > ------------------------------------------------------------------------ > > > > Emacs : GNU Emacs 28.0.50 (build 5, x86_64-pc-linux-gnu, GTK+ Version 3.24.20, cairo version 1.16.0) > of 2020-08-14 > Package: Org mode version 9.4 (release_9.4-3-ge6021b @ /home/james/.config/emacs/straight/build/org-plus-contrib/) > > current state: > ============== > (setq > org-duration-format 'h:mm > org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) > org-link-shell-confirm-function 'yes-or-no-p > org-pdftools-get-desc-function 'org-pdftools-get-desc-default > org-metadown-hook '(org-babel-pop-to-session-maybe) > org-clock-out-hook '(org-clock-remove-empty-clock-drawer) > org-pdftools-markup-pointer-function 'pdf-annot-add-underline-markup-annotation > org-refile-targets '((nil :maxlevel . 9) (org-agenda-files :maxlevel . 9)) > org-html-format-inlinetask-function 'org-html-format-inlinetask-default-function > org-odt-format-headline-function 'org-odt-format-headline-default-function > org-notmuch-open-function 'org-notmuch-follow-link > org-agenda-files "~/org/dir" > org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default > org-modules '(ol-info ol-eshell org-notify ol-notmuch) > org-mode-hook '(evil-org-mode > (closure (t) nil > (let ((default-pred electric-pair-inhibit-predicate)) > (set (make-local-variable 'electric-pair-inhibit-predicate) #'(lambda (c) (if (char-equal c 60) t default-pred)))) > (visual-line-mode 1)) > (closure (t) nil (set (make-local-variable 'company-dabbrev-downcase) nil)) cogent/fix-org-yasnippet-hook > #[0 "\301\211.\207" [imenu-create-index-function org-imenu-get-tree] 2] > #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-show-all append local] 5] > #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-babel-show-result-all append local] 5] > org-babel-result-hide-spec org-babel-hide-all-hashes org-eldoc-load) > org-odt-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] > org-outline-path-complete-in-steps nil > org-archive-hook '(org-attach-archive-delete-maybe) > org-agenda-restore-windows-after-quit t > org-confirm-elisp-link-function 'yes-or-no-p > org-mime-src-mode-hook '(org-mime-src-mode-configure-edit-buffer) > org-agenda-before-write-hook '(org-agenda-add-entry-text) > org-metaup-hook '(org-babel-load-in-session-maybe) > org-adapt-indentation 'headline-data > org-latex-format-drawer-function #[514 "\207" [] 3 "\n\n(fn _ CONTENTS)"] > org-mime-html-hook '((closure (t) nil (org-mime-change-element-style "blockquote" "border-left: 2px solid gray; padding-left: 4px;")) > (closure (t) nil > (org-mime-change-element-style "pre" > (format "color: %s; background-color: %s; padding: 0.5em;" (face-attribute 'default :foreground) > (face-attribute 'default :background)) > ) > ) > ) > org-notmuch-search-open-function 'org-notmuch-search-follow-link > org-babel-pre-tangle-hook '(save-buffer) > org-file-apps '((auto-mode . emacs) (directory . emacs) ("\\.mm\\'" . default) ("\\.x?html?\\'" . default) ("\\.pdf\\'" . emacs)) > org-tab-first-hook '(yas/org-very-safe-expand org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) > org-hide-leading-stars t > org-babel-load-languages '((sql . t) (ruby . t) (js . t)) > org-load-hook '(org-pdftools-setup-link) > org-hide-emphasis-markers t > org-agenda-ignore-properties '(effort appt category) > org-ascii-format-drawer-function #[771 ".\207" [] 4 "\n\n(fn NAME CONTENTS WIDTH)"] > org-use-fast-todo-selection t > org-agenda-loop-over-headlines-in-active-region nil > org-src-lang-modes '(("arduino" . arduino) ("redis" . redis) ("php" . php) ("C" . c) ("C++" . c++) ("asymptote" . asy) ("bash" . sh) > ("beamer" . latex) ("calc" . fundamental) ("cpp" . c++) ("ditaa" . artist) ("dot" . fundamental) ("elisp" . emacs-lisp) > ("ocaml" . tuareg) ("screen" . shell-script) ("shell" . sh) ("sqlite" . sql)) > org-catch-invisible-edits 'show-and-error > org-occur-hook '(org-first-headline-recenter) > org-agenda-mode-hook '((closure (t) nil (display-line-numbers-mode 0))) > org-export-before-processing-hook '(cogent/org-inline-css-hook) > org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines org-optimize-window-after-visibility-change) > org-todo-keywords '((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)") (sequence "WAITING(w@/!)" "HOLD(h@/!)" "|" "CANCELLED(c@/!)" "PHONE" "MEETING")) > org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate) > org-odt-format-inlinetask-function 'org-odt-format-inlinetask-default-function > org-agenda-use-tag-inheritance nil > org-babel-tangle-lang-exts '(("prolog" . "pl") ("ruby" . "rb") ("emacs-lisp" . "el") ("elisp" . "el")) > org-return-follows-link t > org-refile-allow-creating-parent-nodes 'confirm > org-refile-use-outline-path t > org-export-before-parsing-hook '(org-attach-expand-links) > org-font-lock-set-keywords-hook '(org-drill-add-cloze-fontification) > org-confirm-shell-link-function 'yes-or-no-p > org-link-parameters '(("attachment" :follow org-attach-follow :complete org-attach-complete-link) ("id" :follow org-id-open) > ("notmuch-tree" :follow org-notmuch-tree-open :store org-notmuch-tree-store-link) > ("notmuch-search" :follow org-notmuch-search-open :store org-notmuch-search-store-link) > ("notmuch" :follow org-notmuch-open :store org-notmuch-store-link) > ("eshell" :follow org-eshell-open :store org-eshell-store-link) > ("info" :follow org-info-open :export org-info-export :store org-info-store-link) > ("elfeed" :follow elfeed-link-open :store elfeed-link-store-link) > ("pdf" :follow org-pdftools-open :complete org-pdftools-complete-link :store org-pdftools-store-link :export > org-pdftools-export) > ("file+sys") ("file+emacs") ("shell" :follow org-link--open-shell) > ("news" :follow #[514 "\301\300\302.Q.\"\207" ["news" browse-url ":"] 6 "\n\n(fn URL ARG)"]) > ("mailto" :follow #[514 "\301\300\302.Q.\"\207" ["mailto" browse-url ":"] 6 "\n\n(fn URL ARG)"]) > ("https" :follow #[514 "\301\300\302.Q.\"\207" ["https" browse-url ":"] 6 "\n\n(fn URL ARG)"]) > ("http" :follow #[514 "\301\300\302.Q.\"\207" ["http" browse-url ":"] 6 "\n\n(fn URL ARG)"]) > ("ftp" :follow #[514 "\301\300\302.Q.\"\207" ["ftp" browse-url ":"] 6 "\n\n(fn URL ARG)"]) > ("help" :follow org-link--open-help) ("file" :complete org-link-complete-file) ("elisp" :follow org-link--open-elisp) > ("doi" :follow org-link--open-doi)) > org-src-block-faces '(("emacs-lisp" modus-theme-nuanced-magenta) ("elisp" modus-theme-nuanced-magenta) ("clojure" modus-theme-nuanced-magenta) > ("clojurescript" modus-theme-nuanced-magenta) ("c" modus-theme-nuanced-blue) ("c++" modus-theme-nuanced-blue) > ("sh" modus-theme-nuanced-green) ("shell" modus-theme-nuanced-green) ("html" modus-theme-nuanced-yellow) > ("xml" modus-theme-nuanced-yellow) ("css" modus-theme-nuanced-red) ("scss" modus-theme-nuanced-red) > ("python" modus-theme-nuanced-green) ("ipython" modus-theme-nuanced-magenta) ("r" modus-theme-nuanced-cyan) > ("yaml" modus-theme-nuanced-cyan) ("conf" modus-theme-nuanced-cyan) ("docker" modus-theme-nuanced-cyan) > ("json" modus-theme-nuanced-cyan)) > org-agenda-skip-scheduled-if-done t > org-latex-format-headline-function 'org-latex-format-headline-default-function > org-link-elisp-confirm-function 'yes-or-no-p > org-latex-format-inlinetask-function 'org-latex-format-inlinetask-default-function > org-html-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] > org-agenda-compact-blocks t > org-latex-classes '(("beamer" "\\documentclass[presentation]{beamer}" ("\\section{%s}" . "\\section*{%s}") > ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) > ("article" "\\documentclass[11pt]{article}" ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") > ("\\subsubsection{%s}" . "\\subsubsection*{%s}") ("\\paragraph{%s}" . "\\paragraph*{%s}") > ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) > ("report" "\\documentclass[11pt]{report}" ("\\part{%s}" . "\\part*{%s}") ("\\chapter{%s}" . "\\chapter*{%s}") > ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") > ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) > ("book" "\\documentclass[11pt]{book}" ("\\part{%s}" . "\\part*{%s}") ("\\chapter{%s}" . "\\chapter*{%s}") > ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") > ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) > ) > org-html-format-headline-function 'org-html-format-headline-default-function > org-agenda-dim-blocked-tasks nil > org-confirm-babel-evaluate nil > org-agenda-custom-commands '(("n" "Agenda and all TODOs" ((agenda "" nil) (alltodo "" nil)) nil) > ("N" "Notebook search" tags "" ((org-agenda-files '("~/org/notebook"))))) > org-link-from-user-regexp "\\<james@gonk\\>\\|\\<James\\>" > org-agenda-inhibit-startup t > org-default-notes-file "~/org/notes.org" > org-agenda-show-future-repeats nil > )
Ihor Radchenko <yantar92@gmail.com> writes:
>> It seems to always work properly from the org buffer itself, so I assume
>> it's something happening in the agenda, but I'm not sure where to look.
>> I've tried debugging `org-agenda-todo`, but I can't see anything in
>> askance there. Any advice as to what I should be looking for?
>
> I had similar issue. As I recall, the problem was with some custom
> function in org-trigger-hook that threw an error because it did not
> expect to be ran with point in agenda buffer. Do you have any
> customisation related to todo triggers?
Hm, it looks like org-trigger-hook and the various other
org-trigger-*-hook variables are nil in org-agenda buffers, but that
seems like a good place to look. I'll try to see if I have any other org
hooks that might be interferring with this.
>>> It seems to always work properly from the org buffer itself, so I assume
>>> it's something happening in the agenda, but I'm not sure where to look.
>>> I've tried debugging `org-agenda-todo`, but I can't see anything in
>>> askance there. Any advice as to what I should be looking for?
Trying to do more work to track this down and I'm perhaps more confused than I was before.
I can consistently make this happen by opening my todo.org file which
contains two recurring tasks, call them A and B.
I start by putting the cursor on task A, then running org-agenda and
using that to complete task B. This then results in task A showing twice
in the agenda list and refreshing the agenda/checking the file shows
task A completed & rescheduled to the next day and task B marked DONE
and not repeated.
Trying to track this down, I see in `org-todo`, the point moves from
where org-agenda-todo positioned it in task B to inside where I had the
cursor originally in the todo.org buffer, in task A. Strangely, I see
the point changing when the `next` variable is printed out via
`message` (I can also see the point changing after logging out org-state).
If I print out either of those variables with the "%S" format string
instead of "%s", the point doesn't move.
This doesn't happen with emacs -Q, so presumably there's something in my
config that's making this happen, but I have no idea what I should be
looking for. Any suggestions?
James
> This doesn't happen with emacs -Q, so presumably there's something in my > config that's making this happen, but I have no idea what I should be > looking for. Any suggestions? I sometimes observe similar behaviour if I delete/refile task in file. Then, if agenda view is not refreshed, tasks nearby might be messed up. Presumably, it happens because markers saved in the agenda view (see 'org-hd-marker or 'org-marker text properties in agenda) are outdated and point to wrong place. So, you may need to check your config for any code affecting markers or changing text in buffer. Best, Ihor James N. V. Cash <james.cash@occasionallycogent.com> writes: >>>> It seems to always work properly from the org buffer itself, so I assume >>>> it's something happening in the agenda, but I'm not sure where to look. >>>> I've tried debugging `org-agenda-todo`, but I can't see anything in >>>> askance there. Any advice as to what I should be looking for? > > Trying to do more work to track this down and I'm perhaps more confused than I was before. > > I can consistently make this happen by opening my todo.org file which > contains two recurring tasks, call them A and B. > > I start by putting the cursor on task A, then running org-agenda and > using that to complete task B. This then results in task A showing twice > in the agenda list and refreshing the agenda/checking the file shows > task A completed & rescheduled to the next day and task B marked DONE > and not repeated. > > Trying to track this down, I see in `org-todo`, the point moves from > where org-agenda-todo positioned it in task B to inside where I had the > cursor originally in the todo.org buffer, in task A. Strangely, I see > the point changing when the `next` variable is printed out via > `message` (I can also see the point changing after logging out org-state). > > If I print out either of those variables with the "%S" format string > instead of "%s", the point doesn't move. > > This doesn't happen with emacs -Q, so presumably there's something in my > config that's making this happen, but I have no idea what I should be > looking for. Any suggestions? > > James