Wait for around five seconds. You will see: Foo: .emacs
You need to have font-lock enabled, and there has to be a long fontified buffer lurking around somewhere. My guess is that the font-lock engine is doing stuff while waiting for input, which causes current-buffer to be different when the timer calls the function. It might be due to this code: ;; In the following code, the `sit-for' calls cause a ;; redisplay, so it's required that the ;; buffer-modified flag of a buffer that is displayed ;; has the right value---otherwise the mode line of ;; an unmodified buffer would show a `*'. (let (start (nice (or jit-lock-stealth-nice 0)) (point (point-min))) (while (and (setq start (jit-lock-stealth-chunk-start point)) (sit-for nice)) Pong ought to be fixed to avoid depending on this, but it wouldn't hurt to remove this source of unpredictability. Does this patch do the job? *** jit-lock.el 26 Mar 2004 12:04:00 -0500 1.35 --- jit-lock.el 27 Feb 2005 17:09:45 -0500 *************** *** 415,420 **** --- 415,421 ---- (unless (or executing-kbd-macro (window-minibuffer-p (selected-window))) (let ((buffers (buffer-list)) + (outer-buffer (current-buffer)) minibuffer-auto-raise message-log-max) (with-local-quit *************** *** 449,455 **** (point (point-min))) (while (and (setq start (jit-lock-stealth-chunk-start point)) ! (sit-for nice)) ;; fontify a block. (jit-lock-fontify-now start (+ start jit-lock-chunk-size)) --- 450,459 ---- (point (point-min))) (while (and (setq start (jit-lock-stealth-chunk-start point)) ! ;; In case sit-for runs any timers, ! ;; give them the expected current buffer. ! (with-current-buffer outer-buffer ! (sit-for nice))) ;; fontify a block. (jit-lock-fontify-now start (+ start jit-lock-chunk-size)) *************** *** 461,467 **** ;; Wait a little if load is too high. (when (and jit-lock-stealth-load (> (car (load-average)) jit-lock-stealth-load)) ! (sit-for (or jit-lock-stealth-time 30))))))))))))) --- 465,474 ---- ;; Wait a little if load is too high. (when (and jit-lock-stealth-load (> (car (load-average)) jit-lock-stealth-load)) ! ;; In case sit-for runs any timers, ! ;; give them the expected current buffer. ! (with-current-buffer outer-buffer ! (sit-for (or jit-lock-stealth-time 30)))))))))))))) _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel