From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/80642 Path: news.gmane.org!not-for-mail From: Katsumi Yamaoka Newsgroups: gmane.emacs.devel,gmane.emacs.gnus.general Subject: Re: /srv/bzr/emacs/trunk r106599: message.el (message-pop-to-buffer): Use pop-to-buffer-same-window for last change. Date: Wed, 07 Dec 2011 08:51:04 +0900 Organization: Emacsen advocacy group Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1323215496 30643 80.91.229.12 (6 Dec 2011 23:51:36 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 6 Dec 2011 23:51:36 +0000 (UTC) Cc: ding@gnus.org, emacs-devel@gnu.org To: Chong Yidong Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Dec 07 00:51:30 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RY4nH-0003Bz-PL for ged-emacs-devel@m.gmane.org; Wed, 07 Dec 2011 00:51:28 +0100 Original-Received: from localhost ([::1]:44721 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RY4nH-0001K0-D8 for ged-emacs-devel@m.gmane.org; Tue, 06 Dec 2011 18:51:27 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:49762) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RY4nE-0001Dw-Jb for emacs-devel@gnu.org; Tue, 06 Dec 2011 18:51:25 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RY4nD-0003yL-Fw for emacs-devel@gnu.org; Tue, 06 Dec 2011 18:51:24 -0500 Original-Received: from orlando.hostforweb.net ([216.246.45.90]:57432) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RY4nD-0003y5-DC; Tue, 06 Dec 2011 18:51:23 -0500 Original-Received: from localhost ([127.0.0.1]:41089) by orlando.hostforweb.net with smtp (Exim 4.69) (envelope-from ) id 1RY4n4-0007mI-SD; Tue, 06 Dec 2011 17:51:15 -0600 X-Face: #kKnN,xUnmKia.'[pp`; Omh}odZK)?7wQSl"4o04=EixTF+V[""w~iNbM9ZL+.b*_CxUmFk B#Fu[*?MZZH@IkN:!"\w%I_zt>[$nm7nQosZ<3eu; B:$Q_:p!',P.c0-_Cy[dz4oIpw0ESA^D*1Lw= L&i*6&( User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.92 (i686-pc-cygwin) Cancel-Lock: sha1:jOOJ5DCCpmz4tKfXVfGZZBfDgh8= X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - orlando.hostforweb.net X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - jpl.org X-Source: X-Source-Args: X-Source-Dir: X-detected-operating-system: by eggs.gnu.org: Linux 2.6? (barebone, rare!) X-Received-From: 216.246.45.90 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:146517 gmane.emacs.gnus.general:80642 Archived-At: Chong Yidong wrote: > message.el (message-pop-to-buffer): Use pop-to-buffer-same-window > for last change. [...] But there's no such function in old Emacsen nor XEmacsen. Cf. http://news.gmane.org/group/gmane.emacs.gnus.general/thread=80641 The main reason using it is to pop up a frame according to 'special-display-regexps' and friends, I guess. So, I tried a function that emulates `pop-to-buffer-same-window': --- message.el~ 2011-12-04 22:06:42.984375000 +0000 +++ message.el 2011-12-06 23:45:56.875000000 +0000 @@ -6388,7 +6388,15 @@ "Message already being composed; erase? ") (message nil)))) (error "Message being composed"))) - (funcall (or switch-function #'pop-to-buffer-same-window) name) + (cond (switch-function + (funcall switch-function name)) + ((fboundp 'pop-to-buffer-same-window) + (pop-to-buffer-same-window name)) + (t + (save-window-excursion + (pop-to-buffer name)) + (unless (get-buffer-window name t) + (set-window-buffer nil name)))) (set-buffer name)) (erase-buffer) (message-mode))) Does this get a passing mark? Tested with Emacs 23.3 and XEmacs 21.4.22.