From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Leo Liu Newsgroups: gmane.emacs.bugs Subject: bug#18341: 24.4.50; [patch] control where hook is added minibuffer-with-setup-hook Date: Fri, 29 Aug 2014 09:14:16 +0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1409274932 8191 80.91.229.3 (29 Aug 2014 01:15:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 29 Aug 2014 01:15:32 +0000 (UTC) Cc: 18341@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Aug 29 03:15:24 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XNAmg-0008ST-FJ for geb-bug-gnu-emacs@m.gmane.org; Fri, 29 Aug 2014 03:15:22 +0200 Original-Received: from localhost ([::1]:39666 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNAmf-0008Fb-SD for geb-bug-gnu-emacs@m.gmane.org; Thu, 28 Aug 2014 21:15:21 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38539) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNAmV-0008Eb-S2 for bug-gnu-emacs@gnu.org; Thu, 28 Aug 2014 21:15:19 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XNAmO-0002bJ-AU for bug-gnu-emacs@gnu.org; Thu, 28 Aug 2014 21:15:11 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:33149) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNAmO-0002ZQ-4A for bug-gnu-emacs@gnu.org; Thu, 28 Aug 2014 21:15:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XNAmN-0006dj-60 for bug-gnu-emacs@gnu.org; Thu, 28 Aug 2014 21:15:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Leo Liu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 29 Aug 2014 01:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18341 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 18341-submit@debbugs.gnu.org id=B18341.140927486925458 (code B ref 18341); Fri, 29 Aug 2014 01:15:02 +0000 Original-Received: (at 18341) by debbugs.gnu.org; 29 Aug 2014 01:14:29 +0000 Original-Received: from localhost ([127.0.0.1]:52946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XNAlo-0006cY-RI for submit@debbugs.gnu.org; Thu, 28 Aug 2014 21:14:29 -0400 Original-Received: from mail-pa0-f41.google.com ([209.85.220.41]:41406) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XNAlm-0006cI-Sv for 18341@debbugs.gnu.org; Thu, 28 Aug 2014 21:14:27 -0400 Original-Received: by mail-pa0-f41.google.com with SMTP id lj1so4781847pab.28 for <18341@debbugs.gnu.org>; Thu, 28 Aug 2014 18:14:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:face:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=pygGJv2ZR+tuA9/BRnuJe397iWpX3YWMvanypIC6v8Q=; b=AbHCfP3HeJ/L5eMxiDiZEmV4384JQXkC+orSKBZyoIscvinXxvtPU+j6Sk2k8AWTMB ZveVWQnf4yz++sGFdjSvRz4MFg7P7+HlCJkWmxevUQFoHoUTFaUYgRigupAjblAeaNCb vFcmdr6+yQJ4g1nuu2BlWF1/I7BD10u0decujK+DrgJ54n8uteQVvUBUs1miK6lTjLKp CL91Gtjs+mD9B+qGRcT7sGBtHP5nxJVF6hGzWl37sXWvd1PZ7fViJ2Tm8uHA8mSNH8sU 7WGv9P7PJ3iOx/xF2At+cp7Z7coaU8lBolkXLeTeBvMs/bt6nWS7Z42pPXj0yOZcKWa8 Fn2Q== X-Received: by 10.70.91.73 with SMTP id cc9mr11361318pdb.138.1409274860613; Thu, 28 Aug 2014 18:14:20 -0700 (PDT) Original-Received: from fortuna ([221.222.148.29]) by mx.google.com with ESMTPSA id o2sm7539803pde.30.2014.08.28.18.14.18 for (version=TLSv1.1 cipher=RC4-SHA bits=128/128); Thu, 28 Aug 2014 18:14:19 -0700 (PDT) Face: iVBORw0KGgoAAAANSUhEUgAAACgAAAAoBAMAAAB+0KVeAAAAGFBMVEUKDAg1NjRWV1V9fnyg op/DxcLk5uP8/voi63ReAAAACXBIWXMAAAWJAAAFiQFtaJ36AAAAB3RJTUUH1goZAgAz00bgXgAA AeVJREFUKM9lk0Fz2jAQhQXJD3CCO70CmcC1YMtcWyTZ14Bl69xats4N9r6/3zWQBlodNKNPu/s0 b1cCQFuZGpfVVh3vAvBJolIXRkapSuoRUtIdFyo1Y5xSdlAj7OtvD1XnXxmWRi+eWgcxyCed1lVV B1CrKyujMoi+eLA5kU1SsjoHlW+nQjTtFxk4MXgrOxvIqzoTZR8XgPaLl419zgsMaSGFPiUOZCIh thsx5Xy9NsK8Kwf/JoQgMxcVJ301HKkcSWaT0O7FY056J4U9xcYfnmVXG4801lW6lqwu2nKFZoHC HuzvaTVndZ+LaRQgZdthXw1cpynEkLEwyFHXk/aIxNQ6QeooJuzPMB+wn+D7JJNsiCcVA13/A3h/ xE9J+WidpAwoYNmRFwyvSRhNVtsdaAewzZZP5uw82QL9+tyNfocyP0McAzICUr5Mk9RdIjWasUNx aIIt6NK4ZtXIMdfMQt3nuMAyWbLI4DqZ4xPq/ag8jPond4XU/cLuOgw6XCFX/YCUfcDAMMH58fD4 G9kDchwfqVefkBwup2uZM+Q4WhJt5jN3AxXCsaS2yXEDuWgS8VOzW0gFjhEPmLyFMKBFaLb1HRwc DiaKwx0EeTMRYnYPQRW3PP4HApvlMv0PttX5v/D6Aws3IOSEwzmLAAAAAElFTkSuQmCC In-Reply-To: (Stefan Monnier's message of "Thu, 28 Aug 2014 09:12:26 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (CentOS 6.5) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:92788 Archived-At: On 2014-08-28 09:12 -0400, Stefan Monnier wrote: > Maybe a simpler change is to let FUN be of the form (:append FUN). Make sense ;) === modified file 'lisp/files.el' --- lisp/files.el 2014-08-12 02:35:24 +0000 +++ lisp/files.el 2014-08-29 01:11:08 +0000 @@ -1375,6 +1375,9 @@ (defmacro minibuffer-with-setup-hook (fun &rest body) "Temporarily add FUN to `minibuffer-setup-hook' while executing BODY. +FUN can also (:append FUN1), in which case FUN1 is appended to +`minibuffer-setup-hook'. + BODY should use the minibuffer at most once. Recursive uses of the minibuffer are unaffected (FUN is not called additional times). @@ -1383,7 +1386,11 @@ rather than FUN itself, to `minibuffer-setup-hook'." (declare (indent 1) (debug t)) (let ((hook (make-symbol "setup-hook")) - (funsym (make-symbol "fun"))) + (funsym (make-symbol "fun")) + (append nil)) + (when (eq (car-safe fun) :append) + (setq append t) + (pop fun)) `(let ((,funsym ,fun) ,hook) (setq ,hook @@ -1394,7 +1401,7 @@ (funcall ,funsym))) (unwind-protect (progn - (add-hook 'minibuffer-setup-hook ,hook) + (add-hook 'minibuffer-setup-hook ,hook ,append) ,@body) (remove-hook 'minibuffer-setup-hook ,hook)))))