> Hi Nate, > > I would probably write it like this: (but I'm no emacs-lisp expert > either) > > (defun njn/agenda-toggle-show-closed() > "Toggle whether closed clock thingies are shown in the agenda" > (interactive) > (setq njn/org-agenda-show-closed (not njn/org-agenda-show-closed)) > (setq org-agenda-log-mode-items (if njn/org-agenda-show-closed > (quote (closed clock)) > (quote (clock)))) > (message "%sShowing closed clock entries in agenda" (if > njn/org-agenda-show-closed "" "NOT "))) > > You have a bug in your version - the test and report is backwards. > When njn/org-agenda-show-closed is t you don't show closed items and > when it's nil you do. > > - You don't need to check for equality with 't (and you don't need to > quote t) > - everything non-nil is true > - you can just check that directly in the (if ... ) > > My version basically does this: > 1. toggle the boolean njn/org-agenda-shot-closed > 2. set org-agenda-log-mode-items based on the boolean > 3. report the value
Thanks Bernt -- hehe -- I never really noticed the bug. I'd like to see if there's a way to avoid having a variable at all -- something like this (In functional language / Lisp speak, that is) If org-agenda-log-mode-items contains (closed) then org-agenda-log-mode-items = org-agenda-log-mode-items - (closed) else org-agenda-log-mode-items = org-agenda-log-mode-items + (closed) end if I'll try something on my own if I have 15-20 minutes to work on it tonight -- Thanks for the bugfix and this cool line: (message "%sShowing closed clock entries in agenda" (if njn/org-agenda-show-closed "" "NOT ") --Nate _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode