[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Re-marking agenda entries, with advice on org-agenda-bulk-action
Re: [O] Re-marking agenda entries, with advice on org-agenda-bulk-action in .emacs
Sun, 2 Oct 2011 02:28:51 -0700
My bad, didn't realized I wasn't sending email in plain txt.
On Sun, Oct 2, 2011 at 2:13 AM, netty hacky <address@hidden> wrote:
> The issue of re-marking agenda entries has been raised before:
> I am facing the same problem. I always do more than one bulk actions on the
> same set of agenda entries, so having to re-mark them manually has been a
> pain. The org-agenda-bulk-mark-regexp command sort of helped, but I still
> prefer the Dired behavior of retaining the mark after action is performed,
> (typing one 'U' is much less keystroke than any manual re-marking).
> Anyway, I put the following piece of code in .emacs to give me the Dired
> like behavior. It seems to work for me. Since I'm new to Emacs Lisp and
> this is the 2nd day I'm hacking Org-mode code, could anyone help spot
> anything I did stupid here that may shoot me in the foot? Much appreciated.
> (eval-after-load 'org-agenda
> '(defadvice org-agenda-bulk-action (around bulk-re-mark
> (&optional arg)
> "Re-mark entries marked before action."
> (let ((entries (copy-sequence org-agenda-bulk-marked-entries)))
> (let (pos (cnt 0) (cntskip 0) (msg (current-message)))
> (dolist (e entries)
> (setq pos (text-property-any (point-min) (point-max)
> 'org-hd-marker e))
> (if (not pos)
> (setq cntskip (1+ cntskip))
> (goto-char pos)
> (call-interactively 'org-agenda-bulk-mark)
> (setq cnt (1+ cnt))))
> (message "%s (%d entries re-marked, %d skipped)" msg cnt
> P.S. I would like to express my sincere gratitude to all who helped make
> Org-mode such a beautiful piece of software and a life-changing experience.