Re: [PATCH] Save and restore point explicitly in `notmuch-wash-toggle-invisible-action'.
authorCarl Worth <cworth@cworth.org>
Tue, 24 May 2011 20:20:56 +0000 (13:20 +1700)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:38:19 +0000 (09:38 -0800)
63/030be6bc88aef91fc7d33b9450f5bf9f4044f1 [new file with mode: 0644]

diff --git a/63/030be6bc88aef91fc7d33b9450f5bf9f4044f1 b/63/030be6bc88aef91fc7d33b9450f5bf9f4044f1
new file mode 100644 (file)
index 0000000..662fdc0
--- /dev/null
@@ -0,0 +1,106 @@
+Return-Path: <cworth@cworth.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id EAB75431FD0\r
+       for <notmuch@notmuchmail.org>; Tue, 24 May 2011 13:21:04 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0.01\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0.01 tagged_above=-999 required=5\r
+       tests=[T_MIME_NO_TEXT=0.01] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id HlcFbURjH9YE for <notmuch@notmuchmail.org>;\r
+       Tue, 24 May 2011 13:21:04 -0700 (PDT)\r
+Received: from arlo.cworth.org (arlo.cworth.org [50.43.72.2])\r
+       by olra.theworths.org (Postfix) with ESMTP id 7E559431FB6\r
+       for <notmuch@notmuchmail.org>; Tue, 24 May 2011 13:21:04 -0700 (PDT)\r
+Received: from yoom.home.cworth.org (localhost [127.0.0.1])\r
+       by arlo.cworth.org (Postfix) with ESMTP id D3F2129A057;\r
+       Tue, 24 May 2011 13:21:02 -0700 (PDT)\r
+Received: by yoom.home.cworth.org (Postfix, from userid 1000)\r
+       id C5CFA25417E; Tue, 24 May 2011 13:21:02 -0700 (PDT)\r
+From: Carl Worth <cworth@cworth.org>\r
+To: Dmitry Kurochkin <dmitry.kurochkin@gmail.com>, notmuch@notmuchmail.org\r
+Subject: Re: [PATCH] Save and restore point explicitly in\r
+       `notmuch-wash-toggle-invisible-action'.\r
+In-Reply-To: <1306164587-20326-1-git-send-email-dmitry.kurochkin@gmail.com>\r
+References: <1306090675-26982-1-git-send-email-dmitry.kurochkin@gmail.com>\r
+       <1306164587-20326-1-git-send-email-dmitry.kurochkin@gmail.com>\r
+User-Agent: Notmuch/0.5 (http://notmuchmail.org) Emacs/23.3.1\r
+       (i486-pc-linux-gnu)\r
+Date: Tue, 24 May 2011 13:20:56 -0700\r
+Message-ID: <87oc2rlujb.fsf@yoom.home.cworth.org>\r
+MIME-Version: 1.0\r
+Content-Type: multipart/signed; boundary="=-=-=";\r
+       micalg=pgp-sha1; protocol="application/pgp-signature"\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Tue, 24 May 2011 20:21:05 -0000\r
+\r
+--=-=-=\r
+Content-Transfer-Encoding: quoted-printable\r
+\r
+On Mon, 23 May 2011 19:29:46 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmai=\r
+l.com> wrote:\r
+> Before the change, save-excursion was used to save the point.\r
+> But the restored position is affected by buffer modifications,\r
+> which results in jumping cursor.  The patch saves and restores\r
+> point explicitly by using a variable instead of save-excursion.\r
+\r
+Dmitry,\r
+\r
+Thanks so much for the improvement to the button text! This will be a\r
+nice thing to add.\r
+\r
+But this patch confuses me. I can understand how a buffer-position\r
+variable can cause the cursor to jump. That's usually the kind of thing\r
+that can be fixed by switching from an integer position to a marker\r
+instead, (since markers are updated when the corresponding text is\r
+updated).\r
+\r
+But in this case, I don't see how:\r
+\r
+       (let ((old-point (point)))\r
+               ... code here ...\r
+         (goto-char old-point))\r
+\r
+is distinct from:\r
+\r
+       (save-excursion\r
+               ... code here ...\r
+        )\r
+\r
+except that save-excursion actually does the right thing in the case of\r
+abnormal exit (throw or error).\r
+\r
+Can you help me understand what I'm missing here?\r
+\r
+=2DCarl\r
+\r
+=2D-=20\r
+carl.d.worth@intel.com\r
+\r
+--=-=-=\r
+Content-Type: application/pgp-signature\r
+\r
+-----BEGIN PGP SIGNATURE-----\r
+Version: GnuPG v1.4.11 (GNU/Linux)\r
+\r
+iEYEARECAAYFAk3cEygACgkQ6JDdNq8qSWj8TgCeMoM/HKfFJ2NLPgWLX0N6dkjm\r
+VToAniiwtXp/ONZ0jxZCxJbFcg1JxReA\r
+=M/Pt\r
+-----END PGP SIGNATURE-----\r
+--=-=-=--\r