Subject: Re: bug#1073: 23.0.60; Bad interaction between compilation-scroll-output and dedicated windows

From: Lawrence Mitchell <[email-masked]>
Date: Fri, 03 Oct 2008 14:01:42 +0100

martin rudalics wrote:

>> When this code in `compilation-start' is executed:

>>     (if (buffer-local-value 'compilation-scroll-output outbuf)
>> 	(save-selected-window
>> 	  (select-window outwin)
>> 	  (goto-char (point-max))))

>> outwin is #<window 13 on *compilation*>
>> and after the select-window call (selected-window) is #<window 13
>> on *compilation*>.  However, at this point (current-buffer)
>> returns *test*, rather than *compilation*.

> This is a very, very great nuisance of `select-window'.  Would the
> attached patch DTRT?

The attached patch fixes the observed problem, however, I do not
think that it is entirely correct:

[...]
> !
> !     (with-current-buffer (window-buffer outwin)
> !       (when (local-variable-p 'compilation-scroll-output)

local-variable-p will return t if compilation-scroll-output is
nil, but buffer-local.  I think you mean
(when (buffer-local-value 'compilation-scroll-output (current-buffer))
  ...)
?

[...]

Cheers,
Lawrence