GNU bug report logs - #8865
24.0.50; `display-buffer' does not respect `pop-up-frames'

Previous Next

Package: emacs;

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

From: martin rudalics <rudalics <at> gmx.at>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 8865 <at> debbugs.gnu.org
Subject: bug#8865: 24.0.50; `display-buffer' does not respect `pop-up-frames'
Date: Wed, 15 Jun 2011 11:24:31 +0200
> (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.