Subject: Re: bug#12081: 24.1; buffer-predicate often not called

From: Dave Abrahams <[email-masked]>
Date: Sun, 29 Jul 2012 11:05:24 -0400

on Sun Jul 29 2012, martin rudalics <rudalics-AT-gmx.at> wrote:

>> 1. Evaluate:
>>
>> (set-frame-parameter
>>    (selected-frame)
>>    'buffer-predicate (lambda (b) (message "buffer predicate: %s" b)))
>
>>
>> 2. `C-x C-f /tmp/xx RET'
>>
>> 3. `C-x C-f /tmp/yy RET'
>>
>> 4. `C-x k RET'
>>
>> 5. `M-: (message "======")'
>>
>> 6. `C-x b *Messages* RET'
>>
>> This shows that the buffer-predicate never called when deciding what
>> buffer to replace yy with.
>
> Not so here: *Messages* contains the three lines fragment below
>
> =====
> "====="
> buffer predicate: *scratch*

Actually that shows exactly what I claimed.  There's a reason I added
step 5.  The buffer predicate is not called until we try to switch to
the *Messages* buffer.  IMO it should be called when yy is killed.

-- 
Dave Abrahams
BoostPro Computing                  Software Development        Training
http://www.boostpro.com             Clang/LLVM/EDG Compilers  C++  Boost