XEmacs 21.5 and dired-gets-current-buffer-wrong bug

Adrian Aichner adrian at xemacs.org
Sat May 27 21:17:03 EDT 2006


Mats Lidell <matsl at xemacs.org> writes:

>>>>>> Aidan wrote:
>
> Aidan> C-x 4 F lazy-lock-pre-idle-fontify-windows RET , then copy the
> Aidan> function into *scratch*, and put in a (message ) just after the
> Aidan> "(while t " that says which frame is being fontified and
> Aidan> whether the current buffer is the initial (current-buffer).
>
> After doing that I went down the callstack and changed
>
> (defun lazy-lock-maybe-fontify-frame (frame)
>   ;; Fontify the given frame if we need to.  We first check the
>   ;; appropriate frame-modified-tick to avoid changing global state.
>   ;(dp "fontify-frame %s" frame)
>   (let ((tick (frame-modified-tick frame))
> 	(buf (current-buffer))  <--
> 	(buf-name (buffer-name))) <--
>     ;(dp tick)
>     (unless (eq tick (gethash frame lazy-lock-frame-modiff-cache))
>       (puthash frame tick lazy-lock-frame-modiff-cache)
>       ;; We have to select the frame due to a bug in walk-windows in XEmacs
>       ;; 21.4.
>       (with-selected-frame frame
> 	(walk-windows #'lazy-lock-fontify-window 'no-minibuf frame))
>       (if (not (eq (current-buffer) buf)) (debug-print (concat "Lazy-lock-maybe:" (frame-name) " Expected buf = " buf-name " but got " (buffer-name)))) <--
>       )))
>
> By inserting the lines marked with '<--' and using debug-print instead
> of message. So now I can see things like:
>
> Lazy-lock-maybe:XEmacs Expected buf = <BUFFER-NAME> but got <NOT-SAME-BUFFER-NAME>

Hi Mats,

why don't you post a sample log if you don't mind.

Including a timestamp would provide useful information too.

I use this to report loading of my init file:

(defun apa-loading-message (where)
  "Print message including filename, user-defined string, and time
  during loading.

The message is of the form:
Loading of FILE WHERE
at TIME-STRING TIME TIME-ZONE"
  (if load-in-progress
      (message "Loading of %s %s\nat %s %+.4d (%s)"
               load-file-name
               where
               (current-time-string)
               (/
                (nth 0
                     (current-time-zone))
                36)
               (nth 1
                    (current-time-zone)))))


>
> Conclusion: After walk-windows the buffer is changed. Now what!?
>
> Yours

-- 
Adrian Aichner
 mailto:adrian at xemacs.org
 http://www.xemacs.org/




More information about the XEmacs-Beta mailing list