bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#12854: 24.2.50; `display-buffer-alist': conditions are not handled a


From: Michael Heerdegen
Subject: bug#12854: 24.2.50; `display-buffer-alist': conditions are not handled as documented
Date: Sat, 10 Nov 2012 20:18:36 +0100

Hi,

The doc says:

> display-buffer-alist is a variable defined in `window.el'.
> [...]
> 
> Alist of conditional actions for `display-buffer'.
> This is a list of elements (CONDITION . ACTION), where:
> 
>  CONDITION is either a regexp matching buffer names, or a function
>   that takes a buffer and returns a boolean.

But the CONDITION is handled very differently by
`display-buffer-assq-regexp':

(defun display-buffer-assq-regexp (buffer-name alist)
  "Retrieve ALIST entry corresponding to BUFFER-NAME."
  (catch 'match
    (dolist (entry alist)
      (let ((key (car entry)))
        (when (or (and (stringp key)
                       (string-match-p key buffer-name))
                  (and (symbolp key) (functionp key)
                       (funcall key buffer-name alist)))
          (throw 'match (cdr entry)))))))


Obviously, two things are wrong here:

(1) If CONDITION is a function, it currently must be a symbol.  I don't
see why lambda expressions should be forbidden.  The user should not
need to use defun only to be able specify an argument.

(2) If CONDITION is a function, it takes _two_ arguments: a buffer
_name_ (not a buffer) _and_ an alist.  That should be clarified in the
docstring.


Regards,

Michael.
    





In GNU Emacs 24.2.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.4.2)
 of 2012-11-01 on dex, modified by Debian
 (emacs-snapshot package, version 2:20121101-1)
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
System Description:     Debian GNU/Linux testing (wheezy)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]