emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] serious calendar integration bug


From: Nick Dokos
Subject: Re: [O] serious calendar integration bug
Date: Thu, 28 Apr 2011 08:43:27 -0400

Matt Price <address@hidden> wrote:

> hmm.  There's definitely something funny going on, I presume with emacs 
> rather than org, and (again
> presumably) something to do with my configs or installed packages. The 
> function that's failing is
> org-eval-in-calendar:
> 
>  debug(error (wrong-type-argument window-live-p nil))
>   select-window(nil)
>   org-eval-in-calendar(nil t)
> 
> If we look at the defun:
> 
> (defun org-eval-in-calendar (form &optional keepdate)
>   "Eval FORM in the calendar window and return to current window.
> Also, store the cursor date in variable org-ans2."
>   (let ((sf (selected-frame))
>     (sw (selected-window)))
>     (select-window (get-buffer-window "*Calendar*" t))
>     (eval form)
>     (when (and (not keepdate) (calendar-cursor-to-date))
>       (let* ((date (calendar-cursor-to-date))
>          (time (encode-time 0 0 0 (nth 1 date) (nth 0 date) (nth 2 date))))
>     (setq org-ans2 (format-time-string "%Y-%m-%d" time))))
>     (move-overlay org-date-ovl (1- (point)) (1+ (point)) (current-buffer))
>     (select-window sw)
>     (org-select-frame-set-input-focus sf)))
> 
> -------
> I think emacs is having trouble finding the buffer '*Calendar*' -- even 
> though it clearly exists and
> can be manually selected using C-x b.  I could verify this by just 
> eval-defun'ing this line:
> (select-window (get-buffer-window "*Calendar*" t))
> 
> from the scratch buffer -- this produces the same backtrace.  However, oddly, 
> after experiencing the
> same issue about 6 times in a row, the problem mysteriously disappeared just 
> now, and the procedure
> is working fine.  I have no idea what the issue is there -- I'll report when 
> I find it again.  Maybe
> someone on the list can give me suggestions for debugging if it shows up 
> again?  Thanks,
> 

One thing is to make sure that it is the first select-window which is failing:
there is a second one in there as well. Toggling debug-on-error and getting
a full backtrace (assuming you are loading .el files and not .elc files) would
take care of that.

If there were any concurrency, I'd suspect a race: you try to select a window
that somebody else killed in the meantime. But I don't think there is anything
like that going in emacs - but I don't know for sure.

Nick



reply via email to

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