From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: how about a find-library-other-window command? Date: Fri, 22 Jun 2007 22:29:32 +0300 Organization: JURTA Message-ID: <87tzszkfyr.fsf@jurta.org> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1182540812 23177 80.91.229.12 (22 Jun 2007 19:33:32 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 22 Jun 2007 19:33:32 +0000 (UTC) Cc: rms@gnu.org, emacs-devel@gnu.org To: "Drew Adams" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jun 22 21:33:29 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1I1osp-0005fK-80 for ged-emacs-devel@m.gmane.org; Fri, 22 Jun 2007 21:33:27 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1I1oso-0002YN-Qx for ged-emacs-devel@m.gmane.org; Fri, 22 Jun 2007 15:33:26 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1I1osk-0002Y8-QT for emacs-devel@gnu.org; Fri, 22 Jun 2007 15:33:22 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1I1osk-0002Xu-5f for emacs-devel@gnu.org; Fri, 22 Jun 2007 15:33:22 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1I1osj-0002Xr-Ue for emacs-devel@gnu.org; Fri, 22 Jun 2007 15:33:21 -0400 Original-Received: from relay01.kiev.sovam.com ([62.64.120.200]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1I1osi-0005uW-Ks; Fri, 22 Jun 2007 15:33:21 -0400 Original-Received: from [83.170.232.243] (helo=smtp.svitonline.com) by relay01.kiev.sovam.com with esmtp (Exim 4.67) (envelope-from ) id 1I1ose-000CJK-B0; Fri, 22 Jun 2007 22:33:16 +0300 In-Reply-To: (Drew Adams's message of "Wed\, 20 Jun 2007 09\:49\:32 -0700") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1.50 (gnu/linux) X-Scanner-Signature: 308c5668300cb665e09cc4617523e4c8 X-DrWeb-checked: yes X-SpamTest-Envelope-From: juri@jurta.org X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Not Detected X-SpamTest-Info: Profiles 1169 [June 22 2007] X-SpamTest-Info: helo_type=3 X-SpamTest-Method: none X-SpamTest-Rate: 0 X-SpamTest-Status: Not detected X-SpamTest-Status-Extended: not_detected X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0255], KAS30/Release X-detected-kernel: FreeBSD 4.8-5.1 (or MacOS X 10.2-10.3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:73649 Archived-At: > + (defun find-library-other-window (library) > + "Find the elisp source of LIBRARY in another window." > + (interactive > + (list > + (completing-read "Library name: " > + 'locate-file-completion > + (cons (or find-function-source-path load-path) > + (find-library-suffixes))))) > + (let ((buf (find-file-noselect (find-library-name library)))) > + (condition-case nil (switch-to-buffer-other-window buf) > + (error (pop-to-buffer buf))))) > + > + ;;;###autoload > + (defun find-library-other-frame (library) > + "Find the elisp source of LIBRARY in another frame." > + (interactive > + (list > + (completing-read "Library name: " > + 'locate-file-completion > + (cons (or find-function-source-path load-path) > + (find-library-suffixes))))) > + (let ((buf (find-file-noselect (find-library-name library)))) > + (condition-case nil (switch-to-buffer-other-frame buf) > + (error (pop-to-buffer buf))))) This duplicates the same code in three places. If we are going to keep the practice of using three commands with different suffixes, then we can at least simplify the definition of window/frame commands? These commands could just let-bind a variable indicating the scope of the commands, and call-interactively the basic command allowing `switch-to-buffer' to decide where to display the buffer. -- Juri Linkov http://www.jurta.org/emacs/