From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michal Nazarewicz Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] Add `notes' function to store random notes across Emacs restarts. Date: Mon, 17 Jun 2013 22:39:40 +0200 Organization: http://mina86.com/ Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1371501637 14852 80.91.229.3 (17 Jun 2013 20:40:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 17 Jun 2013 20:40:37 +0000 (UTC) Cc: Ted Zlatanov , Stefan Monnier , Emacs developers To: Juanma Barranquero Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jun 17 22:40:38 2013 Return-path: Envelope-to: ged-emacs-devel@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 1UogE8-0000zo-AV for ged-emacs-devel@m.gmane.org; Mon, 17 Jun 2013 22:40:36 +0200 Original-Received: from localhost ([::1]:52443 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UogE7-0000hU-IB for ged-emacs-devel@m.gmane.org; Mon, 17 Jun 2013 16:40:35 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37577) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UogDQ-0008KP-Hm for emacs-devel@gnu.org; Mon, 17 Jun 2013 16:39:57 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UogDL-0004uz-VP for emacs-devel@gnu.org; Mon, 17 Jun 2013 16:39:52 -0400 Original-Received: from mail-ea0-x229.google.com ([2a00:1450:4013:c01::229]:56608) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UogDL-0004um-Kq for emacs-devel@gnu.org; Mon, 17 Jun 2013 16:39:47 -0400 Original-Received: by mail-ea0-f169.google.com with SMTP id h15so2118668eak.0 for ; Mon, 17 Jun 2013 13:39:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:organization:references :user-agent:x-face:face:x-pgp:x-pgp-fp:x-hashcash:x-hashcash :x-hashcash:x-hashcash:x-hashcash:date:message-id:mime-version :content-type; bh=439PvFL1MXNU7p0t/hk/0Yk0A1+fnUuOTh+XMusrNYU=; b=G02z/Ermb6RG2UCvSgmXiLNjWcgm5BGTdZFI1gvQ9iWA1aRARf1i3mRYCEokmN0Oga 2PQ5aLDhZfU4jv2VVUAHPXgT7dIFvjSQS6HeftjW3iDw0RCuwRcOluhRxau5qJIXqhnL +5I4eaSDDI9uqHMXOp9TognQvXTufu3nC/nJ20F1Czm7GibEiPaGDAkpgymjJBoPCfj2 QWw1j4GGk/3UimUUzfCKsxoL87m4fIALY1kqueq/fbjWjyXlLIGN8CMucVmKNJENFtGF Kg9eDMCEhpWTHltBa+axkL0XMD4u5nDNpZXZl5c6nrPCnfsOM+r1Pr9YnSjkp6ddfrAU 4cdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:organization:references :user-agent:x-face:face:x-pgp:x-pgp-fp:x-hashcash:x-hashcash :x-hashcash:x-hashcash:x-hashcash:date:message-id:mime-version :content-type:x-gm-message-state; bh=439PvFL1MXNU7p0t/hk/0Yk0A1+fnUuOTh+XMusrNYU=; b=OK6xuwtTobCMMIVK9ydjdzPX5PJFUrFHPluHRVT45FwZqb9LFmjD7dyVlisk5NIIDs EKQItIqg/h5q3CZHOjWG3gQKYUwyENMkAvy3I6lzLW96MUsOwJ2n3b5ZIMAGhtPFLGx5 26QSmi7sU1dYyJpplVXXSTdgfHwbF6hRg6bFaLzA+Pr678wwqvDS+LBtCKbcyhhsPJR9 FzHlCkadZIU+3tcuH/yNyYycwax223XjC3HCOVnSaZg3Q0s5mmFjSIP85F00AuexfIeo sC8dvXmt24uzWxAi9r877aWXHT80uQ3Yb+82y42T6LPz3jC0VAaVnfLArhlSaPKCX5W8 MjGw== X-Received: by 10.14.38.14 with SMTP id z14mr19005886eea.49.1371501586629; Mon, 17 Jun 2013 13:39:46 -0700 (PDT) Original-Received: from mpn-glaptop ([2620:0:105f:301:79e7:3b94:9c87:4018]) by mx.google.com with ESMTPSA id l42sm15849793eeo.14.2013.06.17.13.39.45 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Mon, 17 Jun 2013 13:39:45 -0700 (PDT) In-Reply-To: User-Agent: Notmuch/0.15.2+55~geb6e9d8 (http://notmuchmail.org) Emacs/24.3.50.1 (x86_64-unknown-linux-gnu) X-Face: PbkBB1w#)bOqd`iCe"Ds{e+!C7`pkC9a|f)Qo^BMQvy\q5x3?vDQJeN(DS?|-^$uMti[3D*#^_Ts"pU$jBQLq~Ud6iNwAw_r_o_4]|JO?]}P_}Nc&"p#D(ZgUb4uCNPe7~a[DbPG0T~!&c.y$Ur,=N4RT>]dNpd; KFrfMCylc}gc??'U2j,!8%xdD Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWbfGlUPDDHgE57V0jUupKjgIObY0PLrom9mH4dFRK4gmjPs41MxjOgAAACQElEQVQ4jW3TMWvbQBQHcBk1xE6WyALX1069oZBMlq+ouUwpEQQ6uRjttkWP4CmBgGM0BQLBdPFZYPsyFUo6uEtKDQ7oy/U96XR2Ux8ehH/89Z6enqxBcS7Lg81jmSuujrfCZcLI/TYYvbGj+jbgFpHJ/bqQAUISj8iLyu4LuFHJTosxsucO4jSDNE0Hq3hwK/ceQ5sx97b8LcUDsILfk+ovHkOIsMbBfg43VuQ5Ln9YAGCkUdKJoXR9EclFBhixy3EGVz1K6eEkhxCAkeMMnqoAhAKwhoUJkDrCqvbecaYINlFKSRS1i12VKH1XpUd4qxL876EkMcDvHj3s5RBajHHMlA5iK32e0C7VgG0RlzFPvoYHZLRmAC0BmNcBruhkE0KsMsbEc62ZwUJDxWUdMsMhVqovoT96i/DnX/ASvz/6hbCabELLk/6FF/8PNpPCGqcZTGFcBhhAaZZDbQPaAB3+KrWWy2XgbYDNIinkdWAFcCpraDE/knwe5DBqGmgzESl1p2E4MWAz0VUPgYYzmfWb9yS4vCvgsxJriNTHoIBz5YteBvg+VGISQWUqhMiByPIPpygeDBE6elD973xWwKkEiHZAHKjhuPsFnBuArrzxtakRcISv+XMIPl4aGBUJm8Emk7qBYU8IlgNEIpiJhk/No24jHwkKTFHDWfPniR 4iw5vJaw2nzSjfq2zffcE/GDjRC2dn0J0XwPAbDL84TvaFCJEU4Oml9pRyEUhR3Cl2t01AoEjRbs0sYugp14/4X5n4pU4EHHnMAAAAAElFTkSuQmCC X-PGP: 50751FF4 X-PGP-FP: AC1F 5F5C D418 88F8 CC84 5858 2060 4012 5075 1FF4 X-Hashcash: 1:20:130617:emacs-devel@gnu.org::KDY7DuNeXLm2dzS8:0000000000000000000000000000000000000000000Ei5 X-Hashcash: 1:20:130617:tzz@lifelogs.com::LXd7nBHdF8yRh584:0198q X-Hashcash: 1:20:130617:monnier@iro.umontreal.ca::AgPyOHi5mnu6fnrU:00000000000000000000000000000000000002Kgg X-Hashcash: 1:20:130617:rgm@gnu.org::GkjW/r8mXIf78Wxn:0000000+7D X-Hashcash: 1:20:130617:lekktu@gmail.com::dCy23ovw284nJi+M:06yno X-Gm-Message-State: ALoCoQk0fJJugYus1igfm3BqCGDUNneAXfRkTDPnA0zDjtpS494nYpNeBQP4zjo/APap3r35J/2KLADHpJg0XP+2SAoZLXLIwJNOb+i0C5UyRZ1xgUwATdtGNz7iwtlT6tbiktr5E8tdwPeWDL3zRso/ABBmi1n5drfY0mLf8wXGLvjJlBk1issoNPH2+mcEuPsDrz6HhQ1O/qY4xrLqqT3U5GlKvBPxzA== X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4013:c01::229 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:160524 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Mon, Jun 17 2013, Juanma Barranquero wrote: >> +only one C-c C-c binding which saves and buries the buffer. > > Use \\[notes-save-and-bury] instead of hard-coded C-c C-c I'm not certain how that's supposed to work. The binding is not in global key map after all. >> + ;; We don't want a "Buffer modified" prompt from kill-buffer so >> + ;; we have to use advice rather than a hook. >> + (advice-add 'kill-buffer :around 'notes--kill-buffer-advice) > > Why cannot that be done from kill-buffer-hook? Because kill-buffer-hook is called after kill-buffer checks whether file is modified: DEFUN ("kill-buffer", Fkill_buffer, Skill_buffer, 0, 1, "bKill buffer: ", doc: /* =E2=80=A6 */) (Lisp_Object buffer_or_name) /* =E2=80=A6 */ /* Query if the buffer is still modified. */ if (INTERACTIVE && !NILP (BVAR (b, filename)) && BUF_MODIFF (b) > BUF_SAVE_MODIFF (b)) { GCPRO1 (buffer); tem =3D do_yes_or_no_p (format2 ("Buffer %s modified; kill anyway? ", BVAR (b, name), make_number (0))); UNGCPRO; if (NILP (tem)) return Qnil; } /* Run hooks with the buffer to be killed the current buffer. */ { ptrdiff_t count =3D SPECPDL_INDEX (); Lisp_Object arglist[1]; record_unwind_protect (save_excursion_restore, save_excursion_save ()); set_buffer_internal (b); /* First run the query functions; if any query is answered no, don't kill the buffer. */ arglist[0] =3D Qkill_buffer_query_functions; tem =3D Frun_hook_with_args_until_failure (1, arglist); if (NILP (tem)) return unbind_to (count, Qnil); /* Then run the hooks. */ Frun_hooks (1, &Qkill_buffer_hook); unbind_to (count, Qnil); } /* =E2=80=A6 */ } I'll add some more explanation to the comment but other than that, short of creating a new hook, I see no other satisfactory solution. (All other comments applied to the code). --=20 Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=3D./ `o ..o | Computer Science, Micha=C5=82 =E2=80=9Cmina86=E2=80=9D Nazarewicz = (o o) ooo +------------------ooO--(_)--Ooo-- --=-=-= Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" --==-=-= Content-Type: text/plain --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAEBAgAGBQJRv3QMAAoJECBgQBJQdR/0J8cP/2CoB3L4vpT2UpOX75+w6CWa M5OLaLwCqlcdX7ExAijCrCEGDic4yD3Vz5ibPhE+yy+YsnZxfgJafgAUh/JwYP68 iIlLgTJ5wy3FabQpX32XmCOH4Mv2+QSrgzGUex0U5ReBmQIGTpDhCKTJIHcxwRmW cYwko6Tu3ml++JP4+Enl9lKsvLqkK+ulMgnppJ13X+nQuWvTQPnVkus6HPaK6r89 7Epml8txMXhH0k/yMMRUccImn1TlJjsH4s5JDyU5q1oNXpgNkH5dxVlGEZDnjRMW q0E3TN06h0uL21gPcZNwxXGFRQHBdKStmjUgGhsX8pNcPvOCdOJEwCFYXOQw0VsC keoKR6FQ8ChivZ67AuEUZDHEDuhj9dQ9fDgUGcbcIghDbTTEkQRdfx4TfNP+Ozdf 33Io2KogjaBYJorgSrmSh+Vten4nwr8ZTCsiWH543mEaooazYpxW+YICkOylbZiA 804eYvuRoacGkz1hiQGTp8UIEf82MuNdEHj84XMKPxNnM3o4wSG+nur8vCAO4M4u dxjW0qTYxTZ6EuJf5gKoodqLJS2LViP6UiZOrDy3yXABgT4tiyn68V2zm5KGVGee VkjGH/hBUv/infLpKvtS/5uE/iBJuOv1Iuk4ViTt+3G16w9fJmqupGZHwfxXRW5A CfYfot7agd59EGlVtq3N =zxfD -----END PGP SIGNATURE----- --==-=-=-- --=-=-=--