emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Re: Trouble setting variables in custom agenda command


From: Nick Dokos
Subject: Re: [Orgmode] Re: Trouble setting variables in custom agenda command
Date: Wed, 03 Jun 2009 18:59:30 -0400

Nick Dokos <address@hidden> wrote:

> [Bernt, thanks very much for taking the time to do the set-up: it makes
> things so much easier!]
> 
> I've made a little progress debugging this in the case of the
> org-agenda-start-with-log-mode variable: the doc for it says
> 
> ,----
> | org-agenda-start-with-log-mode is a variable defined in `org-agenda.el'.
> | Its value is nil
> | 
> | Documentation:
> | The initial value of log-mode in a newly created agenda window.
> | 
> | You can customize this variable.
> `----
> 
> Note that *initial*: it is only used once, in org-agenda-mode, to
> initialize org-agenda-show-log.  So setting it in the definition of an
> agenda custom command (effectively in a (let ...) form) will not work:
> org-agenda-mode has been called already by the time the custom command
> is executed, and the global value of org-agenda-start-with-log-mode has
> been used to set org-agenda-show-log. Any local binding later on has no
> effect at all.
> 
> So the workaround for this variable is to set org-agenda-show-log in the
> definition of the custom command. The following works as far as the log
> goes:
> 
> (setq org-agenda-custom-commands
>       '(("c" "The Cycle"
>          ((agenda ""
>                   (
>                    (org-agenda-overriding-columns-format "%75ITEM %7Effort{:} 
> %7CLOCKSUM{Total} %15TAGS %SCHEDULED")  ;; no
>                    (org-agenda-view-columns-initially t)   ;; no
>                    (org-agenda-show-log t) ;;yes
>                    (org-agenda-ndays 1)    ;; yes
>                    (org-agenda-skip-function  ;; yes
>                     '(org-agenda-skip-entry-if 'notregexp "\\* TODO")))))
>          nil nil)))
> 
> I presume that a similar problem afflicts the column view variables,
> but I have not gone there yet.
> 

The problem with the column variables is similar but not quite the same:
column view is set in org-finalize, and org-finalize is called *twice*:

The custom commands are executed by org-run-agenda-series, which first
calls org-agenda-list with the (let ...) settings from the definition of
the custom command and which eventually calls org-finalize with the
proper values of the column view variables. But once org-agenda-list
returns to org-run-agenda-series, the latter continues on and calls
org-finalize again with no (let ...) bindings.  The last call wins and
column view loses.

Thanks,
Nick






reply via email to

[Prev in Thread] Current Thread [Next in Thread]