From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Pascal Bourguignon Newsgroups: gmane.emacs.help Subject: Re: How to halt a loading file Date: Sat, 29 Mar 2008 17:25:52 +0100 Organization: Informatimago Message-ID: <878x01pkdr.fsf@thalassa.informatimago.com> References: <05162b4a-45e5-445c-90f3-71e05872e254@i12g2000prf.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1206808851 10560 80.91.229.12 (29 Mar 2008 16:40:51 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 29 Mar 2008 16:40:51 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Mar 29 17:41:23 2008 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Jfe7J-00009s-9N for geh-help-gnu-emacs@m.gmane.org; Sat, 29 Mar 2008 17:41:17 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Jfe6h-0005QG-UM for geh-help-gnu-emacs@m.gmane.org; Sat, 29 Mar 2008 12:40:39 -0400 Original-Path: shelby.stanford.edu!headwall.stanford.edu!newshub.sdsu.edu!porbandar.httrack.net!news.httrack.net!feeder.erje.net!news.side3.eu!nntpfeed.proxad.net!proxad.net!feeder2-2.proxad.net!cleanfeed4-b.proxad.net!nnrp11-1.free.fr!not-for-mail Original-Newsgroups: gnu.emacs.help Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en X-Disabled: X-No-Archive: no User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.1.50 (gnu/linux) Cancel-Lock: sha1:MGUwZDYzZDdmMjhjOGNlNWIzMmExM2I1ZjQ1YTRjMzhkYzU5ZWNlZQ== Original-Lines: 56 Original-NNTP-Posting-Date: 29 Mar 2008 17:25:52 MET Original-NNTP-Posting-Host: 88.180.86.168 Original-X-Trace: 1206807952 news-1.free.fr 6148 88.180.86.168:43209 Original-X-Complaints-To: abuse@proxad.net Original-Xref: shelby.stanford.edu gnu.emacs.help:157430 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:52799 Archived-At: Kevin Rodgers writes: > orium wrote: >> Hi, everybody. >> I am not a lisp coder, so this may have a obvious answer. >> I need to halt .emacs in its execution: >> (defun compile-emacs-config-file () >> "Compiles ~/.emacs" >> (if (file-newer-than-file-p "~/.emacs" "~/.emacs.elc") >> (progn >> (setq byte-compile-warnings nil) >> (byte-compile-file "~/.emacs" t) ; Compile and load >> (setq byte-compile-warnings t) >> ;HALT - I need the loading of this file to halt and don't execute >> anything else of this file >> ))) >> (compile-emacs-config-file) > > (error "~/.emacs compiled, load terminated") Indeed, an error is a good way to break out of loading the current file, but this is probably not what the OP wants. I would suggest: (defun compile-emacs-config-file () "Compiles ~/.emacs Returns: true if we did the compilation." (if (file-newer-than-file-p "~/.emacs" "~/.emacs.elc") (let ((byte-compile-warnings nil)) (unwind-protect (progn (byte-compile-file "~/.emacs" t) t) nil)) nil)) (if (compile-emacs-config-file) (load "~/.emacs") ;; actually loads ~/.emacs.elc (progn ;; The rest of this file goes here. )) You'll have to put all the contents of ~/.emacs in the else branch of that if. -- __Pascal Bourguignon__ http://www.informatimago.com/ COMPONENT EQUIVALENCY NOTICE: The subatomic particles (electrons, protons, etc.) comprising this product are exactly the same in every measurable respect as those used in the products of other manufacturers, and no claim to the contrary may legitimately be expressed or implied.