GNU bug report logs -
#8865
24.0.50; `display-buffer' does not respect `pop-up-frames'
Previous Next
Reported by: "Drew Adams" <drew.adams <at> oracle.com>
Date: Tue, 14 Jun 2011 18:15:02 UTC
Severity: normal
Found in version 24.0.50
Done: martin rudalics <rudalics <at> gmx.at>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> (Non-nil is not the same as non-t, BTW, for both `pop-up-frames' and the
> NOT-THIS-WINDOW arg of `display-buffer'. If you were speaking about that arg,
> then any non-nil value has always had the same behavior as a value of
> t.
This is no more the case. That argument is called SPECIFIERS now and
certain values (like lists and certain symbols) will be reserved for a
different behavior. If you don't like such a change, you will have to
talk to someone else; I already mentioned Juri and Stefan as potential
addressees.
Meanwhile I can offer the below substitute for
`display-buffer-normalize-specifiers-1' which should address most of
your concerns in this area.
martin
(defun display-buffer-normalize-specifiers-1 (specifiers)
"Subroutine of `display-buffer-normalize-specifiers'.
SPECIFIERS is the SPECIFIERS argument of `display-buffer'."
(let (normalized entry)
(cond
((not specifiers)
nil)
((listp specifiers)
;; If SPECIFIERS is a list, we assume it is a list of specifiers.
(dolist (specifier specifiers)
(cond
((consp specifier)
(setq normalized (cons specifier normalized)))
((symbolp specifier)
;; Might be a macro specifier, try to expand it (the cdr is a
;; list and we have to reverse it later, so do it one at a
;; time).
(let ((entry (assq specifier display-buffer-macro-specifiers)))
(dolist (item (cdr entry))
(setq normalized (cons item normalized)))))))
;; Reverse list.
(nreverse normalized))
((and (not (eq specifiers 'other-window))
(setq entry (assq specifiers display-buffer-macro-specifiers)))
;; A macro specifier.
(cdr entry))
((memq pop-up-frames '(nil unset))
;; Pop up a new window.
(cdr (assq 'other-window display-buffer-macro-specifiers)))
(t
;; Pop up a new frame.
(cdr (assq 'other-frame display-buffer-macro-specifiers))))))
This bug report was last modified 14 years and 34 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.