[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orgmode] Help debugging a problem when saving org-agenda files with
From: |
Carsten Dominik |
Subject: |
Re: [Orgmode] Help debugging a problem when saving org-agenda files with C-x s |
Date: |
Sat, 16 May 2009 17:14:18 +0200 |
On May 14, 2009, at 8:41 PM, Tassilo Horn wrote:
Carsten Dominik <address@hidden> writes:
Did you restart Emacs? My idea was that the first time you call
this,
you change the file name of a buffer, and the second time the problem
happens.
First, I only evaled my function anew, but now I tried with a new
emacs
instance and the error is still the same.
But now I can see what happens (but I don't have a solution right
now):
- `C-x s' saves the modified org buffer (I checked that the changes
are saved to disk)
- my function is triggered cause it's in `after-save-hook' buffer
locally
Calling such functions recursively is never a good idea, even if
it is accidental recursion in this case.
You could and should turn off your hook function in after-safe-hook
for the duration of your command. On common way to do this is to
make it dependent on a variable and bind this variable dynamically
while you run the hook function
Like
(defvar do-my-hook t)
...
(defun th-org-update-agenda-file (&optional force)
(interactive)
(when (and do-my-hook
(eq major-mode 'org-mode)
(member buffer-file-name org-agenda-files))
(save-excursion
(save-window-excursion
(let ((do-my-hook nil)
(file "/tmp/org-agenda.txt"))
(org-agenda-list)
(org-write-agenda file))))))
HTH
- Carsten
- somehow the buffer associated with the saved org file uni.org is
erased and org tries to insert an agendo into this buffer (only one
propertized line)
Week-agenda (W20):
and the major mode is now `org-agenda-mode', which results in the
error I posted when org tries to create the agenda page.
Bye,
Tassilo
--
[Emacs] is written in Lisp, which is the only computer language that
is
beautiful. -- Neal Stephenson, _In the Beginning was the Command
Line_