[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: buffer-list and desktop
From: |
David Kastrup |
Subject: |
Re: buffer-list and desktop |
Date: |
Wed, 10 Nov 2004 23:48:06 +0100 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/21.3.50 (gnu/linux) |
Jesper Harder <harder@myrealbox.com> writes:
> Kevin Rodgers <ihs_4664@yahoo.com> writes:
>
>> Gotta get used to using with-current-buffer:
>>
>> (defun desktop-list-buffers ()
>> "Return the list of buffers that `desktop-save' would save."
>> (nreverse
>> (apply 'nconc
>> (mapcar (lambda (buffer)
>> (with-current-buffer buffer
>> (if (desktop-save-buffer-p (buffer-file-name)
>> (buffer-name)
>> major-mode)
>> (list buffer))))
>> (buffer-list)))))
>
> Or if you don't mind requiring cl:
>
> (delete-if-not
> (lambda (buf)
> (desktop-save-buffer-p (buffer-file-name buf) (buffer-name buf)
> (buffer-local-value 'major-mode buf)))
> (buffer-list))
Still slow because of one bind/unbind per iteration. If you want to
do it that way, anyway, you could avoid cl by using
(delq nil
(mapcar
(lambda (buf)
(and (desktop-save-buffer-p ...)
buf))
(buffer-list)))
with hardly more effort.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum