From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.devel Subject: Re: extra-interactive functions Date: Fri, 03 Jun 2011 17:27:45 +0200 Message-ID: <4DE8FD71.1000004@gmx.at> References: <87pqngewwp.fsf@spindle.srvr.nix> <87pqnfu51p.fsf@spindle.srvr.nix> <87d3jf3ef8.fsf_-_@lifelogs.com> <87fwobasiy.fsf@lifelogs.com> <87mxi1qlwv.fsf@lifelogs.com> <874o48axbk.fsf@lifelogs.com> <87tyc7i1yw.fsf@lifelogs.com> <4DE8CFA8.5020707@gmx.at> <87vcwneyyl.fsf_-_@lifelogs.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1307114901 27956 80.91.229.12 (3 Jun 2011 15:28:21 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 3 Jun 2011 15:28:21 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jun 03 17:28:17 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 1QSWIL-00030J-4u for ged-emacs-devel@m.gmane.org; Fri, 03 Jun 2011 17:28:17 +0200 Original-Received: from localhost ([::1]:37116 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QSWIJ-0004mw-Sd for ged-emacs-devel@m.gmane.org; Fri, 03 Jun 2011 11:28:16 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:52359) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QSWHw-0004mN-6T for emacs-devel@gnu.org; Fri, 03 Jun 2011 11:27:53 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QSWHu-0000g3-TV for emacs-devel@gnu.org; Fri, 03 Jun 2011 11:27:52 -0400 Original-Received: from mailout-de.gmx.net ([213.165.64.23]:60944) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1QSWHu-0000fk-8I for emacs-devel@gnu.org; Fri, 03 Jun 2011 11:27:50 -0400 Original-Received: (qmail invoked by alias); 03 Jun 2011 15:27:48 -0000 Original-Received: from 62-47-36-250.adsl.highway.telekom.at (EHLO [62.47.36.250]) [62.47.36.250] by mail.gmx.net (mp037) with SMTP; 03 Jun 2011 17:27:48 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX1+ELFFS44qEmE30H3vlYKoVJxv/wKamXrbSXPbP8N JoZF2LIo/zuePS User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) In-Reply-To: <87vcwneyyl.fsf_-_@lifelogs.com> X-Y-GMX-Trusted: 0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 213.165.64.23 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:140131 Archived-At: > mr> `find-file' uses `switch-to-buffer' and `switch-to-buffer' should be > mr> avoided in Elisp code. > > The docstring for `switch-to-buffer' says not to use it to avoid > "messing with the window-buffer correspondences" which is good enough > for me (though I'm still curious what that really means). A user might want to display that file visting buffer in a certain way and has customized options like `special-display-buffer-names' or `special-display-regexps' for that purpose. If you call `switch-to-buffer', the user cannot control the placement of the buffer in the window or frame of her choice. >>> Also, if `find-file' should be avoided in ELisp generally, the docstring >>> should say so, like it does for many other functions. > > mr> Indeed. > > But that's tedious to do by hand. If we tag the function symbol > (e.g. `switch-to-buffer') with some extra-interactive property, we can > tag all the functions that call it as well at compile time. Wouldn't > that be nicer? The docstring can then automatically say "unsafe to call > because it calls `switch-to-buffer'" which is nice and more helpful. There are only very few interactive functions that should be allowed to call `switch-to-buffer'. `find-file' may fit into this category because that's what users traditionally expect it to do (although I plan to have it call a function `pop-to-buffer-same-window' sooner or later). In the distant future there should be no function calling `switch-to-buffer' at all. martin