GNU logs - #62892, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 17 Apr 2023 02:26:02 +0000
Resent-Message-ID: <handler.62892.B.168169834717199 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 62892 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.168169834717199
          (code B ref -1); Mon, 17 Apr 2023 02:26:02 +0000
Received: (at submit) by debbugs.gnu.org; 17 Apr 2023 02:25:47 +0000
Received: from localhost ([127.0.0.1]:52763 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1poEYt-0004TK-3Y
	for submit <at> debbugs.gnu.org; Sun, 16 Apr 2023 22:25:47 -0400
Received: from lists.gnu.org ([209.51.188.17]:55796)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1poEYq-0004TC-Vd
 for submit <at> debbugs.gnu.org; Sun, 16 Apr 2023 22:25:45 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <zkanfer@HIDDEN>) id 1poEYq-0001Y9-M6
 for bug-gnu-emacs@HIDDEN; Sun, 16 Apr 2023 22:25:44 -0400
Received: from mail-oa1-x2f.google.com ([2001:4860:4864:20::2f])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <zkanfer@HIDDEN>) id 1poEYo-0006GD-QX
 for bug-gnu-emacs@HIDDEN; Sun, 16 Apr 2023 22:25:44 -0400
Received: by mail-oa1-x2f.google.com with SMTP id
 586e51a60fabf-187e9f8c982so1650958fac.1
 for <bug-gnu-emacs@HIDDEN>; Sun, 16 Apr 2023 19:25:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1681698339; x=1684290339;
 h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
 :date:message-id:reply-to;
 bh=ZgqKstG7XEhetQnp74LSIkIOy/zgj8mIY23BBmWwljY=;
 b=KvamjZKkRj7Lg/PfUjsLjS2og7tWqExKQ+fYBu7mLV0xR6R8CtpySgZnjGBybqmhbP
 MaK9oPWXFYZpYrZSAU8fyQaOTxD5kL22LIWwJP2KWnPEwsNlO5kUm6hTkf4UN2ZRdvJS
 CI2fuLUfy759wasRNQAJPDpo8UzpbUEgu1Uj/UDwpHp9CKylOHdM0rU4Iu0gLKoFC26i
 EqMtDgfi/w7gEo+PdLNZn7cYXo4PoaVIErL7yoIu0oaMkzKDfwyDlYehk1uzY0M9vQVY
 6tQ12XzPDf/BZf4CHXd+WHArKlSmM0eu6k5WVVdjyndBs7k46sVz/OHTzu55w9+3R9oM
 RDog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1681698339; x=1684290339;
 h=to:subject:message-id:date:from:mime-version:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=ZgqKstG7XEhetQnp74LSIkIOy/zgj8mIY23BBmWwljY=;
 b=ecNtLf46E3XKCYXDndcUCpqEHN9qTdGnywwlK6pt8UdG+jAqCauKO1VmDfzdZHYtx0
 DKoQEglwd2ko6bvN4zjrYYwi2Gca34cggxmkGVI236/5o7g49Z3qlL0tf3sTGpOWbgjG
 VsKaUY7eaJUFjtZy2fwvOXU4wCBRdjxrhvdQT+T/NQix0S31safmU18wbDvYqEy4A8Am
 Fc+GgQktU3Tt7ZPanq+5QgdLTRcbNUFX7BUHUuCwNDFAVd/l+0L1jYzP5cv38Tn7mqxu
 eOxsVAyv5xYE2Ly4jnHZrKhDHzYRm88JX9fvbcozd+c+1+G0QyDa0G1i25taHPXFGUl7
 i0Ig==
X-Gm-Message-State: AAQBX9fBgylU3On9nyPq0IqdVwwqGm80aeblIBKidf0dAclSKGsMnX4k
 5d1+BAvdfcxG6IOsONMokOCPy5ElAH8ItXqI/WLAW/CQ7EM=
X-Google-Smtp-Source: AKy350ZHqA+LRArlyRV0rrZ0xHgSla7jAH+CiASi+wvXu3pXy0nsureYAZqxtDJ2iFhCYHExUiBX8B3mbUvhc4PSbqQ=
X-Received: by 2002:a05:6870:b52c:b0:187:a080:bfd5 with SMTP id
 v44-20020a056870b52c00b00187a080bfd5mr4129099oap.3.1681698339533; Sun, 16 Apr
 2023 19:25:39 -0700 (PDT)
MIME-Version: 1.0
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Sun, 16 Apr 2023 22:25:28 -0400
Message-ID: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
Content-Type: multipart/mixed; boundary="00000000000025fc0005f97ee822"
Received-SPF: pass client-ip=2001:4860:4864:20::2f;
 envelope-from=zkanfer@HIDDEN; helo=mail-oa1-x2f.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

--00000000000025fc0005f97ee822
Content-Type: multipart/alternative; boundary="00000000000025fbfe05f97ee820"

--00000000000025fbfe05f97ee820
Content-Type: text/plain; charset="UTF-8"

C-M-@ is bound to `#'mark-sexp`. This command works incrementally -- that
is, calling this once marks the sexp after point; calling it again marks
one more sexp (in total, the two sexps after point).

It would be convenient to easily be able to mark sexps backwards as well.

If you've already marked sexps backwards, mark-sexp extends the region
backwards. But if you haven't, the only way to mark backwards is to pass a
negative prefix argument.

It often is a better experience to iteratively select the sexps you want.
Finally, there's no way to mark both directions, e.g., one sexp forward and
two backwards.

Attached is a patch to add #'mark-sexp-forwards and #'mark-sexp-backwards.
These functions extend the region by sexps forward and backward. They are
mutually incremental: you can call mark-sexp-fowards, then
mark-sexp-backwards twice, then mark-sexp-forwards. After this, the region
will consist of the two sexps before point and the two sexps after point.

These functions are very similar to #'mark-sexp:
- They will extend the region if it already exists.
- They can be called from lisp code with a numeric argument.
- They can take a prefix argument if called interactively.

Thanks,
Zachary Kanfer

--00000000000025fbfe05f97ee820
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">C-M-@ is bound to `#&#39;mark-sexp`. This command works in=
crementally -- that is, calling this once marks the sexp after point; calli=
ng it again marks one more sexp (in total, the two sexps after point).<br><=
br>It would be convenient to easily be able to mark sexps backwards as well=
.<br><br>If you&#39;ve already marked sexps backwards, mark-sexp extends th=
e region backwards. But if you haven&#39;t, the only way to mark backwards =
is to pass a negative prefix argument.<br><br>It often is a better experien=
ce to iteratively select the sexps you want. Finally, there&#39;s no way to=
 mark both directions, e.g., one sexp forward and two backwards.<br><br>Att=
ached is a patch to add #&#39;mark-sexp-forwards and #&#39;mark-sexp-backwa=
rds. These functions extend the region by sexps forward and backward. They =
are mutually incremental: you can call mark-sexp-fowards, then mark-sexp-ba=
ckwards twice, then mark-sexp-forwards. After this, the region will consist=
 of the two sexps before point and the two sexps after point.<br><br>These =
functions are very similar to #&#39;mark-sexp:<br>- They will extend the re=
gion if it already exists.<br>- They can be called from lisp code with a nu=
meric argument.<br><div>- They can take a prefix argument if called interac=
tively.</div><div><br></div><div>Thanks,</div><div>Zachary Kanfer<br></div>=
</div>

--00000000000025fbfe05f97ee820--

--00000000000025fc0005f97ee822
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Add-mark-sexp-forward-mark-sexp-backward.patch"
Content-Disposition: attachment; 
	filename="0001-Add-mark-sexp-forward-mark-sexp-backward.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lgk7oxye0>
X-Attachment-Id: f_lgk7oxye0

RnJvbSAzYTM1NzkwYTc5ZWZmM2Q1OTdlMTNhMTdkNzQwMzU3YmM1NTZkODFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNoYXJ5IEthbmZlciA8emthbmZlckBnbWFpbC5jb20+CkRh
dGU6IFN1biwgMTYgQXByIDIwMjMgMjI6MTY6MzkgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBZGQg
bWFyay1zZXhwLWZvcndhcmQsIG1hcmstc2V4cC1iYWNrd2FyZAoKLS0tCiBldGMvTkVXUyAgICAg
ICAgICAgICAgICB8ICA0ICsrKysKIGxpc3AvZW1hY3MtbGlzcC9saXNwLmVsIHwgNDEgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNDUg
aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggYzYx
YTllYzNjNWYuLjlmMmI3ZDIxZjliIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVX
UwpAQCAtODEsNiArODEsMTAgQEAgbWlzdGFrZW4gY29tcG9zaXRpb25zLCB0aGlzIHdpbGwgbm93
IHdvcmsgYXMgd2VsbC4KIFRoaXMgd29ya3MgbGlrZSAna2lsbC1tYXRjaGluZy1idWZmZXJzJywg
YnV0IHdpdGhvdXQgYXNraW5nIGZvcgogY29uZmlybWF0aW9uLgogCistLS0KKyoqIE5ldyBjb21t
YW5kcyAnbWFyay1zZXhwLWZvcndhcmQnIGFuZCAnbWFyay1zZXhwLWJhY2t3YXJkJy4KK1RoZXNl
IHdvcmsgbGlrZSBtYXJrLXNleHAsIGJ1dCBleHBsaWNpdGx5IGFsbG93IHNleHBzIHRvIGJlIG1h
cmtlZCBmb3J3YXJkIGFuZCBiYWNrd2FyZC4KKwogDAogKiBDaGFuZ2VzIGluIFNwZWNpYWxpemVk
IE1vZGVzIGFuZCBQYWNrYWdlcyBpbiBFbWFjcyAzMC4xCiAKZGlmZiAtLWdpdCBhL2xpc3AvZW1h
Y3MtbGlzcC9saXNwLmVsIGIvbGlzcC9lbWFjcy1saXNwL2xpc3AuZWwKaW5kZXggNDE3YzIxOGM2
ZDcuLmQ2NjQ5YjI0OTdkIDEwMDY0NAotLS0gYS9saXNwL2VtYWNzLWxpc3AvbGlzcC5lbAorKysg
Yi9saXNwL2VtYWNzLWxpc3AvbGlzcC5lbApAQCAtMTI5LDYgKzEyOSw0NyBAQCBtYXJrLXNleHAK
IAkgICAgKHBvaW50KSkKIAkgIG5pbCB0KSkpKQogCisoZGVmdW4gbWFyay1zZXhwLWhlbHBlciAo
bnVtYmVyLW9mLWV4cHJlc3Npb25zKQorICAiQSBoZWxwZXIgZnVuY3Rpb24gZm9yICdtYXJrLXNl
eHAtW2ZvcndhcmQsIGJhY2t3YXJkXScuCisKK0lmIE5VTUJFUi1PRi1FWFBSRVNTSU9OUyBpcyBw
b3NpdGl2ZSwgbWFyayB0aGF0IG1hbnkgc2V4cHMgZm9yd2FyZDsKK290aGVyd2lzZSwgYW1yayBi
YWNrd2FyZC4iCisgIChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgKGxldCogKChmb3J3YXJkICg+
PSBudW1iZXItb2YtZXhwcmVzc2lvbnMgMCkpCisgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1y
ZWdpb24gKHJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgIChlbmQtb2YtcmVnaW9uIChy
ZWdpb24tZW5kKSkKKyAgICAgICAgICAgICAoYXQtZW5kLW9mLXJlZ2lvbiAoPSBlbmQtb2YtcmVn
aW9uIChwb2ludCkpKQorICAgICAgICAgICAgIChuZXctYm9yZGVyLXBvaW50CisgICAgICAgICAg
ICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKGlmIGZvcndh
cmQgKHJlZ2lvbi1lbmQpIChyZWdpb24tYmVnaW5uaW5nKSkpCisgICAgICAgICAgICAgICAgKGNv
bmRpdGlvbi1jYXNlIG5pbAorICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1zZXhwIG51bWJl
ci1vZi1leHByZXNzaW9ucykKKyAgICAgICAgICAgICAgICAgIChzY2FuLWVycm9yICh1c2VyLWVy
cm9yICJObyBtb3JlIHMtZXhwcmVzc2lvbnMgdGhlcmUhIikpKQorICAgICAgICAgICAgICAgIChw
b2ludCkpKQorICAgICAgICAgICAgIChuZXctYmVnaW5uaW5nLW9mLXJlZ2lvbiAobWluIGJlZ2lu
bmluZy1vZi1yZWdpb24gbmV3LWJvcmRlci1wb2ludCkpCisgICAgICAgICAgICAgKG5ldy1lbmQt
b2YtcmVnaW9uIChtYXggZW5kLW9mLXJlZ2lvbiBuZXctYm9yZGVyLXBvaW50KSkpCisgICAgICAg
IChnb3RvLWNoYXIgKGlmIGF0LWVuZC1vZi1yZWdpb24KKyAgICAgICAgICAgICAgICAgICAgICAg
bmV3LWVuZC1vZi1yZWdpb24KKyAgICAgICAgICAgICAgICAgICAgIG5ldy1iZWdpbm5pbmctb2Yt
cmVnaW9uKSkKKyAgICAgICAgKHNldC1tYXJrIChpZiBhdC1lbmQtb2YtcmVnaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgbmV3LWJlZ2lubmluZy1vZi1yZWdpb24KKyAgICAgICAgICAgICAgICAg
ICAgbmV3LWVuZC1vZi1yZWdpb24pKSkKKyAgICAobWFyay1zZXhwIG51bWJlci1vZi1leHByZXNz
aW9ucykpKQorCisoZGVmdW4gbWFyay1zZXhwLWZvcndhcmQgKCZvcHRpb25hbCBudW1iZXItb2Yt
ZXhwcmVzc2lvbnMpCisgICJNYXJrIE5VTUJFUi1PRi1FWFBSRVNTSU9OUyBzLWV4cHJlc3Npb25z
IGZvcndhcmQuCisKKyBSZXBlYXRlZCBjYWxscyB0byB0aGlzIG1hcmsgbW9yZSBzLWV4cHJlc3Np
b25zLiIKKyAgKGludGVyYWN0aXZlICJwIikKKyAgKG1hcmstc2V4cC1oZWxwZXIgKG9yIG51bWJl
ci1vZi1leHByZXNzaW9ucyAxKSkpCisKKyhkZWZ1biBtYXJrLXNleHAtYmFja3dhcmQgKCZvcHRp
b25hbCBudW1iZXItb2YtZXhwcmVzc2lvbnMpCisgICJNYXJrIE5VTUJFUi1PRi1FWFBSRVNTSU9O
UyBzLWV4cHJlc3Npb25zIGJhY2t3YXJkLgorCisgUmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBtYXJr
IG1vcmUgcy1leHByZXNzaW9ucy4iCisgIChpbnRlcmFjdGl2ZSAicCIpCisgIChtYXJrLXNleHAt
aGVscGVyICgtIChvciBudW1iZXItb2YtZXhwcmVzc2lvbnMgMSkpKSkKKwogKGRlZnVuIGZvcndh
cmQtbGlzdCAoJm9wdGlvbmFsIGFyZyBpbnRlcmFjdGl2ZSkKICAgIk1vdmUgZm9yd2FyZCBhY3Jv
c3Mgb25lIGJhbGFuY2VkIGdyb3VwIG9mIHBhcmVudGhlc2VzLgogVGhpcyBjb21tYW5kIHdpbGwg
YWxzbyB3b3JrIG9uIG90aGVyIHBhcmVudGhlc2VzLWxpa2UgZXhwcmVzc2lvbnMKLS0gCjIuMzgu
NAoK
--00000000000025fc0005f97ee822--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Zachary Kanfer <zkanfer@HIDDEN>
Subject: bug#62892: Acknowledgement (proposal to extend mark-sexp to go
 forward and backward on command)
Message-ID: <handler.62892.B.168169834717199.ack <at> debbugs.gnu.org>
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
X-Gnu-PR-Message: ack 62892
X-Gnu-PR-Package: emacs
Reply-To: 62892 <at> debbugs.gnu.org
Date: Mon, 17 Apr 2023 02:26:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 62892 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
62892: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D62892
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Ruijie Yu <ruijie@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 17 Apr 2023 03:18:02 +0000
Resent-Message-ID: <handler.62892.B.168170143923099 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>
Cc: 62892 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN, 62892 <at> debbugs.gnu.org
Received: via spool by submit <at> debbugs.gnu.org id=B.168170143923099
          (code B ref -1); Mon, 17 Apr 2023 03:18:02 +0000
Received: (at submit) by debbugs.gnu.org; 17 Apr 2023 03:17:19 +0000
Received: from localhost ([127.0.0.1]:52808 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1poFMl-00060V-Gt
	for submit <at> debbugs.gnu.org; Sun, 16 Apr 2023 23:17:19 -0400
Received: from lists.gnu.org ([209.51.188.17]:51418)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ruijie@HIDDEN>) id 1poFMj-00060N-CS
 for submit <at> debbugs.gnu.org; Sun, 16 Apr 2023 23:17:18 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ruijie@HIDDEN>) id 1poFMj-0007DJ-5J
 for bug-gnu-emacs@HIDDEN; Sun, 16 Apr 2023 23:17:17 -0400
Received: from netyu.xyz ([152.44.41.246] helo=mail.netyu.xyz)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ruijie@HIDDEN>) id 1poFMe-0001b0-HU
 for bug-gnu-emacs@HIDDEN; Sun, 16 Apr 2023 23:17:13 -0400
Received: from fw.net.yu.netyu.xyz (<unknown> [222.248.4.98])
 by netyu.xyz (OpenSMTPD) with ESMTPSA id 5498538b
 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); 
 Mon, 17 Apr 2023 03:17:08 +0000 (UTC)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
User-agent: mu4e 1.9.22; emacs 30.0.50
From: Ruijie Yu <ruijie@HIDDEN>
Date: Mon, 17 Apr 2023 11:06:03 +0800
In-reply-to: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
Message-ID: <sdvcz43w63q.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=152.44.41.246; envelope-from=ruijie@HIDDEN;
 helo=mail.netyu.xyz
X-Spam_score_int: -18
X-Spam_score: -1.9
X-Spam_bar: -
X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.4 (-)


Zachary Kanfer <zkanfer@HIDDEN> writes:

> Attached is a patch to add #'mark-sexp-forwards and #'mark-sexp-backwards. These functions extend the region by sexps forward and
> backward. They are mutually incremental: you can call mark-sexp-fowards, then mark-sexp-backwards twice, then mark-sexp-forwards. After
> this, the region will consist of the two sexps before point and the two sexps after point.

If this is to be accepted, why not extend it to all like mark functions,
listed below?  Implementing them should be pretty similar, and you might
even be able to reuse the same helper for all these variants.  Also, the
helper function might need to contain a double-dash in its name because
this is inherently a private function.

- `mark-defun'
- `mark-page'
- `mark-paragraph'
- `mark-word'

> +(defun mark-sexp-helper (number-of-expressions)
> +  "A helper function for 'mark-sexp-[forward, backward]'.
> +
> +If NUMBER-OF-EXPRESSIONS is positive, mark that many sexps forward;
> +otherwise, amrk backward."

Please use `quote' to quote things in Emacs docstrings.  Also, both here
and in other docstrings, the newline immediately after the first line,
while seems necessary, is usually redundant in Emacs docstrings.  And
there is a typo: "amrk" -> "mark".

I also think you shouldn't use wildcard-like elements in quotes (in your
case, you reuse part of the name in the quote), but I'm not sure.

-- 
Best,


RY




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Ruijie Yu <ruijie@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 17 Apr 2023 03:18:02 +0000
Resent-Message-ID: <handler.62892.B62892.168170143223079 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>
Cc: 62892 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168170143223079
          (code B ref 62892); Mon, 17 Apr 2023 03:18:02 +0000
Received: (at 62892) by debbugs.gnu.org; 17 Apr 2023 03:17:12 +0000
Received: from localhost ([127.0.0.1]:52805 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1poFMe-00060A-6g
	for submit <at> debbugs.gnu.org; Sun, 16 Apr 2023 23:17:12 -0400
Received: from netyu.xyz ([152.44.41.246]:60942 helo=mail.netyu.xyz)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ruijie@HIDDEN>) id 1poFMb-000601-VV
 for 62892 <at> debbugs.gnu.org; Sun, 16 Apr 2023 23:17:10 -0400
Received: from fw.net.yu.netyu.xyz (<unknown> [222.248.4.98])
 by netyu.xyz (OpenSMTPD) with ESMTPSA id 5498538b
 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); 
 Mon, 17 Apr 2023 03:17:08 +0000 (UTC)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
User-agent: mu4e 1.9.22; emacs 30.0.50
From: Ruijie Yu <ruijie@HIDDEN>
Date: Mon, 17 Apr 2023 11:06:03 +0800
In-reply-to: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
Message-ID: <sdvcz43w63q.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)


Zachary Kanfer <zkanfer@HIDDEN> writes:

> Attached is a patch to add #'mark-sexp-forwards and #'mark-sexp-backwards. These functions extend the region by sexps forward and
> backward. They are mutually incremental: you can call mark-sexp-fowards, then mark-sexp-backwards twice, then mark-sexp-forwards. After
> this, the region will consist of the two sexps before point and the two sexps after point.

If this is to be accepted, why not extend it to all like mark functions,
listed below?  Implementing them should be pretty similar, and you might
even be able to reuse the same helper for all these variants.  Also, the
helper function might need to contain a double-dash in its name because
this is inherently a private function.

- `mark-defun'
- `mark-page'
- `mark-paragraph'
- `mark-word'

> +(defun mark-sexp-helper (number-of-expressions)
> +  "A helper function for 'mark-sexp-[forward, backward]'.
> +
> +If NUMBER-OF-EXPRESSIONS is positive, mark that many sexps forward;
> +otherwise, amrk backward."

Please use `quote' to quote things in Emacs docstrings.  Also, both here
and in other docstrings, the newline immediately after the first line,
while seems necessary, is usually redundant in Emacs docstrings.  And
there is a typo: "amrk" -> "mark".

I also think you shouldn't use wildcard-like elements in quotes (in your
case, you reuse part of the name in the quote), but I'm not sure.

-- 
Best,


RY




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 17 Apr 2023 07:14:01 +0000
Resent-Message-ID: <handler.62892.B62892.168171559317637 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>
Cc: 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168171559317637
          (code B ref 62892); Mon, 17 Apr 2023 07:14:01 +0000
Received: (at 62892) by debbugs.gnu.org; 17 Apr 2023 07:13:13 +0000
Received: from localhost ([127.0.0.1]:52992 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1poJ32-0004aP-Qy
	for submit <at> debbugs.gnu.org; Mon, 17 Apr 2023 03:13:12 -0400
Received: from relay2-d.mail.gandi.net ([217.70.183.194]:44711)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1poJ30-0004a9-D6
 for 62892 <at> debbugs.gnu.org; Mon, 17 Apr 2023 03:13:11 -0400
Received: (Authenticated sender: juri@HIDDEN)
 by mail.gandi.net (Postfix) with ESMTPSA id 15A5F40009;
 Mon, 17 Apr 2023 07:13:02 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
In-Reply-To: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 (Zachary Kanfer's message of "Sun, 16 Apr 2023 22:25:28 -0400")
Organization: LINKOV.NET
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
Date: Mon, 17 Apr 2023 10:11:35 +0300
Message-ID: <86y1mrq8yg.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> C-M-@ is bound to `#'mark-sexp`. This command works incrementally -- that
> is, calling this once marks the sexp after point; calling it again marks
> one more sexp (in total, the two sexps after point).
>
> It would be convenient to easily be able to mark sexps backwards as well.

Did you know that it's possible to switch directions by typing 'C-x C-x'.
After that 'C-M-@' extends the region backwards.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 20 Apr 2023 05:26:02 +0000
Resent-Message-ID: <handler.62892.B.168196835919044 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Ruijie Yu <ruijie@HIDDEN>
Cc: 62892 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN, 62892 <at> debbugs.gnu.org
Received: via spool by submit <at> debbugs.gnu.org id=B.168196835919044
          (code B ref -1); Thu, 20 Apr 2023 05:26:02 +0000
Received: (at submit) by debbugs.gnu.org; 20 Apr 2023 05:25:59 +0000
Received: from localhost ([127.0.0.1]:36272 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ppMnv-0004x4-0O
	for submit <at> debbugs.gnu.org; Thu, 20 Apr 2023 01:25:59 -0400
Received: from lists.gnu.org ([209.51.188.17]:46732)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1ppMnq-0004wo-Ua
 for submit <at> debbugs.gnu.org; Thu, 20 Apr 2023 01:25:57 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <zkanfer@HIDDEN>) id 1ppMno-0001X7-9S
 for bug-gnu-emacs@HIDDEN; Thu, 20 Apr 2023 01:25:53 -0400
Received: from mail-oa1-x32.google.com ([2001:4860:4864:20::32])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <zkanfer@HIDDEN>) id 1ppMnh-00016X-Qw
 for bug-gnu-emacs@HIDDEN; Thu, 20 Apr 2023 01:25:48 -0400
Received: by mail-oa1-x32.google.com with SMTP id
 586e51a60fabf-18807659eddso210581fac.1
 for <bug-gnu-emacs@HIDDEN>; Wed, 19 Apr 2023 22:25:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1681968341; x=1684560341;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=kQ48P72wOqD5RYXryo17ORUYFe49mfWi3tVd6uh65I8=;
 b=A1KMYxUEYGsBj93hoQ9dL9VAoEUEqeZ9BBmdITgSenkOGZ/O299OROQ8+ljoiQP54I
 xtbAoloOnf/TdynHHBlYMJ+G7WTzX2bAjFaJDPFeBs5HiZUXYliLd2yyAp4zAwKJ3kA3
 1UgpH6mBKszlKRVOPIe1RYgGdXSTuWd1FUeKhP9b8nol2TkjfbFHLt6nsdNzZE4YrlGM
 UwKe28IJjcM+YSBTtRkcm9pLaTxox6YtC0LJ2gLxUS99TlrPpABT8VqY+FBiSnOguR2L
 BnL6Pf5f7TmBy/QNZ/zKdx/x5Pp+UEI6hGiva3KmPlReLP4g2Jyukn/5Tyi2dvZOE1Ay
 L+1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1681968341; x=1684560341;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=kQ48P72wOqD5RYXryo17ORUYFe49mfWi3tVd6uh65I8=;
 b=EGFCk2dlczw/2Y88NodCW6m4jTujbeJzzYmdgieX0TAsjEmZJtxEC3T0MFD5frGGMb
 pA31dk+zdFbGuJn5JUx07u3P4FX2b/gs4dlLa10jzGmy8o1S9HwYEa1d+de00l9LTHdf
 yC/YW4SlLTzt4Bljx+3Wx3BGE+gJV9BFmNT98SbV+9OvUuFNyZEBKfRZiW71au4nzxvi
 jc0U0LZSrjIclATmJL3yK2mr9FeNgFTy4XeII9ViEzf33qauX3p8OOB1ld+45XIzFlyj
 eDoDPr1tKSoBxier30YtviFGaU5z11yL3wZofHny0U/bwf9XEOnPDzUE49DSwpuRYMlM
 56GQ==
X-Gm-Message-State: AAQBX9eoqpo62qB62C2nviDSpv+kgjxU9MW9cfjhUIEK9aGM76a3FWC2
 /nIN4PltxGZXQzO0dJqSGHqfCA/hqrjKOui8xZqKxfxMhiA=
X-Google-Smtp-Source: AKy350YSl+Z6Ja1QB1gd0IJ2363EgAw0pF7N4dfK9Alg4TRmZKhgHlyD+Z3ZnVHUKQUJZAQyXqMTHqsCCDzwCsqqPDk=
X-Received: by 2002:a05:6870:968f:b0:187:8008:eb09 with SMTP id
 o15-20020a056870968f00b001878008eb09mr266557oaq.58.1681968340893; Wed, 19 Apr
 2023 22:25:40 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN>
In-Reply-To: <sdvcz43w63q.fsf@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Thu, 20 Apr 2023 01:25:29 -0400
Message-ID: <CAFXT+RPwL_cFJUmOMhocsGR4xnAd_RCE2kaZD3nQifY9pk7vYQ@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000007b9fcf05f9bdc53d"
Received-SPF: pass client-ip=2001:4860:4864:20::32;
 envelope-from=zkanfer@HIDDEN; helo=mail-oa1-x32.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

--0000000000007b9fcf05f9bdc53d
Content-Type: multipart/alternative; boundary="0000000000007b9fce05f9bdc53b"

--0000000000007b9fce05f9bdc53b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> If this is to be accepted, why not extend it to all like mark functions,
> listed below?  Implementing them should be pretty similar, and you might
> even be able to reuse the same helper for all these variants.  Also, the
> helper function might need to contain a double-dash in its name because
> this is inherently a private function.

This makes sense to me, although I have not found the same need for these
to be marked. I'm happy to extend them as such; I'll add that in a later
patch.

> Please use `quote' to quote things in Emacs docstrings.  Also, both here
> and in other docstrings, the newline immediately after the first line,
> while seems necessary, is usually redundant in Emacs docstrings.  And
> there is a typo: "amrk" -> "mark".
>
> I also think you shouldn't use wildcard-like elements in quotes (in your
> case, you reuse part of the name in the quote), but I'm not sure.

Done. Updated patch attached.

On Sun, Apr 16, 2023 at 11:17=E2=80=AFPM Ruijie Yu <ruijie@HIDDEN> wrote=
:

>
> Zachary Kanfer <zkanfer@HIDDEN> writes:
>
> > Attached is a patch to add #'mark-sexp-forwards and
> #'mark-sexp-backwards. These functions extend the region by sexps forward
> and
> > backward. They are mutually incremental: you can call mark-sexp-fowards=
,
> then mark-sexp-backwards twice, then mark-sexp-forwards. After
> > this, the region will consist of the two sexps before point and the two
> sexps after point.
>
> If this is to be accepted, why not extend it to all like mark functions,
> listed below?  Implementing them should be pretty similar, and you might
> even be able to reuse the same helper for all these variants.  Also, the
> helper function might need to contain a double-dash in its name because
> this is inherently a private function.
>
> - `mark-defun'
> - `mark-page'
> - `mark-paragraph'
> - `mark-word'
>
> > +(defun mark-sexp-helper (number-of-expressions)
> > +  "A helper function for 'mark-sexp-[forward, backward]'.
> > +
> > +If NUMBER-OF-EXPRESSIONS is positive, mark that many sexps forward;
> > +otherwise, amrk backward."
>
> Please use `quote' to quote things in Emacs docstrings.  Also, both here
> and in other docstrings, the newline immediately after the first line,
> while seems necessary, is usually redundant in Emacs docstrings.  And
> there is a typo: "amrk" -> "mark".
>
> I also think you shouldn't use wildcard-like elements in quotes (in your
> case, you reuse part of the name in the quote), but I'm not sure.
>
> --
> Best,
>
>
> RY
>

--0000000000007b9fce05f9bdc53b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><span class=3D"gmail-im">&gt; If this is to be accepted, w=
hy not extend it to all like mark functions,<br>
&gt; listed below?=C2=A0 Implementing them should be pretty similar, and yo=
u might<br>&gt; even be able to reuse the same helper for all these variant=
s.=C2=A0 Also, the<br>
&gt; helper function might need to contain a double-dash in its name becaus=
e<br><div>
&gt; this is inherently a private function.</div><div><br></div></span><div=
>This makes sense to me, although I have not found the same need for these =
to be marked. I&#39;m happy to extend them as such; I&#39;ll add that in a =
later patch.<br></div><span class=3D"gmail-im"><div><br></div><div>&gt; Ple=
ase use `quote&#39; to quote things in Emacs docstrings.=C2=A0 Also, both h=
ere<br>&gt; and in other docstrings, the newline immediately after the firs=
t line,<br>&gt; while seems necessary, is usually redundant in Emacs docstr=
ings.=C2=A0 And<br>&gt; there is a typo: &quot;amrk&quot; -&gt; &quot;mark&=
quot;.<br>&gt; <br>&gt; I also think you shouldn&#39;t use wildcard-like el=
ements in quotes (in your<br>&gt; case, you reuse part of the name in the q=
uote), but I&#39;m not sure.</div><div><br></div></span><div>Done. Updated =
patch attached.</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"gmail_attr">On Sun, Apr 16, 2023 at 11:17=E2=80=AFPM Ruijie Yu &lt=
;<a href=3D"mailto:ruijie@HIDDEN">ruijie@HIDDEN</a>&gt; wrote:<br></d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Zachary Kanfer &lt;<a href=3D"mailto:zkanfer@HIDDEN" target=3D"_blank">z=
kanfer@HIDDEN</a>&gt; writes:<br>
<br>
&gt; Attached is a patch to add #&#39;mark-sexp-forwards and #&#39;mark-sex=
p-backwards. These functions extend the region by sexps forward and<br>
&gt; backward. They are mutually incremental: you can call mark-sexp-foward=
s, then mark-sexp-backwards twice, then mark-sexp-forwards. After<br>
&gt; this, the region will consist of the two sexps before point and the tw=
o sexps after point.<br>
<br>
If this is to be accepted, why not extend it to all like mark functions,<br=
>
listed below?=C2=A0 Implementing them should be pretty similar, and you mig=
ht<br>
even be able to reuse the same helper for all these variants.=C2=A0 Also, t=
he<br>
helper function might need to contain a double-dash in its name because<br>
this is inherently a private function.<br>
<br>
- `mark-defun&#39;<br>
- `mark-page&#39;<br>
- `mark-paragraph&#39;<br>
- `mark-word&#39;<br>
<br>
&gt; +(defun mark-sexp-helper (number-of-expressions)<br>
&gt; +=C2=A0 &quot;A helper function for &#39;mark-sexp-[forward, backward]=
&#39;.<br>
&gt; +<br>
&gt; +If NUMBER-OF-EXPRESSIONS is positive, mark that many sexps forward;<b=
r>
&gt; +otherwise, amrk backward.&quot;<br>
<br>
Please use `quote&#39; to quote things in Emacs docstrings.=C2=A0 Also, bot=
h here<br>
and in other docstrings, the newline immediately after the first line,<br>
while seems necessary, is usually redundant in Emacs docstrings.=C2=A0 And<=
br>
there is a typo: &quot;amrk&quot; -&gt; &quot;mark&quot;.<br>
<br>
I also think you shouldn&#39;t use wildcard-like elements in quotes (in you=
r<br>
case, you reuse part of the name in the quote), but I&#39;m not sure.<br>
<br>
-- <br>
Best,<br>
<br>
<br>
RY<br>
</blockquote></div>

--0000000000007b9fce05f9bdc53b--

--0000000000007b9fcf05f9bdc53d
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Add-mark-sexp-forward-mark-sexp-backward.patch"
Content-Disposition: attachment; 
	filename="0001-Add-mark-sexp-forward-mark-sexp-backward.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lgoohlqz0>
X-Attachment-Id: f_lgoohlqz0

RnJvbSA1YjMzNTIwYTczYThmMTE2ZmI4OWJhMjUzZjY2MzZjOTU3M2M5ZDJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNoYXJ5IEthbmZlciA8emthbmZlckBnbWFpbC5jb20+CkRh
dGU6IFN1biwgMTYgQXByIDIwMjMgMjI6MTY6MzkgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBZGQg
bWFyay1zZXhwLWZvcndhcmQsIG1hcmstc2V4cC1iYWNrd2FyZAoKLS0tCiBldGMvTkVXUyAgICAg
ICAgICAgICAgICB8ICA0ICsrKysKIGxpc3AvZW1hY3MtbGlzcC9saXNwLmVsIHwgNDEgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNDUg
aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggYzYx
YTllYzNjNWYuLjlmMmI3ZDIxZjliIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVX
UwpAQCAtODEsNiArODEsMTAgQEAgbWlzdGFrZW4gY29tcG9zaXRpb25zLCB0aGlzIHdpbGwgbm93
IHdvcmsgYXMgd2VsbC4KIFRoaXMgd29ya3MgbGlrZSAna2lsbC1tYXRjaGluZy1idWZmZXJzJywg
YnV0IHdpdGhvdXQgYXNraW5nIGZvcgogY29uZmlybWF0aW9uLgogCistLS0KKyoqIE5ldyBjb21t
YW5kcyAnbWFyay1zZXhwLWZvcndhcmQnIGFuZCAnbWFyay1zZXhwLWJhY2t3YXJkJy4KK1RoZXNl
IHdvcmsgbGlrZSBtYXJrLXNleHAsIGJ1dCBleHBsaWNpdGx5IGFsbG93IHNleHBzIHRvIGJlIG1h
cmtlZCBmb3J3YXJkIGFuZCBiYWNrd2FyZC4KKwogDAogKiBDaGFuZ2VzIGluIFNwZWNpYWxpemVk
IE1vZGVzIGFuZCBQYWNrYWdlcyBpbiBFbWFjcyAzMC4xCiAKZGlmZiAtLWdpdCBhL2xpc3AvZW1h
Y3MtbGlzcC9saXNwLmVsIGIvbGlzcC9lbWFjcy1saXNwL2xpc3AuZWwKaW5kZXggNDE3YzIxOGM2
ZDcuLmNkZDk0NTljNDM2IDEwMDY0NAotLS0gYS9saXNwL2VtYWNzLWxpc3AvbGlzcC5lbAorKysg
Yi9saXNwL2VtYWNzLWxpc3AvbGlzcC5lbApAQCAtMTI5LDYgKzEyOSw0NyBAQCBtYXJrLXNleHAK
IAkgICAgKHBvaW50KSkKIAkgIG5pbCB0KSkpKQogCisoZGVmdW4gbWFyay1zZXhwLS1oZWxwZXIg
KG51bWJlci1vZi1leHByZXNzaW9ucykKKyAgIkEgaGVscGVyIGZ1bmN0aW9uIGZvciBgbWFyay1z
ZXhwLWZvcndhcmQnLCBgbWFyay1zZXhwLWJhY2t3YXJkJy4KKworSWYgTlVNQkVSLU9GLUVYUFJF
U1NJT05TIGlzIHBvc2l0aXZlLCBtYXJrIHRoYXQgbWFueSBzZXhwcyBmb3J3YXJkOworb3RoZXJ3
aXNlLCBtYXJrIGJhY2t3YXJkLiIKKyAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAobGV0KiAo
KGZvcndhcmQgKD49IG51bWJlci1vZi1leHByZXNzaW9ucyAwKSkKKyAgICAgICAgICAgICAoYmVn
aW5uaW5nLW9mLXJlZ2lvbiAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgICAgICAgKGVuZC1v
Zi1yZWdpb24gKHJlZ2lvbi1lbmQpKQorICAgICAgICAgICAgIChhdC1lbmQtb2YtcmVnaW9uICg9
IGVuZC1vZi1yZWdpb24gKHBvaW50KSkpCisgICAgICAgICAgICAgKG5ldy1ib3JkZXItcG9pbnQK
KyAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgKGdvdG8tY2hh
ciAoaWYgZm9yd2FyZCAocmVnaW9uLWVuZCkgKHJlZ2lvbi1iZWdpbm5pbmcpKSkKKyAgICAgICAg
ICAgICAgICAoY29uZGl0aW9uLWNhc2UgbmlsCisgICAgICAgICAgICAgICAgICAgIChmb3J3YXJk
LXNleHAgbnVtYmVyLW9mLWV4cHJlc3Npb25zKQorICAgICAgICAgICAgICAgICAgKHNjYW4tZXJy
b3IgKHVzZXItZXJyb3IgIk5vIG1vcmUgcy1leHByZXNzaW9ucyB0aGVyZSEiKSkpCisgICAgICAg
ICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAgICAgKG5ldy1iZWdpbm5pbmctb2YtcmVnaW9u
IChtaW4gYmVnaW5uaW5nLW9mLXJlZ2lvbiBuZXctYm9yZGVyLXBvaW50KSkKKyAgICAgICAgICAg
ICAobmV3LWVuZC1vZi1yZWdpb24gKG1heCBlbmQtb2YtcmVnaW9uIG5ldy1ib3JkZXItcG9pbnQp
KSkKKyAgICAgICAgKGdvdG8tY2hhciAoaWYgYXQtZW5kLW9mLXJlZ2lvbgorICAgICAgICAgICAg
ICAgICAgICAgICBuZXctZW5kLW9mLXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgbmV3LWJl
Z2lubmluZy1vZi1yZWdpb24pKQorICAgICAgICAoc2V0LW1hcmsgKGlmIGF0LWVuZC1vZi1yZWdp
b24KKyAgICAgICAgICAgICAgICAgICAgICBuZXctYmVnaW5uaW5nLW9mLXJlZ2lvbgorICAgICAg
ICAgICAgICAgICAgICBuZXctZW5kLW9mLXJlZ2lvbikpKQorICAgIChtYXJrLXNleHAgbnVtYmVy
LW9mLWV4cHJlc3Npb25zKSkpCisKKyhkZWZ1biBtYXJrLXNleHAtZm9yd2FyZCAoJm9wdGlvbmFs
IG51bWJlci1vZi1leHByZXNzaW9ucykKKyAgIk1hcmsgTlVNQkVSLU9GLUVYUFJFU1NJT05TIHMt
ZXhwcmVzc2lvbnMgZm9yd2FyZC4KKworIFJlcGVhdGVkIGNhbGxzIHRvIHRoaXMgbWFyayBtb3Jl
IHMtZXhwcmVzc2lvbnMuIgorICAoaW50ZXJhY3RpdmUgInAiKQorICAobWFyay1zZXhwLS1oZWxw
ZXIgKG9yIG51bWJlci1vZi1leHByZXNzaW9ucyAxKSkpCisKKyhkZWZ1biBtYXJrLXNleHAtYmFj
a3dhcmQgKCZvcHRpb25hbCBudW1iZXItb2YtZXhwcmVzc2lvbnMpCisgICJNYXJrIE5VTUJFUi1P
Ri1FWFBSRVNTSU9OUyBzLWV4cHJlc3Npb25zIGJhY2t3YXJkLgorCisgUmVwZWF0ZWQgY2FsbHMg
dG8gdGhpcyBtYXJrIG1vcmUgcy1leHByZXNzaW9ucy4iCisgIChpbnRlcmFjdGl2ZSAicCIpCisg
IChtYXJrLXNleHAtLWhlbHBlciAoLSAob3IgbnVtYmVyLW9mLWV4cHJlc3Npb25zIDEpKSkpCisK
IChkZWZ1biBmb3J3YXJkLWxpc3QgKCZvcHRpb25hbCBhcmcgaW50ZXJhY3RpdmUpCiAgICJNb3Zl
IGZvcndhcmQgYWNyb3NzIG9uZSBiYWxhbmNlZCBncm91cCBvZiBwYXJlbnRoZXNlcy4KIFRoaXMg
Y29tbWFuZCB3aWxsIGFsc28gd29yayBvbiBvdGhlciBwYXJlbnRoZXNlcy1saWtlIGV4cHJlc3Np
b25zCi0tIAoyLjM4LjQKCg==
--0000000000007b9fcf05f9bdc53d--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 20 Apr 2023 05:26:02 +0000
Resent-Message-ID: <handler.62892.B62892.168196835519027 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Ruijie Yu <ruijie@HIDDEN>
Cc: 62892 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168196835519027
          (code B ref 62892); Thu, 20 Apr 2023 05:26:02 +0000
Received: (at 62892) by debbugs.gnu.org; 20 Apr 2023 05:25:55 +0000
Received: from localhost ([127.0.0.1]:36269 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ppMnp-0004wm-1D
	for submit <at> debbugs.gnu.org; Thu, 20 Apr 2023 01:25:54 -0400
Received: from mail-ot1-f48.google.com ([209.85.210.48]:54484)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1ppMni-0004wV-Iq
 for 62892 <at> debbugs.gnu.org; Thu, 20 Apr 2023 01:25:50 -0400
Received: by mail-ot1-f48.google.com with SMTP id
 46e09a7af769-6a5f6349ec3so254707a34.0
 for <62892 <at> debbugs.gnu.org>; Wed, 19 Apr 2023 22:25:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1681968341; x=1684560341;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=kQ48P72wOqD5RYXryo17ORUYFe49mfWi3tVd6uh65I8=;
 b=A1KMYxUEYGsBj93hoQ9dL9VAoEUEqeZ9BBmdITgSenkOGZ/O299OROQ8+ljoiQP54I
 xtbAoloOnf/TdynHHBlYMJ+G7WTzX2bAjFaJDPFeBs5HiZUXYliLd2yyAp4zAwKJ3kA3
 1UgpH6mBKszlKRVOPIe1RYgGdXSTuWd1FUeKhP9b8nol2TkjfbFHLt6nsdNzZE4YrlGM
 UwKe28IJjcM+YSBTtRkcm9pLaTxox6YtC0LJ2gLxUS99TlrPpABT8VqY+FBiSnOguR2L
 BnL6Pf5f7TmBy/QNZ/zKdx/x5Pp+UEI6hGiva3KmPlReLP4g2Jyukn/5Tyi2dvZOE1Ay
 L+1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1681968341; x=1684560341;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=kQ48P72wOqD5RYXryo17ORUYFe49mfWi3tVd6uh65I8=;
 b=Lu6o+4z2ntGV6FWYpMYjaJqlJTSQKYEKwsQuP0LSbHPA3JF5/JTAnBXHCDTWW+8V/R
 FcU9SD3tQLVBfiRpipz0xubNnKnytUMJ4Dmn4jdJtLREGz33txJVh6SuavGcoTV0pdUK
 s96Cc6sKPe8Eoot2u/uVEP6aDyCXfMBp/kSJHL4Hdk64PDUcFMLpY2nqNVoQc+93tHx/
 I0hyxsxgkLNXyTn+X5BgZzd9CI0N39naf1OzHpCxhVi71XQMVu/oWh7KbwQAfK2QY1dt
 ZiieozUqiK5Jwr2wXE1Icm42HoLMa7/YBb1Qf0zHBxmDHE+543Bxy1Fyk5us0h6+/jfS
 a2cA==
X-Gm-Message-State: AAQBX9f2ZcUdn6K9VmcuYuBs50l1BKcxV/UK5JTORtZxscUgC2XSvMCd
 smNoxhXyOxfZwF9ZfbgzUyKVsZE7ZtWR+yYKEUs=
X-Google-Smtp-Source: AKy350YSl+Z6Ja1QB1gd0IJ2363EgAw0pF7N4dfK9Alg4TRmZKhgHlyD+Z3ZnVHUKQUJZAQyXqMTHqsCCDzwCsqqPDk=
X-Received: by 2002:a05:6870:968f:b0:187:8008:eb09 with SMTP id
 o15-20020a056870968f00b001878008eb09mr266557oaq.58.1681968340893; Wed, 19 Apr
 2023 22:25:40 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN>
In-Reply-To: <sdvcz43w63q.fsf@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Thu, 20 Apr 2023 01:25:29 -0400
Message-ID: <CAFXT+RPwL_cFJUmOMhocsGR4xnAd_RCE2kaZD3nQifY9pk7vYQ@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000007b9fcf05f9bdc53d"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000007b9fcf05f9bdc53d
Content-Type: multipart/alternative; boundary="0000000000007b9fce05f9bdc53b"

--0000000000007b9fce05f9bdc53b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> If this is to be accepted, why not extend it to all like mark functions,
> listed below?  Implementing them should be pretty similar, and you might
> even be able to reuse the same helper for all these variants.  Also, the
> helper function might need to contain a double-dash in its name because
> this is inherently a private function.

This makes sense to me, although I have not found the same need for these
to be marked. I'm happy to extend them as such; I'll add that in a later
patch.

> Please use `quote' to quote things in Emacs docstrings.  Also, both here
> and in other docstrings, the newline immediately after the first line,
> while seems necessary, is usually redundant in Emacs docstrings.  And
> there is a typo: "amrk" -> "mark".
>
> I also think you shouldn't use wildcard-like elements in quotes (in your
> case, you reuse part of the name in the quote), but I'm not sure.

Done. Updated patch attached.

On Sun, Apr 16, 2023 at 11:17=E2=80=AFPM Ruijie Yu <ruijie@HIDDEN> wrote=
:

>
> Zachary Kanfer <zkanfer@HIDDEN> writes:
>
> > Attached is a patch to add #'mark-sexp-forwards and
> #'mark-sexp-backwards. These functions extend the region by sexps forward
> and
> > backward. They are mutually incremental: you can call mark-sexp-fowards=
,
> then mark-sexp-backwards twice, then mark-sexp-forwards. After
> > this, the region will consist of the two sexps before point and the two
> sexps after point.
>
> If this is to be accepted, why not extend it to all like mark functions,
> listed below?  Implementing them should be pretty similar, and you might
> even be able to reuse the same helper for all these variants.  Also, the
> helper function might need to contain a double-dash in its name because
> this is inherently a private function.
>
> - `mark-defun'
> - `mark-page'
> - `mark-paragraph'
> - `mark-word'
>
> > +(defun mark-sexp-helper (number-of-expressions)
> > +  "A helper function for 'mark-sexp-[forward, backward]'.
> > +
> > +If NUMBER-OF-EXPRESSIONS is positive, mark that many sexps forward;
> > +otherwise, amrk backward."
>
> Please use `quote' to quote things in Emacs docstrings.  Also, both here
> and in other docstrings, the newline immediately after the first line,
> while seems necessary, is usually redundant in Emacs docstrings.  And
> there is a typo: "amrk" -> "mark".
>
> I also think you shouldn't use wildcard-like elements in quotes (in your
> case, you reuse part of the name in the quote), but I'm not sure.
>
> --
> Best,
>
>
> RY
>

--0000000000007b9fce05f9bdc53b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><span class=3D"gmail-im">&gt; If this is to be accepted, w=
hy not extend it to all like mark functions,<br>
&gt; listed below?=C2=A0 Implementing them should be pretty similar, and yo=
u might<br>&gt; even be able to reuse the same helper for all these variant=
s.=C2=A0 Also, the<br>
&gt; helper function might need to contain a double-dash in its name becaus=
e<br><div>
&gt; this is inherently a private function.</div><div><br></div></span><div=
>This makes sense to me, although I have not found the same need for these =
to be marked. I&#39;m happy to extend them as such; I&#39;ll add that in a =
later patch.<br></div><span class=3D"gmail-im"><div><br></div><div>&gt; Ple=
ase use `quote&#39; to quote things in Emacs docstrings.=C2=A0 Also, both h=
ere<br>&gt; and in other docstrings, the newline immediately after the firs=
t line,<br>&gt; while seems necessary, is usually redundant in Emacs docstr=
ings.=C2=A0 And<br>&gt; there is a typo: &quot;amrk&quot; -&gt; &quot;mark&=
quot;.<br>&gt; <br>&gt; I also think you shouldn&#39;t use wildcard-like el=
ements in quotes (in your<br>&gt; case, you reuse part of the name in the q=
uote), but I&#39;m not sure.</div><div><br></div></span><div>Done. Updated =
patch attached.</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"gmail_attr">On Sun, Apr 16, 2023 at 11:17=E2=80=AFPM Ruijie Yu &lt=
;<a href=3D"mailto:ruijie@HIDDEN">ruijie@HIDDEN</a>&gt; wrote:<br></d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Zachary Kanfer &lt;<a href=3D"mailto:zkanfer@HIDDEN" target=3D"_blank">z=
kanfer@HIDDEN</a>&gt; writes:<br>
<br>
&gt; Attached is a patch to add #&#39;mark-sexp-forwards and #&#39;mark-sex=
p-backwards. These functions extend the region by sexps forward and<br>
&gt; backward. They are mutually incremental: you can call mark-sexp-foward=
s, then mark-sexp-backwards twice, then mark-sexp-forwards. After<br>
&gt; this, the region will consist of the two sexps before point and the tw=
o sexps after point.<br>
<br>
If this is to be accepted, why not extend it to all like mark functions,<br=
>
listed below?=C2=A0 Implementing them should be pretty similar, and you mig=
ht<br>
even be able to reuse the same helper for all these variants.=C2=A0 Also, t=
he<br>
helper function might need to contain a double-dash in its name because<br>
this is inherently a private function.<br>
<br>
- `mark-defun&#39;<br>
- `mark-page&#39;<br>
- `mark-paragraph&#39;<br>
- `mark-word&#39;<br>
<br>
&gt; +(defun mark-sexp-helper (number-of-expressions)<br>
&gt; +=C2=A0 &quot;A helper function for &#39;mark-sexp-[forward, backward]=
&#39;.<br>
&gt; +<br>
&gt; +If NUMBER-OF-EXPRESSIONS is positive, mark that many sexps forward;<b=
r>
&gt; +otherwise, amrk backward.&quot;<br>
<br>
Please use `quote&#39; to quote things in Emacs docstrings.=C2=A0 Also, bot=
h here<br>
and in other docstrings, the newline immediately after the first line,<br>
while seems necessary, is usually redundant in Emacs docstrings.=C2=A0 And<=
br>
there is a typo: &quot;amrk&quot; -&gt; &quot;mark&quot;.<br>
<br>
I also think you shouldn&#39;t use wildcard-like elements in quotes (in you=
r<br>
case, you reuse part of the name in the quote), but I&#39;m not sure.<br>
<br>
-- <br>
Best,<br>
<br>
<br>
RY<br>
</blockquote></div>

--0000000000007b9fce05f9bdc53b--

--0000000000007b9fcf05f9bdc53d
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Add-mark-sexp-forward-mark-sexp-backward.patch"
Content-Disposition: attachment; 
	filename="0001-Add-mark-sexp-forward-mark-sexp-backward.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lgoohlqz0>
X-Attachment-Id: f_lgoohlqz0

RnJvbSA1YjMzNTIwYTczYThmMTE2ZmI4OWJhMjUzZjY2MzZjOTU3M2M5ZDJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNoYXJ5IEthbmZlciA8emthbmZlckBnbWFpbC5jb20+CkRh
dGU6IFN1biwgMTYgQXByIDIwMjMgMjI6MTY6MzkgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBZGQg
bWFyay1zZXhwLWZvcndhcmQsIG1hcmstc2V4cC1iYWNrd2FyZAoKLS0tCiBldGMvTkVXUyAgICAg
ICAgICAgICAgICB8ICA0ICsrKysKIGxpc3AvZW1hY3MtbGlzcC9saXNwLmVsIHwgNDEgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNDUg
aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggYzYx
YTllYzNjNWYuLjlmMmI3ZDIxZjliIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVX
UwpAQCAtODEsNiArODEsMTAgQEAgbWlzdGFrZW4gY29tcG9zaXRpb25zLCB0aGlzIHdpbGwgbm93
IHdvcmsgYXMgd2VsbC4KIFRoaXMgd29ya3MgbGlrZSAna2lsbC1tYXRjaGluZy1idWZmZXJzJywg
YnV0IHdpdGhvdXQgYXNraW5nIGZvcgogY29uZmlybWF0aW9uLgogCistLS0KKyoqIE5ldyBjb21t
YW5kcyAnbWFyay1zZXhwLWZvcndhcmQnIGFuZCAnbWFyay1zZXhwLWJhY2t3YXJkJy4KK1RoZXNl
IHdvcmsgbGlrZSBtYXJrLXNleHAsIGJ1dCBleHBsaWNpdGx5IGFsbG93IHNleHBzIHRvIGJlIG1h
cmtlZCBmb3J3YXJkIGFuZCBiYWNrd2FyZC4KKwogDAogKiBDaGFuZ2VzIGluIFNwZWNpYWxpemVk
IE1vZGVzIGFuZCBQYWNrYWdlcyBpbiBFbWFjcyAzMC4xCiAKZGlmZiAtLWdpdCBhL2xpc3AvZW1h
Y3MtbGlzcC9saXNwLmVsIGIvbGlzcC9lbWFjcy1saXNwL2xpc3AuZWwKaW5kZXggNDE3YzIxOGM2
ZDcuLmNkZDk0NTljNDM2IDEwMDY0NAotLS0gYS9saXNwL2VtYWNzLWxpc3AvbGlzcC5lbAorKysg
Yi9saXNwL2VtYWNzLWxpc3AvbGlzcC5lbApAQCAtMTI5LDYgKzEyOSw0NyBAQCBtYXJrLXNleHAK
IAkgICAgKHBvaW50KSkKIAkgIG5pbCB0KSkpKQogCisoZGVmdW4gbWFyay1zZXhwLS1oZWxwZXIg
KG51bWJlci1vZi1leHByZXNzaW9ucykKKyAgIkEgaGVscGVyIGZ1bmN0aW9uIGZvciBgbWFyay1z
ZXhwLWZvcndhcmQnLCBgbWFyay1zZXhwLWJhY2t3YXJkJy4KKworSWYgTlVNQkVSLU9GLUVYUFJF
U1NJT05TIGlzIHBvc2l0aXZlLCBtYXJrIHRoYXQgbWFueSBzZXhwcyBmb3J3YXJkOworb3RoZXJ3
aXNlLCBtYXJrIGJhY2t3YXJkLiIKKyAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAobGV0KiAo
KGZvcndhcmQgKD49IG51bWJlci1vZi1leHByZXNzaW9ucyAwKSkKKyAgICAgICAgICAgICAoYmVn
aW5uaW5nLW9mLXJlZ2lvbiAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgICAgICAgKGVuZC1v
Zi1yZWdpb24gKHJlZ2lvbi1lbmQpKQorICAgICAgICAgICAgIChhdC1lbmQtb2YtcmVnaW9uICg9
IGVuZC1vZi1yZWdpb24gKHBvaW50KSkpCisgICAgICAgICAgICAgKG5ldy1ib3JkZXItcG9pbnQK
KyAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgKGdvdG8tY2hh
ciAoaWYgZm9yd2FyZCAocmVnaW9uLWVuZCkgKHJlZ2lvbi1iZWdpbm5pbmcpKSkKKyAgICAgICAg
ICAgICAgICAoY29uZGl0aW9uLWNhc2UgbmlsCisgICAgICAgICAgICAgICAgICAgIChmb3J3YXJk
LXNleHAgbnVtYmVyLW9mLWV4cHJlc3Npb25zKQorICAgICAgICAgICAgICAgICAgKHNjYW4tZXJy
b3IgKHVzZXItZXJyb3IgIk5vIG1vcmUgcy1leHByZXNzaW9ucyB0aGVyZSEiKSkpCisgICAgICAg
ICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAgICAgKG5ldy1iZWdpbm5pbmctb2YtcmVnaW9u
IChtaW4gYmVnaW5uaW5nLW9mLXJlZ2lvbiBuZXctYm9yZGVyLXBvaW50KSkKKyAgICAgICAgICAg
ICAobmV3LWVuZC1vZi1yZWdpb24gKG1heCBlbmQtb2YtcmVnaW9uIG5ldy1ib3JkZXItcG9pbnQp
KSkKKyAgICAgICAgKGdvdG8tY2hhciAoaWYgYXQtZW5kLW9mLXJlZ2lvbgorICAgICAgICAgICAg
ICAgICAgICAgICBuZXctZW5kLW9mLXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgbmV3LWJl
Z2lubmluZy1vZi1yZWdpb24pKQorICAgICAgICAoc2V0LW1hcmsgKGlmIGF0LWVuZC1vZi1yZWdp
b24KKyAgICAgICAgICAgICAgICAgICAgICBuZXctYmVnaW5uaW5nLW9mLXJlZ2lvbgorICAgICAg
ICAgICAgICAgICAgICBuZXctZW5kLW9mLXJlZ2lvbikpKQorICAgIChtYXJrLXNleHAgbnVtYmVy
LW9mLWV4cHJlc3Npb25zKSkpCisKKyhkZWZ1biBtYXJrLXNleHAtZm9yd2FyZCAoJm9wdGlvbmFs
IG51bWJlci1vZi1leHByZXNzaW9ucykKKyAgIk1hcmsgTlVNQkVSLU9GLUVYUFJFU1NJT05TIHMt
ZXhwcmVzc2lvbnMgZm9yd2FyZC4KKworIFJlcGVhdGVkIGNhbGxzIHRvIHRoaXMgbWFyayBtb3Jl
IHMtZXhwcmVzc2lvbnMuIgorICAoaW50ZXJhY3RpdmUgInAiKQorICAobWFyay1zZXhwLS1oZWxw
ZXIgKG9yIG51bWJlci1vZi1leHByZXNzaW9ucyAxKSkpCisKKyhkZWZ1biBtYXJrLXNleHAtYmFj
a3dhcmQgKCZvcHRpb25hbCBudW1iZXItb2YtZXhwcmVzc2lvbnMpCisgICJNYXJrIE5VTUJFUi1P
Ri1FWFBSRVNTSU9OUyBzLWV4cHJlc3Npb25zIGJhY2t3YXJkLgorCisgUmVwZWF0ZWQgY2FsbHMg
dG8gdGhpcyBtYXJrIG1vcmUgcy1leHByZXNzaW9ucy4iCisgIChpbnRlcmFjdGl2ZSAicCIpCisg
IChtYXJrLXNleHAtLWhlbHBlciAoLSAob3IgbnVtYmVyLW9mLWV4cHJlc3Npb25zIDEpKSkpCisK
IChkZWZ1biBmb3J3YXJkLWxpc3QgKCZvcHRpb25hbCBhcmcgaW50ZXJhY3RpdmUpCiAgICJNb3Zl
IGZvcndhcmQgYWNyb3NzIG9uZSBiYWxhbmNlZCBncm91cCBvZiBwYXJlbnRoZXNlcy4KIFRoaXMg
Y29tbWFuZCB3aWxsIGFsc28gd29yayBvbiBvdGhlciBwYXJlbnRoZXNlcy1saWtlIGV4cHJlc3Np
b25zCi0tIAoyLjM4LjQKCg==
--0000000000007b9fcf05f9bdc53d--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 20 Apr 2023 07:17:02 +0000
Resent-Message-ID: <handler.62892.B62892.168197498831374 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>
Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, Juri Linkov <juri@HIDDEN>
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168197498831374
          (code B ref 62892); Thu, 20 Apr 2023 07:17:02 +0000
Received: (at 62892) by debbugs.gnu.org; 20 Apr 2023 07:16:28 +0000
Received: from localhost ([127.0.0.1]:36439 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ppOWp-00089w-Qh
	for submit <at> debbugs.gnu.org; Thu, 20 Apr 2023 03:16:28 -0400
Received: from eggs.gnu.org ([209.51.188.92]:55972)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1ppOWn-00089h-Eu
 for 62892 <at> debbugs.gnu.org; Thu, 20 Apr 2023 03:16:26 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1ppOWg-00023K-F2; Thu, 20 Apr 2023 03:16:19 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=+eTyGeaKAKSVQwnmW8X/sVflTHryL+1BqyXBxQdiO7s=; b=S5g6qc1SrS7U
 /PyFcfIgTDdPRtdq/WYYqqblEJ87ki8CfgCkLgNR5Zhiym4tlCJ1JMhVy69/NR/kTkh2rzHjZk4dg
 ff2SXE1Sdy38REIm4j7Jae7q6mjHk0utlD2M3V3wwmtUBQu+c0fPn1KgenF4HRGKUIj3l9O9mEWgo
 eccwlShhSPChVxyPntPfQLdfKVndXjGjtzcXO+z8lYnqwGln8XSwz4affI9/jxwRpQOt4w7WErWss
 XmUqDQaNfa4H0I02OQHDf5IKHVUVTgC1VdrvXCPbG1V7BMqUcY0Yn7+ARcAwcsJiHKKjzxyG9CmbL
 7KC+rHG4a4DAxFj3LTuRvQ==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1ppOWf-0003GI-Ry; Thu, 20 Apr 2023 03:16:18 -0400
Date: Thu, 20 Apr 2023 10:16:30 +0300
Message-Id: <83a5z36n1t.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CAFXT+RPwL_cFJUmOMhocsGR4xnAd_RCE2kaZD3nQifY9pk7vYQ@HIDDEN>
 (message from Zachary Kanfer on Thu, 20 Apr 2023 01:25:29 -0400)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN>
 <CAFXT+RPwL_cFJUmOMhocsGR4xnAd_RCE2kaZD3nQifY9pk7vYQ@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: 62892 <at> debbugs.gnu.org
> From: Zachary Kanfer <zkanfer@HIDDEN>
> Date: Thu, 20 Apr 2023 01:25:29 -0400
> 
> > If this is to be accepted, why not extend it to all like mark functions,
> > listed below?  Implementing them should be pretty similar, and you might
> > even be able to reuse the same helper for all these variants.  Also, the
> > helper function might need to contain a double-dash in its name because
> > this is inherently a private function.
> 
> This makes sense to me, although I have not found the same need for these to be marked. I'm happy
> to extend them as such; I'll add that in a later patch.
> 
> > Please use `quote' to quote things in Emacs docstrings.  Also, both here
> > and in other docstrings, the newline immediately after the first line,
> > while seems necessary, is usually redundant in Emacs docstrings.  And
> > there is a typo: "amrk" -> "mark".
> > 
> > I also think you shouldn't use wildcard-like elements in quotes (in your
> > case, you reuse part of the name in the quote), but I'm not sure.
> 
> Done. Updated patch attached.

Thanks.

Did you see the comment by Juri, viz.:

> Did you know that it's possible to switch directions by typing 'C-x C-x'.
> After that 'C-M-@' extends the region backwards.

AFAIU, this means we already have an easy method to have C-M-@ switch
directions, and the changes you propose might therefore be
unnecessary.  WDYT?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 21 Apr 2023 05:05:01 +0000
Resent-Message-ID: <handler.62892.B62892.168205348911670 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, Juri Linkov <juri@HIDDEN>
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168205348911670
          (code B ref 62892); Fri, 21 Apr 2023 05:05:01 +0000
Received: (at 62892) by debbugs.gnu.org; 21 Apr 2023 05:04:49 +0000
Received: from localhost ([127.0.0.1]:39075 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ppiwy-000329-T9
	for submit <at> debbugs.gnu.org; Fri, 21 Apr 2023 01:04:49 -0400
Received: from mail-ot1-f48.google.com ([209.85.210.48]:59772)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1ppiwx-00031x-35
 for 62892 <at> debbugs.gnu.org; Fri, 21 Apr 2023 01:04:47 -0400
Received: by mail-ot1-f48.google.com with SMTP id
 46e09a7af769-6a5ebf9f432so1383266a34.3
 for <62892 <at> debbugs.gnu.org>; Thu, 20 Apr 2023 22:04:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1682053481; x=1684645481;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=TaCmExa3kha+YRrFsImuxgiOr2LwRjBVtxn1XDodXPg=;
 b=GzZAz0rTZSx9PJ7YdqJG6C8nitS8gyGMGkJhdjdTbGYSE+EpxVOsV9Zw2NlMmCPM1W
 QLEEHfUWB114YQ8bUnuNxYXeJ9txCGgvChE8sw5+/d04Q1cdpiQPIzc1iEvHtjZOA5Gp
 V3iUmPVRtCsTclkHLucaa3H0nAMt6HASRAOepXswDjXfv0TUpqmnJL0HM2oL0pzwnztZ
 Xa6d3U26cjsx6VvIIA5zAyRroGaXMuzr9XkXjAvRdeBcSwvxAIme/E7C6y6znN/sgpy2
 EJryqmkDpfRfgk8GB8AzU2bC1LLGhYho4QOOcloNIta2MxeNNYLvlkuzRfaFBBXgpomM
 M0TQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1682053481; x=1684645481;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=TaCmExa3kha+YRrFsImuxgiOr2LwRjBVtxn1XDodXPg=;
 b=N4aAQyPRwYwc+hNUu8oZFHqmRvns2GYyitDFNu/5ShD6O5Cb4Oxfw50WeDRxLOea4+
 OdNowzcyfdtLWSXvQ7cl5fDbXIcrO1GFpQb2u4JxNUcd/i+XhOzBQkWNXiIgHZ/Bz4UC
 KzL6bHSAzZ/mr74xKDn56rdjGnL/1pTb2eCMYiW2UJM5S+SP2noUmqitKY7Ywy4nSksA
 1ccTcjms7ApOYREYzsCXahrCAs3ulAIvhwJ77kUcr1DY4yDN8SxMJO7FGeOZZk70dN8E
 r3tYAObvsoExD8IRiimRVO9p6RaPi2mTlYxdrVo36kYnmYd0ij/kaR9gtI0FbSSNZjU4
 HeTw==
X-Gm-Message-State: AAQBX9dGaw78NEDM1xdqO2vWysqfCAHdGCtl9ctuRMfSHkJw3QRCx2GQ
 Lm+5urhYVcL0O4xvk8a2PXCQKsC9QHPHDvlN11c=
X-Google-Smtp-Source: AKy350ZgmBC3rSip3XBrCbeu+UEXA/58GxMASpO0Vc8gJDpbORu0oZiuJ0IPW8eUiElg0lB3NTkhrVCyZx2AyVgJMfY=
X-Received: by 2002:a05:6808:10d5:b0:38c:581f:6c90 with SMTP id
 s21-20020a05680810d500b0038c581f6c90mr2511508ois.57.1682053481011; Thu, 20
 Apr 2023 22:04:41 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN>
 <CAFXT+RPwL_cFJUmOMhocsGR4xnAd_RCE2kaZD3nQifY9pk7vYQ@HIDDEN>
 <83a5z36n1t.fsf@HIDDEN>
In-Reply-To: <83a5z36n1t.fsf@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Fri, 21 Apr 2023 01:04:30 -0400
Message-ID: <CAFXT+RP6=wpj8nQG63-zxDkGiW-4a=LJ3Qf_q0cU-TqGSs-dmw@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000003a9e0805f9d19822"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000003a9e0805f9d19822
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

It's able to be worked around, yes -- but I think it's easier to have
separate methods for forward and backward, the way we do for so many other
commands. For one, having separate functions makes it easier to start
moving backward, (rather than giving a -1 prefix argument.

It's especially useful, I think, because on default Emacs, both C-M-SPC and
C-M-S-SPC are bound to mark-sexp; it's quite nice to have C-M-SPC bound to
mark-sexp-forward and C-M-S-SPC bound to mark-sexp-backward. So there are
seemingly obvious keybindings to use for it (even if not in stock Emacs).

On Thu, Apr 20, 2023 at 3:16=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wrote:

> > Cc: 62892 <at> debbugs.gnu.org
> > From: Zachary Kanfer <zkanfer@HIDDEN>
> > Date: Thu, 20 Apr 2023 01:25:29 -0400
> >
> > > If this is to be accepted, why not extend it to all like mark
> functions,
> > > listed below?  Implementing them should be pretty similar, and you
> might
> > > even be able to reuse the same helper for all these variants.  Also,
> the
> > > helper function might need to contain a double-dash in its name becau=
se
> > > this is inherently a private function.
> >
> > This makes sense to me, although I have not found the same need for
> these to be marked. I'm happy
> > to extend them as such; I'll add that in a later patch.
> >
> > > Please use `quote' to quote things in Emacs docstrings.  Also, both
> here
> > > and in other docstrings, the newline immediately after the first line=
,
> > > while seems necessary, is usually redundant in Emacs docstrings.  And
> > > there is a typo: "amrk" -> "mark".
> > >
> > > I also think you shouldn't use wildcard-like elements in quotes (in
> your
> > > case, you reuse part of the name in the quote), but I'm not sure.
> >
> > Done. Updated patch attached.
>
> Thanks.
>
> Did you see the comment by Juri, viz.:
>
> > Did you know that it's possible to switch directions by typing 'C-x C-x=
'.
> > After that 'C-M-@' extends the region backwards.
>
> AFAIU, this means we already have an easy method to have C-M-@ switch
> directions, and the changes you propose might therefore be
> unnecessary.  WDYT?
>

--0000000000003a9e0805f9d19822
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>It&#39;s able to be worked around, yes -- but I think=
 it&#39;s easier to have separate methods for forward and backward, the way=
 we do for so many other commands. For one, having separate functions makes=
 it easier to start moving backward, (rather than giving a -1 prefix argume=
nt.<br></div><div><br></div><div>It&#39;s especially useful, I think, becau=
se on default Emacs, both C-M-SPC and C-M-S-SPC are bound to mark-sexp; it&=
#39;s quite nice to have C-M-SPC bound to mark-sexp-forward and C-M-S-SPC b=
ound to mark-sexp-backward. So there are seemingly obvious keybindings to u=
se for it (even if not in stock Emacs).<br></div></div><br><div class=3D"gm=
ail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Apr 20, 2023 at 3:=
16=E2=80=AFAM Eli Zaretskii &lt;<a href=3D"mailto:eliz@HIDDEN">eliz@HIDDEN=
g</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"=
>&gt; Cc: <a href=3D"mailto:62892 <at> debbugs.gnu.org" target=3D"_blank">62892@=
debbugs.gnu.org</a><br>
&gt; From: Zachary Kanfer &lt;<a href=3D"mailto:zkanfer@HIDDEN" target=
=3D"_blank">zkanfer@HIDDEN</a>&gt;<br>
&gt; Date: Thu, 20 Apr 2023 01:25:29 -0400<br>
&gt; <br>
&gt; &gt; If this is to be accepted, why not extend it to all like mark fun=
ctions,<br>
&gt; &gt; listed below?=C2=A0 Implementing them should be pretty similar, a=
nd you might<br>
&gt; &gt; even be able to reuse the same helper for all these variants.=C2=
=A0 Also, the<br>
&gt; &gt; helper function might need to contain a double-dash in its name b=
ecause<br>
&gt; &gt; this is inherently a private function.<br>
&gt; <br>
&gt; This makes sense to me, although I have not found the same need for th=
ese to be marked. I&#39;m happy<br>
&gt; to extend them as such; I&#39;ll add that in a later patch.<br>
&gt; <br>
&gt; &gt; Please use `quote&#39; to quote things in Emacs docstrings.=C2=A0=
 Also, both here<br>
&gt; &gt; and in other docstrings, the newline immediately after the first =
line,<br>
&gt; &gt; while seems necessary, is usually redundant in Emacs docstrings.=
=C2=A0 And<br>
&gt; &gt; there is a typo: &quot;amrk&quot; -&gt; &quot;mark&quot;.<br>
&gt; &gt; <br>
&gt; &gt; I also think you shouldn&#39;t use wildcard-like elements in quot=
es (in your<br>
&gt; &gt; case, you reuse part of the name in the quote), but I&#39;m not s=
ure.<br>
&gt; <br>
&gt; Done. Updated patch attached.<br>
<br>
Thanks.<br>
<br>
Did you see the comment by Juri, viz.:<br>
<br>
&gt; Did you know that it&#39;s possible to switch directions by typing &#3=
9;C-x C-x&#39;.<br>
&gt; After that &#39;C-M-@&#39; extends the region backwards.<br>
<br>
AFAIU, this means we already have an easy method to have C-M-@ switch<br>
directions, and the changes you propose might therefore be<br>
unnecessary.=C2=A0 WDYT?<br>
</blockquote></div>

--0000000000003a9e0805f9d19822--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 21 Apr 2023 06:07:01 +0000
Resent-Message-ID: <handler.62892.B62892.168205722019549 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Lars Ingebrigtsen <larsi@HIDDEN>
Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, juri@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168205722019549
          (code B ref 62892); Fri, 21 Apr 2023 06:07:01 +0000
Received: (at 62892) by debbugs.gnu.org; 21 Apr 2023 06:07:00 +0000
Received: from localhost ([127.0.0.1]:39120 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ppjvA-00055F-06
	for submit <at> debbugs.gnu.org; Fri, 21 Apr 2023 02:07:00 -0400
Received: from eggs.gnu.org ([209.51.188.92]:60228)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1ppjv8-00054z-Ck
 for 62892 <at> debbugs.gnu.org; Fri, 21 Apr 2023 02:06:58 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1ppjv1-0000aB-MO; Fri, 21 Apr 2023 02:06:51 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=PFkRzgwy6Xz/QIhZbByTGPYN5bJ20R/FWkOQF0LXqI8=; b=jbjeFAbAauD6
 s8zKDnOcYoPLcy+KUyCgZkthi9ToV9WomAWT0DIsPQOZid5y9NEvnCYTaeWixcJNRso1BpvLVjETt
 G+JuZEeUj5YeMzyPb7SR+8KADxF4JArpJdDtz8BUi+25JePxrUjBCP5B804oJ2pIKG/K503se6BXj
 ex2TSwsaenX37cRjnt2YupPhf9lIq6fU3cXZxc7l3zbmJpXlgPcdxLnK5FfNUgszWYANUauJ0gvSJ
 ufCUYxdhd1DPdYyQxd3Dkm8/aFkwCeBkbbacmivMp52uQfkIKprwd9PWkIXWj+EXDxo+q+xJlqiPp
 FU9EFyJLPoyhabPGKjG9Vw==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1ppjuy-0000en-AE; Fri, 21 Apr 2023 02:06:51 -0400
Date: Fri, 21 Apr 2023 09:07:03 +0300
Message-Id: <83mt314vlk.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CAFXT+RP6=wpj8nQG63-zxDkGiW-4a=LJ3Qf_q0cU-TqGSs-dmw@HIDDEN>
 (message from Zachary Kanfer on Fri, 21 Apr 2023 01:04:30 -0400)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN>
 <CAFXT+RPwL_cFJUmOMhocsGR4xnAd_RCE2kaZD3nQifY9pk7vYQ@HIDDEN>
 <83a5z36n1t.fsf@HIDDEN>
 <CAFXT+RP6=wpj8nQG63-zxDkGiW-4a=LJ3Qf_q0cU-TqGSs-dmw@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Zachary Kanfer <zkanfer@HIDDEN>
> Date: Fri, 21 Apr 2023 01:04:30 -0400
> Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, Juri Linkov <juri@HIDDEN>
> 
> It's able to be worked around, yes -- but I think it's easier to have separate methods for forward and
> backward, the way we do for so many other commands. For one, having separate functions makes it
> easier to start moving backward, (rather than giving a -1 prefix argument.

Adding functions and commands is not free, it does come with a price:
they need to be documented in our two manuals (something your patch
neglected to do, btw), users need to learn them, etc.

So I wonder whether on balance it is justified to add this.  Lars,
Stefan: any comments or opinions?

Does anyone else have an opinion?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eshel Yaron <me@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 21 Apr 2023 07:25:01 +0000
Resent-Message-ID: <handler.62892.B62892.168206186727950 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: Zachary Kanfer <zkanfer@HIDDEN>, juri@HIDDEN, ruijie@HIDDEN, Stefan Monnier <monnier@HIDDEN>, Lars Ingebrigtsen <larsi@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168206186727950
          (code B ref 62892); Fri, 21 Apr 2023 07:25:01 +0000
Received: (at 62892) by debbugs.gnu.org; 21 Apr 2023 07:24:27 +0000
Received: from localhost ([127.0.0.1]:39154 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ppl87-0007Gj-2K
	for submit <at> debbugs.gnu.org; Fri, 21 Apr 2023 03:24:27 -0400
Received: from mail.eshelyaron.com ([107.175.124.16]:40414 helo=eshelyaron.com)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <me@HIDDEN>) id 1ppl85-0007Gb-0k
 for 62892 <at> debbugs.gnu.org; Fri, 21 Apr 2023 03:24:25 -0400
From: Eshel Yaron <me@HIDDEN>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com;
 s=mail; t=1682061864;
 bh=CGNwtgwn488LcHIGQRDRyWvKePgRfViUfYbRZzYDYqM=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=eeCFjXIo2bwv+dGzhjb5TWidu8MnWc/5C5rMeQcv+DFr35qgGI3SGmyDe0YmDdXVI
 rWMQatrNu3LrqyhtcGpH6/hDH/jr/o7jZRTDK2kn5X1Y2lvBZiWF2P5Uq0IXj2lM20
 y/oEH+Psu+zMbHW91fe73UauTwGTWXnRVffJhkzj7FfuI/vNrnxMo1/aEfQZts9lAM
 mWOZMMsNAa0NTwKwiPqEy4Owp06fcTq8w87xLJRktKJKLxa02EXpqE1xLk4TCYkzou
 AKHzeWhD4noDYZnM6O01gjnCP7k28LOjXZFRmAcnJKCUNa96eiuONze0ZqDrNwrqzR
 Vbt/A6YGlB/+A==
In-Reply-To: <83mt314vlk.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 21 Apr
 2023 09:07:03 +0300")
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN>
 <CAFXT+RPwL_cFJUmOMhocsGR4xnAd_RCE2kaZD3nQifY9pk7vYQ@HIDDEN>
 <83a5z36n1t.fsf@HIDDEN>
 <CAFXT+RP6=wpj8nQG63-zxDkGiW-4a=LJ3Qf_q0cU-TqGSs-dmw@HIDDEN>
 <83mt314vlk.fsf@HIDDEN>
Date: Fri, 21 Apr 2023 10:24:16 +0300
Message-ID: <m1o7nhelzz.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Zachary Kanfer <zkanfer@HIDDEN>
>> Date: Fri, 21 Apr 2023 01:04:30 -0400
>> Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, Juri Linkov <juri@HIDDEN>
>> 
>> It's able to be worked around, yes -- but I think it's easier to have separate methods for forward and
>> backward, the way we do for so many other commands. For one, having separate functions makes it
>> easier to start moving backward, (rather than giving a -1 prefix argument.
>
> Adding functions and commands is not free, it does come with a price:
> they need to be documented in our two manuals (something your patch
> neglected to do, btw), users need to learn them, etc.
>
> So I wonder whether on balance it is justified to add this.  Lars,
> Stefan: any comments or opinions?
>
> Does anyone else have an opinion?

Not really a strong opinion, but just a couple of thoughts:

- The ability to extend the selection forward and backward is a nice and
desirable feature.

- C-x C-x is a general mechanism that's useful in many situations and
users are hopefully already familiar with it (although not necessarily
aware of this specific use case, I wasn't!), so if it fits the bill it
makes sense to reuse it rather than introducing new specialized commands.

- Whatever decision is made with regards to mark-sexp, I think it should
be consistent with similar marking commands.  Notably, mark-word
currently behaves like mark-sexp, and I think that adding e.g.
mark-sexp-backward without also adding mark-word-backward would somewhat
hinder consistency.

Regards,
Eshel





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Visuwesh <visuweshm@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 21 Apr 2023 09:53:01 +0000
Resent-Message-ID: <handler.62892.B62892.168207073913175 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: Zachary Kanfer <zkanfer@HIDDEN>, juri@HIDDEN, ruijie@HIDDEN, Stefan Monnier <monnier@HIDDEN>, Lars Ingebrigtsen <larsi@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168207073913175
          (code B ref 62892); Fri, 21 Apr 2023 09:53:01 +0000
Received: (at 62892) by debbugs.gnu.org; 21 Apr 2023 09:52:19 +0000
Received: from localhost ([127.0.0.1]:39391 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ppnRD-0003QQ-0y
	for submit <at> debbugs.gnu.org; Fri, 21 Apr 2023 05:52:19 -0400
Received: from mail-pl1-f193.google.com ([209.85.214.193]:53433)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <visuweshm@HIDDEN>) id 1ppnR2-0003Pw-Nj
 for 62892 <at> debbugs.gnu.org; Fri, 21 Apr 2023 05:52:18 -0400
Received: by mail-pl1-f193.google.com with SMTP id
 d9443c01a7336-1a69f686345so17541685ad.2
 for <62892 <at> debbugs.gnu.org>; Fri, 21 Apr 2023 02:52:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1682070722; x=1684662722;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=as40eSpEC9JK4d2oa6aGF+PB8v5vCnNaud2OKoK0Peg=;
 b=fTSPEfomz28hFK9S5YG5+9hEjZK6LPu/I0225VluczRO41DcVrmwhv98GkTch21eIv
 VL2x6LiZ0CFTEGzxYsegZQagpIXd81bwgj/L4+cqtbw+Hduz/17KZyMMilT39VsvFR+q
 RTHeyuyCuIGhrUvND+RaN8J2bOpoCR/ko44kJAyMmzB2nUg0v7PYzg0y6kXw/PGAdNg4
 Eo2NL4MOeK7q1ZT5BhmL59yDWxJo0yQmWvC9F2+bu/oBlUq0N1eWD9zgFvbAgiyO+CDv
 gkUEg5/n0WNjRuEe7vrCUyhVfWXXaqkxDwFcy9MycW+vTuBsaUNDIZwaOh2inTAsqGAA
 4pPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1682070722; x=1684662722;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
 :to:cc:subject:date:message-id:reply-to;
 bh=as40eSpEC9JK4d2oa6aGF+PB8v5vCnNaud2OKoK0Peg=;
 b=GVz8+vIRJuJysKPHKN1xt5qQu1PnjOiHxWIu+Qcyuv8QX6KTBdVYMv0lluiO9tBQDY
 drQMMT9vLLPxycva2EhGPKwiGIsunOXJMtTKYeo3au872w9umMi4A7vQzz6dWnlOwBrw
 xWyW/xZvWLRg65lWqHdFZiWb/WcFRMgdi7XNaOMfRVpSFDZhiaJmWpzYKCXTI+1+Y38A
 4GttTVHZnwLb917hpoimM90YnKNg4RGLb1Uud+NB5eHIuhy77XynuSs5aJnrt+Z9DSKz
 AMAaAm2+7WOKBIC7t7ofGBpNy22U2hu3rpo9VYAL21i62NGybjJ1iF6Cnl7+oo0E+jlQ
 mrVA==
X-Gm-Message-State: AAQBX9elPCdPcnZZpRgb/Kphzdy7Nf83VoIzeJwrNCi0CwDsmdcQd9gi
 6aEuGUA1foOrnbPdA8X+zyg=
X-Google-Smtp-Source: AKy350adcvl9p0mDEA4UkRAjRpg9krc4/RH2kdc/un/iAe9JSjHTh6tpPVYfyj4m6sSQGHIUJ8N+Yg==
X-Received: by 2002:a17:902:c949:b0:1a6:6fe3:df9e with SMTP id
 i9-20020a170902c94900b001a66fe3df9emr5782252pla.47.1682070722563; 
 Fri, 21 Apr 2023 02:52:02 -0700 (PDT)
Received: from localhost ([115.240.90.130]) by smtp.gmail.com with ESMTPSA id
 s1-20020a170902988100b001a1fe40a8dasm2396814plp.262.2023.04.21.02.52.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 21 Apr 2023 02:52:02 -0700 (PDT)
From: Visuwesh <visuweshm@HIDDEN>
In-Reply-To: <83mt314vlk.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 21 Apr
 2023 09:07:03 +0300")
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN>
 <CAFXT+RPwL_cFJUmOMhocsGR4xnAd_RCE2kaZD3nQifY9pk7vYQ@HIDDEN>
 <83a5z36n1t.fsf@HIDDEN>
 <CAFXT+RP6=wpj8nQG63-zxDkGiW-4a=LJ3Qf_q0cU-TqGSs-dmw@HIDDEN>
 <83mt314vlk.fsf@HIDDEN>
Date: Fri, 21 Apr 2023 15:21:59 +0530
Message-ID: <87wn2536m8.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

[=E0=AE=B5=E0=AF=86=E0=AE=B3=E0=AF=8D=E0=AE=B3=E0=AE=BF =E0=AE=8F=E0=AE=AA=
=E0=AF=8D=E0=AE=B0=E0=AE=B2=E0=AF=8D 21, 2023] Eli Zaretskii wrote:

>> From: Zachary Kanfer <zkanfer@HIDDEN>
>> Date: Fri, 21 Apr 2023 01:04:30 -0400
>> Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, Juri Linkov <juri@HIDDEN=
t>
>>=20
>> It's able to be worked around, yes -- but I think it's easier to have se=
parate methods for forward and
>> backward, the way we do for so many other commands. For one, having sepa=
rate functions makes it
>> easier to start moving backward, (rather than giving a -1 prefix argumen=
t.
>
> Adding functions and commands is not free, it does come with a price:
> they need to be documented in our two manuals (something your patch
> neglected to do, btw), users need to learn them, etc.
>
> So I wonder whether on balance it is justified to add this.  Lars,
> Stefan: any comments or opinions?
>
> Does anyone else have an opinion?

In situations like these, I extend the region simply by motion commands
after marking the current sexp.  If I want to go in the opposite
direction, I type C-x C-x.  I don't see myself ever using these
commands.
This mechanism works for every object that has a mark command, not just
sexp which I consider a plus.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 21 Apr 2023 13:11:02 +0000
Resent-Message-ID: <handler.62892.B62892.168208265421492 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Ruijie Yu <ruijie@HIDDEN>
Cc: Zachary Kanfer <zkanfer@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168208265421492
          (code B ref 62892); Fri, 21 Apr 2023 13:11:02 +0000
Received: (at 62892) by debbugs.gnu.org; 21 Apr 2023 13:10:54 +0000
Received: from localhost ([127.0.0.1]:39602 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ppqXO-0005aZ-4L
	for submit <at> debbugs.gnu.org; Fri, 21 Apr 2023 09:10:54 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:32728)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1ppqXM-0005aM-Ux
 for 62892 <at> debbugs.gnu.org; Fri, 21 Apr 2023 09:10:53 -0400
Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 6A44C1000DD;
 Fri, 21 Apr 2023 09:10:47 -0400 (EDT)
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id DEB16100054;
 Fri, 21 Apr 2023 09:10:45 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1682082645;
 bh=xiZccsT+Emum4EtIlJrtIMCfziV0xk6Kw86Z7JDNQ5w=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=UkwvAAWoSweHMOMUuvcaYoXCxLbYx/GqNH4tSZLbuit5zg0WaZZrZ4j/S8SzZ2i0N
 50bGKnXxPfInsl6NJgQEsYcssioJK+sWzwEHYBBs+9Qj4GcJhwVHbyEcbvVI66+Cka
 wK+T58+M6Of+6mthTsfDu9GiogYK016KDEUHEYmnNiAr6YffvggwGwWBss1teXfSmd
 4nVCTSVqiuWfNMSM3S/flWEVjzSk8g+yMXgBNephOCzcRRHnvQfuMjNUTLvZS6DJEX
 vM3lelnpVsp7SR+fTZSvNsqJ6j8oz9rOKrse4dxB8dewmGIZTdMCEkEwwpgg6OtRUT
 EMC0k7vMsh1Ow==
Received: from pastel (unknown [45.72.217.176])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 35B0F1201A7;
 Fri, 21 Apr 2023 09:10:45 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <sdvcz43w63q.fsf@HIDDEN> (Ruijie Yu's message of "Mon, 17 Apr
 2023 11:06:03 +0800")
Message-ID: <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN>
Date: Fri, 21 Apr 2023 09:10:43 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.218 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain T_SCC_BODY_TEXT_LINE    -0.01 -
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> If this is to be accepted, why not extend it to all like mark functions,
> listed below?  Implementing them should be pretty similar, and you might
> even be able to reuse the same helper for all these variants.  Also, the
> helper function might need to contain a double-dash in its name because
> this is inherently a private function.
>
> - `mark-defun'
> - `mark-page'
> - `mark-paragraph'
> - `mark-word'

Agreed: we should move towards a more orthogonal/composable design,
where the granularity of the operation (char, word, line, sexp,
paragraph, page, defun, ...) and the operation itself (move, mark) and
the direction and all independent such that we can use any combination
of them.

Both at the ELisp level and at the key-binding level.


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 23 Apr 2023 05:35:01 +0000
Resent-Message-ID: <handler.62892.B62892.168222804732529 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Stefan Monnier <monnier@HIDDEN>
Cc: Ruijie Yu <ruijie@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168222804732529
          (code B ref 62892); Sun, 23 Apr 2023 05:35:01 +0000
Received: (at 62892) by debbugs.gnu.org; 23 Apr 2023 05:34:07 +0000
Received: from localhost ([127.0.0.1]:44452 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pqSMQ-0008SY-HX
	for submit <at> debbugs.gnu.org; Sun, 23 Apr 2023 01:34:07 -0400
Received: from mail-oa1-f46.google.com ([209.85.160.46]:62531)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1pqSML-0008Rz-Fj
 for 62892 <at> debbugs.gnu.org; Sun, 23 Apr 2023 01:34:04 -0400
Received: by mail-oa1-f46.google.com with SMTP id
 586e51a60fabf-187b70ab997so18726592fac.0
 for <62892 <at> debbugs.gnu.org>; Sat, 22 Apr 2023 22:34:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1682228036; x=1684820036;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=qr9gUO7R87LUYbzDvNjx0UE3E7/RTUNw8OQ8v82kiD8=;
 b=ebh2JCGgJgFPZkbeAd3wKb4s0LhWSx/5rltzUnKPIJW7vhG/vFlUxTSZ/Ms8xeaSMb
 0WvIjwlfn/7cQqQwX5BX0KH2mXVKykSH+apwGxuneabSg/Qh17rx7oPbmJ2PAwQm10/2
 hedBJE2Onf1Q33T468hm4RmbgxkUgq1CGBmz96oYFH92YIJcUjioekzYQmhAl4yWIJoo
 gQfkW6iCwIljvADU1/SBW4Td1/BSNvDYXy6e9bIRUe8h+oROA6NMmb27gaGu96D4YEFe
 hW1dyxybu+rB98yPK8o7dnNoazbJ/3ZIYJ7OxOW3Tite7NRFawZo/U9KK1miOlPLD8tn
 qQKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1682228036; x=1684820036;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=qr9gUO7R87LUYbzDvNjx0UE3E7/RTUNw8OQ8v82kiD8=;
 b=SDct5ts4OKL0S/S6CV3TsZlOTATzD+iCEklAdu3WDV6ixeIbW2XgsvhddJe3mpx0/h
 cwSTWD6eS/LbEFaKjBxqLYDBn6LysAc+kclAxVCY2hV8BV0QGTnDVS7tQT9UgDQCfaX3
 j97/nk9VCRdUmS0I29UKsUcbSqdYZ8KaAJ8h7ajgAYpOgL+hexmIg2FwVmDLrAIAZmy9
 NfJ0p5d9NAW6UYB0J1yHZgueXfrEv8yH01n0JAdlol5SkAwQPIybz5vW6c7LZbRUfLfm
 jw/R2UBcMCTQ4vtzkF5HOzg9nt8l6dO7+zlefxWO+aT+Mzv9iR7EtJpVtwaq1iSRGn91
 5TNA==
X-Gm-Message-State: AAQBX9e2EHfHhFGJGv8mWCld7SJ3iTfDWWJ5xb9n3Fc/pKRVgFtciH7F
 gnJWlo+JWNFQpROcuJdhKP+8u4lRZjy08wIXLoQ9wYwf3eQ=
X-Google-Smtp-Source: AKy350Y9h9gVJh5hN+vU4wAMopT7iFYY4S2lcz1NKVn95oWz5YVLTVpvNxJHXa1KsVY/R/aJoHN1+ncO76JN5Ua+hKE=
X-Received: by 2002:a05:6808:3082:b0:38e:6a4c:86e2 with SMTP id
 bl2-20020a056808308200b0038e6a4c86e2mr6292375oib.7.1682228035645; Sat, 22 Apr
 2023 22:33:55 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
In-Reply-To: <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Sun, 23 Apr 2023 01:33:44 -0400
Message-ID: <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000007f2c8e05f9fa3c28"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000007f2c8e05f9fa3c28
Content-Type: multipart/alternative; boundary="0000000000007f2c8c05f9fa3c26"

--0000000000007f2c8c05f9fa3c26
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Attached is a patch with a few updates:

1. Added documentation in doc/emacs/mark.texi, under the mark-sexp section.
I'm unfamiliar with standards for how the manuals are written, but am happy
to update further as needed.
2. Extracted a new helper function mark--helper. This takes two arguments
-- a move function, and a number of how many things to move.

The helper function is able to be used for all mark-*-forward and
mark-*-backward functions; I think this should handle at least some of your
concerns about the composability of the design -- different mark functions
can be made by passing a different move function. For example,
mark-word-forward and mark-word-backward would be defined this way:

(defun mark-word-forward (&optional number-of-words)
  "Mark NUMBER-OF-WORDS words forward.

 Repeated calls to this mark more words."
  (interactive "p")
  (mark--helper #'forward-word (or number-of-words 1)))

(defun mark-word-backward (&optional number-of-words)
  "Mark NUMBER-OF-WORDS words backward.

 Repeated calls to this mark more words."
  (interactive "p")
  (mark--helper #'forward-word (- (or number-of-words 1))))

I'm not exactly sure of the best place to put the helper function, nor
exactly how the different lisp files in Emacs work together. There's no
provide statement; are all the files in lisp/emacs-lisp loaded at the same
time? If so, I'll make the other relevant functions (for marking word,
defun, page, paragraph, line, and char).

Also, whatever the outcome of this patch, I think it would be advisable to
explain somewhere how mark-sexp extends region by the end of region
opposite point; this is not in the docstring or any other documentation
I've seen.

On Fri, Apr 21, 2023 at 9:10=E2=80=AFAM Stefan Monnier <monnier@HIDDEN=
al.ca>
wrote:

> > If this is to be accepted, why not extend it to all like mark functions=
,
> > listed below?  Implementing them should be pretty similar, and you migh=
t
> > even be able to reuse the same helper for all these variants.  Also, th=
e
> > helper function might need to contain a double-dash in its name because
> > this is inherently a private function.
> >
> > - `mark-defun'
> > - `mark-page'
> > - `mark-paragraph'
> > - `mark-word'
>
> Agreed: we should move towards a more orthogonal/composable design,
> where the granularity of the operation (char, word, line, sexp,
> paragraph, page, defun, ...) and the operation itself (move, mark) and
> the direction and all independent such that we can use any combination
> of them.
>
> Both at the ELisp level and at the key-binding level.
>
>
>         Stefan
>
>

--0000000000007f2c8c05f9fa3c26
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Attached is a patch with a few updates:<br><div><br></div>=
<div>1. Added documentation in doc/emacs/mark.texi, under the mark-sexp sec=
tion. I&#39;m unfamiliar with standards for how the manuals are written, bu=
t am happy to update further as needed.</div><div>2. Extracted a new helper=
 function mark--helper. This takes two arguments -- a move function, and a =
number of how many things to move.</div><div><br></div><div>The helper func=
tion is able to be used for all mark-*-forward and mark-*-backward function=
s; I think this should handle at least some of your concerns about the comp=
osability of the design -- different mark functions can be made by passing =
a different move function. For example, mark-word-forward and mark-word-bac=
kward would be defined this way:</div><div><br></div><div>(defun mark-word-=
forward (&amp;optional number-of-words)<br>=C2=A0 &quot;Mark NUMBER-OF-WORD=
S words forward.<br><br>=C2=A0Repeated calls to this mark more words.&quot;=
<br>=C2=A0 (interactive &quot;p&quot;)<br>=C2=A0 (mark--helper #&#39;forwar=
d-word (or number-of-words 1)))<br><br>(defun mark-word-backward (&amp;opti=
onal number-of-words)<br>=C2=A0 &quot;Mark NUMBER-OF-WORDS words backward.<=
br><br>=C2=A0Repeated calls to this mark more words.&quot;<br>=C2=A0 (inter=
active &quot;p&quot;)<br>=C2=A0 (mark--helper #&#39;forward-word (- (or num=
ber-of-words 1))))</div><div><br></div><div>I&#39;m not exactly sure of the=
 best place to put the helper function, nor exactly how the different lisp =
files in Emacs work together. There&#39;s no provide statement; are all the=
 files in lisp/emacs-lisp loaded at the same time? If so, I&#39;ll make the=
 other relevant functions (for marking word, defun, page, paragraph, line, =
and char).</div><div><br></div><div>Also, whatever the outcome of this patc=
h, I think it would be advisable to explain somewhere how mark-sexp extends=
 region by the end of region opposite point; this is not in the docstring o=
r any other documentation I&#39;ve seen.<br></div></div><br><div class=3D"g=
mail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Apr 21, 2023 at 9=
:10=E2=80=AFAM Stefan Monnier &lt;<a href=3D"mailto:monnier@HIDDEN=
a">monnier@HIDDEN</a>&gt; wrote:<br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex">&gt; If this is to be accepted, why not extend i=
t to all like mark functions,<br>
&gt; listed below?=C2=A0 Implementing them should be pretty similar, and yo=
u might<br>
&gt; even be able to reuse the same helper for all these variants.=C2=A0 Al=
so, the<br>
&gt; helper function might need to contain a double-dash in its name becaus=
e<br>
&gt; this is inherently a private function.<br>
&gt;<br>
&gt; - `mark-defun&#39;<br>
&gt; - `mark-page&#39;<br>
&gt; - `mark-paragraph&#39;<br>
&gt; - `mark-word&#39;<br>
<br>
Agreed: we should move towards a more orthogonal/composable design,<br>
where the granularity of the operation (char, word, line, sexp,<br>
paragraph, page, defun, ...) and the operation itself (move, mark) and<br>
the direction and all independent such that we can use any combination<br>
of them.<br>
<br>
Both at the ELisp level and at the key-binding level.<br>
<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Stefan<br>
<br>
</blockquote></div>

--0000000000007f2c8c05f9fa3c26--

--0000000000007f2c8e05f9fa3c28
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Add-mark-sexp-forward-mark-sexp-backward.patch"
Content-Disposition: attachment; 
	filename="0001-Add-mark-sexp-forward-mark-sexp-backward.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lgsz4oys0>
X-Attachment-Id: f_lgsz4oys0

RnJvbSBlYzVmYjBiMDlkYzA1ZDU3MjY4NzRjMzE2ZGUwMDI4YTlhNGM0NmIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNoYXJ5IEthbmZlciA8emthbmZlckBnbWFpbC5jb20+CkRh
dGU6IFN1biwgMTYgQXByIDIwMjMgMjI6MTY6MzkgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBZGQg
bWFyay1zZXhwLWZvcndhcmQsIG1hcmstc2V4cC1iYWNrd2FyZAoKLS0tCiBkb2MvZW1hY3MvbWFy
ay50ZXhpICAgICB8ICA4ICsrKysrKysKIGV0Yy9ORVdTICAgICAgICAgICAgICAgIHwgIDQgKysr
KwogbGlzcC9lbWFjcy1saXNwL2xpc3AuZWwgfCA0NiArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspCgpkaWZm
IC0tZ2l0IGEvZG9jL2VtYWNzL21hcmsudGV4aSBiL2RvYy9lbWFjcy9tYXJrLnRleGkKaW5kZXgg
M2YxYzc2YzE1OTEuLjljMjMwYTcyMjUyIDEwMDY0NAotLS0gYS9kb2MvZW1hY3MvbWFyay50ZXhp
CisrKyBiL2RvYy9lbWFjcy9tYXJrLnRleGkKQEAgLTIyNCw2ICsyMjQsMTQgQEAgTWFya2luZyBP
YmplY3RzCiBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1lcmljIGFyZ3VtZW50cyBtb3ZlIHRoZSBt
YXJrIGZvcndhcmQgb3IKIGJhY2t3YXJkIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGV4cHJl
c3Npb25zLgogCitAZmluZGV4IG1hcmstc2V4cC1mb3J3YXJkCisgIEBjb2Rle21hcmstc2V4cC1m
b3J3YXJkfSBpcyBzaW1pbGFyIHRvIEBjb2Rle21hcmstc2V4cH0sIGJ1dCBvbmx5CisgIG1vdmVz
IGZvcndhcmQuCisKK0BmaW5kZXggbWFyay1zZXhwLWJhY2t3YXJkCisgIEBjb2Rle21hcmstc2V4
cC1iYWNrd2FyZH0gaXMgc2ltaWxhciB0byBAY29kZXttYXJrLXNleHB9LCBidXQgb25seQorICBt
b3ZlcyBiYWNrd2FyZC4KKwogICAgVGhlIG90aGVyIGNvbW1hbmRzIGluIHRoZSBhYm92ZSBsaXN0
IHNldCBib3RoIHBvaW50IGFuZCBtYXJrLCBzbyBhcwogdG8gZGVsaW1pdCBhbiBvYmplY3QgaW4g
dGhlIGJ1ZmZlci4gIEBrYmR7TS1ofSAoQGNvZGV7bWFyay1wYXJhZ3JhcGh9KQogbWFya3MgcGFy
YWdyYXBocyAoQHB4cmVme1BhcmFncmFwaHN9KSwgQGtiZHtDLU0taH0gKEBjb2Rle21hcmstZGVm
dW59KQpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCBjNjFhOWVjM2M1Zi4u
OWYyYjdkMjFmOWIgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC04MSw2
ICs4MSwxMCBAQCBtaXN0YWtlbiBjb21wb3NpdGlvbnMsIHRoaXMgd2lsbCBub3cgd29yayBhcyB3
ZWxsLgogVGhpcyB3b3JrcyBsaWtlICdraWxsLW1hdGNoaW5nLWJ1ZmZlcnMnLCBidXQgd2l0aG91
dCBhc2tpbmcgZm9yCiBjb25maXJtYXRpb24uCiAKKy0tLQorKiogTmV3IGNvbW1hbmRzICdtYXJr
LXNleHAtZm9yd2FyZCcgYW5kICdtYXJrLXNleHAtYmFja3dhcmQnLgorVGhlc2Ugd29yayBsaWtl
IG1hcmstc2V4cCwgYnV0IGV4cGxpY2l0bHkgYWxsb3cgc2V4cHMgdG8gYmUgbWFya2VkIGZvcndh
cmQgYW5kIGJhY2t3YXJkLgorCiAMCiAqIENoYW5nZXMgaW4gU3BlY2lhbGl6ZWQgTW9kZXMgYW5k
IFBhY2thZ2VzIGluIEVtYWNzIDMwLjEKIApkaWZmIC0tZ2l0IGEvbGlzcC9lbWFjcy1saXNwL2xp
c3AuZWwgYi9saXNwL2VtYWNzLWxpc3AvbGlzcC5lbAppbmRleCA0MTdjMjE4YzZkNy4uMzAxOTQz
NTRmMTkgMTAwNjQ0Ci0tLSBhL2xpc3AvZW1hY3MtbGlzcC9saXNwLmVsCisrKyBiL2xpc3AvZW1h
Y3MtbGlzcC9saXNwLmVsCkBAIC0xMjksNiArMTI5LDUyIEBAIG1hcmstc2V4cAogCSAgICAocG9p
bnQpKQogCSAgbmlsIHQpKSkpCiAKKyhkZWZ1biBtYXJrLS1oZWxwZXIgKG1vdmUtZm4gbnVtYmVy
LW9mLXRoaW5ncykKKyAgIlVzZSBNT1ZFLUZOIHRvIG1vdmUgTlVNQkVSLU9GLVRISU5HUyB0aGlu
Z3MsIGV4dGVuZGluZyByZWdpb24gb3ZlciB0aGVtLgorCitUaGUgTU9WRS1GTiBzaG91bGQgdGFr
ZSBhIG51bWVyaWMgYXJndW1lbnQsIGFuZCBtb3ZlIHRoYXQgbWFueQoraXRlbXMgZm9yd2FyZCAo
bmVnYXRpdmUgbWVhbnMgYmFja3dhcmQpLgorCitOVU1CRVItT0YtVEhJTkdTIGlzIHRoZSBudW1i
ZXIgb2YgYWRkaXRpb25hbCB0aGluZ3MgdG8gbW92ZS4iCisgIChpZiAodXNlLXJlZ2lvbi1wKQor
ICAgICAgKGxldCogKChmb3J3YXJkICg+PSBudW1iZXItb2YtdGhpbmdzIDApKQorICAgICAgICAg
ICAgIChiZWdpbm5pbmctb2YtcmVnaW9uIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAg
ICAoZW5kLW9mLXJlZ2lvbiAocmVnaW9uLWVuZCkpCisgICAgICAgICAgICAgKGF0LWVuZC1vZi1y
ZWdpb24gKD0gZW5kLW9mLXJlZ2lvbiAocG9pbnQpKSkKKyAgICAgICAgICAgICAobmV3LWJvcmRl
ci1wb2ludAorICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAo
Z290by1jaGFyIChpZiBmb3J3YXJkIChyZWdpb24tZW5kKSAocmVnaW9uLWJlZ2lubmluZykpKQor
ICAgICAgICAgICAgICAgIChjb25kaXRpb24tY2FzZSBuaWwKKyAgICAgICAgICAgICAgICAgICAg
KGZ1bmNhbGwgbW92ZS1mbiBudW1iZXItb2YtdGhpbmdzKQorICAgICAgICAgICAgICAgICAgKHNj
YW4tZXJyb3IgKHVzZXItZXJyb3IgIk5vIG1vcmUgaW4gdGhpcyBkaXJlY3Rpb24hIikpKQorICAg
ICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChuZXctYmVnaW5uaW5nLW9mLXJl
Z2lvbiAobWluIGJlZ2lubmluZy1vZi1yZWdpb24gbmV3LWJvcmRlci1wb2ludCkpCisgICAgICAg
ICAgICAgKG5ldy1lbmQtb2YtcmVnaW9uIChtYXggZW5kLW9mLXJlZ2lvbiBuZXctYm9yZGVyLXBv
aW50KSkpCisgICAgICAgIChnb3RvLWNoYXIgKGlmIGF0LWVuZC1vZi1yZWdpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgbmV3LWVuZC1vZi1yZWdpb24KKyAgICAgICAgICAgICAgICAgICAgIG5l
dy1iZWdpbm5pbmctb2YtcmVnaW9uKSkKKyAgICAgICAgKHNldC1tYXJrIChpZiBhdC1lbmQtb2Yt
cmVnaW9uCisgICAgICAgICAgICAgICAgICAgICAgbmV3LWJlZ2lubmluZy1vZi1yZWdpb24KKyAg
ICAgICAgICAgICAgICAgICAgbmV3LWVuZC1vZi1yZWdpb24pKSkKKyAgICAocHJvZ24gKHB1c2gt
bWFyayAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIG1v
dmUtZm4gbnVtYmVyLW9mLXRoaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkp
KQorICAgICAgICAgICAoYWN0aXZhdGUtbWFyaykpKSkKKworKGRlZnVuIG1hcmstc2V4cC1mb3J3
YXJkICgmb3B0aW9uYWwgbnVtYmVyLW9mLWV4cHJlc3Npb25zKQorICAiTWFyayBOVU1CRVItT0Yt
RVhQUkVTU0lPTlMgcy1leHByZXNzaW9ucyBmb3J3YXJkLgorCisgUmVwZWF0ZWQgY2FsbHMgdG8g
dGhpcyBtYXJrIG1vcmUgcy1leHByZXNzaW9ucy4iCisgIChpbnRlcmFjdGl2ZSAicCIpCisgICht
YXJrLS1oZWxwZXIgIydmb3J3YXJkLXNleHAgKG9yIG51bWJlci1vZi1leHByZXNzaW9ucyAxKSkp
CisKKyhkZWZ1biBtYXJrLXNleHAtYmFja3dhcmQgKCZvcHRpb25hbCBudW1iZXItb2YtZXhwcmVz
c2lvbnMpCisgICJNYXJrIE5VTUJFUi1PRi1FWFBSRVNTSU9OUyBzLWV4cHJlc3Npb25zIGJhY2t3
YXJkLgorCisgUmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBtYXJrIG1vcmUgcy1leHByZXNzaW9ucy4i
CisgIChpbnRlcmFjdGl2ZSAicCIpCisgIChtYXJrLS1oZWxwZXIgIydmb3J3YXJkLXNleHAgKC0g
KG9yIG51bWJlci1vZi1leHByZXNzaW9ucyAxKSkpKQorCiAoZGVmdW4gZm9yd2FyZC1saXN0ICgm
b3B0aW9uYWwgYXJnIGludGVyYWN0aXZlKQogICAiTW92ZSBmb3J3YXJkIGFjcm9zcyBvbmUgYmFs
YW5jZWQgZ3JvdXAgb2YgcGFyZW50aGVzZXMuCiBUaGlzIGNvbW1hbmQgd2lsbCBhbHNvIHdvcmsg
b24gb3RoZXIgcGFyZW50aGVzZXMtbGlrZSBleHByZXNzaW9ucwotLSAKMi4zOC40Cgo=
--0000000000007f2c8e05f9fa3c28--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Daniel =?UTF-8?Q?Mart=C3=ADn?= <mardani29@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 25 Apr 2023 22:27:02 +0000
Resent-Message-ID: <handler.62892.B62892.168246160421087 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>
Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168246160421087
          (code B ref 62892); Tue, 25 Apr 2023 22:27:02 +0000
Received: (at 62892) by debbugs.gnu.org; 25 Apr 2023 22:26:44 +0000
Received: from localhost ([127.0.0.1]:53741 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1prR7U-0005U3-4N
	for submit <at> debbugs.gnu.org; Tue, 25 Apr 2023 18:26:44 -0400
Received: from sonic309-25.consmr.mail.ir2.yahoo.com ([77.238.179.83]:42034)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mardani29@HIDDEN>) id 1prR7R-0005To-NA
 for 62892 <at> debbugs.gnu.org; Tue, 25 Apr 2023 18:26:43 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.es; s=s2048;
 t=1682461594; bh=Z2boYWKY5tyiUoWrFNlNVyvqSiNkTGBiV8hI4JiNCbM=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject:Reply-To;
 b=YysixJ6DYhGA4QhbDxMqCtW7uXjlrmvZqfaLuc1n1ezN0WPliDP2nzrlhdETvc9XbxHHeV5uE3pK/O8zHVsU2li0DQzbLxsVgzcFQz1yArJ5cf72iVFY5lJ4Jf1dYhueazmp/Zz+Znoe9d8WB97p+g9Qur07ib2JOZEb0LS/bbWi/59qYQ4ALL7wdmrZt173WKebB0DZKYEGPJ9gP0hLWLeulWW6Rb979cYZXylJrH9kHAUEBdkOuOqrOs9Ikay4pyGcAj4LLyy4rqO//Er20MSnoR4j1EH3LSw2HON4KWClffmhS8Px2s0UVoIxru+8sFFAEk8xGCSQU25yRex2gw==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
 t=1682461594; bh=nV2rUp7tySf33JpHqY6FRc3ZVtH46ukxGKP3U5DCgnj=;
 h=X-Sonic-MF:From:To:Subject:Date:From:Subject;
 b=IWAobZurkIFM6beONnw4fXDCzV12jbgoY3H67oFSX/19xYrkOzPb8lyJuDL3Gt6tMjypnc5ugbFCB6tOguc4YtvoN51l0u3muBsyoWoTqRV5+zMWRR9LgJjC6KLV7kislUDubV4TXzC5119Tle1vnO16rGetInjYea4nV2cdayAxm2Uj1c0/IWI7DR5nMzdfBv3nZFf9qDUfGbkskMM+JupPjRRFggrp+hGWMFR9oEZumgkjvB3jgaOyooxgEncZJy1QhRPByVk2DgwQipapSI8hYZjM6q+xHWo8ljFuLRBKAcDQfOupTdzSDi7UF9eNTbkOvGs+WJZ/9j/+uVW7lg==
X-YMail-OSG: Dw1neI8VM1nQzOGoLa2FMJXZo4xHEfBUa.GVH5YDRUjgfLAZ4PW.t8P3Z1DJXWq
 fI7c6QxalU3OmsaeTWojBLdvIWEyBMtMfIk0DsCQveEpl_l8SDaxRvClsQM8S.Z98PUGAeAtK5i5
 DWPHkZEX1qT3LB9OJKnPiG.xzW1PPLR3dqyHdzxoOXTBQZ.aF2E0wrghv87Qvj5v0Vu31ikV4OhO
 ZqvrFvdeelLaEhEHhxkRtheI9LjxrI2TRdM0GDko8Lvpy3cNMIQsLoXngu02peNnA9SSK2BErcI.
 SC3A.hYmKIsa8yPSjBIuTlnVH0h25reyDPO89l0fEAjJm8eKCgHIeK7.RMKmxfTlT4wnbSCxdqU3
 VFh3a0I2DxT4F7dyEKB2I0J8aNYPcIBki50P1P37k6WayO.oZ.saTfn47jQDm6XF16NmmsOaVh9Y
 KkPJ.XH17Va_02TULG7Mfu8pdvjps76xnZm_YvD3qX2Z1Dp62u1t62RjpHCbjMyP_rJ6mOLs3mwB
 vBlgaVhaZVbmHOSESUBEz6ZNv_Wj9dsekCbdLasVaR_f6Hwecam3t2kDJ0wripSPjDIdZHvFQh7Z
 6vmFq0ZtKWktrBnyX0Yfe7bSbMRlDTAU6T1syTifle3jZanfIA2J1SbeiHvdqYwnTg7T4Vd3n1Xx
 itYVTENqzQAttGp9hhX3QgzRuuYRvpp5sQBpl_Il8S_b3MrQrAcbeKvuOe6obLe1mSgL0qtAkHpD
 D3uCICxySsk5JFopRURqO6b1qYzRj2AVVBIuK1l8xkva1T42jAOxQRSjwD9.J9BfyWVoVqySWt0s
 Fei4jQXw4DFvdVGd5rO.q0yZexCfk4TsqlQZVM02cbuquXsn4TQOCKAWLRwJMSjfLREGuq.Q5pjo
 tT44OkgHOUUW7gy2qRrJUKiNQXvE_ZG5PaNUGQm3uYT7y8IdfM2pjf0U04nEqxvWJ65T8QF5ZHDv
 8cfagM0jttoCkEFlyYi3v5gPOK_fxTtLvrlSTvGTYjcm6HdG__XxMu0aZlMowwKQuBESTHImdRr4
 mBNTaVGrgvLrPqvABYk7daRKEZUOIMsdQX.NDxaHFAIvBthQMV36vOojmOgFWNx790R6kB7nXSta
 CKqavnJSxhMJBUK3nyxma7Yir5mj9zrwu3oMXsIcctNNkhSsLUld_YirKkWaQ8jGNLYo9fGFOUwk
 TbgRSJyddZ9d_vlSVOvvNwW2NTA1JIPhLTSUEtQOSYIGO37z.VQUUvLejZB_xSwqB87MGG9pd7Wz
 cmzfyEau7ipSFcSdSWKiXRA.s6jG7b0B.Y1mUsUau0QM2CDd4u6kPsb0ncVbG9KEwf0jIqZ0kB8O
 KNOtkN.iYVlJV2GW.ianHdPfo_V6VzJlQmRcyq4RGO8iaZQJdh4.WzJ09fsFYH8kS9PzY2EnHgyl
 acMIM63eOcbQbeXtgzfm7BCdmiaHLtzXamciUuItkzvNeMNmjaI7K1PzojwOYaL9kSUXiACIQZCm
 yIsMOHaE4p4osjY8ALorw4VYW27AWRFq_dma5PcccRpd.H04CKXD7wxJumB6hxzSIV1bVIAlDj3x
 apQHI1yqitq3jumx6BIk1svbAhH37oz5w3us.WcM0FPTJfBgrzlpavrkAByFRFquFLxoIMQCrwJ2
 v5vSf.ZKsW9j87ZLEWdqTRb9opNy4y7cZGQvQdUjZhWbTS4VZxY9Us3A2AORKQ6.5nL7pB4JQpJF
 zv3BiKU6QqgGR0IF43xttjo8ZUCDpNam2ZwlkxM1_xiGUaOMGOMBgLnb2eYqIHdjBII9w_gmGV5w
 5FgZ1cAKemnx8l3M0CZvJqt8I2xtE__5vUEqCVBcJ5SXjX13xJ5TXPxk44VwHvlDjAEZOMcXgVG4
 BhF02gmbycN9a4YLRcs4ThncX8kotexXQEbhlAMerdmW6mp5bp9szgP.ErB6PjUxCD9lpH8v1TL8
 LXFRsX.zZVsosOW1fPup2ioQUL3o3uQiGGbcNzyPiJ.fEdM0XzfEbETe41QDZz8xzyK5Wp7RJSzW
 uaIdYWKXWOaQ.OWcgOkqO8DalSK5_pVRBHl3ZPosDDLaW9U6k14iqPLiKUaamKliGZRA61JbbJqb
 YJwBNPHy.ycSd.F.YPkHGdA2fuySqiVb2pSciwUaUI4L5cNuC6LFp28TVhTzZh7p7DUaO7.yv7_G
 J3RKiU77eGzgLhv9zm.7tjShIC0EtkO4_.nHPV1ZJ77VLt0ea7zHUULC9Hp7Z6_0iZb8TTd4OosQ
 FOrBFGkg7KMqXfF47l.U3aVDX9VvVfuCpf8FwPhtCgp8-
X-Sonic-MF: <mardani29@HIDDEN>
X-Sonic-ID: f1ab5c24-36fe-4dd5-a71e-c4d9f97f9fc9
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic309.consmr.mail.ir2.yahoo.com with HTTP; Tue, 25 Apr 2023 22:26:34 +0000
Received: by hermes--production-ir2-74cd8fc864-tk7pl (Yahoo Inc. Hermes SMTP
 Server) with ESMTPA ID a10122bd7be8f93bfd58723525dcf8d3; 
 Tue, 25 Apr 2023 22:26:33 +0000 (UTC)
From: Daniel =?UTF-8?Q?Mart=C3=ADn?= <mardani29@HIDDEN>
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
Date: Wed, 26 Apr 2023 00:26:32 +0200
In-Reply-To: <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 (Zachary Kanfer's message of "Sun, 23 Apr 2023 01:33:44 -0400")
Message-ID: <m1354nr42v.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (darwin)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: WebService/1.1.21417
 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo
Content-Length: 711
X-Spam-Score: 0.3 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Zachary Kanfer <zkanfer@HIDDEN> writes:

>
> Also, whatever the outcome of this patch, I think it would be advisable to
> explain somewhere how mark-sexp extends region by the end of region
> opposite point; this is not in the docstring or any other documentation
> I've seen.
>

In my opinion, the description of that feature should not be part of the
mark-sexp command documentation, because the feature is actually
provided by C-x C-x (exchange-point-and-mark).  The Emacs manual in
section 12.1 Setting the Mark describes this use case well, I think:

=E2=80=98C-x C-x=E2=80=99 is useful when you are
satisfied with the position of point but want to move the other end of
the region (where the mark is).




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 26 Apr 2023 04:43:01 +0000
Resent-Message-ID: <handler.62892.B62892.168248412630052 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Daniel =?UTF-8?Q?Mart=C3=ADn?= <mardani29@HIDDEN>
Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168248412630052
          (code B ref 62892); Wed, 26 Apr 2023 04:43:01 +0000
Received: (at 62892) by debbugs.gnu.org; 26 Apr 2023 04:42:06 +0000
Received: from localhost ([127.0.0.1]:53962 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1prWyk-0007oe-5z
	for submit <at> debbugs.gnu.org; Wed, 26 Apr 2023 00:42:06 -0400
Received: from mail-oa1-f51.google.com ([209.85.160.51]:53452)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1prWyh-0007nc-QW
 for 62892 <at> debbugs.gnu.org; Wed, 26 Apr 2023 00:42:04 -0400
Received: by mail-oa1-f51.google.com with SMTP id
 586e51a60fabf-18665c1776dso4902867fac.2
 for <62892 <at> debbugs.gnu.org>; Tue, 25 Apr 2023 21:42:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1682484118; x=1685076118;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=+Tt1QsRbDDMU4icx/MW7YfQok3AxL0D7fRx2nCR6K9Q=;
 b=Ktj6wCvUv+6Nz179pmaMMYS113ldmJv6kiijFo5v4Vy+kFE+II6NuM+ThXJQpcNz9G
 EGj37qI95gUrfcV0kY4lSQUvWphgobDcBBz1UtxMuwJtugP2vWbJJo+NhOeqI80jpCk+
 0GoSFHOou7MenYXWIUlinI2mefnK3ka/ECw93QJTErcYI+kcxGBxXglJ5Gor920cAFh5
 nZKX1cHwaJktLDjYsmbEnDZMVUslxsYnHvBQfGJ5Keuu/px/xO9czJ4TmKqhpLfXCikr
 h4xM6BaLh35sGpFqgNC/+69xB3pUVd3madp+l3mA/QVYYwdILKKSXtHWUIlubGXE201+
 ytOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1682484118; x=1685076118;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=+Tt1QsRbDDMU4icx/MW7YfQok3AxL0D7fRx2nCR6K9Q=;
 b=EnxezdebqK+FKr2vR0s6gZRP2sBNMaRkCLMdiGrcBLQggk+g85E7qXoqPnhTMTAzTv
 UROhP9ftNXH/iClgbvAetFOd3tglKOjgKMPkwwjACt3gkV1pspq5tWooBEv7eXQDerTP
 Vffbo1FVxlrRcrghM/Ryzgq8dnJpCFDRmLikwEphIgbxg96FV6g35ywMNSMLy9ptOEYd
 cPDRrqF37T9M0HZgcwIdLsGLm/yrxjfGwDYpmH22Tw5IHXpuOstzn8ka7NFsYUaGniFV
 BtSFp0bYVLZTnaePUmRhIg/QZ52drEvhga7XVt1gRD2md/OxnwPkrmDhlgV6B0m1RBQ7
 s/nw==
X-Gm-Message-State: AAQBX9egjJ5kqF41jMMGAp5MRoZPMR6Ap6vIRvAO+d89l7AYwzkUhYaE
 A+WVdCBalLjtIKwoX4IB4HrO/RwIh0XfOzwr80Q=
X-Google-Smtp-Source: AKy350ZcHZOXMr8CQTny1oVYR1ADNHDB9tBzRMfdNvYHAPcT0NwkyAWF+DP7+X6yT0drtE+7H+hrZdC7cIgSBpLl4VY=
X-Received: by 2002:a05:6870:ea92:b0:187:dbb8:f5fc with SMTP id
 s18-20020a056870ea9200b00187dbb8f5fcmr12412082oap.35.1682484118051; Tue, 25
 Apr 2023 21:41:58 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <m1354nr42v.fsf@HIDDEN>
In-Reply-To: <m1354nr42v.fsf@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Wed, 26 Apr 2023 00:41:45 -0400
Message-ID: <CAFXT+RO8MLOq=PoCEWCg2Wvvhay=U9bgq41Ev4ew34PO9-0Zng@HIDDEN>
Content-Type: multipart/alternative; boundary="00000000000032604505fa35dce0"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--00000000000032604505fa35dce0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

The documentation for mark-sexp says:

> Set mark ARG sexps from point.
> The place mark goes is the same place C-M-<right> would
> move to with the same argument.

This is correct but misleading. Worse still is the next part:

> Interactively, if this command is repeated
> or (in Transient Mark mode) if the mark is active,
> it marks the next ARG sexps after the ones already marked.

This says it marks sexps *after* the ones already marked. This is
incorrect; if point is *after* mark, and mark is active, this function
marks sexps *before* the ones already marked.

> In my opinion, the description of that feature should not be part of the
> mark-sexp command documentation, because the feature is actually
> provided by C-x C-x (exchange-point-and-mark).

One way for this situation to occur is by using C-x C-x, yes, but it's not
the only way. You can set point, move forward sexps, and then calling
mark-sexp will mark sexps backwards.

There is specific code in mark-sexp to check which direction to move; it
should be documented as such.

On Tue, Apr 25, 2023 at 6:26=E2=80=AFPM Daniel Mart=C3=ADn <mardani29@yahoo=
.es> wrote:

> Zachary Kanfer <zkanfer@HIDDEN> writes:
>
> >
> > Also, whatever the outcome of this patch, I think it would be advisable
> to
> > explain somewhere how mark-sexp extends region by the end of region
> > opposite point; this is not in the docstring or any other documentation
> > I've seen.
> >
>
> In my opinion, the description of that feature should not be part of the
> mark-sexp command documentation, because the feature is actually
> provided by C-x C-x (exchange-point-and-mark).  The Emacs manual in
> section 12.1 Setting the Mark describes this use case well, I think:
>
> =E2=80=98C-x C-x=E2=80=99 is useful when you are
> satisfied with the position of point but want to move the other end of
> the region (where the mark is).
>

--00000000000032604505fa35dce0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>The documentation for mark-sexp says:</div><div><br><=
/div><div>&gt; Set mark ARG sexps from point.</div><div>&gt; The place mark=
 goes is the same place C-M-&lt;right&gt; would<br>&gt; move to with the sa=
me argument.</div><div><br></div><div>This is correct but misleading. Worse=
 still is the next part:<br></div><div><br></div><div>&gt; Interactively, i=
f this command is repeated<br>&gt; or (in Transient Mark mode) if the mark =
is active,<br>&gt; it marks the next ARG sexps after the ones already marke=
d.</div><div><br></div><div>This says it marks sexps *after* the ones alrea=
dy marked. This is incorrect; if point is *after* mark, and mark is active,=
 this function marks sexps *before* the ones already marked.</div><div><br>=
</div><div>&gt; In my opinion, the description of that feature should not b=
e part of the<br>&gt; mark-sexp command documentation, because the feature =
is actually<br>&gt; provided by C-x C-x (exchange-point-and-mark).</div><di=
v><br></div><div>One way for this situation to occur is by using C-x C-x, y=
es, but it&#39;s not the only way. You can set point, move forward sexps, a=
nd then calling mark-sexp will mark sexps backwards.</div><div><br></div><d=
iv>There is specific code in mark-sexp to check which direction to move; it=
 should be documented as such.<br></div></div><br><div class=3D"gmail_quote=
"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Apr 25, 2023 at 6:26=E2=80=
=AFPM Daniel Mart=C3=ADn &lt;<a href=3D"mailto:mardani29@HIDDEN">mardani2=
9@HIDDEN</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">Zachary Kanfer &lt;<a href=3D"mailto:zkanfer@HIDDEN" target=
=3D"_blank">zkanfer@HIDDEN</a>&gt; writes:<br>
<br>
&gt;<br>
&gt; Also, whatever the outcome of this patch, I think it would be advisabl=
e to<br>
&gt; explain somewhere how mark-sexp extends region by the end of region<br=
>
&gt; opposite point; this is not in the docstring or any other documentatio=
n<br>
&gt; I&#39;ve seen.<br>
&gt;<br>
<br>
In my opinion, the description of that feature should not be part of the<br=
>
mark-sexp command documentation, because the feature is actually<br>
provided by C-x C-x (exchange-point-and-mark).=C2=A0 The Emacs manual in<br=
>
section 12.1 Setting the Mark describes this use case well, I think:<br>
<br>
=E2=80=98C-x C-x=E2=80=99 is useful when you are<br>
satisfied with the position of point but want to move the other end of<br>
the region (where the mark is).<br>
</blockquote></div>

--00000000000032604505fa35dce0--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 26 Apr 2023 06:29:02 +0000
Resent-Message-ID: <handler.62892.B62892.168249051010631 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>
Cc: ruijie@HIDDEN, monnier@HIDDEN, 62892 <at> debbugs.gnu.org, mardani29@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168249051010631
          (code B ref 62892); Wed, 26 Apr 2023 06:29:02 +0000
Received: (at 62892) by debbugs.gnu.org; 26 Apr 2023 06:28:30 +0000
Received: from localhost ([127.0.0.1]:54112 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1prYdh-0002lP-Ns
	for submit <at> debbugs.gnu.org; Wed, 26 Apr 2023 02:28:30 -0400
Received: from eggs.gnu.org ([209.51.188.92]:35894)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1prYdf-0002lB-65
 for 62892 <at> debbugs.gnu.org; Wed, 26 Apr 2023 02:28:28 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1prYdY-0008HW-Ao; Wed, 26 Apr 2023 02:28:20 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=zmQdIitmQEffY/upxyT4SszD5/qKf+B2dPEgrLAd2nA=; b=YEZlPMgjrxxH
 9irf2Ig4xjgtK2F95h3Fv2xP0hVegYtCOAAwWtvDJgIXxicxXBPg2PDiy6SEPLHU/NQDBbqiO6QEa
 b4+sIvM3M8P+F0BvmLvwMB4WrXFxPtq/UBqbSvYW4PmpqDvqo0A8On74BjTlE4Qa8X11CxCxME4Yt
 OwhCp1NjYKiLMbcj2zCAyzsQMHaOYvA1v+pw4J5twSP16UWcFtdrpQq79SGk+I6xxGOaLuqm1dFz7
 CmzUN8lkxi0BOm+dWz45jxiqx14KTKzYfuQ48rTuhPPqTmC6E2rctFJcP6je0pqOKoxOXciTxZO5R
 veA8SUyHYxX21dsF10zGxg==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1prYdW-00027V-Lr; Wed, 26 Apr 2023 02:28:19 -0400
Date: Wed, 26 Apr 2023 09:28:47 +0300
Message-Id: <835y9jupgg.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CAFXT+RO8MLOq=PoCEWCg2Wvvhay=U9bgq41Ev4ew34PO9-0Zng@HIDDEN>
 (message from Zachary Kanfer on Wed, 26 Apr 2023 00:41:45 -0400)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <m1354nr42v.fsf@HIDDEN>
 <CAFXT+RO8MLOq=PoCEWCg2Wvvhay=U9bgq41Ev4ew34PO9-0Zng@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>,
>  62892 <at> debbugs.gnu.org
> From: Zachary Kanfer <zkanfer@HIDDEN>
> Date: Wed, 26 Apr 2023 00:41:45 -0400
> 
> The documentation for mark-sexp says:
> 
> > Set mark ARG sexps from point.
> > The place mark goes is the same place C-M-<right> would
> > move to with the same argument.
> 
> This is correct but misleading.

Please elaborate: how could it mislead?

> Worse still is the next part:
> 
> > Interactively, if this command is repeated
> > or (in Transient Mark mode) if the mark is active,
> > it marks the next ARG sexps after the ones already marked.
> 
> This says it marks sexps *after* the ones already marked. This is incorrect; if point is *after* mark, and
> mark is active, this function marks sexps *before* the ones already marked.

I cannot reproduce this behavior, if I understand your description
correctly.  Please show a recipe, starting from "emacs -Q", to
reproduce.

> > In my opinion, the description of that feature should not be part of the
> > mark-sexp command documentation, because the feature is actually
> > provided by C-x C-x (exchange-point-and-mark).
> 
> One way for this situation to occur is by using C-x C-x, yes, but it's not the only way. You can set point,
> move forward sexps, and then calling mark-sexp will mark sexps backwards.
> 
> There is specific code in mark-sexp to check which direction to move; it should be documented as
> such.

Please also demonstrate this behavior and point to that code, so we
will know what you are alluding to.

Thanks.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 27 Apr 2023 02:39:02 +0000
Resent-Message-ID: <handler.62892.B62892.16825630987028 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: ruijie@HIDDEN, monnier@HIDDEN, 62892 <at> debbugs.gnu.org, mardani29@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.16825630987028
          (code B ref 62892); Thu, 27 Apr 2023 02:39:02 +0000
Received: (at 62892) by debbugs.gnu.org; 27 Apr 2023 02:38:18 +0000
Received: from localhost ([127.0.0.1]:57269 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1prrWT-0001pH-Qc
	for submit <at> debbugs.gnu.org; Wed, 26 Apr 2023 22:38:18 -0400
Received: from mail-oo1-f50.google.com ([209.85.161.50]:58853)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1prrWR-0001oz-E8
 for 62892 <at> debbugs.gnu.org; Wed, 26 Apr 2023 22:38:16 -0400
Received: by mail-oo1-f50.google.com with SMTP id
 006d021491bc7-541b60e0a7fso4276653eaf.1
 for <62892 <at> debbugs.gnu.org>; Wed, 26 Apr 2023 19:38:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1682563089; x=1685155089;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=0h4t93m+/fBHggnpMpiaqRZBMgxg/sAtoezYGvn7RXk=;
 b=GenSydip0nV07YI2AVoXAxgHPrSbnpp1AILcHg2VyeJRDHnkJLBbZYVqLa3rC1rAQ8
 4Xez968tQ6zd1fKT4zKTfc7/gZGLFAIM9eSVvUuvsFBEjTLnlKnDDY7VsqObYJxBcfZ6
 htqXus5LWMQrp5YtGH22wCvQB945cRs8FoMapw+b75fQee6KxIs3BNTsvpWtWsfbUVpf
 iMpz4f3fBeqVn3rxl+3CBF06wGHsVVzLI+3kIlpePNecuDIivZPLsn8XzVdcEzhNAoB3
 ck2ndratGqcuNr+DrnMsgCNMI+dvuDb7/ipBOoaxNGnhU//xELi/DP1ySdcfE4RL0RcK
 zZ9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1682563089; x=1685155089;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=0h4t93m+/fBHggnpMpiaqRZBMgxg/sAtoezYGvn7RXk=;
 b=csx7jkvIpILtvLkmaGxYHmr1CJeZCpFpdicxrTQhlOh97PEAcoP/m2pgwAfdSRdWBj
 Mvun6JvCPTZ8MN8/GUeCdpppTqar5Z8UidLGA379jOoyR9QzNDUuWJaKz2XA/Qrp//fJ
 je4p1fJ9IBsayarQwb4dHf+Nzt8T7Od2I8r71Q37TMEN46jcduxo7UWNEZf1K0RTtpNO
 Em8I5uwjm4QFfjwcMyUNc++UuREbIvhKhpFGDeAArr/DTglJlQWSg2hmGARQfZytNpVO
 VI9z7sRMtyyWd5Jfgfafxwvg/DzIQYgAPkPr/YS+HiszfD3bdds6y2ibTLESJgk6dHuH
 R1OA==
X-Gm-Message-State: AC+VfDwqttO9bvZUF30kdSDyhWnSQauYFdniK4+q6d3vYZw/w62CAAHr
 xfCm8HpY9UqwbVqGTB3j1l1lTLfE4lZIKcTbaLA=
X-Google-Smtp-Source: ACHHUZ7UQKiRb1/1mszLK1okYZcMpgiRDja9RscLNWqP2QoHOs4pklqP2uqViTJR53s2ykGVsv5o3SpU6Aj6xhNymuQ=
X-Received: by 2002:a4a:c289:0:b0:546:ecb3:f42 with SMTP id
 b9-20020a4ac289000000b00546ecb30f42mr191090ooq.8.1682563089454; Wed, 26 Apr
 2023 19:38:09 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <m1354nr42v.fsf@HIDDEN>
 <CAFXT+RO8MLOq=PoCEWCg2Wvvhay=U9bgq41Ev4ew34PO9-0Zng@HIDDEN>
 <835y9jupgg.fsf@HIDDEN>
In-Reply-To: <835y9jupgg.fsf@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Wed, 26 Apr 2023 22:37:58 -0400
Message-ID: <CAFXT+ROk5-ydr22qh0QD0B0F5pyG=vByHcLH1nUyQ32wQGORxQ@HIDDEN>
Content-Type: multipart/alternative; boundary="00000000000042592a05fa483ffb"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--00000000000042592a05fa483ffb
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> > Worse still is the next part:
> >
> > > Interactively, if this command is repeated
> > > or (in Transient Mark mode) if the mark is active,
> > > it marks the next ARG sexps after the ones already marked.
> >
> > This says it marks sexps *after* the ones already marked. This is
incorrect; if point is *after* mark, and
> > mark is active, this function marks sexps *before* the ones already
marked.
>
> I cannot reproduce this behavior, if I understand your description
> correctly.  Please show a recipe, starting from "emacs -Q", to
> reproduce.

Open Emacs with:

emacs -Q --eval '(progn (insert "foo bar baz") (goto-char 8) (set-mark 5))'

It will insert "foo bar baz", put point after "bar", and mark before "bar".
Region contains "bar".

Then when we run mark-sexp, we expect to mark some sexps "after the ones
already marked". That's what the docstring says.

After running the command above to open emacs, press C-M-@ to run
mark-sexp. We should see sexps marked "after the ones already marked"; that
is, we should see "bar baz" marked. But we don't. Instead, we see that "foo
bar" is highlighted. That is, we have marked sexps *before* the ones
already marked.


> > The documentation for mark-sexp says:
> >
> > > Set mark ARG sexps from point.
> > > The place mark goes is the same place C-M-<right> would
> > > move to with the same argument.
> >
> > This is correct but misleading.
>
> Please elaborate: how could it mislead?

"The same argument" is the misleading part. If I call mark-sexp with no
argument, sometimes that code passes -1 to forward-sexp. So while I think
I'm effectively passing a "1" to mark-sexp, instead -1 is passed to
forward-sexp. This is somewhat explained by the next part of the docstring,
but not entirely. Read with the rest of the docstring, it reinforces the
belief that the command only marks sexps *after* point.

> > > In my opinion, the description of that feature should not be part of
the
> > > mark-sexp command documentation, because the feature is actually
> > > provided by C-x C-x (exchange-point-and-mark).
> >
> > One way for this situation to occur is by using C-x C-x, yes, but it's
not the only way. You can set point,
> > move forward sexps, and then calling mark-sexp will mark sexps
backwards.
> >
> > There is specific code in mark-sexp to check which direction to move;
it should be documented as
> > such.
>
> Please also demonstrate this behavior and point to that code, so we
> will know what you are alluding to.

Here is the line of code:
https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/lisp.el#n1=
07.
When the region is active, and no prefix arg is given to mark-sexp, the
function resets `arg` as follows:

(setq arg (if arg (prefix-numeric-value arg)
              (if (< (mark) (point)) -1 1)))

When no prefix arg is given, when the region is active, it sets arg to
either 1 or -1, depending on the relative positions of point and mark.

The behavior can be seen in the instructions above, but here's a simpler
way to see it:

1. `emacs -Q --eval '(progn (insert "foo bar baz") (goto-char 5))`
2. C-space. (Set mark)
3. M-f. (forward word). We have now set up the situation I was referring to
-- point is set after mark, and mark is active.
4. C-M-@. Here, we see mark-sexp extend region backwards without ever using
C-x C-x (exchange-point-and-mark). The feature of extending the region
backwards cannot be provided by exchange-point-and-mark.

On Wed, Apr 26, 2023 at 2:28=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wrote:

> > Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <
> monnier@HIDDEN>,
> >  62892 <at> debbugs.gnu.org
> > From: Zachary Kanfer <zkanfer@HIDDEN>
> > Date: Wed, 26 Apr 2023 00:41:45 -0400
> >
> > The documentation for mark-sexp says:
> >
> > > Set mark ARG sexps from point.
> > > The place mark goes is the same place C-M-<right> would
> > > move to with the same argument.
> >
> > This is correct but misleading.
>
> Please elaborate: how could it mislead?
>
> > Worse still is the next part:
> >
> > > Interactively, if this command is repeated
> > > or (in Transient Mark mode) if the mark is active,
> > > it marks the next ARG sexps after the ones already marked.
> >
> > This says it marks sexps *after* the ones already marked. This is
> incorrect; if point is *after* mark, and
> > mark is active, this function marks sexps *before* the ones already
> marked.
>
> I cannot reproduce this behavior, if I understand your description
> correctly.  Please show a recipe, starting from "emacs -Q", to
> reproduce.
>
> > > In my opinion, the description of that feature should not be part of
> the
> > > mark-sexp command documentation, because the feature is actually
> > > provided by C-x C-x (exchange-point-and-mark).
> >
> > One way for this situation to occur is by using C-x C-x, yes, but it's
> not the only way. You can set point,
> > move forward sexps, and then calling mark-sexp will mark sexps backward=
s.
> >
> > There is specific code in mark-sexp to check which direction to move; i=
t
> should be documented as
> > such.
>
> Please also demonstrate this behavior and point to that code, so we
> will know what you are alluding to.
>
> Thanks.
>

--00000000000042592a05fa483ffb
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">&gt; &gt; Worse still is the next part:<br>&gt; &gt;<br>&g=
t; &gt; &gt; Interactively, if this command is repeated<br>&gt; &gt; &gt; o=
r (in Transient Mark mode) if the mark is active,<br>&gt; &gt; &gt; it mark=
s the next ARG sexps after the ones already marked.<br>&gt; &gt;<br>&gt; &g=
t; This says it marks sexps *after* the ones already marked. This is incorr=
ect; if point is *after* mark, and<br>&gt; &gt; mark is active, this functi=
on marks sexps *before* the ones already marked.<br>&gt;<br>&gt; I cannot r=
eproduce this behavior, if I understand your description<br>&gt; correctly.=
=C2=A0 Please show a recipe, starting from &quot;emacs -Q&quot;, to<br>&gt;=
 reproduce.<br><br>Open Emacs with:<br><br>emacs -Q --eval &#39;(progn (ins=
ert &quot;foo bar baz&quot;) (goto-char 8) (set-mark 5))&#39;<br><br>It wil=
l insert &quot;foo bar baz&quot;, put point after &quot;bar&quot;, and mark=
 before &quot;bar&quot;. Region contains &quot;bar&quot;.<br><br>Then when =
we run mark-sexp, we expect to mark some sexps &quot;after the ones already=
 marked&quot;. That&#39;s what the docstring says.<br><br><div>After runnin=
g the command above to open emacs, press C-M-@ to run mark-sexp. We should =
see sexps marked &quot;after the ones already marked&quot;; that is, we sho=
uld see &quot;bar baz&quot; marked. But we don&#39;t. Instead, we see that =
&quot;foo bar&quot; is highlighted. That is, we have marked sexps *before* =
the ones already marked.</div><div><br></div><br>&gt; &gt; The documentatio=
n for mark-sexp says:<br>&gt; &gt;<br>&gt; &gt; &gt; Set mark ARG sexps fro=
m point.<br>&gt; &gt; &gt; The place mark goes is the same place C-M-&lt;ri=
ght&gt; would<br>&gt; &gt; &gt; move to with the same argument.<br>&gt; &gt=
;<br>&gt; &gt; This is correct but misleading.<br>&gt;<br>&gt; Please elabo=
rate: how could it mislead?<br><br><div>&quot;The same argument&quot; is th=
e misleading part. If I call mark-sexp with no argument, sometimes that cod=
e passes -1 to forward-sexp. So while I think I&#39;m effectively passing a=
 &quot;1&quot; to mark-sexp, instead -1 is passed to forward-sexp. This is =
somewhat explained by the next part of the docstring, but not entirely. Rea=
d with the rest of the docstring, it reinforces the belief that the command=
 only marks sexps *after* point.</div><br>&gt; &gt; &gt; In my opinion, the=
 description of that feature should not be part of the<br>&gt; &gt; &gt; ma=
rk-sexp command documentation, because the feature is actually<br>&gt; &gt;=
 &gt; provided by C-x C-x (exchange-point-and-mark).<br>&gt; &gt;<br>&gt; &=
gt; One way for this situation to occur is by using C-x C-x, yes, but it&#3=
9;s not the only way. You can set point,<br>&gt; &gt; move forward sexps, a=
nd then calling mark-sexp will mark sexps backwards.<br>&gt; &gt;<br>&gt; &=
gt; There is specific code in mark-sexp to check which direction to move; i=
t should be documented as<br>&gt; &gt; such.<br>&gt;<br>&gt; Please also de=
monstrate this behavior and point to that code, so we<br>&gt; will know wha=
t you are alluding to.<br><br>Here is the line of code: <a href=3D"https://=
git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/lisp.el#n107">http=
s://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/lisp.el#n107</=
a>. When the region is active, and no prefix arg is given to mark-sexp, the=
 function resets `arg` as follows:<br><br>(setq arg (if arg (prefix-numeric=
-value arg)<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (if (&lt; (=
mark) (point)) -1 1)))<br><br>When no prefix arg is given, when the region =
is active, it sets arg to either 1 or -1, depending on the relative positio=
ns of point and mark.<br><br>The behavior can be seen in the instructions a=
bove, but here&#39;s a simpler way to see it:<br><br>1. `emacs -Q --eval &#=
39;(progn (insert &quot;foo bar baz&quot;) (goto-char 5))`<br>2. C-space. (=
Set mark)<br>3. M-f. (forward word). We have now set up the situation I was=
 referring to -- point is set after mark, and mark is active.<br>4. C-M-@. =
Here, we see mark-sexp extend region backwards without ever using C-x C-x (=
exchange-point-and-mark). The feature of extending the region backwards can=
not be provided by exchange-point-and-mark.</div><br><div class=3D"gmail_qu=
ote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Apr 26, 2023 at 2:28=E2=
=80=AFAM Eli Zaretskii &lt;<a href=3D"mailto:eliz@HIDDEN">eliz@HIDDEN</a>=
&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">&gt;=
 Cc: Ruijie Yu &lt;<a href=3D"mailto:ruijie@HIDDEN" target=3D"_blank">ru=
ijie@HIDDEN</a>&gt;, Stefan Monnier &lt;<a href=3D"mailto:monnier@HIDDEN=
ontreal.ca" target=3D"_blank">monnier@HIDDEN</a>&gt;,<br>
&gt;=C2=A0 <a href=3D"mailto:62892 <at> debbugs.gnu.org" target=3D"_blank">62892=
@debbugs.gnu.org</a><br>
&gt; From: Zachary Kanfer &lt;<a href=3D"mailto:zkanfer@HIDDEN" target=
=3D"_blank">zkanfer@HIDDEN</a>&gt;<br>
&gt; Date: Wed, 26 Apr 2023 00:41:45 -0400<br>
&gt; <br>
&gt; The documentation for mark-sexp says:<br>
&gt; <br>
&gt; &gt; Set mark ARG sexps from point.<br>
&gt; &gt; The place mark goes is the same place C-M-&lt;right&gt; would<br>
&gt; &gt; move to with the same argument.<br>
&gt; <br>
&gt; This is correct but misleading.<br>
<br>
Please elaborate: how could it mislead?<br>
<br>
&gt; Worse still is the next part:<br>
&gt; <br>
&gt; &gt; Interactively, if this command is repeated<br>
&gt; &gt; or (in Transient Mark mode) if the mark is active,<br>
&gt; &gt; it marks the next ARG sexps after the ones already marked.<br>
&gt; <br>
&gt; This says it marks sexps *after* the ones already marked. This is inco=
rrect; if point is *after* mark, and<br>
&gt; mark is active, this function marks sexps *before* the ones already ma=
rked.<br>
<br>
I cannot reproduce this behavior, if I understand your description<br>
correctly.=C2=A0 Please show a recipe, starting from &quot;emacs -Q&quot;, =
to<br>
reproduce.<br>
<br>
&gt; &gt; In my opinion, the description of that feature should not be part=
 of the<br>
&gt; &gt; mark-sexp command documentation, because the feature is actually<=
br>
&gt; &gt; provided by C-x C-x (exchange-point-and-mark).<br>
&gt; <br>
&gt; One way for this situation to occur is by using C-x C-x, yes, but it&#=
39;s not the only way. You can set point,<br>
&gt; move forward sexps, and then calling mark-sexp will mark sexps backwar=
ds.<br>
&gt; <br>
&gt; There is specific code in mark-sexp to check which direction to move; =
it should be documented as<br>
&gt; such.<br>
<br>
Please also demonstrate this behavior and point to that code, so we<br>
will know what you are alluding to.<br>
<br>
Thanks.<br>
</blockquote></div>

--00000000000042592a05fa483ffb--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 27 Apr 2023 12:26:02 +0000
Resent-Message-ID: <handler.62892.B62892.168259833927724 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>, Juri Linkov <juri@HIDDEN>
Cc: ruijie@HIDDEN, monnier@HIDDEN, 62892 <at> debbugs.gnu.org, mardani29@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168259833927724
          (code B ref 62892); Thu, 27 Apr 2023 12:26:02 +0000
Received: (at 62892) by debbugs.gnu.org; 27 Apr 2023 12:25:39 +0000
Received: from localhost ([127.0.0.1]:57699 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ps0gs-0007D5-Gk
	for submit <at> debbugs.gnu.org; Thu, 27 Apr 2023 08:25:39 -0400
Received: from eggs.gnu.org ([209.51.188.92]:60782)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1ps0go-0007Cn-SX
 for 62892 <at> debbugs.gnu.org; Thu, 27 Apr 2023 08:25:37 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1ps0gi-0006Om-EJ; Thu, 27 Apr 2023 08:25:28 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=nnkKydKFLjOqxm4EHYoIOZYRs3P3c8kUg9kRJSqCqoc=; b=Tv81g1KzbKe8
 CvkXEbMyrWEreab4atgDSs9Oz4UBcKnyBg+CLO2u8o8Hn7dNrn1tNpjC5l8OPoWLOuJZXDI/MjskZ
 oolkZzWt9mxr+KMiC6tdlM4Rj3Mxprkv2hMiFWSnMM2sqxMojXkyCULP+0/K0p0msqQoGxegUJih3
 83ceN9GkvmIhzOuUQ/QCr3zMvqwq+pQJljdfLCW/wvGRDdeAh/c1TJHVA7y4uKxxef3mQfNkG0A4j
 CvQV98WBm4x3EC74l8MNWO59ksGsc1YMmE9OEA/HMF1DM4C3mBCvh4eDd+rJIwSfO5izX3QuC3f/q
 nAjXMBMHpk30XZN3ugf4XQ==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1ps0gh-0001ew-Ue; Thu, 27 Apr 2023 08:25:28 -0400
Date: Thu, 27 Apr 2023 15:25:59 +0300
Message-Id: <83r0s5se94.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CAFXT+ROk5-ydr22qh0QD0B0F5pyG=vByHcLH1nUyQ32wQGORxQ@HIDDEN>
 (message from Zachary Kanfer on Wed, 26 Apr 2023 22:37:58 -0400)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <m1354nr42v.fsf@HIDDEN>
 <CAFXT+RO8MLOq=PoCEWCg2Wvvhay=U9bgq41Ev4ew34PO9-0Zng@HIDDEN>
 <835y9jupgg.fsf@HIDDEN>
 <CAFXT+ROk5-ydr22qh0QD0B0F5pyG=vByHcLH1nUyQ32wQGORxQ@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Zachary Kanfer <zkanfer@HIDDEN>
> Date: Wed, 26 Apr 2023 22:37:58 -0400
> Cc: mardani29@HIDDEN, ruijie@HIDDEN, monnier@HIDDEN, 
> 	62892 <at> debbugs.gnu.org
> 
> > > Worse still is the next part:
> > >
> > > > Interactively, if this command is repeated
> > > > or (in Transient Mark mode) if the mark is active,
> > > > it marks the next ARG sexps after the ones already marked.
> > >
> > > This says it marks sexps *after* the ones already marked. This is incorrect; if point is *after* mark,
> and
> > > mark is active, this function marks sexps *before* the ones already marked.
> >
> > I cannot reproduce this behavior, if I understand your description
> > correctly.  Please show a recipe, starting from "emacs -Q", to
> > reproduce.
> 
> Open Emacs with:
> 
> emacs -Q --eval '(progn (insert "foo bar baz") (goto-char 8) (set-mark 5))'
> 
> It will insert "foo bar baz", put point after "bar", and mark before "bar". Region contains "bar".
> 
> Then when we run mark-sexp, we expect to mark some sexps "after the ones already marked". That's
> what the docstring says.
> 
> After running the command above to open emacs, press C-M-@ to run mark-sexp. We should see
> sexps marked "after the ones already marked"; that is, we should see "bar baz" marked. But we don't.
> Instead, we see that "foo bar" is highlighted. That is, we have marked sexps *before* the ones already
> marked.
> 
> > > The documentation for mark-sexp says:
> > >
> > > > Set mark ARG sexps from point.
> > > > The place mark goes is the same place C-M-<right> would
> > > > move to with the same argument.
> > >
> > > This is correct but misleading.
> >
> > Please elaborate: how could it mislead?
> 
> "The same argument" is the misleading part. If I call mark-sexp with no argument, sometimes that code
> passes -1 to forward-sexp. So while I think I'm effectively passing a "1" to mark-sexp, instead -1 is
> passed to forward-sexp. This is somewhat explained by the next part of the docstring, but not entirely.
> Read with the rest of the docstring, it reinforces the belief that the command only marks sexps *after*
> point.

Thanks.

Yes, we have a small mess on our hands here.  Over the years, as
features were added to this command, the doc string became more and
more inaccurate.  Moreover, the behavior itself is somewhat
inconsistent: AFAIK this is the only command that accepts a numeric
argument and yet behaves differently when invoked without an argument
vs with "C-u 1".

I tried to describe the behavior in the doc string as follows:

  (defun mark-sexp (&optional arg allow-extend)
    "Set mark ARG sexps from point or move mark one sexp.
  When called from Lisp with ALLOW-EXTEND ommitted or nil, mark is
  set ARG sexps from point; ARG defaults to 1.
  With ALLOW-EXTEND non-nil (interactively, with prefix argument),
  the place mark goes is the same place \\[forward-sexp] would move
  with the same value of ARG; if the mark is active, it moves ARG
  sexps from its current position, otherwise it is set ARG sexps
  from point; ARG defaults to 1.
  When invoked interactively without a prefix argument and no active
  region, mark moves one sexp forward.
  When invoked interactively without a prefix argument, and region
  is active, mark moves one sexp away of point (i.e., forward
  if mark is at or after point, back if mark is before point), thus
  extending the region by one sexp.  Since the direction of region
  extension depends on the relative position of mark and point, you
  can change the direction by \\[exchange-point-and-mark].
  This command assumes point is not in a string or comment."

It is still somewhat complicated and confusing, but at least it's
accurate, I think.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 27 Apr 2023 18:15:01 +0000
Resent-Message-ID: <handler.62892.B62892.168261926323209 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, Zachary Kanfer <zkanfer@HIDDEN>, monnier@HIDDEN, mardani29@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168261926323209
          (code B ref 62892); Thu, 27 Apr 2023 18:15:01 +0000
Received: (at 62892) by debbugs.gnu.org; 27 Apr 2023 18:14:23 +0000
Received: from localhost ([127.0.0.1]:59779 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ps68N-00062H-4A
	for submit <at> debbugs.gnu.org; Thu, 27 Apr 2023 14:14:23 -0400
Received: from relay5-d.mail.gandi.net ([217.70.183.197]:44161)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1ps68K-000621-9d
 for 62892 <at> debbugs.gnu.org; Thu, 27 Apr 2023 14:14:21 -0400
Received: (Authenticated sender: juri@HIDDEN)
 by mail.gandi.net (Postfix) with ESMTPSA id B61E91C0008;
 Thu, 27 Apr 2023 18:14:11 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
In-Reply-To: <83r0s5se94.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 27 Apr
 2023 15:25:59 +0300")
Organization: LINKOV.NET
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <m1354nr42v.fsf@HIDDEN>
 <CAFXT+RO8MLOq=PoCEWCg2Wvvhay=U9bgq41Ev4ew34PO9-0Zng@HIDDEN>
 <835y9jupgg.fsf@HIDDEN>
 <CAFXT+ROk5-ydr22qh0QD0B0F5pyG=vByHcLH1nUyQ32wQGORxQ@HIDDEN>
 <83r0s5se94.fsf@HIDDEN>
Date: Thu, 27 Apr 2023 21:12:55 +0300
Message-ID: <86ttx19ot4.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> I tried to describe the behavior in the doc string as follows:
>
>   (defun mark-sexp (&optional arg allow-extend)
>     "Set mark ARG sexps from point or move mark one sexp.
>   When called from Lisp with ALLOW-EXTEND ommitted or nil, mark is
>   set ARG sexps from point; ARG defaults to 1.
>   With ALLOW-EXTEND non-nil (interactively, with prefix argument),
>   the place mark goes is the same place \\[forward-sexp] would move
>   with the same value of ARG; if the mark is active, it moves ARG
>   sexps from its current position, otherwise it is set ARG sexps
>   from point; ARG defaults to 1.
>   When invoked interactively without a prefix argument and no active
>   region, mark moves one sexp forward.
>   When invoked interactively without a prefix argument, and region
>   is active, mark moves one sexp away of point (i.e., forward
>   if mark is at or after point, back if mark is before point), thus
>   extending the region by one sexp.  Since the direction of region
>   extension depends on the relative position of mark and point, you
>   can change the direction by \\[exchange-point-and-mark].
>   This command assumes point is not in a string or comment."
>
> It is still somewhat complicated and confusing, but at least it's
> accurate, I think.

mark-sexp has a counterpart mark-word that has almost the same
implementation and docstring.  So this could be fixed in both places.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 28 Apr 2023 05:29:01 +0000
Resent-Message-ID: <handler.62892.B62892.168265970922216 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Juri Linkov <juri@HIDDEN>
Cc: ruijie@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, monnier@HIDDEN, 62892 <at> debbugs.gnu.org, mardani29@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168265970922216
          (code B ref 62892); Fri, 28 Apr 2023 05:29:01 +0000
Received: (at 62892) by debbugs.gnu.org; 28 Apr 2023 05:28:29 +0000
Received: from localhost ([127.0.0.1]:60231 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1psGei-0005mF-6p
	for submit <at> debbugs.gnu.org; Fri, 28 Apr 2023 01:28:28 -0400
Received: from mail-oa1-f52.google.com ([209.85.160.52]:62670)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1psGeg-0005lz-B3
 for 62892 <at> debbugs.gnu.org; Fri, 28 Apr 2023 01:28:27 -0400
Received: by mail-oa1-f52.google.com with SMTP id
 586e51a60fabf-18f16a2c329so9127256fac.0
 for <62892 <at> debbugs.gnu.org>; Thu, 27 Apr 2023 22:28:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1682659700; x=1685251700;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=E9321AaRBPVfujaGuzl9DtfpOz5Xl9N0z67JrbbBZP0=;
 b=ObkholXh2FrDFkMC6g1IPOpNH8VTKs+fUiz+QalpvMJvkXgDGF2hU7AutQoyvrJXKD
 3CshtCY5swS/3jbZvNGz4qORbUzv6F1tvdpAQzQ7wCD5YRGUf/i+LPp+LHFz+qh2mibm
 HsvpHTTCPK94xT4ol5NqMvYKoJcq/I2GnqXPWNx7/fqFtNY0SdtdnNvq/XQv5IiKqECA
 se6ionpJCyh3nyKmXFjSSYTcfta2J8FQu7n6FeESVNUX9Gnk+4Msmgjus2XYejHbMAY3
 NUHeV2sBGcLEnqAcg0Al9Pw2Rw+9EUO7drGHYsNf9stMyDbl7yU0lyZgJlkuVPO74pq0
 jSfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1682659700; x=1685251700;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=E9321AaRBPVfujaGuzl9DtfpOz5Xl9N0z67JrbbBZP0=;
 b=Ebd+s5o+XJBTmG4BV3XjWoUPXECpilc+3ECif/6lNIgFQMGBxef29YIW7HAYzXEZNZ
 cbL+CowMahQxt5JECsBQbUWZDUyMXKhXT612WV/fLmzihD5hmX42ISaD/Rny3AWgqdEe
 p25zRsS5zsz5ujfLwVxfCQMz/r4YKpwxI/EmQ1qWlLZNxC/DLdhP4i6KdiYNS+V4HocC
 kcEkp1JYwyqAmJlb/Q3JUA9uE7VxGGU8qns6PD16qW6H85Yxpg4wp2d35R9g5DAw7WNi
 wnMC3VsyJCPzAsA9dNpSGO/68e3r6mrIu4Wfi80ODFG3PiYnxY8AbzynynHLvRtD9xdz
 ifrg==
X-Gm-Message-State: AC+VfDyqRvokiplEi/xMt7L8htjX49RsQqDGtnrBZ22S+EMIPbUSSzD1
 Tav8adC5k3GBk1awTfx4U4hWsVU/xVjYH7UdLZI=
X-Google-Smtp-Source: ACHHUZ7tsE+X21LuRgip0ar0RVDPcgSm/TmIoU8r45K8y9N+lGYPv49OSVD1t5YcN/okklW9luk7BBZ6btdHvzNLzTM=
X-Received: by 2002:a05:6808:8ce:b0:383:e7ad:efaf with SMTP id
 k14-20020a05680808ce00b00383e7adefafmr1999385oij.8.1682659700303; Thu, 27 Apr
 2023 22:28:20 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <m1354nr42v.fsf@HIDDEN>
 <CAFXT+RO8MLOq=PoCEWCg2Wvvhay=U9bgq41Ev4ew34PO9-0Zng@HIDDEN>
 <835y9jupgg.fsf@HIDDEN>
 <CAFXT+ROk5-ydr22qh0QD0B0F5pyG=vByHcLH1nUyQ32wQGORxQ@HIDDEN>
 <83r0s5se94.fsf@HIDDEN> <86ttx19ot4.fsf@HIDDEN>
In-Reply-To: <86ttx19ot4.fsf@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Fri, 28 Apr 2023 01:28:09 -0400
Message-ID: <CAFXT+ROcOy8GR1a7mjPFBvhpiJbVqwTo-xMAn8c=jEw2XVB8Ww@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000b6eb1905fa5ebdb2"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000b6eb1905fa5ebdb2
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I made some minor changes below. Alongside my suggestions are explanations
as to why. This is a hard command to describe!

> (defun mark-sexp (&optional arg allow-extend)
>  "Set mark ARG sexps from point or move mark ARG sexps.

Mark can be moved ARG steps. Press C-M-@ C-M-@ C-u 3 C-M-@. There will be
five total sexps marked. I'm hoping this explains that case as well, and
giving an intuition for what this command does ("move mark ARG steps").

> When invoked interactively without a prefix argument and no active
> region, mark moves one sexp forward.

I moved this first, both because I suspect it's the most common use case,
but also because it's the the simplest to understand.

> When invoked interactively without a prefix argument, and region
> is active, mark moves one sexp away from point (i.e., forward
> if mark is at or after point, back if mark is before point), thus
> extending the region by one sexp.
> With ALLOW-EXTEND non-nil (interactively, with prefix argument),
> the place mark goes is the same place \\[forward-sexp] would move
> with the same value of ARG; if the mark is active, it moves ARG
> sexps from its current position, otherwise it is set ARG sexps
> from point.

Moved this earlier to keep the entire interactive block together.

> When the region is active, the direction the region is extended
> depends on the relative position of mark and point. This means the
> direction can be changed by pressing \\[exchange-point-and-mark]
> before this command..

I moved this to a separate section to simplify the earlier parts, and to
call out that this is possible whenever the region is active.

> When called from Lisp with ALLOW-EXTEND omitted or nil, mark is
> set ARG (defaulting to 1) sexps from point.

Removed extra m from "omitted".

> This command assumes point is not in a string or comment."

Altogether, the docstring with my suggestions looks like:

> (defun mark-sexp (&optional arg allow-extend)
>  "Set mark ARG sexps from point or move mark ARG sexps.
> When invoked interactively without a prefix argument and no active
> region, mark moves one sexp forward.
> When invoked interactively without a prefix argument, and region
> is active, mark moves one sexp away from point (i.e., forward
> if mark is at or after point, back if mark is before point), thus
> extending the region by one sexp.
> With ALLOW-EXTEND non-nil (interactively, with prefix argument),
> the place mark goes is the same place \\[forward-sexp] would move
> with the same value of ARG; if the mark is active, it moves ARG
> sexps from its current position, otherwise it is set ARG sexps
> from point.
> When the region is active, the direction the region is extended
> depends on the relative position of mark and point. This means the
> direction can be changed by pressing \\[exchange-point-and-mark]
> before this command.
> When called from Lisp with ALLOW-EXTEND omitted or nil, mark is
> set ARG (defaulting to 1) sexps from point.
> This command assumes point is not in a string or comment."

This is a complicated command, for sure -- which is partially why I want
simple functions to mark sexps forward and backward: to not have to think
about different cases. Can we fork off a discussion about those functions?
Having simple functions allows the user to do what they want without having
to learn complex nuance.

On Thu, Apr 27, 2023 at 2:14=E2=80=AFPM Juri Linkov <juri@HIDDEN> wrote=
:

> > I tried to describe the behavior in the doc string as follows:
> >
> >   (defun mark-sexp (&optional arg allow-extend)
> >     "Set mark ARG sexps from point or move mark one sexp.
> >   When called from Lisp with ALLOW-EXTEND ommitted or nil, mark is
> >   set ARG sexps from point; ARG defaults to 1.
> >   With ALLOW-EXTEND non-nil (interactively, with prefix argument),
> >   the place mark goes is the same place \\[forward-sexp] would move
> >   with the same value of ARG; if the mark is active, it moves ARG
> >   sexps from its current position, otherwise it is set ARG sexps
> >   from point; ARG defaults to 1.
> >   When invoked interactively without a prefix argument and no active
> >   region, mark moves one sexp forward.
> >   When invoked interactively without a prefix argument, and region
> >   is active, mark moves one sexp away of point (i.e., forward
> >   if mark is at or after point, back if mark is before point), thus
> >   extending the region by one sexp.  Since the direction of region
> >   extension depends on the relative position of mark and point, you
> >   can change the direction by \\[exchange-point-and-mark].
> >   This command assumes point is not in a string or comment."
> >
> > It is still somewhat complicated and confusing, but at least it's
> > accurate, I think.
>
> mark-sexp has a counterpart mark-word that has almost the same
> implementation and docstring.  So this could be fixed in both places.
>

--000000000000b6eb1905fa5ebdb2
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I made some minor changes below. Alongside my suggestions =
are explanations as to why. This is a hard command to describe!<br><br>&gt;=
 (defun mark-sexp (&amp;optional arg allow-extend)<br>&gt; =C2=A0&quot;Set =
mark ARG sexps from point or move mark ARG sexps.<br><br>Mark can be moved =
ARG steps. Press C-M-@ C-M-@ C-u 3 C-M-@. There will be five total sexps ma=
rked. I&#39;m hoping this explains that case as well, and giving an intuiti=
on for what this command does (&quot;move mark ARG steps&quot;).<br><br>&gt=
; When invoked interactively without a prefix argument and no active<br>&gt=
; region, mark moves one sexp forward.<br><br>I moved this first, both beca=
use I suspect it&#39;s the most common use case, but also because it&#39;s =
the the simplest to understand.<br><br>&gt; When invoked interactively with=
out a prefix argument, and region<br>&gt; is active, mark moves one sexp aw=
ay from point (i.e., forward<br>&gt; if mark is at or after point, back if =
mark is before point), thus<br>&gt; extending the region by one sexp.<br>&g=
t; With ALLOW-EXTEND non-nil (interactively, with prefix argument),<br>&gt;=
 the place mark goes is the same place \\[forward-sexp] would move<br>&gt; =
with the same value of ARG; if the mark is active, it moves ARG<br>&gt; sex=
ps from its current position, otherwise it is set ARG sexps<br>&gt; from po=
int.<br><br>Moved this earlier to keep the entire interactive block togethe=
r.<br><br>&gt; When the region is active, the direction the region is exten=
ded<br>&gt; depends on the relative position of mark and point. This means =
the<br>&gt; direction can be changed by pressing \\[exchange-point-and-mark=
]<br>&gt; before this command..<br><br>I moved this to a separate section t=
o simplify the earlier parts, and to call out that this is possible wheneve=
r the region is active.<br><br>&gt; When called from Lisp with ALLOW-EXTEND=
 omitted or nil, mark is<br>&gt; set ARG (defaulting to 1) sexps from point=
.<br><br>Removed extra m from &quot;omitted&quot;.<br><br>&gt; This command=
 assumes point is not in a string or comment.&quot;<br><br>Altogether, the =
docstring with my suggestions looks like:<br><br>&gt; (defun mark-sexp (&am=
p;optional arg allow-extend)<br>&gt; =C2=A0&quot;Set mark ARG sexps from po=
int or move mark ARG sexps.<br>&gt; When invoked interactively without a pr=
efix argument and no active<br>&gt; region, mark moves one sexp forward.<br=
>&gt; When invoked interactively without a prefix argument, and region<br>&=
gt; is active, mark moves one sexp away from point (i.e., forward<br>&gt; i=
f mark is at or after point, back if mark is before point), thus<br>&gt; ex=
tending the region by one sexp.<br>&gt; With ALLOW-EXTEND non-nil (interact=
ively, with prefix argument),<br>&gt; the place mark goes is the same place=
 \\[forward-sexp] would move<br>&gt; with the same value of ARG; if the mar=
k is active, it moves ARG<br>&gt; sexps from its current position, otherwis=
e it is set ARG sexps<br>&gt; from point.<br>&gt; When the region is active=
, the direction the region is extended<br>&gt; depends on the relative posi=
tion of mark and point. This means the<br>&gt; direction can be changed by =
pressing \\[exchange-point-and-mark]<br>&gt; before this command.<br>&gt; W=
hen called from Lisp with ALLOW-EXTEND omitted or nil, mark is<br>&gt; set =
ARG (defaulting to 1) sexps from point.<br>&gt; This command assumes point =
is not in a string or comment.&quot;<br><br>This is a complicated command, =
for sure -- which is partially why I want simple functions to mark sexps fo=
rward and backward: to not have to think about different cases. Can we fork=
 off a discussion about those functions? Having simple functions allows the=
 user to do what they want without having to learn complex nuance.</div><br=
><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, A=
pr 27, 2023 at 2:14=E2=80=AFPM Juri Linkov &lt;<a href=3D"mailto:juri@linko=
v.net">juri@HIDDEN</a>&gt; wrote:<br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex">&gt; I tried to describe the behavior in the doc stri=
ng as follows:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0(defun mark-sexp (&amp;optional arg allow-extend)<br>
&gt;=C2=A0 =C2=A0 =C2=A0&quot;Set mark ARG sexps from point or move mark on=
e sexp.<br>
&gt;=C2=A0 =C2=A0When called from Lisp with ALLOW-EXTEND ommitted or nil, m=
ark is<br>
&gt;=C2=A0 =C2=A0set ARG sexps from point; ARG defaults to 1.<br>
&gt;=C2=A0 =C2=A0With ALLOW-EXTEND non-nil (interactively, with prefix argu=
ment),<br>
&gt;=C2=A0 =C2=A0the place mark goes is the same place \\[forward-sexp] wou=
ld move<br>
&gt;=C2=A0 =C2=A0with the same value of ARG; if the mark is active, it move=
s ARG<br>
&gt;=C2=A0 =C2=A0sexps from its current position, otherwise it is set ARG s=
exps<br>
&gt;=C2=A0 =C2=A0from point; ARG defaults to 1.<br>
&gt;=C2=A0 =C2=A0When invoked interactively without a prefix argument and n=
o active<br>
&gt;=C2=A0 =C2=A0region, mark moves one sexp forward.<br>
&gt;=C2=A0 =C2=A0When invoked interactively without a prefix argument, and =
region<br>
&gt;=C2=A0 =C2=A0is active, mark moves one sexp away of point (i.e., forwar=
d<br>
&gt;=C2=A0 =C2=A0if mark is at or after point, back if mark is before point=
), thus<br>
&gt;=C2=A0 =C2=A0extending the region by one sexp.=C2=A0 Since the directio=
n of region<br>
&gt;=C2=A0 =C2=A0extension depends on the relative position of mark and poi=
nt, you<br>
&gt;=C2=A0 =C2=A0can change the direction by \\[exchange-point-and-mark].<b=
r>
&gt;=C2=A0 =C2=A0This command assumes point is not in a string or comment.&=
quot;<br>
&gt;<br>
&gt; It is still somewhat complicated and confusing, but at least it&#39;s<=
br>
&gt; accurate, I think.<br>
<br>
mark-sexp has a counterpart mark-word that has almost the same<br>
implementation and docstring.=C2=A0 So this could be fixed in both places.<=
br>
</blockquote></div>

--000000000000b6eb1905fa5ebdb2--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 28 Apr 2023 17:08:01 +0000
Resent-Message-ID: <handler.62892.B62892.16827016508184 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>
Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.16827016508184
          (code B ref 62892); Fri, 28 Apr 2023 17:08:01 +0000
Received: (at 62892) by debbugs.gnu.org; 28 Apr 2023 17:07:30 +0000
Received: from localhost ([127.0.0.1]:34379 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1psRZC-00027v-2V
	for submit <at> debbugs.gnu.org; Fri, 28 Apr 2023 13:07:30 -0400
Received: from relay6-d.mail.gandi.net ([217.70.183.198]:51875)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1psRZA-00027i-1J
 for 62892 <at> debbugs.gnu.org; Fri, 28 Apr 2023 13:07:29 -0400
Received: (Authenticated sender: juri@HIDDEN)
 by mail.gandi.net (Postfix) with ESMTPSA id 9D9A4C0004;
 Fri, 28 Apr 2023 17:07:19 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
In-Reply-To: <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 (Zachary Kanfer's message of "Sun, 23 Apr 2023 01:33:44 -0400")
Organization: LINKOV.NET
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
Date: Fri, 28 Apr 2023 20:04:48 +0300
Message-ID: <86jzxwuedr.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> Attached is a patch with a few updates:

Thanks for the patch.  It would be nice to have such commands
even not bound to default keys, so the users are free to bind
them to any keys.

> I'm not exactly sure of the best place to put the helper function, nor
> exactly how the different lisp files in Emacs work together. There's no
> provide statement; are all the files in lisp/emacs-lisp loaded at the same
> time? If so, I'll make the other relevant functions (for marking word,
> defun, page, paragraph, line, and char).

Let's see:
- mark-sexp and mark-defun are defined in emacs-lisp/lisp.el
- mark-page in textmodes/page.el
- mark-paragraph in textmodes/paragraphs.el
- mark-word in simple.el

So looks like the best place to define the helper is simple.el,
before mark-word.

> +(defun mark--helper (move-fn number-of-things)

A nicer name would be 'mark-thing' as a reference to thingatpt.el.

> +  "Use MOVE-FN to move NUMBER-OF-THINGS things, extending region over them.
> +
> +The MOVE-FN should take a numeric argument, and move that many
> +items forward (negative means backward).
> +
> +NUMBER-OF-THINGS is the number of additional things to move."

Another variant is to use a single argument JUMPFORM like
in 'isearch-yank-internal' that allows not to leak the
prefix argument to the helper function:

  (defun isearch-yank-char (&optional arg)
    (isearch-yank-internal (lambda () (forward-char arg) (point))))




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Drew Adams <drew.adams@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 28 Apr 2023 19:29:01 +0000
Resent-Message-ID: <handler.62892.B62892.168271014124361 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Juri Linkov <juri@HIDDEN>, Zachary Kanfer <zkanfer@HIDDEN>
Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, "62892 <at> debbugs.gnu.org" <62892 <at> debbugs.gnu.org>
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168271014124361
          (code B ref 62892); Fri, 28 Apr 2023 19:29:01 +0000
Received: (at 62892) by debbugs.gnu.org; 28 Apr 2023 19:29:01 +0000
Received: from localhost ([127.0.0.1]:34561 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1psTm8-0006Kq-O1
	for submit <at> debbugs.gnu.org; Fri, 28 Apr 2023 15:29:01 -0400
Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:29860)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1psTm3-0006Ka-P0
 for 62892 <at> debbugs.gnu.org; Fri, 28 Apr 2023 15:28:57 -0400
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 33SHnDRf006141; Fri, 28 Apr 2023 19:28:54 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com;
 h=from : to : cc :
 subject : date : message-id : references : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2023-03-30;
 bh=11FA3o584q7Lj6N2GbRnxFq0yesP8JZylRz567cvdng=;
 b=Y+M1g/SW7K+7lZ+A8a2fLyjfQ/KOvWonXuHHdvCx0jK3Z8LEazN7XFIgeyRh1Gyj6YqL
 vqOda27RdqZ4L4DnJsyWy7Tr/4EnEudoDp/HsKWJ1wHniIy+jiNhNTSzxfzhyUXnAnIB
 U/JIPG1bRm8S93ytwktAT8pNu60WVrW65Z1ZnuFkT0RHwSr95zCURYpdFCo+6QFSicst
 TIPKtmX/oFJ1oVgPnlvNMOeJav3zH1wA/kidsmVxuLBNtRHZTaLNJ38Ioa5M5KoRGdt1
 UtY3tKanewmYkA+VP2xueF1NKJZEhZac63j4AI2osXP2Lp3jm6UyeAqgsB84JhczleWI YA== 
Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta01.appoci.oracle.com [130.35.100.223])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3q476u70nq-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 28 Apr 2023 19:28:54 +0000
Received: from pps.filterd
 (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 33SJB3k5029856; Fri, 28 Apr 2023 19:28:45 GMT
Received: from nam12-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 3q461b6rd5-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 28 Apr 2023 19:28:45 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RWeKXPT/Aq+tmvd/H8kHkgC/lyQz+i+/1tBEo4PGS9vb7rctnEDT1AMiMH8nGHsfnDHV0xtGvSIr/zGF2nY3YMRvduGrPYgIYtEls7UQZYUhtyRwkE7VmzlCvODNEAUfjMLa1wBc2+Bg9jbHYtLE95VTGRXo3/yQMM+CHyuQAX3jIS1eI3CRhqWXEMJMSR61AAfDRwUfSo46c1njKRSLWMpWN3/t19dG3K8vSdWl67pKzT8jTgXmDL0tcWBI3MuMx8O3hMKC0NvTT6lKM5PlFkc0f77t7AlIqobc08ZWgV3CsGuofmpwtEmVIP6h5s4AdnJr4bC2ANMq2rUKeDtQ0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=11FA3o584q7Lj6N2GbRnxFq0yesP8JZylRz567cvdng=;
 b=Uy0tjlQefqvFK8MYkm3vxol1Wq40yepNIA/wYs64a1kPVkXSdolWSFZQ0Vi0QJLgDI4kMmvgg3Bhmnjth5YXfyIQbIjrZamIGTGp0zP8pIE6p6QpciSPjtGXNULEicr52kb25CQmk+5G6HWOfyGxa3n2OUMzDp7nlCbVBo/xQzjNgrDa1Wj5r9Ns3I6uU6wZERPd3hKfzD5RcHyb6GMAr8+hf6W1AharvDaYw4iSUKYTrl4uBlh7v/UMv1WS1pfPgTbe+bSVC0pmhQftQk1w5FDQB/B87yXSALZXMFxkH4mVJFCthYfHoaQYjmPdNPmY4sx1Evlbos1tAQbbuFCwuA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=11FA3o584q7Lj6N2GbRnxFq0yesP8JZylRz567cvdng=;
 b=lv+XkZ0GWI2tdtlZoFlHnLjlhgZtHV/DKz5xwpuHwU56HGJQou/kCFw54omkGoi5tl/ZcicVguOPpnOMBh2qaAxr3QX3HxN/7ldN014T3PddZX95LlCgJ9uq91jTxO04bRlq8edHRXXm6TVt8e3hvE7xjMSxwDzDieV2i/FZMyU=
Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19)
 by DS7PR10MB5103.namprd10.prod.outlook.com (2603:10b6:5:3a8::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.24; Fri, 28 Apr
 2023 19:28:43 +0000
Received: from SJ0PR10MB5488.namprd10.prod.outlook.com
 ([fe80::a995:2ae5:2745:24ff]) by SJ0PR10MB5488.namprd10.prod.outlook.com
 ([fe80::a995:2ae5:2745:24ff%5]) with mapi id 15.20.6340.024; Fri, 28 Apr 2023
 19:28:43 +0000
From: Drew Adams <drew.adams@HIDDEN>
Thread-Topic: [External] : bug#62892: proposal to extend mark-sexp to go
 forward and backward on command
Thread-Index: AQHZefQgxJgPgbUcZkGnUbMLr4apHa9BFKCA
Date: Fri, 28 Apr 2023 19:28:43 +0000
Message-ID: <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
In-Reply-To: <86jzxwuedr.fsf@HIDDEN>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SJ0PR10MB5488:EE_|DS7PR10MB5103:EE_
x-ms-office365-filtering-correlation-id: 0276858b-82e3-44fc-129b-08db481ec77c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 8XoTZ/hBhlKDWrd6N5oZsOc6Fj8UDXPRbZgdDGYhN9UE2GuyE/vgVIvys9cNSfk+LWQYqkqBzrAf1T9tPn19hbBysLXcoPgEK9VGGRpmySLK3hR1/MzwrjDa9fbchz4RSu6TbELVqC7y37vsazCB10ZBPlS5oG0dCsJHEFEwF8MlzSX10ZIPSCODaj0OA1DuuN+N8Yt59Vhbb2VTqcKwgV2DRbIYGgKwRlJovlaZeRgl32tC6xzudimVbReyxr4CNUz88SUt8zgd0ROg6zXW+QXkIqKUluKdCXyYWbtfG7oLP0uDO7EReK2bRaADMqRR/rbJPcWV4gIs+FytZQHtT6E/IU+Rx8oNufXqLm8SsgqrcapCthEufjxt4CWXPyIHdVdADKj0Xd2bjOzDdiAx0R3jQjO6ZYl+q0SpzJuN9jmlWrk8s9ddCT4Dpo5r/Q23zIrBM8P9qCW/GNM1+uEeangGVPUjBAlkySSDkAqafxAa8jfQZKFE3y1PsZTR0cvf57sGhmCCwel2I95pKSv/8Mxy3MLbp9o5Oxzc2uKqLdw+MxBj9mMGrNkxwm/racs/WoBwbDklpSyT5KRM3n/p2KeKESMYn0v2MlqUUgBNyYJSAxurH7CQwTts3PwGkGDg
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SJ0PR10MB5488.namprd10.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230028)(396003)(136003)(376002)(346002)(39860400002)(366004)(451199021)(86362001)(33656002)(38070700005)(2906002)(55016003)(7696005)(71200400001)(186003)(83380400001)(6506007)(26005)(9686003)(44832011)(4326008)(64756008)(66476007)(66446008)(76116006)(66946007)(478600001)(110136005)(66556008)(316002)(52536014)(5660300002)(38100700002)(41300700001)(122000001)(8676002)(54906003)(8936002);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: taBQwCPczzhzt0TdjC5eWHct3niCHI1C4HMthr2WNTtJaugL+ptcOdsNqaUQiEVtbSpzOkVU0TQMMAe3+FrCznVsAzyuuzhQnkXaiCSY6sfjKdKvW2U94+THEIStbPM5T7dVbQUsQncgdiPm8cV5fYbhjcaHB+5TUBf1IG8c5z8np3uec8Vir7ZhXS3QW+YGGrTF1my4ujP2tpK5qMKL6bC6D14tfDJnbnYrbUjw0ml68Vo3nRvS3W6rQBYw/JUO008cLrltTojj0QZb+UzCNS98VmWUeHv1Mh9GVmTYwozMnZ7wsAmhKJ/em3YoDiDZar+suXKp6h2ky24vfLW0fnvOWJqnGzhIQwNMFlNi8YCtvm9m57eL2Ik4WplA+U6mWlKQCRclDBmeKJPpR91wP/H7ZxlIN0I/r53ERHweI4NVyFNQd7Dim9JsCxGoesRiLg3q63fKAwFmPpv0gpehevCg/x2SKQy7/W3NtfClkKxDVVR1G907xJGPPIcoeQGTVp5Lh8KfPbR7h24/iVNTy6yqitUrmnRzdZkoZtdF0HdaLqrLzFHnWbRgCtVzMlFyZsUiOOCQ23qNzED73XvauW18Jc9eEkoMoHRO3USeyNAAnbnyiGZVkoR//T8Y93FhQOzNcLGyiwbJZOhOC9UQJL8XSGHvVrBcPfCWdlGOqPmJJVU3TyGaXOY0QDJIWWOLVGeBvkSg3M6LjgcPml9PhVnaQBNbhH0PuuCEyJBfncUHwDBuHaJM4B8NFYIkM8PDLMA4WZkcaRIaqViAQUETvpoG9yY6Zz1xyPreAuXrJHjZnT4tdxOB4MWNdJAUBzfSsb4ZzBNwtIDnlxLLIFrHndIfctiovbBsB9R+7Wj2XHi495bKXVrpTpYt/JonO03ur+iPuhsepk2lOZZfE7ruYOk/WTs1Hx7A6K9OoEppYX8gNd8dVXITAxezybE5036jmgKeUVScvvFGFAR2/6zBb3IUJJmRUEaq/2MuUaqSeZYXcz7ZgDsw9Xan9EGGvO6IAcbAAuKeobTCaSRJKrSJRnF3HwafiUkHyxq20BAwN22xKS0NR6qPvVj4e7Z8P7+RV7BW+s0Lya3e2PTz2RkUBYPL9qTq3BBdzL5zf3vWswPZRw7jOPYlpGhjkILzD5TqNWeOWcT3iTDslTbVpREABZ1K3dTyXPWt+sNJ9f9GQ5QByq58oX6O+92IyJW2fdpSMbZBNrSGXPDSLD/4gnO1D1I07fJK208fr1F5AyqdbOW4BXGjRzo3Yla0MjWnsRyEUDkTSVq9XnC8VGNKrD1xxowlrfMOFTEStkbLhxav6Vhg1nXLdWkYryf4aLwFG8B/Rkh24n1XvfC6zbVEJfnAb4Mu4wRfQ3jUwMx1yX8t2lhWkixGi5n3zXW2cvEYe+CrGVw4/JvJrygZUlI5e83W/ZHx7PHQOZqMo5dpyglLUlZQyXoJTwxkpwWgNNBoToYHN/Tw1t+nZkjg/lq6wuOAPiMUtpZC6KpNNdqjAVAJSYp4uK87u4S3wwTRJYd+ba9r2qvE6qPeRLc+2PECSSWostTW64nI63S05MyENySN+IwuqYkb3JT+KD72vdrMLiLy
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: UKJwn5igpLgnPs4eB8YYzbrfMfX9YMZT5QS3frYF+6YYz2SP5gn30CgUr4IweZyXCEo+yo+6v7w30VyOPY+6lp7QksKVlNj/SUv4NlN82+JXDXuIlhC5rrIItFAgIZ2f79bf3mNg1MTvSrtpkTDFxt/tc5vWWbwORM5XYE2OitpVzpRDw929+HaDEbepXCbM75spF9jPWp9CkPUxPJ85iQfvhmkp6gWJXe+OrOM4w22lIH4EJLF1kaEzBJZpX9OzcwJPwKY/VMkSAjix3z5HoejfxOLnfW4wFB7OQDY1AjaJAHgkPg8jmFVChfFQcohr7oJHfoVnN3W2ADC4nEJBOTYbUsFKNYagHyA7ziD8cL3TFBjQ9sYXWnjV7P39bAs+kRSQCPfrsUO9388VT0+4ACDfAiJSfYd/sMjpPdHOmw8YOK15X2K7jtp0XNmK8pPolQu75vUiqeGBABJRsxsx6S0Q0jkvAE4NIkSJ68m5+M4mn/vu+ec8j7Tc4kp/JTufhh/bhKo0GBD5ovE8y8KlvxuHvAgHweNQSK+M/VUWCRCFWWiPv8VkG42034WGiacrdagOZ7bcnManK8vFg58qMXS8oGEP4aNMOSV0SOgd8zH1dbD1WxMwt+sniW6DSvrwD4PhLIzK+UQv+A5dtj27J95wfzpG1vv21XZ1hGspJSX08hZO6WhTxMETrOzAqjda0Z29nPH0XH91m/6UL9KG5t/lLEpT2F2TKFEBfmozEUOYIoJraqLFKzi9IfFN3x0uOO46R8mReTRQJ2OQJm8fVcfV1Zgis7bYFxVpGmHRpFYejkt/42q5FWO85m74geags9ypSlQsvwvwjZmmnQWCWjr++bdUoSKR76cSSWltp+aYSYl+IQ0RsVatRxfckf0756yNsrr5O+t+N1cijL7GTw==
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5488.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0276858b-82e3-44fc-129b-08db481ec77c
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2023 19:28:43.5635 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 6BY5QkOZaLQUVyzKUFPBNXT8vdYPNv7D/9gMjYOQPQEpoZ+4+MTn1pYbluKrS4/ZOOdyTFNHT6c6zT7IG8Ejgg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5103
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22
 definitions=2023-04-28_06,2023-04-27_01,2023-02-09_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 mlxlogscore=807
 adultscore=0 malwarescore=0 mlxscore=0 spamscore=0 bulkscore=0
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2303200000 definitions=main-2304280159
X-Proofpoint-GUID: YiSmG3toUeKcjxTmsF49LcqLs7zvdtJ5
X-Proofpoint-ORIG-GUID: YiSmG3toUeKcjxTmsF49LcqLs7zvdtJ5
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> > +(defun mark--helper (move-fn number-of-things)
>=20
> A nicer name would be 'mark-thing' as a reference to thingatpt.el.

FWIW, I have a different take on this.

Is it an "internal" function?  Then its name should
maybe use `--'.  (But why should it be internal?)

Is it a helper function?  Then its name should maybe
use a suffix that indicates that, such as `-helper'
or `-1' (old-school Lisp, I suppose).

`mark-thing' should be reserved for a function that
takes a THING name as arg: `sexp', `page', etc.,
instead of a movement function such as `forward-sexp'.
___

FWIW, I think MOVE-FN is a fine name for the argument.
My own preference, and what I use in my code, is the
name FORWARD-THING-FUNCTION.
___

FWIW, in my library isearch+.el), I use the arg name
THING for a thing name, not a movement or other
function.

E.g.: Function `isearchp-in-thing-p' is a helper
function for defining specific THING-type predicates,
such as `isearch(-not)-in-email-address-p'.
___

FWIW, my library `thing-cmds.el' has a command named
`mark-things', which prompts for a THING type as arg:

 mark-things is an alias for 'select-things' in 'thing-cmds.el'.

 (mark-things THING &optional ARG ALLOW-EXTEND)

 Set point at one end of THING and set mark ARG THINGs from point.
 THING is a symbol that names a type of thing.  Interactively, you are
 prompted for it.  Completion is available (lax).

 (If THING doesn't have an associated `forward-'THING operation then
 do nothing.)

 Put mark at the same place command `forward-'THING would move point
 with the same prefix argument.

 Put point at the beginning of THING, unless the prefix argument (ARG)
 is negative, in which case put it at the end of THING.

 If `select-things' is repeated or if the mark is active (in Transient
 Mark mode), then it marks the next ARG THINGs, after the ones already
 marked.  In this case the type of THING used is whatever was used the
 last time `select-things' was called - you are not prompted for it.

 This region extension reusing the last type of THING happens even if
 the active region is empty.  This means that you can, for instance,
 just use `C-SPC' to activate an empty region and then use
 `select-things' to select more THINGS of the last kind selected.

 If there is no THING at point, and `thgcmd-use-nearest-thing-flag' is
 non-nil, then select a THING near point.





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 03 May 2023 06:11:02 +0000
Resent-Message-ID: <handler.62892.B62892.168309422118742 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Juri Linkov <juri@HIDDEN>
Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168309422118742
          (code B ref 62892); Wed, 03 May 2023 06:11:02 +0000
Received: (at 62892) by debbugs.gnu.org; 3 May 2023 06:10:21 +0000
Received: from localhost ([127.0.0.1]:45478 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pu5gy-0004sE-KT
	for submit <at> debbugs.gnu.org; Wed, 03 May 2023 02:10:21 -0400
Received: from mail-oo1-f49.google.com ([209.85.161.49]:51303)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1pu5gw-0004ry-GY
 for 62892 <at> debbugs.gnu.org; Wed, 03 May 2023 02:10:19 -0400
Received: by mail-oo1-f49.google.com with SMTP id
 006d021491bc7-54c905139deso1196922eaf.2
 for <62892 <at> debbugs.gnu.org>; Tue, 02 May 2023 23:10:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1683094212; x=1685686212;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=bwCAsRIH0WeqT9phLuUdfotGLQ27xk7rrbpWRM1J8iM=;
 b=ZinAuL3qriFSEVKnur0UefM0umTevNoWIApJGzdJfY/e3FN2BJWOy1NAfrZBBA0XkT
 3LPBqWLlcziDug9RfzG9iCytASlvUiO8w+XJxh1Whqrz0UnxufshaZZcQJw2L8u504Lz
 wvkh8GwoGAdrEsIsCMZa2MsfJcb5U7Dj67sG6uKJhogK9vs3piyVvrLXrsATsq4wOeWu
 Y7xcc4g56NrpjMc4bQ6/+ux9Y+pnFlHXFSNC47qRPCrpubQ/Lh3sKv3r7lutdUUX0pKG
 PUmR+eh7cug+5LP/+Pg4zLUjI+7zqd1So5A6vh+tpvTU7Zzs5qhZVq6hs6pZd+lMm8yX
 +bAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1683094212; x=1685686212;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=bwCAsRIH0WeqT9phLuUdfotGLQ27xk7rrbpWRM1J8iM=;
 b=hRXRsRe//5kPuoXgYDoPdOBbCHErAJsVCT/KzC60sEp0wPfwkZZQjsf0qYNemRqsjT
 yfQOpzvfzb4fUSLGfYR9pusdafx4qPB/3CgQt78qYa+3Rq/TivKwlTasQ85lE0S3XD7x
 aW2C5qzxwu/nwKW/yAJFNtaRDDdlfsO5bvMrjau64oWlfbAMCosaZFoLXC/4fUidR9Sq
 H5gMSolvkkSaoWiHW7IW3aK52YjPFBr7dKi1oTueGamVgaZu+wk50/8rqexpYesQZhJ+
 aoZH/EwEIYv30b7FdUPDHN1vT7IksozZqxKX1Xs9Ln/3xCNkcx8VoB+VIjtG62pn+u2T
 OpFg==
X-Gm-Message-State: AC+VfDwk4w/TawUkGs9eS8YcJo1FOmS574z4vN7Yc4LKPNK7w1W0Lpvz
 Zky53OLnAU55qFJ0IkvsVDPq/e2cqsuI32wOn0Q=
X-Google-Smtp-Source: ACHHUZ7RMp4ZkuV4nbrPlmLyqS43y5lSV8lvCuVjweqbAFdP2qqRpEZD016GJB/kF/dHrrFxolSeoXWx7RrHeubfY6s=
X-Received: by 2002:a54:4590:0:b0:38e:c8a8:f233 with SMTP id
 z16-20020a544590000000b0038ec8a8f233mr9021650oib.25.1683094212546; Tue, 02
 May 2023 23:10:12 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
In-Reply-To: <86jzxwuedr.fsf@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Wed, 3 May 2023 02:10:01 -0400
Message-ID: <CAFXT+RN2f1JySEjDZTGswT69pGME=Cn63_Yy8mhPGAZX5cDNFQ@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000a995c505fac3e876"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000a995c505fac3e876
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> Thanks for the patch.  It would be nice to have such commands
> even not bound to default keys, so the users are free to bind
> them to any keys.

That's my hope, unless sufficiently good default keys can be found. I like
C-M-space and C-M-S-space, which are both currently bound to mark-sexp, but
changing the default keys is not trivially done.

> So looks like the best place to define the helper is simple.el,
> before mark-word.

Sure! I'll get a patch out for this.

> Another variant is to use a single argument JUMPFORM like
> in 'isearch-yank-internal' that allows not to leak the
> prefix argument to the helper function:

This is tempting. The downside I'm seeing to this -- which I'll think more
about to see if I can get around it -- is that we don't know if we need to
call JUMPFORM from point or mark.

We can do it from both, something like:

(defun mark--helper (fn-to-find-new-mark)
  "Extend region by calling FN-TO-FIND-NEW-MARK.

The MOVE-FN should take a numeric argument, and move that many
items forward (negative means backward).

NUMBER-OF-THINGS is the number of additional things to move."
  (if (use-region-p)
      (let* ((beginning-of-region (region-beginning))
             (end-of-region (region-end))
             (at-end-of-region (=3D end-of-region (point)))
             (move-from-front (save-excursion (goto-char
beginning-of-region)
                                              (funcall fn-to-find-new-mark)
                                              (point)))
             (move-from-end (save-excursion (goto-char end-of-region)
                                            (funcall fn-to-find-new-mark)
                                            (point)))
             (new-beginning-of-region (min beginning-of-region
move-from-front))
             (new-end-of-region (max end-of-region move-from-end)))
        (goto-char (if at-end-of-region
                       new-end-of-region
                     new-beginning-of-region))
        (set-mark (if at-end-of-region
                      new-beginning-of-region
                    new-end-of-region)))
    (progn (push-mark (save-excursion
                        (funcall fn-to-find-new-mark)
                        (point)))
           (activate-mark))))

Downsides include:

1. We have to call the function twice each time. This doesn't seem like
such a big deal unless it's expensive or has side effects -- neither of
which should be the case.
2. The current implementation errors when there are no more objects to
mark. This doesn't. I think we probably could error if we don't change the
region.
3. I'm not 100% convinced this will always do the right thing. I would like
to be.
4. I'm not sure going to one argument is worth it. The two arguments seem
pretty simple; changing to one argument might add more complexity than it
removes.

On Fri, Apr 28, 2023 at 1:07=E2=80=AFPM Juri Linkov <juri@HIDDEN> wrote=
:

> > Attached is a patch with a few updates:
>
> Thanks for the patch.  It would be nice to have such commands
> even not bound to default keys, so the users are free to bind
> them to any keys.
>
> > I'm not exactly sure of the best place to put the helper function, nor
> > exactly how the different lisp files in Emacs work together. There's no
> > provide statement; are all the files in lisp/emacs-lisp loaded at the
> same
> > time? If so, I'll make the other relevant functions (for marking word,
> > defun, page, paragraph, line, and char).
>
> Let's see:
> - mark-sexp and mark-defun are defined in emacs-lisp/lisp.el
> - mark-page in textmodes/page.el
> - mark-paragraph in textmodes/paragraphs.el
> - mark-word in simple.el
>
> So looks like the best place to define the helper is simple.el,
> before mark-word.
>
> > +(defun mark--helper (move-fn number-of-things)
>
> A nicer name would be 'mark-thing' as a reference to thingatpt.el.
>
> > +  "Use MOVE-FN to move NUMBER-OF-THINGS things, extending region over
> them.
> > +
> > +The MOVE-FN should take a numeric argument, and move that many
> > +items forward (negative means backward).
> > +
> > +NUMBER-OF-THINGS is the number of additional things to move."
>
> Another variant is to use a single argument JUMPFORM like
> in 'isearch-yank-internal' that allows not to leak the
> prefix argument to the helper function:
>
>   (defun isearch-yank-char (&optional arg)
>     (isearch-yank-internal (lambda () (forward-char arg) (point))))
>

--000000000000a995c505fac3e876
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">&gt; <span class=3D"gmail-im"></span>Thanks for the patch.=
=C2=A0 It would be nice to have such commands<br>&gt;=20
even not bound to default keys, so the users are free to bind<br><div>&gt; =
them to any keys.<span class=3D"gmail-im"><br></span></div><div><span class=
=3D"gmail-im"><br></span></div><div><span class=3D"gmail-im">That&#39;s my =
hope, unless sufficiently good default keys can be found. I like C-M-space =
and C-M-S-space, which are both currently bound to mark-sexp, but changing =
the default keys is not trivially done.</span></div><div><span class=3D"gma=
il-im"><br></span></div><div><span class=3D"gmail-im">&gt; </span>So looks =
like the best place to define the helper is simple.el,<br>&gt; before mark-=
word.</div><div><br></div><div>Sure! I&#39;ll get a patch out for this.</di=
v><div><br></div><div>&gt; Another variant is to use a single argument JUMP=
FORM like<br>&gt; in &#39;isearch-yank-internal&#39; that allows not to lea=
k the<br>&gt; prefix argument to the helper function:</div><div><br></div><=
div>This is tempting. The downside I&#39;m seeing to this -- which I&#39;ll=
 think more about to see if I can get around it -- is that we don&#39;t kno=
w if we need to call JUMPFORM from point or mark.</div><div><br></div><div>=
We can do it from both, something like:</div><div><br></div><div>(defun mar=
k--helper (fn-to-find-new-mark)<br>=C2=A0 &quot;Extend region by calling FN=
-TO-FIND-NEW-MARK.<br><br>The MOVE-FN should take a numeric argument, and m=
ove that many<br>items forward (negative means backward).<br><br>NUMBER-OF-=
THINGS is the number of additional things to move.&quot;<br>=C2=A0 (if (use=
-region-p)<br>=C2=A0 =C2=A0 =C2=A0 (let* ((beginning-of-region (region-begi=
nning))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(end-of-region (=
region-end))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(at-end-of-=
region (=3D end-of-region (point)))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0(move-from-front (save-excursion (goto-char beginning-of-regio=
n)<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 (funcall fn-to-find-new-mark)<br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (point)))<br=
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(move-from-end (save-excur=
sion (goto-char end-of-region)<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (funcall fn-to-find-new-mark)<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 (point)))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(new-begin=
ning-of-region (min beginning-of-region move-from-front))<br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(new-end-of-region (max end-of-region mov=
e-from-end)))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 (goto-char (if at-end-of-regio=
n<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0new-end-of-region<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0new-beginning-of-region))<br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 (set-mark (if at-end-of-region<br>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 new-beginning-of-re=
gion<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 new-end-of-region)))<br>=C2=A0 =C2=A0 (progn (push-mark (save-excursion=
<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 (funcall fn-to-find-new-mark)<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (point)))<br>=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(activate-mark))))</div><div><br></div><=
div>Downsides include:</div><div><br></div><div>1. We have to call the func=
tion twice each time. This doesn&#39;t seem like such a big deal unless it&=
#39;s expensive or has side effects -- neither of which should be the case.=
</div><div>2. The current implementation errors when there are no more obje=
cts to mark. This doesn&#39;t. I think we probably could error if we don&#3=
9;t change the region.</div><div>3. I&#39;m not 100% convinced this will al=
ways do the right thing. I would like to be.</div><div>4. I&#39;m not sure =
going to one argument is worth it. The two arguments seem pretty simple; ch=
anging to one argument might add more complexity than it removes.<br></div>=
<div><span class=3D"gmail-im"></span></div></div><br><div class=3D"gmail_qu=
ote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Apr 28, 2023 at 1:07=E2=
=80=AFPM Juri Linkov &lt;<a href=3D"mailto:juri@HIDDEN">juri@HIDDEN=
</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:=
0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">=
&gt; Attached is a patch with a few updates:<br>
<br>
Thanks for the patch.=C2=A0 It would be nice to have such commands<br>
even not bound to default keys, so the users are free to bind<br>
them to any keys.<br>
<br>
&gt; I&#39;m not exactly sure of the best place to put the helper function,=
 nor<br>
&gt; exactly how the different lisp files in Emacs work together. There&#39=
;s no<br>
&gt; provide statement; are all the files in lisp/emacs-lisp loaded at the =
same<br>
&gt; time? If so, I&#39;ll make the other relevant functions (for marking w=
ord,<br>
&gt; defun, page, paragraph, line, and char).<br>
<br>
Let&#39;s see:<br>
- mark-sexp and mark-defun are defined in emacs-lisp/lisp.el<br>
- mark-page in textmodes/page.el<br>
- mark-paragraph in textmodes/paragraphs.el<br>
- mark-word in simple.el<br>
<br>
So looks like the best place to define the helper is simple.el,<br>
before mark-word.<br>
<br>
&gt; +(defun mark--helper (move-fn number-of-things)<br>
<br>
A nicer name would be &#39;mark-thing&#39; as a reference to thingatpt.el.<=
br>
<br>
&gt; +=C2=A0 &quot;Use MOVE-FN to move NUMBER-OF-THINGS things, extending r=
egion over them.<br>
&gt; +<br>
&gt; +The MOVE-FN should take a numeric argument, and move that many<br>
&gt; +items forward (negative means backward).<br>
&gt; +<br>
&gt; +NUMBER-OF-THINGS is the number of additional things to move.&quot;<br=
>
<br>
Another variant is to use a single argument JUMPFORM like<br>
in &#39;isearch-yank-internal&#39; that allows not to leak the<br>
prefix argument to the helper function:<br>
<br>
=C2=A0 (defun isearch-yank-char (&amp;optional arg)<br>
=C2=A0 =C2=A0 (isearch-yank-internal (lambda () (forward-char arg) (point))=
))<br>
</blockquote></div>

--000000000000a995c505fac3e876--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 03 May 2023 17:35:01 +0000
Resent-Message-ID: <handler.62892.B62892.168313526321529 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>
Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168313526321529
          (code B ref 62892); Wed, 03 May 2023 17:35:01 +0000
Received: (at 62892) by debbugs.gnu.org; 3 May 2023 17:34:23 +0000
Received: from localhost ([127.0.0.1]:47675 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1puGMx-0005bA-G8
	for submit <at> debbugs.gnu.org; Wed, 03 May 2023 13:34:23 -0400
Received: from relay4-d.mail.gandi.net ([217.70.183.196]:45701)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1puGMv-0005ap-Lw
 for 62892 <at> debbugs.gnu.org; Wed, 03 May 2023 13:34:22 -0400
Received: (Authenticated sender: juri@HIDDEN)
 by mail.gandi.net (Postfix) with ESMTPSA id F050FE0002;
 Wed,  3 May 2023 17:34:12 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
In-Reply-To: <CAFXT+RN2f1JySEjDZTGswT69pGME=Cn63_Yy8mhPGAZX5cDNFQ@HIDDEN>
 (Zachary Kanfer's message of "Wed, 3 May 2023 02:10:01 -0400")
Organization: LINKOV.NET
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <CAFXT+RN2f1JySEjDZTGswT69pGME=Cn63_Yy8mhPGAZX5cDNFQ@HIDDEN>
Date: Wed, 03 May 2023 20:29:45 +0300
Message-ID: <864jotwcfq.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> Thanks for the patch.  It would be nice to have such commands
>> even not bound to default keys, so the users are free to bind
>> them to any keys.
>
> That's my hope, unless sufficiently good default keys can be found. I like
> C-M-space and C-M-S-space, which are both currently bound to mark-sexp, but
> changing the default keys is not trivially done.

Please also note that the reason why the current single binding is sufficient
is because it's needed only to extend the region at the opposite side of
the selected region where the mark is located, i.e. it only moves the mark.
Whereas to move the region boundary under point is easy with sexp navigation
commands (that keep the region active).  However, your two commands
are duplicating the task of moving point.  But maybe this is easier to use
for some users.

>> Another variant is to use a single argument JUMPFORM like
>> in 'isearch-yank-internal' that allows not to leak the
>> prefix argument to the helper function:
>
> This is tempting. The downside I'm seeing to this -- which I'll think more
> about to see if I can get around it -- is that we don't know if we need to
> call JUMPFORM from point or mark.

Indeed, because you need to handle motion in two directions.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 04 May 2023 04:50:01 +0000
Resent-Message-ID: <handler.62892.B62892.168317574710681 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Drew Adams <drew.adams@HIDDEN>
Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, "62892 <at> debbugs.gnu.org" <62892 <at> debbugs.gnu.org>, Juri Linkov <juri@HIDDEN>
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168317574710681
          (code B ref 62892); Thu, 04 May 2023 04:50:01 +0000
Received: (at 62892) by debbugs.gnu.org; 4 May 2023 04:49:07 +0000
Received: from localhost ([127.0.0.1]:48207 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1puQtv-0002mD-3z
	for submit <at> debbugs.gnu.org; Thu, 04 May 2023 00:49:07 -0400
Received: from mail-oa1-f53.google.com ([209.85.160.53]:46191)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1puQtq-0002lh-VS
 for 62892 <at> debbugs.gnu.org; Thu, 04 May 2023 00:49:04 -0400
Received: by mail-oa1-f53.google.com with SMTP id
 586e51a60fabf-1924fa9620aso32202fac.0
 for <62892 <at> debbugs.gnu.org>; Wed, 03 May 2023 21:49:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1683175737; x=1685767737;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=slf9XGHeIDaKEd962s0HdevNUkY9VbmHxTpCnMRHsjc=;
 b=S7wUX97OCWCkViyuGE1RkKshfwnyDb4yegwvN1ovjl4raBDFShXeenZnAYWe5umWOY
 tVdYxsrwNANqENY6MJ1fzc4ZQsVwYq25UEmEK38drQxW1T968asG2p/R+XiZiPB744AE
 RqsMM4awiU+1ayrJgsM9Ekuoo3Uig/i6euJGHU6Hy/8u6lLj15UaReSI6d6d5mOPSMmp
 YJyTn9j0eY+msK2RId029N644JOMdoAKUcGUhkmX8BFxeitp+02NUsVxOPawdHdEvjU/
 HymNyatkTyxJ2ce6ywfhdVyXsRL1tCAbcscSPPXEcWQpLHb2Q/g6kBi54w59QC4JxVt6
 xsxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1683175737; x=1685767737;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=slf9XGHeIDaKEd962s0HdevNUkY9VbmHxTpCnMRHsjc=;
 b=eFPYEVaK9LVWtxABDjsE4X5ajFAhY/YemJ7RZfLduGKbGrkuPfRjJqfNG1ZZ+G2Z3V
 Ad5FI2o/a1drDdE70NPZzJVXUp+X35mDgq5LGNoE7HVpVpvuYaz9h3TsYHGc3RfY0Y0s
 OAsiCEkJnwnKPA8O/z3Ognp/MbAeTHAvx9s8kFYJ3B8L0egTnkEhYivu1rt9ECgQKQNB
 zrIpo7AvQxkZwIMSm0mdN9R5fWGJzIpB5gJsCXVnQ7fG6y0Scu0HZ+bBPyHHcuQ9Uy0b
 TZNPxKxm3EnGdrb78T6iz/Xan8v3A+DM3h0cf1IOk+MTYZhsAlQPWYqSl5r0xcrArGa5
 bA8w==
X-Gm-Message-State: AC+VfDwqisSGleRe9Mcb5o8aaW7GoSQq2LED5LPr7+EI5plURA3GwDgQ
 YW+IrGOCU3yYXo6ECwsmgSvyzfRWQoNWSsfdGnc=
X-Google-Smtp-Source: ACHHUZ4ghj5EVl0CcXgvrb/VCVL9TWqBN0xRpl2qD0dOrsHFUBdUXsAlvsB3tEIn/+x7Yj20tbkXAbfmsBtNXyVAXJU=
X-Received: by 2002:a05:6870:d502:b0:192:4f29:7cae with SMTP id
 b2-20020a056870d50200b001924f297caemr409448oan.13.1683175737141; Wed, 03 May
 2023 21:48:57 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
In-Reply-To: <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Thu, 4 May 2023 00:48:44 -0400
Message-ID: <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000e8309b05fad6e3c7"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000e8309b05fad6e3c7
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> Is it an "internal" function?  Then its name should
> maybe use `--'.  (But why should it be internal?)

Hrm, I figured it would be an internal function because it's intended to be
wrapped by other code. But this describes a whole lot of functions. So it
can't be that.

I suppose that if there are other types of things that are created that one
might want to mark, then a user could use this method to mark them. So
perhaps it shouldn't be internal -- it really could be used by other code.

> Is it a helper function?  Then its name should maybe
> use a suffix that indicates that, such as `-helper'
> or `-1' (old-school Lisp, I suppose).

It's certainly a helper function -- it's intended to be called by a bunch
of different functions we write.

> `mark-thing' should be reserved for a function that
> takes a THING name as arg: `sexp', `page', etc.,
> instead of a movement function such as `forward-sexp'.

This makes a lot of sense to me.

On Fri, Apr 28, 2023 at 3:28=E2=80=AFPM Drew Adams <drew.adams@HIDDEN> =
wrote:

> > > +(defun mark--helper (move-fn number-of-things)
> >
> > A nicer name would be 'mark-thing' as a reference to thingatpt.el.
>
> FWIW, I have a different take on this.
>
> Is it an "internal" function?  Then its name should
> maybe use `--'.  (But why should it be internal?)
>
> Is it a helper function?  Then its name should maybe
> use a suffix that indicates that, such as `-helper'
> or `-1' (old-school Lisp, I suppose).
>
> `mark-thing' should be reserved for a function that
> takes a THING name as arg: `sexp', `page', etc.,
> instead of a movement function such as `forward-sexp'.
> ___
>
> FWIW, I think MOVE-FN is a fine name for the argument.
> My own preference, and what I use in my code, is the
> name FORWARD-THING-FUNCTION.
> ___
>
> FWIW, in my library isearch+.el), I use the arg name
> THING for a thing name, not a movement or other
> function.
>
> E.g.: Function `isearchp-in-thing-p' is a helper
> function for defining specific THING-type predicates,
> such as `isearch(-not)-in-email-address-p'.
> ___
>
> FWIW, my library `thing-cmds.el' has a command named
> `mark-things', which prompts for a THING type as arg:
>
>  mark-things is an alias for 'select-things' in 'thing-cmds.el'.
>
>  (mark-things THING &optional ARG ALLOW-EXTEND)
>
>  Set point at one end of THING and set mark ARG THINGs from point.
>  THING is a symbol that names a type of thing.  Interactively, you are
>  prompted for it.  Completion is available (lax).
>
>  (If THING doesn't have an associated `forward-'THING operation then
>  do nothing.)
>
>  Put mark at the same place command `forward-'THING would move point
>  with the same prefix argument.
>
>  Put point at the beginning of THING, unless the prefix argument (ARG)
>  is negative, in which case put it at the end of THING.
>
>  If `select-things' is repeated or if the mark is active (in Transient
>  Mark mode), then it marks the next ARG THINGs, after the ones already
>  marked.  In this case the type of THING used is whatever was used the
>  last time `select-things' was called - you are not prompted for it.
>
>  This region extension reusing the last type of THING happens even if
>  the active region is empty.  This means that you can, for instance,
>  just use `C-SPC' to activate an empty region and then use
>  `select-things' to select more THINGS of the last kind selected.
>
>  If there is no THING at point, and `thgcmd-use-nearest-thing-flag' is
>  non-nil, then select a THING near point.
>
>

--000000000000e8309b05fad6e3c7
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><span class=3D"gmail-im">&gt;=20
Is it an &quot;internal&quot; function?=C2=A0 Then its name should<br><div>
&gt; maybe use `--&#39;.=C2=A0 (But why should it be internal?)<br>
</div><div><br></div></span><div>Hrm, I figured it would be an internal=20
function because it&#39;s intended to be wrapped by other code. But this=20
describes a whole lot of functions. So it can&#39;t be that.</div><div><br>=
</div><div>I
 suppose that if there are other types of things that are created that=20
one might want to mark, then a user could use this method to mark them.=20
So perhaps it shouldn&#39;t be internal -- it really could be used by other=
=20
code.<br></div><span class=3D"gmail-im"><div><br></div><div>&gt; Is it a he=
lper function?=C2=A0 Then its name should maybe<br>
&gt; use a suffix that indicates that, such as `-helper&#39;<br>
&gt; or `-1&#39; (old-school Lisp, I suppose).</div><div><br></div></span><=
div>It&#39;s certainly a helper function -- it&#39;s intended to be called =
by a bunch of different functions we write.</div><span class=3D"gmail-im"><=
div><br></div><div>&gt; `mark-thing&#39; should be reserved for a function =
that<br>&gt; takes a THING name as arg: `sexp&#39;, `page&#39;, etc.,<br>&g=
t; instead of a movement function such as `forward-sexp&#39;.</div><div><br=
></div></span><div>This makes a lot of sense to me.</div></div><br><div cla=
ss=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Apr 28, 20=
23 at 3:28=E2=80=AFPM Drew Adams &lt;<a href=3D"mailto:drew.adams@HIDDEN=
m">drew.adams@HIDDEN</a>&gt; wrote:<br></div><blockquote class=3D"gmail=
_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204=
,204);padding-left:1ex">&gt; &gt; +(defun mark--helper (move-fn number-of-t=
hings)<br>
&gt; <br>
&gt; A nicer name would be &#39;mark-thing&#39; as a reference to thingatpt=
.el.<br>
<br>
FWIW, I have a different take on this.<br>
<br>
Is it an &quot;internal&quot; function?=C2=A0 Then its name should<br>
maybe use `--&#39;.=C2=A0 (But why should it be internal?)<br>
<br>
Is it a helper function?=C2=A0 Then its name should maybe<br>
use a suffix that indicates that, such as `-helper&#39;<br>
or `-1&#39; (old-school Lisp, I suppose).<br>
<br>
`mark-thing&#39; should be reserved for a function that<br>
takes a THING name as arg: `sexp&#39;, `page&#39;, etc.,<br>
instead of a movement function such as `forward-sexp&#39;.<br>
___<br>
<br>
FWIW, I think MOVE-FN is a fine name for the argument.<br>
My own preference, and what I use in my code, is the<br>
name FORWARD-THING-FUNCTION.<br>
___<br>
<br>
FWIW, in my library isearch+.el), I use the arg name<br>
THING for a thing name, not a movement or other<br>
function.<br>
<br>
E.g.: Function `isearchp-in-thing-p&#39; is a helper<br>
function for defining specific THING-type predicates,<br>
such as `isearch(-not)-in-email-address-p&#39;.<br>
___<br>
<br>
FWIW, my library `thing-cmds.el&#39; has a command named<br>
`mark-things&#39;, which prompts for a THING type as arg:<br>
<br>
=C2=A0mark-things is an alias for &#39;select-things&#39; in &#39;thing-cmd=
s.el&#39;.<br>
<br>
=C2=A0(mark-things THING &amp;optional ARG ALLOW-EXTEND)<br>
<br>
=C2=A0Set point at one end of THING and set mark ARG THINGs from point.<br>
=C2=A0THING is a symbol that names a type of thing.=C2=A0 Interactively, yo=
u are<br>
=C2=A0prompted for it.=C2=A0 Completion is available (lax).<br>
<br>
=C2=A0(If THING doesn&#39;t have an associated `forward-&#39;THING operatio=
n then<br>
=C2=A0do nothing.)<br>
<br>
=C2=A0Put mark at the same place command `forward-&#39;THING would move poi=
nt<br>
=C2=A0with the same prefix argument.<br>
<br>
=C2=A0Put point at the beginning of THING, unless the prefix argument (ARG)=
<br>
=C2=A0is negative, in which case put it at the end of THING.<br>
<br>
=C2=A0If `select-things&#39; is repeated or if the mark is active (in Trans=
ient<br>
=C2=A0Mark mode), then it marks the next ARG THINGs, after the ones already=
<br>
=C2=A0marked.=C2=A0 In this case the type of THING used is whatever was use=
d the<br>
=C2=A0last time `select-things&#39; was called - you are not prompted for i=
t.<br>
<br>
=C2=A0This region extension reusing the last type of THING happens even if<=
br>
=C2=A0the active region is empty.=C2=A0 This means that you can, for instan=
ce,<br>
=C2=A0just use `C-SPC&#39; to activate an empty region and then use<br>
=C2=A0`select-things&#39; to select more THINGS of the last kind selected.<=
br>
<br>
=C2=A0If there is no THING at point, and `thgcmd-use-nearest-thing-flag&#39=
; is<br>
=C2=A0non-nil, then select a THING near point.<br>
<br>
</blockquote></div>

--000000000000e8309b05fad6e3c7--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 06 May 2023 08:49:02 +0000
Resent-Message-ID: <handler.62892.B62892.168336291423857 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Juri Linkov <juri@HIDDEN>
Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, zkanfer@HIDDEN, monnier@HIDDEN, mardani29@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168336291423857
          (code B ref 62892); Sat, 06 May 2023 08:49:02 +0000
Received: (at 62892) by debbugs.gnu.org; 6 May 2023 08:48:34 +0000
Received: from localhost ([127.0.0.1]:59385 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pvDak-0006Cf-2Z
	for submit <at> debbugs.gnu.org; Sat, 06 May 2023 04:48:34 -0400
Received: from eggs.gnu.org ([209.51.188.92]:55160)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1pvDaf-0006Bw-Vy
 for 62892 <at> debbugs.gnu.org; Sat, 06 May 2023 04:48:32 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pvDaZ-0006O8-Ap; Sat, 06 May 2023 04:48:23 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=6uRCaGXdpeRLU3JQI7EyAgfAv6Nl3PNxgwJ+oHulcrY=; b=rnobevrhkhTA
 4zgcTtYiaKFI3LE0cyv+9kgBg4yTHphEP8IM5JbAYyzoOF4huvATkJZKWorbsJlTA1etuCaXqQfVf
 l6J62o5I3cCa5MEv8IVcp3G466fn5MTyN35v0shDmXcVC8j2DZUmLigzd3eMIZfuMwSVoQW7gsC0Q
 Pw5gwS/8eKLE4sb7bRJtRpA7Oeewl7Tkn89jagdsOp7DbdW2GEKxobknLKLYWJKRVHCSsxUERGkhE
 mDafEoxvFe2vw95RLA3U/p8hMDxp03ZXv5qJKARGZg/nysfsird8yIHcTork7WHmy76CiLD8juW7W
 lrH1mqxZEJfpyS34s7OYqA==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pvDaY-0007w2-RC; Sat, 06 May 2023 04:48:23 -0400
Date: Sat, 06 May 2023 11:49:17 +0300
Message-Id: <83ednthmk2.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <86ttx19ot4.fsf@HIDDEN> (message from Juri Linkov on
 Thu, 27 Apr 2023 21:12:55 +0300)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <m1354nr42v.fsf@HIDDEN>
 <CAFXT+RO8MLOq=PoCEWCg2Wvvhay=U9bgq41Ev4ew34PO9-0Zng@HIDDEN>
 <835y9jupgg.fsf@HIDDEN>
 <CAFXT+ROk5-ydr22qh0QD0B0F5pyG=vByHcLH1nUyQ32wQGORxQ@HIDDEN>
 <83r0s5se94.fsf@HIDDEN> <86ttx19ot4.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: Zachary Kanfer <zkanfer@HIDDEN>,  mardani29@HIDDEN,
>   ruijie@HIDDEN,  monnier@HIDDEN,  62892 <at> debbugs.gnu.org
> Date: Thu, 27 Apr 2023 21:12:55 +0300
> 
> > I tried to describe the behavior in the doc string as follows:
> >
> >   (defun mark-sexp (&optional arg allow-extend)
> >     "Set mark ARG sexps from point or move mark one sexp.
> >   When called from Lisp with ALLOW-EXTEND ommitted or nil, mark is
> >   set ARG sexps from point; ARG defaults to 1.
> >   With ALLOW-EXTEND non-nil (interactively, with prefix argument),
> >   the place mark goes is the same place \\[forward-sexp] would move
> >   with the same value of ARG; if the mark is active, it moves ARG
> >   sexps from its current position, otherwise it is set ARG sexps
> >   from point; ARG defaults to 1.
> >   When invoked interactively without a prefix argument and no active
> >   region, mark moves one sexp forward.
> >   When invoked interactively without a prefix argument, and region
> >   is active, mark moves one sexp away of point (i.e., forward
> >   if mark is at or after point, back if mark is before point), thus
> >   extending the region by one sexp.  Since the direction of region
> >   extension depends on the relative position of mark and point, you
> >   can change the direction by \\[exchange-point-and-mark].
> >   This command assumes point is not in a string or comment."
> >
> > It is still somewhat complicated and confusing, but at least it's
> > accurate, I think.
> 
> mark-sexp has a counterpart mark-word that has almost the same
> implementation and docstring.  So this could be fixed in both places.

Done on the emacs-29 branch.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 08 May 2023 12:29:01 +0000
Resent-Message-ID: <handler.62892.B62892.168354892712304 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Drew Adams <drew.adams@HIDDEN>
Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, "62892 <at> debbugs.gnu.org" <62892 <at> debbugs.gnu.org>, Juri Linkov <juri@HIDDEN>
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168354892712304
          (code B ref 62892); Mon, 08 May 2023 12:29:01 +0000
Received: (at 62892) by debbugs.gnu.org; 8 May 2023 12:28:47 +0000
Received: from localhost ([127.0.0.1]:39541 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pvzyv-0003CL-I2
	for submit <at> debbugs.gnu.org; Mon, 08 May 2023 08:28:47 -0400
Received: from mail-oo1-f54.google.com ([209.85.161.54]:59792)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1pvzyr-0003C5-2O
 for 62892 <at> debbugs.gnu.org; Mon, 08 May 2023 08:28:43 -0400
Received: by mail-oo1-f54.google.com with SMTP id
 006d021491bc7-54cb8d72c0bso2361696eaf.3
 for <62892 <at> debbugs.gnu.org>; Mon, 08 May 2023 05:28:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1683548915; x=1686140915;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=ErxfZmXKt100Fvvl6tWGKQHdoLWD+I29zhjlQVdC+5o=;
 b=F1c1AbyEBciL5RQMnMlJ3nMv6fHhaHgh02qS8PEGaYu+dBL7e2bxgDrKE3IMwYhj+g
 TuBOGqF/+/InwylMTepnCwFZ4lIn7dlzqs9EdwE+Sc0jun8Cn8LK5cnaYQa2TSbtq677
 G44DvEtgJ5wNNEvbojC8FyvrZchuIbgWDj3HASRMzl6X6MvnbmhG3XL5s6oDK4UBsVf9
 X9VJ5RdH+jOJAMk6vEmGq6posbvIMl4hWNyeFg1FTwpxVNNkhAzuOiVhyssp77F6E/II
 TxSiJ0qwoqZraPjZwcXvrmLQ+JXEAxVR2T0I/Dpx/jTkA1nmx8Yjgi/k+aWgrqN7sLU6
 QDew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1683548915; x=1686140915;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=ErxfZmXKt100Fvvl6tWGKQHdoLWD+I29zhjlQVdC+5o=;
 b=Ybrz3xNcpp0EDQTkVD32qCyx15w7bjzm5U9A/HpS9L7HBAI4wlOCapFAMXr6JO/Ccc
 eg+QHmox98spwkwkjO6bAV0Yqac6qugQ//owWA4ZwP1TOO1Ig5Z0GMRDge5p18eHTAK0
 dcB9sU/HcW7gRBpxN/1aIk6XMhvNOhSZiVPKWyuuuRaEu2C3OH0ODfVFYKAg6QW6xkqH
 SouDkXeNtyDT1SQ3tu+l0APHlYCWzOM9upZxlrMMKIB0tqKLAdbGHBPSYFqyM/Nuscvo
 JD4kRgoSb4P7Z9THc021Mezb4T22HzYD8LDSQ4mYTGj/LhtE8vRkFrn5HhJ2ynvcYLdP
 pNHA==
X-Gm-Message-State: AC+VfDxGLpoaGyddTQDv3iG7DqPPzg3vIFAA9xpXRpNPC/iSCd3qf74H
 TP2wBgGO7RFp0z3+KklRvJ7YTKtL1kufVI4Yj4I=
X-Google-Smtp-Source: ACHHUZ5cF9KFkkdvMcpr4Ezs8n4ukJ7n14PXRcTO1F7Vv+42irPNBdIB6miFr2uJaEV/VkEsSOwreb5LRgVxZcueKnQ=
X-Received: by 2002:a4a:9c17:0:b0:545:2420:2a77 with SMTP id
 y23-20020a4a9c17000000b0054524202a77mr4196533ooj.6.1683548915324; Mon, 08 May
 2023 05:28:35 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
In-Reply-To: <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Mon, 8 May 2023 08:28:24 -0400
Message-ID: <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000000f699705fb2dc7ed"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000000f699705fb2dc7ed
Content-Type: multipart/alternative; boundary="0000000000000f699605fb2dc7eb"

--0000000000000f699605fb2dc7eb
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Attached is a patch with the following changes:

* Uses the helper function to create mark-foo-forward, mark-foo-backward
for word, paragraph, sexp, page, and defun.
* Adds tests for all of these.
* Adds these new functions to etc/NEWS and various .texi files in
doc/emacs/.

On Thu, May 4, 2023 at 12:48=E2=80=AFAM Zachary Kanfer <zkanfer@HIDDEN> =
wrote:

> > Is it an "internal" function?  Then its name should
> > maybe use `--'.  (But why should it be internal?)
>
> Hrm, I figured it would be an internal function because it's intended to
> be wrapped by other code. But this describes a whole lot of functions. So
> it can't be that.
>
> I suppose that if there are other types of things that are created that
> one might want to mark, then a user could use this method to mark them. S=
o
> perhaps it shouldn't be internal -- it really could be used by other code=
.
>
> > Is it a helper function?  Then its name should maybe
> > use a suffix that indicates that, such as `-helper'
> > or `-1' (old-school Lisp, I suppose).
>
> It's certainly a helper function -- it's intended to be called by a bunch
> of different functions we write.
>
> > `mark-thing' should be reserved for a function that
> > takes a THING name as arg: `sexp', `page', etc.,
> > instead of a movement function such as `forward-sexp'.
>
> This makes a lot of sense to me.
>
> On Fri, Apr 28, 2023 at 3:28=E2=80=AFPM Drew Adams <drew.adams@HIDDEN=
> wrote:
>
>> > > +(defun mark--helper (move-fn number-of-things)
>> >
>> > A nicer name would be 'mark-thing' as a reference to thingatpt.el.
>>
>> FWIW, I have a different take on this.
>>
>> Is it an "internal" function?  Then its name should
>> maybe use `--'.  (But why should it be internal?)
>>
>> Is it a helper function?  Then its name should maybe
>> use a suffix that indicates that, such as `-helper'
>> or `-1' (old-school Lisp, I suppose).
>>
>> `mark-thing' should be reserved for a function that
>> takes a THING name as arg: `sexp', `page', etc.,
>> instead of a movement function such as `forward-sexp'.
>> ___
>>
>> FWIW, I think MOVE-FN is a fine name for the argument.
>> My own preference, and what I use in my code, is the
>> name FORWARD-THING-FUNCTION.
>> ___
>>
>> FWIW, in my library isearch+.el), I use the arg name
>> THING for a thing name, not a movement or other
>> function.
>>
>> E.g.: Function `isearchp-in-thing-p' is a helper
>> function for defining specific THING-type predicates,
>> such as `isearch(-not)-in-email-address-p'.
>> ___
>>
>> FWIW, my library `thing-cmds.el' has a command named
>> `mark-things', which prompts for a THING type as arg:
>>
>>  mark-things is an alias for 'select-things' in 'thing-cmds.el'.
>>
>>  (mark-things THING &optional ARG ALLOW-EXTEND)
>>
>>  Set point at one end of THING and set mark ARG THINGs from point.
>>  THING is a symbol that names a type of thing.  Interactively, you are
>>  prompted for it.  Completion is available (lax).
>>
>>  (If THING doesn't have an associated `forward-'THING operation then
>>  do nothing.)
>>
>>  Put mark at the same place command `forward-'THING would move point
>>  with the same prefix argument.
>>
>>  Put point at the beginning of THING, unless the prefix argument (ARG)
>>  is negative, in which case put it at the end of THING.
>>
>>  If `select-things' is repeated or if the mark is active (in Transient
>>  Mark mode), then it marks the next ARG THINGs, after the ones already
>>  marked.  In this case the type of THING used is whatever was used the
>>  last time `select-things' was called - you are not prompted for it.
>>
>>  This region extension reusing the last type of THING happens even if
>>  the active region is empty.  This means that you can, for instance,
>>  just use `C-SPC' to activate an empty region and then use
>>  `select-things' to select more THINGS of the last kind selected.
>>
>>  If there is no THING at point, and `thgcmd-use-nearest-thing-flag' is
>>  non-nil, then select a THING near point.
>>
>>

--0000000000000f699605fb2dc7eb
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Attached is a patch with the following changes:</div>=
<div><br></div><div>* Uses the helper function to create mark-foo-forward, =
mark-foo-backward for word, paragraph, sexp, page, and defun.</div><div>* A=
dds tests for all of these.</div><div>* Adds these new functions to etc/NEW=
S and various .texi files in doc/emacs/.<br></div></div><br><div class=3D"g=
mail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, May 4, 2023 at 12=
:48=E2=80=AFAM Zachary Kanfer &lt;<a href=3D"mailto:zkanfer@HIDDEN">zkan=
fer@HIDDEN</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddi=
ng-left:1ex"><div dir=3D"ltr"><span>&gt;=20
Is it an &quot;internal&quot; function?=C2=A0 Then its name should<br><div>
&gt; maybe use `--&#39;.=C2=A0 (But why should it be internal?)<br>
</div><div><br></div></span><div>Hrm, I figured it would be an internal=20
function because it&#39;s intended to be wrapped by other code. But this=20
describes a whole lot of functions. So it can&#39;t be that.</div><div><br>=
</div><div>I
 suppose that if there are other types of things that are created that=20
one might want to mark, then a user could use this method to mark them.=20
So perhaps it shouldn&#39;t be internal -- it really could be used by other=
=20
code.<br></div><span><div><br></div><div>&gt; Is it a helper function?=C2=
=A0 Then its name should maybe<br>
&gt; use a suffix that indicates that, such as `-helper&#39;<br>
&gt; or `-1&#39; (old-school Lisp, I suppose).</div><div><br></div></span><=
div>It&#39;s certainly a helper function -- it&#39;s intended to be called =
by a bunch of different functions we write.</div><span><div><br></div><div>=
&gt; `mark-thing&#39; should be reserved for a function that<br>&gt; takes =
a THING name as arg: `sexp&#39;, `page&#39;, etc.,<br>&gt; instead of a mov=
ement function such as `forward-sexp&#39;.</div><div><br></div></span><div>=
This makes a lot of sense to me.</div></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Fri, Apr 28, 2023 at 3:28=E2=80=AF=
PM Drew Adams &lt;<a href=3D"mailto:drew.adams@HIDDEN" target=3D"_blank=
">drew.adams@HIDDEN</a>&gt; wrote:<br></div><blockquote class=3D"gmail_=
quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,=
204);padding-left:1ex">&gt; &gt; +(defun mark--helper (move-fn number-of-th=
ings)<br>
&gt; <br>
&gt; A nicer name would be &#39;mark-thing&#39; as a reference to thingatpt=
.el.<br>
<br>
FWIW, I have a different take on this.<br>
<br>
Is it an &quot;internal&quot; function?=C2=A0 Then its name should<br>
maybe use `--&#39;.=C2=A0 (But why should it be internal?)<br>
<br>
Is it a helper function?=C2=A0 Then its name should maybe<br>
use a suffix that indicates that, such as `-helper&#39;<br>
or `-1&#39; (old-school Lisp, I suppose).<br>
<br>
`mark-thing&#39; should be reserved for a function that<br>
takes a THING name as arg: `sexp&#39;, `page&#39;, etc.,<br>
instead of a movement function such as `forward-sexp&#39;.<br>
___<br>
<br>
FWIW, I think MOVE-FN is a fine name for the argument.<br>
My own preference, and what I use in my code, is the<br>
name FORWARD-THING-FUNCTION.<br>
___<br>
<br>
FWIW, in my library isearch+.el), I use the arg name<br>
THING for a thing name, not a movement or other<br>
function.<br>
<br>
E.g.: Function `isearchp-in-thing-p&#39; is a helper<br>
function for defining specific THING-type predicates,<br>
such as `isearch(-not)-in-email-address-p&#39;.<br>
___<br>
<br>
FWIW, my library `thing-cmds.el&#39; has a command named<br>
`mark-things&#39;, which prompts for a THING type as arg:<br>
<br>
=C2=A0mark-things is an alias for &#39;select-things&#39; in &#39;thing-cmd=
s.el&#39;.<br>
<br>
=C2=A0(mark-things THING &amp;optional ARG ALLOW-EXTEND)<br>
<br>
=C2=A0Set point at one end of THING and set mark ARG THINGs from point.<br>
=C2=A0THING is a symbol that names a type of thing.=C2=A0 Interactively, yo=
u are<br>
=C2=A0prompted for it.=C2=A0 Completion is available (lax).<br>
<br>
=C2=A0(If THING doesn&#39;t have an associated `forward-&#39;THING operatio=
n then<br>
=C2=A0do nothing.)<br>
<br>
=C2=A0Put mark at the same place command `forward-&#39;THING would move poi=
nt<br>
=C2=A0with the same prefix argument.<br>
<br>
=C2=A0Put point at the beginning of THING, unless the prefix argument (ARG)=
<br>
=C2=A0is negative, in which case put it at the end of THING.<br>
<br>
=C2=A0If `select-things&#39; is repeated or if the mark is active (in Trans=
ient<br>
=C2=A0Mark mode), then it marks the next ARG THINGs, after the ones already=
<br>
=C2=A0marked.=C2=A0 In this case the type of THING used is whatever was use=
d the<br>
=C2=A0last time `select-things&#39; was called - you are not prompted for i=
t.<br>
<br>
=C2=A0This region extension reusing the last type of THING happens even if<=
br>
=C2=A0the active region is empty.=C2=A0 This means that you can, for instan=
ce,<br>
=C2=A0just use `C-SPC&#39; to activate an empty region and then use<br>
=C2=A0`select-things&#39; to select more THINGS of the last kind selected.<=
br>
<br>
=C2=A0If there is no THING at point, and `thgcmd-use-nearest-thing-flag&#39=
; is<br>
=C2=A0non-nil, then select a THING near point.<br>
<br>
</blockquote></div>
</blockquote></div>

--0000000000000f699605fb2dc7eb--

--0000000000000f699705fb2dc7ed
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Add-foo-mark-forward-foo-mark-backward-for-various-f.patch"
Content-Disposition: attachment; 
	filename="0001-Add-foo-mark-forward-foo-mark-backward-for-various-f.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lhetjnpe0>
X-Attachment-Id: f_lhetjnpe0

RnJvbSAxNzM4NmJlNTcxMjE1OWFhMzhmODk0Yzk4M2ZjNDhiMjFhMjM0YWUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNoYXJ5IEthbmZlciA8emthbmZlckBnbWFpbC5jb20+CkRh
dGU6IFN1biwgMTYgQXByIDIwMjMgMjI6MTY6MzkgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBZGQg
Zm9vLW1hcmstZm9yd2FyZCwgZm9vLW1hcmstYmFja3dhcmQsIGZvciB2YXJpb3VzIGZvby4KClRo
aXMgYWRkcyBtZXRob2RzIHRvIG1hcmsgZm9yd2FyZCBhbmQgYmFja3dhcmQgZm9yIHRoZSBnaXZl
biBvYmplY3RzOgoKKiB3b3JkCiogc2V4cAoqIGRlZnVuCiogcGFyYWdyYXBoCiogcGFnZQotLS0K
IGRvYy9lbWFjcy9tYXJrLnRleGkgICAgICAgICAgICAgICAgICAgICB8ICAxNyArKwogZG9jL2Vt
YWNzL3Byb2dyYW1zLnRleGkgICAgICAgICAgICAgICAgIHwgICA4ICsKIGRvYy9lbWFjcy90ZXh0
LnRleGkgICAgICAgICAgICAgICAgICAgICB8ICAxOCArKwogZXRjL05FV1MgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgIDIwICsrCiBsaXNwL2VtYWNzLWxpc3AvbGlzcC5lbCAgICAg
ICAgICAgICAgICAgfCAgNjAgKysrKysrCiBsaXNwL3NpbXBsZS5lbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgNDYgKysrKysKIGxpc3AvdGV4dG1vZGVzL3BhZ2UuZWwgICAgICAgICAgICAg
ICAgICB8ICAxNCArKwogbGlzcC90ZXh0bW9kZXMvcGFyYWdyYXBocy5lbCAgICAgICAgICAgIHwg
IDE0ICsrCiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9saXNwLXRlc3RzLmVsICAgICAgfCAyNjIgKysr
KysrKysrKysrKysrKysrKysrKysrCiB0ZXN0L2xpc3Avc2ltcGxlLXRlc3RzLmVsICAgICAgICAg
ICAgICAgfCAgMTQgKysKIHRlc3QvbGlzcC90ZXh0bW9kZXMvcGFnZS10ZXN0cy5lbCAgICAgICB8
ICAxMSArCiB0ZXN0L2xpc3AvdGV4dG1vZGVzL3BhcmFncmFwaHMtdGVzdHMuZWwgfCAgMzQgKysr
CiAxMiBmaWxlcyBjaGFuZ2VkLCA1MTggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9l
bWFjcy9tYXJrLnRleGkgYi9kb2MvZW1hY3MvbWFyay50ZXhpCmluZGV4IDNmMWM3NmMxNTkxLi42
YWExMmI3ODE4MSAxMDA2NDQKLS0tIGEvZG9jL2VtYWNzL21hcmsudGV4aQorKysgYi9kb2MvZW1h
Y3MvbWFyay50ZXhpCkBAIC0yMTYsNiArMjE2LDE1IEBAIE1hcmtpbmcgT2JqZWN0cwogdG8gYWR2
YW5jZSB0aGUgbWFyayBieSBAdmFye259IHdvcmRzLiAgQSBuZWdhdGl2ZSBhcmd1bWVudAogQG1p
bnVze31AdmFye259IG1vdmVzIHRoZSBtYXJrIGJhY2sgYnkgQHZhcntufSB3b3Jkcy4KIAorQGZp
bmRleCBtYXJrLXdvcmQtZm9yd2FyZAorICBAY29kZXttYXJrLXdvcmQtZm9yd2FyZH0gaXMgc2lt
aWxhciB0byBAY29kZXttYXJrLXdvcmR9LCBidXQgb25seQorICBtb3ZlcyBmb3J3YXJkLgorCitA
ZmluZGV4IG1hcmstd29yZC1iYWNrd2FyZAorICBAY29kZXttYXJrLXdvcmQtYmFja3dhcmR9IGlz
IHNpbWlsYXIgdG8gQGNvZGV7bWFyay13b3JkfSwgYnV0IG9ubHkKKyAgbW92ZXMgYmFja3dhcmQu
CisKKwogQGtpbmRleCBDLU0tQEAKIEBmaW5kZXggbWFyay1zZXhwCiAgIFNpbWlsYXJseSwgQGti
ZHtDLU0tQEB9IChAY29kZXttYXJrLXNleHB9KSBwdXRzIHRoZSBtYXJrIGF0IHRoZSBlbmQKQEAg
LTIyNCw2ICsyMzMsMTQgQEAgTWFya2luZyBPYmplY3RzCiBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBu
dW1lcmljIGFyZ3VtZW50cyBtb3ZlIHRoZSBtYXJrIGZvcndhcmQgb3IKIGJhY2t3YXJkIGJ5IHRo
ZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGV4cHJlc3Npb25zLgogCitAZmluZGV4IG1hcmstc2V4cC1m
b3J3YXJkCisgIEBjb2Rle21hcmstc2V4cC1mb3J3YXJkfSBpcyBzaW1pbGFyIHRvIEBjb2Rle21h
cmstc2V4cH0sIGJ1dCBvbmx5CisgIG1vdmVzIGZvcndhcmQuCisKK0BmaW5kZXggbWFyay1zZXhw
LWJhY2t3YXJkCisgIEBjb2Rle21hcmstc2V4cC1iYWNrd2FyZH0gaXMgc2ltaWxhciB0byBAY29k
ZXttYXJrLXNleHB9LCBidXQgb25seQorICBtb3ZlcyBiYWNrd2FyZC4KKwogICAgVGhlIG90aGVy
IGNvbW1hbmRzIGluIHRoZSBhYm92ZSBsaXN0IHNldCBib3RoIHBvaW50IGFuZCBtYXJrLCBzbyBh
cwogdG8gZGVsaW1pdCBhbiBvYmplY3QgaW4gdGhlIGJ1ZmZlci4gIEBrYmR7TS1ofSAoQGNvZGV7
bWFyay1wYXJhZ3JhcGh9KQogbWFya3MgcGFyYWdyYXBocyAoQHB4cmVme1BhcmFncmFwaHN9KSwg
QGtiZHtDLU0taH0gKEBjb2Rle21hcmstZGVmdW59KQpkaWZmIC0tZ2l0IGEvZG9jL2VtYWNzL3By
b2dyYW1zLnRleGkgYi9kb2MvZW1hY3MvcHJvZ3JhbXMudGV4aQppbmRleCA2MmRmODhhNzMxZS4u
NGNkMjAwN2UyMjUgMTAwNjQ0Ci0tLSBhL2RvYy9lbWFjcy9wcm9ncmFtcy50ZXhpCisrKyBiL2Rv
Yy9lbWFjcy9wcm9ncmFtcy50ZXhpCkBAIC0yMzAsNiArMjMwLDE0IEBAIE1vdmluZyBieSBEZWZ1
bnMKIG5lZ2F0aXZlIGFyZ3VtZW50IG1vdmVzIGJhY2sgdG8gYW4gZW5kIG9mIGEgZGVmdW4sIHdo
aWNoIGlzIG5vdCBxdWl0ZQogdGhlIHNhbWUgYXMgQGtiZHtDLU0tYX0gd2l0aCBhIHBvc2l0aXZl
IGFyZ3VtZW50LgogCitAZmluZGV4IG1hcmstZGVmdW4tZm9yd2FyZAorICBAY29kZXttYXJrLWRl
ZnVuLWZvcndhcmR9IGlzIHNpbWlsYXIgdG8gQGNvZGV7bWFyay1kZWZ1bn0sIGJ1dCBvbmx5Cisg
IG1vdmVzIGZvcndhcmQuCisKK0BmaW5kZXggbWFyay1kZWZ1bi1iYWNrd2FyZAorICBAY29kZXtt
YXJrLWRlZnVuLWJhY2t3YXJkfSBpcyBzaW1pbGFyIHRvIEBjb2Rle21hcmstZGVmdW59LCBidXQg
b25seQorICBtb3ZlcyBiYWNrd2FyZC4KKwogQGtpbmRleCBDLU0taCBAcnsoQyBtb2RlKX0KIEBm
aW5kZXggYy1tYXJrLWZ1bmN0aW9uCiAgIFRvIG9wZXJhdGUgb24gdGhlIGN1cnJlbnQgZGVmdW4s
IHVzZSBAa2Jke0MtTS1ofQpkaWZmIC0tZ2l0IGEvZG9jL2VtYWNzL3RleHQudGV4aSBiL2RvYy9l
bWFjcy90ZXh0LnRleGkKaW5kZXggM2QzZjI1NjI2MTcuLmRjZGNmMThhZDkyIDEwMDY0NAotLS0g
YS9kb2MvZW1hY3MvdGV4dC50ZXhpCisrKyBiL2RvYy9lbWFjcy90ZXh0LnRleGkKQEAgLTMxNCw2
ICszMTQsMTUgQEAgUGFyYWdyYXBocwogICBJZiB5b3Ugc2V0IGEgZmlsbCBwcmVmaXgsIHRoZW4g
cGFyYWdyYXBocyBhcmUgZGVsaW1pdGVkIGJ5IGFsbCBsaW5lcwogd2hpY2ggZG9uJ3Qgc3RhcnQg
d2l0aCB0aGUgZmlsbCBwcmVmaXguICBAeHJlZntGaWxsaW5nfS4KIAorQGZpbmRleCBtYXJrLXBh
cmFncmFwaC1mb3J3YXJkCisgIEBjb2Rle21hcmstcGFyYWdyYXBoLWZvcndhcmR9IGlzIHNpbWls
YXIgdG8gQGNvZGV7bWFyay1wYXJhZ3JhcGh9LAorICBidXQgb25seSBtb3ZlcyBmb3J3YXJkLgor
CitAZmluZGV4IG1hcmstcGFyYWdyYXBoLWJhY2t3YXJkCisgIEBjb2Rle21hcmstcGFyYWdyYXBo
LWJhY2t3YXJkfSBpcyBzaW1pbGFyIHRvIEBjb2Rle21hcmstcGFyYWdyYXBofSwKKyAgYnV0IG9u
bHkgbW92ZXMgYmFja3dhcmQuCisKKwogQHZpbmRleCBwYXJhZ3JhcGgtc3RhcnQKIEB2aW5kZXgg
cGFyYWdyYXBoLXNlcGFyYXRlCiAgIFRoZSBwcmVjaXNlIGRlZmluaXRpb24gb2YgYSBwYXJhZ3Jh
cGggYm91bmRhcnkgaXMgY29udHJvbGxlZCBieSB0aGUKQEAgLTM5NCw2ICs0MDMsMTUgQEAgUGFn
ZXMKIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IG9uZS4gIFplcm8gbWVhbnMgdGhlIGN1cnJlbnQg
cGFnZSwgb25lIG1lYW5zCiB0aGUgbmV4dCBwYWdlLCBhbmQgQG1pbnVze30xIG1lYW5zIHRoZSBw
cmV2aW91cyBvbmUuCiAKK0BmaW5kZXggbWFyay1wYWdlLWZvcndhcmQKKyAgQGNvZGV7bWFyay1w
YWdlLWZvcndhcmR9IGlzIHNpbWlsYXIgdG8gQGNvZGV7bWFyay1wYWdlfSwgYnV0IG9ubHkKKyAg
bW92ZXMgZm9yd2FyZC4KKworQGZpbmRleCBtYXJrLXBhZ2UtYmFja3dhcmQKKyAgQGNvZGV7bWFy
ay1wYWdlLWJhY2t3YXJkfSBpcyBzaW1pbGFyIHRvIEBjb2Rle21hcmstcGFnZX0sIGJ1dCBvbmx5
CisgIG1vdmVzIGJhY2t3YXJkLgorCisKIEBraW5kZXggQy14IGwKIEBmaW5kZXggY291bnQtbGlu
ZXMtcGFnZQogICBUaGUgQGtiZHtDLXggbH0gY29tbWFuZCAoQGNvZGV7Y291bnQtbGluZXMtcGFn
ZX0pIGlzIGdvb2QgZm9yIGRlY2lkaW5nCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdT
CmluZGV4IGM2MWE5ZWMzYzVmLi43NGI0ZjA1NjA5NSAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysr
IGIvZXRjL05FV1MKQEAgLTgxLDYgKzgxLDI2IEBAIG1pc3Rha2VuIGNvbXBvc2l0aW9ucywgdGhp
cyB3aWxsIG5vdyB3b3JrIGFzIHdlbGwuCiBUaGlzIHdvcmtzIGxpa2UgJ2tpbGwtbWF0Y2hpbmct
YnVmZmVycycsIGJ1dCB3aXRob3V0IGFza2luZyBmb3IKIGNvbmZpcm1hdGlvbi4KIAorLS0tCisq
KiBOZXcgY29tbWFuZHMgJ21hcmstc2V4cC1mb3J3YXJkJywgJ21hcmstc2V4cC1iYWNrd2FyZCcu
CitUaGVzZSB3b3JrIGxpa2UgbWFyay1zZXhwLCBidXQgZXhwbGljaXRseSBhbGxvdyBzZXhwcyB0
byBiZSBtYXJrZWQgZm9yd2FyZCBhbmQgYmFja3dhcmQuCisKKy0tLQorKiogTmV3IGNvbW1hbmRz
ICdtYXJrLXdvcmQtZm9yd2FyZCcsICdtYXJrLXdvcmQtYmFja3dhcmQnLgorVGhlc2Ugd29yayBs
aWtlIG1hcmstd29yZCwgYnV0IGV4cGxpY2l0bHkgYWxsb3cgd29yZHMgdG8gYmUgbWFya2VkIGZv
cndhcmQgYW5kIGJhY2t3YXJkLgorCistLS0KKyoqIE5ldyBjb21tYW5kcyAnbWFyay1kZWZ1bi1m
b3J3YXJkJywgJ21hcmstZGVmdW4tYmFja3dhcmQnLgorVGhlc2Ugd29yayBsaWtlIG1hcmstZGVm
dW4sIGJ1dCBleHBsaWNpdGx5IGFsbG93IGRlZnVucyB0byBiZSBtYXJrZWQgZm9yd2FyZCBhbmQg
YmFja3dhcmQuCisKKy0tLQorKiogTmV3IGNvbW1hbmRzICdtYXJrLXBhcmFncmFwaC1mb3J3YXJk
JywgJ21hcmstcGFyYWdyYXBoLWJhY2t3YXJkJy4KK1RoZXNlIHdvcmsgbGlrZSBtYXJrLXBhcmFn
cmFwaCwgYnV0IGV4cGxpY2l0bHkgYWxsb3cgcGFyYWdyYXBocyB0byBiZSBtYXJrZWQgZm9yd2Fy
ZCBhbmQgYmFja3dhcmQuCisKKy0tLQorKiogTmV3IGNvbW1hbmRzICdtYXJrLXBhZ2UtZm9yd2Fy
ZCcsICdtYXJrLXBhZ2UtYmFja3dhcmQnLgorVGhlc2Ugd29yayBsaWtlIG1hcmstcGFnZSwgYnV0
IGV4cGxpY2l0bHkgYWxsb3cgcGFnZXMgdG8gYmUgbWFya2VkIGZvcndhcmQgYW5kIGJhY2t3YXJk
LgorCiAMCiAqIENoYW5nZXMgaW4gU3BlY2lhbGl6ZWQgTW9kZXMgYW5kIFBhY2thZ2VzIGluIEVt
YWNzIDMwLjEKIApkaWZmIC0tZ2l0IGEvbGlzcC9lbWFjcy1saXNwL2xpc3AuZWwgYi9saXNwL2Vt
YWNzLWxpc3AvbGlzcC5lbAppbmRleCA0MTdjMjE4YzZkNy4uMzliZmU1ZDNlMDYgMTAwNjQ0Ci0t
LSBhL2xpc3AvZW1hY3MtbGlzcC9saXNwLmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC9saXNwLmVs
CkBAIC0xMjksNiArMTI5LDUyIEBAIG1hcmstc2V4cAogCSAgICAocG9pbnQpKQogCSAgbmlsIHQp
KSkpCiAKKyhkZWZ1biBtYXJrLS1oZWxwZXIgKG1vdmUtZm4gbnVtYmVyLW9mLXRoaW5ncykKKyAg
IlVzZSBNT1ZFLUZOIHRvIG1vdmUgTlVNQkVSLU9GLVRISU5HUyB0aGluZ3MsIGV4dGVuZGluZyBy
ZWdpb24gb3ZlciB0aGVtLgorCitUaGUgTU9WRS1GTiBzaG91bGQgdGFrZSBhIG51bWVyaWMgYXJn
dW1lbnQsIGFuZCBtb3ZlIHRoYXQgbWFueQoraXRlbXMgZm9yd2FyZCAobmVnYXRpdmUgbWVhbnMg
YmFja3dhcmQpLgorCitOVU1CRVItT0YtVEhJTkdTIGlzIHRoZSBudW1iZXIgb2YgYWRkaXRpb25h
bCB0aGluZ3MgdG8gbW92ZS4iCisgIChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgKGxldCogKChm
b3J3YXJkICg+PSBudW1iZXItb2YtdGhpbmdzIDApKQorICAgICAgICAgICAgIChiZWdpbm5pbmct
b2YtcmVnaW9uIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAgICAoZW5kLW9mLXJlZ2lv
biAocmVnaW9uLWVuZCkpCisgICAgICAgICAgICAgKGF0LWVuZC1vZi1yZWdpb24gKD0gZW5kLW9m
LXJlZ2lvbiAocG9pbnQpKSkKKyAgICAgICAgICAgICAobmV3LWJvcmRlci1wb2ludAorICAgICAg
ICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIChpZiBm
b3J3YXJkIChyZWdpb24tZW5kKSAocmVnaW9uLWJlZ2lubmluZykpKQorICAgICAgICAgICAgICAg
IChjb25kaXRpb24tY2FzZSBuaWwKKyAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgbW92ZS1m
biBudW1iZXItb2YtdGhpbmdzKQorICAgICAgICAgICAgICAgICAgKHNjYW4tZXJyb3IgKHVzZXIt
ZXJyb3IgIk5vIG1vcmUgaW4gdGhpcyBkaXJlY3Rpb24hIikpKQorICAgICAgICAgICAgICAgIChw
b2ludCkpKQorICAgICAgICAgICAgIChuZXctYmVnaW5uaW5nLW9mLXJlZ2lvbiAobWluIGJlZ2lu
bmluZy1vZi1yZWdpb24gbmV3LWJvcmRlci1wb2ludCkpCisgICAgICAgICAgICAgKG5ldy1lbmQt
b2YtcmVnaW9uIChtYXggZW5kLW9mLXJlZ2lvbiBuZXctYm9yZGVyLXBvaW50KSkpCisgICAgICAg
IChnb3RvLWNoYXIgKGlmIGF0LWVuZC1vZi1yZWdpb24KKyAgICAgICAgICAgICAgICAgICAgICAg
bmV3LWVuZC1vZi1yZWdpb24KKyAgICAgICAgICAgICAgICAgICAgIG5ldy1iZWdpbm5pbmctb2Yt
cmVnaW9uKSkKKyAgICAgICAgKHNldC1tYXJrIChpZiBhdC1lbmQtb2YtcmVnaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgbmV3LWJlZ2lubmluZy1vZi1yZWdpb24KKyAgICAgICAgICAgICAgICAg
ICAgbmV3LWVuZC1vZi1yZWdpb24pKSkKKyAgICAocHJvZ24gKHB1c2gtbWFyayAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIG1vdmUtZm4gbnVtYmVyLW9m
LXRoaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAo
YWN0aXZhdGUtbWFyaykpKSkKKworKGRlZnVuIG1hcmstc2V4cC1mb3J3YXJkICgmb3B0aW9uYWwg
bnVtYmVyLW9mLWV4cHJlc3Npb25zKQorICAiTWFyayBOVU1CRVItT0YtRVhQUkVTU0lPTlMgcy1l
eHByZXNzaW9ucyBmb3J3YXJkLgorCisgUmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBtYXJrIG1vcmUg
cy1leHByZXNzaW9ucy4iCisgIChpbnRlcmFjdGl2ZSAicCIpCisgIChtYXJrLS1oZWxwZXIgIydm
b3J3YXJkLXNleHAgKG9yIG51bWJlci1vZi1leHByZXNzaW9ucyAxKSkpCisKKyhkZWZ1biBtYXJr
LXNleHAtYmFja3dhcmQgKCZvcHRpb25hbCBudW1iZXItb2YtZXhwcmVzc2lvbnMpCisgICJNYXJr
IE5VTUJFUi1PRi1FWFBSRVNTSU9OUyBzLWV4cHJlc3Npb25zIGJhY2t3YXJkLgorCisgUmVwZWF0
ZWQgY2FsbHMgdG8gdGhpcyBtYXJrIG1vcmUgcy1leHByZXNzaW9ucy4iCisgIChpbnRlcmFjdGl2
ZSAicCIpCisgIChtYXJrLS1oZWxwZXIgIydmb3J3YXJkLXNleHAgKC0gKG9yIG51bWJlci1vZi1l
eHByZXNzaW9ucyAxKSkpKQorCiAoZGVmdW4gZm9yd2FyZC1saXN0ICgmb3B0aW9uYWwgYXJnIGlu
dGVyYWN0aXZlKQogICAiTW92ZSBmb3J3YXJkIGFjcm9zcyBvbmUgYmFsYW5jZWQgZ3JvdXAgb2Yg
cGFyZW50aGVzZXMuCiBUaGlzIGNvbW1hbmQgd2lsbCBhbHNvIHdvcmsgb24gb3RoZXIgcGFyZW50
aGVzZXMtbGlrZSBleHByZXNzaW9ucwpAQCAtNjA0LDYgKzY1MCwyMCBAQCBlbmQtb2YtZGVmdW4K
ICAgICAgICAgICAoZnVuY2FsbCBlbmQtb2YtZGVmdW4tZnVuY3Rpb24pCiAJICAoZnVuY2FsbCBz
a2lwKSkpKSkpCiAKKyhkZWZ1biBtYXJrLWRlZnVuLWZvcndhcmQgKCZvcHRpb25hbCBudW1iZXIt
b2YtZGVmdW5zKQorICAiTWFyayBOVU1CRVItT0YtREVGVU5TIGRlZnVucyBmb3J3YXJkLgorCisg
UmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBtYXJrIG1vcmUgZGVmdW5zLiIKKyAgKGludGVyYWN0aXZl
ICJwIikKKyAgKG1hcmstLWhlbHBlciAjJ2VuZC1vZi1kZWZ1biAob3IgbnVtYmVyLW9mLWRlZnVu
cyAxKSkpCisKKyhkZWZ1biBtYXJrLWRlZnVuLWJhY2t3YXJkICgmb3B0aW9uYWwgbnVtYmVyLW9m
LWRlZnVucykKKyAgIk1hcmsgTlVNQkVSLU9GLURFRlVOUyBkZWZ1bnMgYmFja3dhcmQuCisKKyBS
ZXBlYXRlZCBjYWxscyB0byB0aGlzIG1hcmsgbW9yZSBkZWZ1bnMuIgorICAoaW50ZXJhY3RpdmUg
InAiKQorICAobWFyay0taGVscGVyICMnZW5kLW9mLWRlZnVuICgtIChvciBudW1iZXItb2YtZGVm
dW5zIDEpKSkpCisKIChkZWZ1biBtYXJrLWRlZnVuICgmb3B0aW9uYWwgYXJnIGludGVyYWN0aXZl
KQogICAiUHV0IG1hcmsgYXQgZW5kIG9mIHRoaXMgZGVmdW4sIHBvaW50IGF0IGJlZ2lubmluZy4K
IFRoZSBkZWZ1biBtYXJrZWQgaXMgdGhlIG9uZSB0aGF0IGNvbnRhaW5zIHBvaW50IG9yIGZvbGxv
d3MgcG9pbnQuCmRpZmYgLS1naXQgYS9saXNwL3NpbXBsZS5lbCBiL2xpc3Avc2ltcGxlLmVsCmlu
ZGV4IGI2MjFlMTYwM2JkLi40NmZmNzU1OWEyYyAxMDA2NDQKLS0tIGEvbGlzcC9zaW1wbGUuZWwK
KysrIGIvbGlzcC9zaW1wbGUuZWwKQEAgLTg3MDEsNiArODcwMSw1MiBAQCBiYWNrd2FyZC13b3Jk
CiAgIChpbnRlcmFjdGl2ZSAiXnAiKQogICAoZm9yd2FyZC13b3JkICgtIChvciBhcmcgMSkpKSkK
IAorKGRlZnVuIG1hcmstLWhlbHBlciAobW92ZS1mbiBudW1iZXItb2YtdGhpbmdzKQorICAiVXNl
IE1PVkUtRk4gdG8gbW92ZSBOVU1CRVItT0YtVEhJTkdTIHRoaW5ncywgZXh0ZW5kaW5nIHJlZ2lv
biBvdmVyIHRoZW0uCisKK1RoZSBNT1ZFLUZOIHNob3VsZCB0YWtlIGEgbnVtZXJpYyBhcmd1bWVu
dCwgYW5kIG1vdmUgdGhhdCBtYW55CitpdGVtcyBmb3J3YXJkIChuZWdhdGl2ZSBtZWFucyBiYWNr
d2FyZCkuCisKK05VTUJFUi1PRi1USElOR1MgaXMgdGhlIG51bWJlciBvZiBhZGRpdGlvbmFsIHRo
aW5ncyB0byBtb3ZlLiIKKyAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAobGV0KiAoKGZvcndh
cmQgKD49IG51bWJlci1vZi10aGluZ3MgMCkpCisgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1y
ZWdpb24gKHJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgIChlbmQtb2YtcmVnaW9uIChy
ZWdpb24tZW5kKSkKKyAgICAgICAgICAgICAoYXQtZW5kLW9mLXJlZ2lvbiAoPSBlbmQtb2YtcmVn
aW9uIChwb2ludCkpKQorICAgICAgICAgICAgIChuZXctYm9yZGVyLXBvaW50CisgICAgICAgICAg
ICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKGlmIGZvcndh
cmQgKHJlZ2lvbi1lbmQpIChyZWdpb24tYmVnaW5uaW5nKSkpCisgICAgICAgICAgICAgICAgKGNv
bmRpdGlvbi1jYXNlIG5pbAorICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBtb3ZlLWZuIG51
bWJlci1vZi10aGluZ3MpCisgICAgICAgICAgICAgICAgICAoc2Nhbi1lcnJvciAodXNlci1lcnJv
ciAiTm8gbW9yZSBpbiB0aGlzIGRpcmVjdGlvbiEiKSkpCisgICAgICAgICAgICAgICAgKHBvaW50
KSkpCisgICAgICAgICAgICAgKG5ldy1iZWdpbm5pbmctb2YtcmVnaW9uIChtaW4gYmVnaW5uaW5n
LW9mLXJlZ2lvbiBuZXctYm9yZGVyLXBvaW50KSkKKyAgICAgICAgICAgICAobmV3LWVuZC1vZi1y
ZWdpb24gKG1heCBlbmQtb2YtcmVnaW9uIG5ldy1ib3JkZXItcG9pbnQpKSkKKyAgICAgICAgKGdv
dG8tY2hhciAoaWYgYXQtZW5kLW9mLXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgICBuZXct
ZW5kLW9mLXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgbmV3LWJlZ2lubmluZy1vZi1yZWdp
b24pKQorICAgICAgICAoc2V0LW1hcmsgKGlmIGF0LWVuZC1vZi1yZWdpb24KKyAgICAgICAgICAg
ICAgICAgICAgICBuZXctYmVnaW5uaW5nLW9mLXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICBu
ZXctZW5kLW9mLXJlZ2lvbikpKQorICAgIChwcm9nbiAocHVzaC1tYXJrIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgbW92ZS1mbiBudW1iZXItb2YtdGhp
bmdzKQorICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAgIChhY3Rp
dmF0ZS1tYXJrKSkpKQorCisoZGVmdW4gbWFyay13b3JkLWZvcndhcmQgKCZvcHRpb25hbCBudW1i
ZXItb2Ytd29yZHMpCisgICJNYXJrIE5VTUJFUi1PRi1XT1JEUyB3b3JkcyBmb3J3YXJkLgorCisg
UmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBtYXJrIG1vcmUgd29yZHMuIgorICAoaW50ZXJhY3RpdmUg
InAiKQorICAobWFyay0taGVscGVyICMnZm9yd2FyZC13b3JkIChvciBudW1iZXItb2Ytd29yZHMg
MSkpKQorCisoZGVmdW4gbWFyay13b3JkLWJhY2t3YXJkICgmb3B0aW9uYWwgbnVtYmVyLW9mLXdv
cmRzKQorICAiTWFyayBOVU1CRVItT0YtV09SRFMgd29yZHMgYmFja3dhcmQuCisKKyBSZXBlYXRl
ZCBjYWxscyB0byB0aGlzIG1hcmsgbW9yZSB3b3Jkcy4iCisgIChpbnRlcmFjdGl2ZSAicCIpCisg
IChtYXJrLS1oZWxwZXIgIydmb3J3YXJkLXdvcmQgKC0gKG9yIG51bWJlci1vZi13b3JkcyAxKSkp
KQorCiAoZGVmdW4gbWFyay13b3JkICgmb3B0aW9uYWwgYXJnIGFsbG93LWV4dGVuZCkKICAgIlNl
dCBtYXJrIEFSRyB3b3JkcyBhd2F5IGZyb20gcG9pbnQuCiBUaGUgcGxhY2UgbWFyayBnb2VzIGlz
IHRoZSBzYW1lIHBsYWNlIFxcW2ZvcndhcmQtd29yZF0gd291bGQKZGlmZiAtLWdpdCBhL2xpc3Av
dGV4dG1vZGVzL3BhZ2UuZWwgYi9saXNwL3RleHRtb2Rlcy9wYWdlLmVsCmluZGV4IDg2YTI3NjJi
MGVlLi5hZmViZDhmZGIyNSAxMDA2NDQKLS0tIGEvbGlzcC90ZXh0bW9kZXMvcGFnZS5lbAorKysg
Yi9saXNwL3RleHRtb2Rlcy9wYWdlLmVsCkBAIC03MSw2ICs3MSwyMCBAQCBiYWNrd2FyZC1wYWdl
CiAgIChvciBjb3VudCAoc2V0cSBjb3VudCAxKSkKICAgKGZvcndhcmQtcGFnZSAoLSBjb3VudCkp
KQogCisoZGVmdW4gbWFyay1wYWdlLWZvcndhcmQgKCZvcHRpb25hbCBudW1iZXItb2YtcGFnZXMp
CisgICJNYXJrIE5VTUJFUi1PRi1QQUdFUyBwYWdlcyBmb3J3YXJkLgorCisgUmVwZWF0ZWQgY2Fs
bHMgdG8gdGhpcyBtYXJrIG1vcmUgcGFnZXMuIgorICAoaW50ZXJhY3RpdmUgInAiKQorICAobWFy
ay0taGVscGVyICMnZm9yd2FyZC1wYWdlIChvciBudW1iZXItb2YtcGFnZXMgMSkpKQorCisoZGVm
dW4gbWFyay1wYWdlLWJhY2t3YXJkICgmb3B0aW9uYWwgbnVtYmVyLW9mLXBhZ2VzKQorICAiTWFy
ayBOVU1CRVItT0YtUEFHRVMgcGFnZXMgYmFja3dhcmQuCisKKyBSZXBlYXRlZCBjYWxscyB0byB0
aGlzIG1hcmsgbW9yZSBwYWdlcy4iCisgIChpbnRlcmFjdGl2ZSAicCIpCisgIChtYXJrLS1oZWxw
ZXIgIydmb3J3YXJkLXBhZ2UgKC0gKG9yIG51bWJlci1vZi1wYWdlcyAxKSkpKQorCiAoZGVmdW4g
bWFyay1wYWdlICgmb3B0aW9uYWwgYXJnKQogICAiUHV0IG1hcmsgYXQgZW5kIG9mIHBhZ2UsIHBv
aW50IGF0IGJlZ2lubmluZy4KIEEgbnVtZXJpYyBhcmcgc3BlY2lmaWVzIHRvIG1vdmUgZm9yd2Fy
ZCBvciBiYWNrd2FyZCBieSB0aGF0IG1hbnkgcGFnZXMsCmRpZmYgLS1naXQgYS9saXNwL3RleHRt
b2Rlcy9wYXJhZ3JhcGhzLmVsIGIvbGlzcC90ZXh0bW9kZXMvcGFyYWdyYXBocy5lbAppbmRleCA2
YzMzMzgwYjZiZC4uYTI3OGQ0ODU2ODEgMTAwNjQ0Ci0tLSBhL2xpc3AvdGV4dG1vZGVzL3BhcmFn
cmFwaHMuZWwKKysrIGIvbGlzcC90ZXh0bW9kZXMvcGFyYWdyYXBocy5lbApAQCAtMzYwLDYgKzM2
MCwyMCBAQCBiYWNrd2FyZC1wYXJhZ3JhcGgKICAgKG9yIGFyZyAoc2V0cSBhcmcgMSkpCiAgIChm
b3J3YXJkLXBhcmFncmFwaCAoLSBhcmcpKSkKIAorKGRlZnVuIG1hcmstcGFyYWdyYXBoLWZvcndh
cmQgKCZvcHRpb25hbCBudW1iZXItb2YtcGFyYWdyYXBocykKKyAgIk1hcmsgTlVNQkVSLU9GLVBB
UkFHUkFQSFMgcGFyYWdyYXBocyBmb3J3YXJkLgorCisgUmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBt
YXJrIG1vcmUgcGFyYWdyYXBocy4iCisgIChpbnRlcmFjdGl2ZSAicCIpCisgIChtYXJrLS1oZWxw
ZXIgIydmb3J3YXJkLXBhcmFncmFwaCAob3IgbnVtYmVyLW9mLXBhcmFncmFwaHMgMSkpKQorCiso
ZGVmdW4gbWFyay1wYXJhZ3JhcGgtYmFja3dhcmQgKCZvcHRpb25hbCBudW1iZXItb2YtcGFyYWdy
YXBocykKKyAgIk1hcmsgTlVNQkVSLU9GLVBBUkFHUkFQSFMgcGFyYWdyYXBocyBiYWNrd2FyZC4K
KworIFJlcGVhdGVkIGNhbGxzIHRvIHRoaXMgbWFyayBtb3JlIHBhcmFncmFwaHMuIgorICAoaW50
ZXJhY3RpdmUgInAiKQorICAobWFyay0taGVscGVyICMnZm9yd2FyZC1wYXJhZ3JhcGggKC0gKG9y
IG51bWJlci1vZi1wYXJhZ3JhcGhzIDEpKSkpCisKIChkZWZ1biBtYXJrLXBhcmFncmFwaCAoJm9w
dGlvbmFsIGFyZyBhbGxvdy1leHRlbmQpCiAgICJQdXQgcG9pbnQgYXQgYmVnaW5uaW5nIG9mIHRo
aXMgcGFyYWdyYXBoLCBtYXJrIGF0IGVuZC4KIFRoZSBwYXJhZ3JhcGggbWFya2VkIGlzIHRoZSBv
bmUgdGhhdCBjb250YWlucyBwb2ludCBvciBmb2xsb3dzIHBvaW50LgpkaWZmIC0tZ2l0IGEvdGVz
dC9saXNwL2VtYWNzLWxpc3AvbGlzcC10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2xp
c3AtdGVzdHMuZWwKaW5kZXggMmU1ZTJhNzQwYjEuLjNlMjhmNzIzMmU1IDEwMDY0NAotLS0gYS90
ZXN0L2xpc3AvZW1hY3MtbGlzcC9saXNwLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1s
aXNwL2xpc3AtdGVzdHMuZWwKQEAgLTExNiw2ICsxMTYsMjA3IEBAIGxpc3AtYmFja3dhcmQtc2V4
cC0yLWJvYnAtYW5kLXN1YnNlcXVlbnQKICAgICAoc2hvdWxkIChudWxsIDs7IChzaG91bGQtZXJy
b3IgOzsgTm8sIHBlciAjMTM5OTQKICAgICAgKGZvcndhcmQtc2V4cCAtMSkpKSkpCiAKKyhlcnQt
ZGVmdGVzdCBtYXJrLXNleHAtZm9yd2FyZC1vbmUtZm9yd2FyZC1jaGVjay1wb2ludCAoKQorICAo
c2hvdWxkIChlcXVhbCAxNAorICAgICAgICAgICAgICAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5z
ZXJ0ICIoMSAyKQorKDMgNCA1KQorKDYpCisoNyA4KSIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChlbmQtb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKG1hcmstc2V4cC1mb3J3YXJkKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAocG9pbnQpKSkpKQorCisoZXJ0LWRlZnRlc3QgbWFyay1zZXhwLWZv
cndhcmQtb25lLWZvcndhcmQtcGFzcy12YWx1ZS1jaGVjay1wb2ludCAoKQorICAoc2hvdWxkIChl
cXVhbCAxNAorICAgICAgICAgICAgICAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0ICIoMSAy
KQorKDMgNCA1KQorKDYpCisoNyA4KSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChlbmQtb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKG1hcmstc2V4cC1mb3J3YXJkIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChwb2ludCkpKSkpCisKKyhlcnQtZGVmdGVzdCBtYXJrLXNleHAtZm9yd2FyZC1v
bmUtZm9yd2FyZC1jaGVjay1yZWdpb24gKCkKKyAgKHNob3VsZCAoZXF1YWwgIig2KSIKKyAgICAg
ICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCAiKDEgMikKKygzIDQgNSkKKyg2
KQorKDcgOCkiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
IChwb2ludC1taW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2Fy
ZC1saW5lIDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrLXNleHAt
Zm9yd2FyZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJz
dHJpbmctbm8tcHJvcGVydGllcyAocmVnaW9uLWJlZ2lubmluZykKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnaW9u
LWVuZCkpKSkpKQorCisoZXJ0LWRlZnRlc3QgbWFyay1zZXhwLWZvcndhcmQtb25lLWZvcndhcmQt
cGFzcy12YWx1ZS1jaGVjay1yZWdpb24gKCkKKyAgKHNob3VsZCAoZXF1YWwgIig2KSIKKyAgICAg
ICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCAiKDEgMikKKygzIDQgNSkKKyg2
KQorKDcgOCkiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
IChwb2ludC1taW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2Fy
ZC1saW5lIDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrLXNleHAt
Zm9yd2FyZCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1
YnN0cmluZy1uby1wcm9wZXJ0aWVzIChyZWdpb24tYmVnaW5uaW5nKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWdp
b24tZW5kKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBtYXJrLXNleHAtYmFja3dhcmQtb25lLWJhY2t3
YXJkLWNoZWNrLXBvaW50ICgpCisgIChzaG91bGQgKGVxdWFsIDE0CisgICAgICAgICAgICAgICAg
ICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgIigxIDIpCisoMyA0IDUpCisoNikKKyg3IDgpIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWlu
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZC1vZi1saW5lKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobWFyay1zZXhwLWJhY2t3YXJkKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpKQorCisoZXJ0LWRlZnRlc3QgbWFy
ay1zZXhwLWJhY2t3YXJkLW9uZS1iYWNrd2FyZC1jaGVjay1yZWdpb24gKCkKKyAgKHNob3VsZCAo
ZXF1YWwgIigzIDQgNSkiCisgICAgICAgICAgICAgICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNl
cnQgIigxIDIpCisoMyA0IDUpCisoNikKKyg3IDgpIikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVuZC1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobWFyay1zZXhwLWJhY2t3YXJkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChyZWdpb24tYmVnaW5uaW5nKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChyZWdpb24tZW5kKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBtYXJrLXNleHAtb25lLWZv
cndhcmQtdGhlbi1vbmUtYmFja3dhcmQtY2hlY2stcG9pbnQgKCkKKyAgKHNob3VsZCAoZXF1YWwg
NworICAgICAgICAgICAgICAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0ICIoMSAyKQorKDMg
NCA1KQorKDYpCisoNyA4KSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChn
b3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChmb3J3YXJkLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmQt
b2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcmstc2V4cC1m
b3J3YXJkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFyay1zZXhwLWJh
Y2t3YXJkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpKQor
CisoZXJ0LWRlZnRlc3QgbWFyay1zZXhwLW9uZS1mb3J3YXJkLXRoZW4tb25lLWJhY2t3YXJkLWNo
ZWNrLXJlZ2lvbiAoKQorICAoc2hvdWxkIChlcXVhbCAiKDMgNCA1KQorKDYpIgorICAgICAgICAg
ICAgICAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0ICIoMSAyKQorKDMgNCA1KQorKDYpCiso
NyA4KSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBv
aW50LW1pbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxp
bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmQtb2YtbGluZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcmstc2V4cC1mb3J3YXJkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFyay1zZXhwLWJhY2t3YXJkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9w
ZXJ0aWVzIChyZWdpb24tYmVnaW5uaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWdpb24tZW5kKSkpKSkpCisK
KyhlcnQtZGVmdGVzdCBtYXJrLXNleHAtb25lLWZvcndhcmQtdGhlbi1vbmUtYmFja3dhcmQtdGhl
bi1vbmUtZm9yd2FyZC1jaGVjay1wb2ludCAoKQorICAoc2hvdWxkIChlcXVhbCA3CisgICAgICAg
ICAgICAgICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgIigxIDIpCisoMyA0IDUpCisoNikK
Kyg3IDgpIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
cG9pbnQtbWluKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQt
bGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZC1vZi1saW5lKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFyay1zZXhwLWZvcndhcmQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrLXNleHAtYmFja3dhcmQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrLXNleHAtZm9yd2FyZCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKSkKKworKGVydC1kZWZ0
ZXN0IG1hcmstc2V4cC1vbmUtZm9yd2FyZC10aGVuLW9uZS1iYWNrd2FyZC10aGVuLW9uZS1mb3J3
YXJkLWNoZWNrLXJlZ2lvbiAoKQorICAoc2hvdWxkIChlcXVhbCA3CisgICAgICAgICAgICAgICAg
ICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgIigxIDIpCisoMyA0IDUpCisoNikKKyg3IDgpIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWlu
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZC1vZi1saW5lKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobWFyay1zZXhwLWZvcndhcmQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrLXNleHAtYmFja3dhcmQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrLXNleHAtZm9yd2FyZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKSkKKworCisKKyhlcnQtZGVmdGVzdCBt
YXJrLXNleHAtZm9yd2FyZC1vbmUtZm9yd2FyZC1vbmUtYmFjay1vbmUtZm9yd2FyZC1jaGVjay1y
ZWdpb24gKCkKKyAgKHNob3VsZCAoZXF1YWwgIigzIDQgNSkKKyg2KQorKDcgOCkiCisgICAgICAg
ICAgICAgICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgIigxIDIpCisoMyA0IDUpCisoNikK
Kyg3IDgpIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
cG9pbnQtbWluKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQt
bGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZC1vZi1saW5lKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFyay1zZXhwLWZvcndhcmQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrLXNleHAtYmFja3dhcmQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrLXNleHAtZm9yd2FyZCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJv
cGVydGllcyAocmVnaW9uLWJlZ2lubmluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnaW9uLWVuZCkpKSkpKQor
CisoZXJ0LWRlZnRlc3QgbWFyay1zZXhwLWZvcndhcmQtdHdvLWZvcndhcmQtY2hlY2stcG9pbnQg
KCkKKyAgKHNob3VsZCAoZXF1YWwgMTQKKyAgICAgICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZm
ZXIgKGluc2VydCAiKDEgMikKKygzIDQgNSkKKyg2KQorKDcgOCkiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoZW5kLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChtYXJrLXNleHAtZm9yd2FyZCAyKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocG9pbnQpKSkpKQorCisoZXJ0LWRlZnRlc3QgbWFyay1zZXhwLWZvcndhcmQt
dHdvLWZvcndhcmQtY2hlY2stcmVnaW9uICgpCisgIChzaG91bGQgKGVxdWFsICIKKyg2KQorKDcg
OCkiCisgICAgICAgICAgICAgICAgICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQgIigxIDIpCiso
MyA0IDUpCisoNikKKyg3IDgpIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVu
ZC1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFyay1zZXhw
LWZvcndhcmQgMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1z
dWJzdHJpbmctbm8tcHJvcGVydGllcyAocmVnaW9uLWJlZ2lubmluZykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVn
aW9uLWVuZCkpKSkpKQorCisoZXJ0LWRlZnRlc3QgbWFyay1zZXhwLWJhY2t3YXJkLXR3by1iYWNr
d2FyZC1jaGVjay1wb2ludCAoKQorICAoc2hvdWxkIChlcXVhbCAxNAorICAgICAgICAgICAgICAg
ICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0ICIoMSAyKQorKDMgNCA1KQorKDYpCisoNyA4KSIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1p
bikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmQtb2YtbGluZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcmstc2V4cC1iYWNrd2FyZCAyKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpKQorCisoZXJ0LWRlZnRlc3Qg
bWFyay1zZXhwLWJhY2t3YXJkLXR3by1iYWNrd2FyZC1jaGVjay1yZWdpb24gKCkKKyAgKHNob3Vs
ZCAoZXF1YWwgIigxIDIpCisoMyA0IDUpIgorICAgICAgICAgICAgICAgICAod2l0aC10ZW1wLWJ1
ZmZlciAoaW5zZXJ0ICIoMSAyKQorKDMgNCA1KQorKDYpCisoNyA4KSIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChlbmQtb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1hcmstc2V4cC1iYWNrd2FyZCAyKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChyZWdpb24tYmVn
aW5uaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChyZWdpb24tZW5kKSkpKSkpCisKIChlcnQtZGVmdGVzdCBsaXNw
LWRlbGV0ZS1wYWlyLXBhcmVucyAoKQogICAiVGVzdCBcXFtkZWxldGUtcGFpcl0gd2l0aCBwYXJl
bnMuIgogICAod2l0aC10ZW1wLWJ1ZmZlcgpAQCAtMzY5LDYgKzU3MCw2NyBAQCBlbGlzcC10ZXN0
cy13aXRoLXRlbXAtYnVmZmVyCiAiCiAgICAgIlRlc3QgYnVmZmVyIGZvciBgbWFyay1kZWZ1bicu
IikpCiAKKyhlcnQtZGVmdGVzdCBtYXJrLWRlZnVuLWZvcndhcmQtb25lLWZvcndhcmQtY2hlY2st
cG9pbnQgKCkKKyAgKHNob3VsZCAoZXF1YWwgMTgKKyAgICAgICAgICAgICAgICAgKHdpdGgtdGVt
cC1idWZmZXIgKGluc2VydCAiKGRlZnVuIGZvbyAoKSAyKQorCisoZGVmdW4gYmFyICgpIDMpIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQt
bWluKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGlu
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcmstZGVmdW4tZm9y
d2FyZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKSkK
KworKGVydC1kZWZ0ZXN0IG1hcmstZGVmdW4tZm9yd2FyZC1vbmUtZm9yd2FyZC1jaGVjay1yZWdp
b24gKCkKKyAgKHNob3VsZCAoZXF1YWwgIgorKGRlZnVuIGJhciAoKSAzKSIKKyAgICAgICAgICAg
ICAgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCAiKGRlZnVuIGZvbyAoKSAyKQorCisoZGVm
dW4gYmFyICgpIDMpIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdv
dG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KG1hcmstZGVmdW4tZm9yd2FyZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocmVnaW9uLWJlZ2lubmluZykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocmVnaW9uLWVuZCkpKSkpKQorCisoZXJ0LWRlZnRlc3QgbWFyay1kZWZ1bi1i
YWNrd2FyZC1vbmUtYmFja3dhcmQtY2hlY2stcG9pbnQgKCkKKyAgKHNob3VsZCAoZXF1YWwgMTgK
KyAgICAgICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCAiKGRlZnVuIGZvbyAo
KSAyKQorCisoZGVmdW4gYmFyICgpIDMpIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1hcmstZGVmdW4tYmFja3dhcmQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChwb2ludCkpKSkpCisKKyhlcnQtZGVmdGVzdCBtYXJrLWRlZnVuLWJh
Y2t3YXJkLW9uZS1iYWNrd2FyZC1jaGVjay1yZWdpb24gKCkKKyAgKHNob3VsZCAoZXF1YWwgIihk
ZWZ1biBmb28gKCkgMikKKyIKKyAgICAgICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIgKGlu
c2VydCAiKGRlZnVuIGZvbyAoKSAyKQorCisoZGVmdW4gYmFyICgpIDIpIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcmstZGVmdW4tYmFja3dhcmQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXBy
b3BlcnRpZXMgKHJlZ2lvbi1iZWdpbm5pbmcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZ2lvbi1lbmQpKSkp
KSkKKworCisoZXJ0LWRlZnRlc3QgbWFyay1kZWZ1bi1iYWNrd2FyZC10d28tYmFja3dhcmQtY2hl
Y2stcmVnaW9uICgpCisgIChzaG91bGQgKGVxdWFsICIoZGVmdW4gZm9vICgpIDIpCisoZGVmdW4g
YmFyICgpIDMpIgorICAgICAgICAgICAgICAgICAod2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0ICIo
ZGVmdW4gZm9vICgpIDIpCisoZGVmdW4gYmFyICgpIDMpCisoZGVmdW4gYmF6ICgpIDUpCisoZGVm
dW4gYmlmZiAoKSA3KSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChn
b3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChmb3J3YXJkLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChlbmQtb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h
cmstZGVmdW4tYmFja3dhcmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChtYXJrLWRlZnVuLWJhY2t3YXJkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChyZWdpb24tYmVnaW5uaW5nKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChyZWdpb24tZW5kKSkpKSkpCisKKwogOzs7IGVuZC1vZi1kZWZ1bgogCiAo
ZXJ0LWRlZnRlc3QgZW5kLW9mLWRlZnVuLXR3aWNlICgpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3Av
c2ltcGxlLXRlc3RzLmVsIGIvdGVzdC9saXNwL3NpbXBsZS10ZXN0cy5lbAppbmRleCAyOGQ4MTIw
ZjE0My4uYmE0NjBkM2NjMDEgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9zaW1wbGUtdGVzdHMuZWwK
KysrIGIvdGVzdC9saXNwL3NpbXBsZS10ZXN0cy5lbApAQCAtMTE1LDYgKzExNSwyMCBAQCBzaW1w
bGUtdHJhbnNwb3NlLXN1YnIKICAgKHNob3VsZCAoZXF1YWwgKHNpbXBsZS10ZXN0LS10cmFuc3Bv
c2l0aW9ucyAodHJhbnNwb3NlLXNleHBzIC0yKSkKICAgICAgICAgICAgICAgICAgJygiKHMxKSAo
czQpIiAuICIgKHMyKSAoczMpIChzNSkiKSkpKQogCisMCis7OzsgYG1hcmstd29yZC1mb3J3YXJk
JywgYG1hcmstd29yZC1iYWNrd2FyZCcKKyhlcnQtZGVmdGVzdCBtYXJrLXdvcmQtZm9yd2FyZC10
d28tYmFja3dhcmRzLWNoZWNrLXJlZ2lvbiAoKQorICAoc2hvdWxkIChlcXVhbCAiZGVmZyBoaSBq
IgorICAgICAgICAgICAgICAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAg
IChpbnNlcnQgImFiYyBkZWZnIGhpIGoga2xtbm8iKQorICAgICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtY2hhciAxMSk7
O2FmdGVyICJoaSIKKyAgICAgICAgICAgICAgICAgICAobWFyay13b3JkLWZvcndhcmQpCisgICAg
ICAgICAgICAgICAgICAgKG1hcmstd29yZC1iYWNrd2FyZCkKKyAgICAgICAgICAgICAgICAgICAo
bWFyay13b3JkLWJhY2t3YXJkKQorICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5n
LW5vLXByb3BlcnRpZXMgKHJlZ2lvbi1iZWdpbm5pbmcpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnaW9uLWVuZCkpKSkpKQorCiAMCiA7Ozsg
YG5ld2xpbmUnCiAoZXJ0LWRlZnRlc3QgbmV3bGluZSAoKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNw
L3RleHRtb2Rlcy9wYWdlLXRlc3RzLmVsIGIvdGVzdC9saXNwL3RleHRtb2Rlcy9wYWdlLXRlc3Rz
LmVsCmluZGV4IDRiZmE4ZDk5NDFjLi4wZjE0MmVlNTA1YiAxMDA2NDQKLS0tIGEvdGVzdC9saXNw
L3RleHRtb2Rlcy9wYWdlLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC90ZXh0bW9kZXMvcGFnZS10
ZXN0cy5lbApAQCAtNTcsNiArNTcsMTcgQEAgcGFnZS10ZXN0cy1iYWNrd2FyZC1wYWdlCiAgICAg
KGJhY2t3YXJkLXBhZ2UgLTIpCiAgICAgKHNob3VsZCAoPSAocG9pbnQpIChwb2ludC1tYXgpKSkp
KQogCisoZXJ0LWRlZnRlc3QgbWFyay1wYWdlLWZvcndhcmQtdHdpY2UtYmFja3dhcmQtb25jZWNo
ZWNrLXJlZ2lvbiAoKQorICAoc2hvdWxkIChlcXVhbCAiXG5iYXJcbgxcbmJhelxuDFxuYmlmZlxu
DCIKKyAgICAgICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydCAiZm9vXG4MXG5i
YXJcbgxcbmJhelxuDFxuYmlmZlxuDFxuYmFuZyIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG1hcmstcGFnZS1mb3J3YXJkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobWFyay1wYWdlLWZvcndhcmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYXJrLXBhZ2UtYmFja3dhcmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKHJlZ2lvbi1iZWdpbm5pbmcp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHJlZ2lvbi1lbmQpKSkpKSkKKwogKGRlZnVuIHBhZ2UtdGVzdHMtLXJlZ2lv
bi1zdHJpbmcgKCkKICAgIlJldHVybiB0aGUgY29udGVudHMgb2YgdGhlIHJlZ2lvbiBhcyBhIHN0
cmluZy4iCiAgIChidWZmZXItc3Vic3RyaW5nIChyZWdpb24tYmVnaW5uaW5nKSAocmVnaW9uLWVu
ZCkpKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL3RleHRtb2Rlcy9wYXJhZ3JhcGhzLXRlc3RzLmVs
IGIvdGVzdC9saXNwL3RleHRtb2Rlcy9wYXJhZ3JhcGhzLXRlc3RzLmVsCmluZGV4IDgxZTg4MTEz
YzJhLi43NWEwOTgxMWM3ZCAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3RleHRtb2Rlcy9wYXJhZ3Jh
cGhzLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC90ZXh0bW9kZXMvcGFyYWdyYXBocy10ZXN0cy5l
bApAQCAtNTQsNiArNTQsNDAgQEAgcGFyYWdyYXBocy10ZXN0cy1tYXJrLXBhcmFncmFwaAogICAg
IChzaG91bGQgKGVxdWFsIChtYXJrKSA3KSkpKQogOzs7ICAoc2hvdWxkLWVycm9yIChtYXJrLXBh
cmFncmFwaCAwKSkpCiAKKyhlcnQtZGVmdGVzdCBwYXJhZ3JhcGhzLXRlc3RzLW1hcmstcGFyYWdy
YXBoLWZvcndhcmQtdHdvLWJhY2t3YXJkLWNoZWNrLXJlZ2lvbiAoKQorICAoc2hvdWxkIChlcXVh
bCAiCitBIHNlY29uZCBiZWdpbnMgaGVyZSwgYnV0IGlzCit3YXkgd2F5IGxvbmdlciwgYnV0IG9u
IG11bHRpcGxlCitsaW5lcyBiZWNhdXNlIHRoZSBwYXJhZ3JhcGgKK2lzIGZpbGxlZC4uCisKK0Fu
ZCBhIHRoaXJkIHBhcmFncmFwaC4gSXQncyBraW5kCitvZiBzaG9ydC4KKworUGFyYWdyYXBoIGZv
dXIhIEl0J3Mgc2hvcnRlci4KKyIKKyAgICAgICAgICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIK
KyAgICAgICAgICAgICAgICAgICAoaW5zZXJ0ICJGaXJzdCBwYXJhZ3JhcGggaGVyZS4KKworQSBz
ZWNvbmQgYmVnaW5zIGhlcmUsIGJ1dCBpcword2F5IHdheSBsb25nZXIsIGJ1dCBvbiBtdWx0aXBs
ZQorbGluZXMgYmVjYXVzZSB0aGUgcGFyYWdyYXBoCitpcyBmaWxsZWQuLgorCitBbmQgYSB0aGly
ZCBwYXJhZ3JhcGguIEl0J3Mga2luZAorb2Ygc2hvcnQuCisKK1BhcmFncmFwaCBmb3VyISBJdCdz
IHNob3J0ZXIuCisKK1RoZSBzaG9ydGVzdCB5ZXQuIikKKyAgICAgICAgICAgICAgICAgICAoZ290
by1jaGFyIChwb2ludC1taW4pKQorICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUgOSkK
KyAgICAgICAgICAgICAgICAgICAobWFyay1wYXJhZ3JhcGgtZm9yd2FyZCkKKyAgICAgICAgICAg
ICAgICAgICAobWFyay1wYXJhZ3JhcGgtYmFja3dhcmQpCisgICAgICAgICAgICAgICAgICAgKG1h
cmstcGFyYWdyYXBoLWJhY2t3YXJkKQorICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3Ry
aW5nLW5vLXByb3BlcnRpZXMgKHJlZ2lvbi1iZWdpbm5pbmcpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnaW9uLWVuZCkpKSkpKQorCiAoZXJ0
LWRlZnRlc3QgcGFyYWdyYXBocy10ZXN0cy1raWxsLXBhcmFncmFwaCAoKQogICAod2l0aC10ZW1w
LWJ1ZmZlcgogICAgIChpbnNlcnQgIkFBXG5BQVxuXG5CQlxuQkJcbiIpCi0tIAoyLjM4LjQKCg==
--0000000000000f699705fb2dc7ed--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 18 May 2023 03:18:02 +0000
Resent-Message-ID: <handler.62892.B62892.168437984128185 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Drew Adams <drew.adams@HIDDEN>
Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, "62892 <at> debbugs.gnu.org" <62892 <at> debbugs.gnu.org>, Juri Linkov <juri@HIDDEN>
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168437984128185
          (code B ref 62892); Thu, 18 May 2023 03:18:02 +0000
Received: (at 62892) by debbugs.gnu.org; 18 May 2023 03:17:21 +0000
Received: from localhost ([127.0.0.1]:51594 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pzU8m-0007KW-MJ
	for submit <at> debbugs.gnu.org; Wed, 17 May 2023 23:17:21 -0400
Received: from mail-oi1-f180.google.com ([209.85.167.180]:60575)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1pzU8k-0007KF-9A
 for 62892 <at> debbugs.gnu.org; Wed, 17 May 2023 23:17:19 -0400
Received: by mail-oi1-f180.google.com with SMTP id
 5614622812f47-394690088acso1195223b6e.0
 for <62892 <at> debbugs.gnu.org>; Wed, 17 May 2023 20:17:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1684379832; x=1686971832;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=1Tq8CTguT9sqhZgSDTUFqIrA/YdK4kyax/vqGzQB1E8=;
 b=TrDg+EWN1O1fNYLuZ3e29zfTG1ildc0TGAD0Un+/2xE2cNDpfET4uMRECZFdYjTSLD
 ytwH6O0rza84BsdRPqMUIeqD8/i4cg8rSkAX4DoNdcysZgcGUmx9G4Z+zxh9sLkhSmXd
 f6GbJLR2AgNem8rdcWemmsC0uyyXGK0qkIC8jRoSnx8tmTL7jnXw5YkfpW0gYirve58E
 74/JKJbo9Z2puTlrMC5d7XMcA84yzWvZZdUIsVS9ZXfkLn9MfQfpa9QLxwWLFK14coWF
 Ak4BZuGu5TW8uI2Q6A6muMmF984xENDgnoXx6YiOUMZtTjP/yZae4fiEZG8kIULpbDwJ
 l3Kw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1684379832; x=1686971832;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=1Tq8CTguT9sqhZgSDTUFqIrA/YdK4kyax/vqGzQB1E8=;
 b=FB2AlxmjnKsD6/EUywWzDaXkrx3Xjtv2cRseB1ch4JAY8n3DVQIDa6zluF500AYpEY
 LSGD5xtL9K7vkMz/ZJ8xLF0quGgWBIljX36Sk3LRaKjVoV6+f62w9eerskii6QK9ERJF
 Hwch3gndveB2S7Y7Hqd3qA8VVz2P8NmFf2TJz111+aVUDh0C3DocZxMeyGR/1DXyAAqf
 ORtx/HQxLa5Idib0NYITrH6b9fhyJoNk+gat0IubHVpY5CWLB4707Sf1NkdSf9oa4/ge
 R1neEgn93A5gAKYBaajXDTM04p0HOGB46b2zPkR/tdhURnDobpFM0IczQ1ExPruOS0mz
 4JwQ==
X-Gm-Message-State: AC+VfDy1bCXJCiIvy53ulvMJHfHgxkxjIZrB5r82H3qdKiqV/1bCinEQ
 sd/gHcmAk5Cg8DnoRKP7f53/YF/D2+BZlhTk/a8=
X-Google-Smtp-Source: ACHHUZ7DKxqETNDx90q+CkVaVZWXsgQfnTvTTRyYyuAuJrFBvcUV2W5IvFrKJrz4KWXFfuM2WSVKOwFrVevEld3KctE=
X-Received: by 2002:a05:6808:5d4:b0:38b:fa17:5c99 with SMTP id
 d20-20020a05680805d400b0038bfa175c99mr444195oij.17.1684379832300; Wed, 17 May
 2023 20:17:12 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
In-Reply-To: <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Wed, 17 May 2023 23:17:01 -0400
Message-ID: <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000924a7a05fbef3dac"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000924a7a05fbef3dac
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Is there anything I can do to make this patch easier to evaluate? As far as
I'm aware, I've addressed all comments that have been made in this thread.

On Mon, May 8, 2023 at 8:28=E2=80=AFAM Zachary Kanfer <zkanfer@HIDDEN> w=
rote:

> Attached is a patch with the following changes:
>
> * Uses the helper function to create mark-foo-forward, mark-foo-backward
> for word, paragraph, sexp, page, and defun.
> * Adds tests for all of these.
> * Adds these new functions to etc/NEWS and various .texi files in
> doc/emacs/.
>
> On Thu, May 4, 2023 at 12:48=E2=80=AFAM Zachary Kanfer <zkanfer@HIDDEN=
> wrote:
>
>> > Is it an "internal" function?  Then its name should
>> > maybe use `--'.  (But why should it be internal?)
>>
>> Hrm, I figured it would be an internal function because it's intended to
>> be wrapped by other code. But this describes a whole lot of functions. S=
o
>> it can't be that.
>>
>> I suppose that if there are other types of things that are created that
>> one might want to mark, then a user could use this method to mark them. =
So
>> perhaps it shouldn't be internal -- it really could be used by other cod=
e.
>>
>> > Is it a helper function?  Then its name should maybe
>> > use a suffix that indicates that, such as `-helper'
>> > or `-1' (old-school Lisp, I suppose).
>>
>> It's certainly a helper function -- it's intended to be called by a bunc=
h
>> of different functions we write.
>>
>> > `mark-thing' should be reserved for a function that
>> > takes a THING name as arg: `sexp', `page', etc.,
>> > instead of a movement function such as `forward-sexp'.
>>
>> This makes a lot of sense to me.
>>
>> On Fri, Apr 28, 2023 at 3:28=E2=80=AFPM Drew Adams <drew.adams@HIDDEN=
m> wrote:
>>
>>> > > +(defun mark--helper (move-fn number-of-things)
>>> >
>>> > A nicer name would be 'mark-thing' as a reference to thingatpt.el.
>>>
>>> FWIW, I have a different take on this.
>>>
>>> Is it an "internal" function?  Then its name should
>>> maybe use `--'.  (But why should it be internal?)
>>>
>>> Is it a helper function?  Then its name should maybe
>>> use a suffix that indicates that, such as `-helper'
>>> or `-1' (old-school Lisp, I suppose).
>>>
>>> `mark-thing' should be reserved for a function that
>>> takes a THING name as arg: `sexp', `page', etc.,
>>> instead of a movement function such as `forward-sexp'.
>>> ___
>>>
>>> FWIW, I think MOVE-FN is a fine name for the argument.
>>> My own preference, and what I use in my code, is the
>>> name FORWARD-THING-FUNCTION.
>>> ___
>>>
>>> FWIW, in my library isearch+.el), I use the arg name
>>> THING for a thing name, not a movement or other
>>> function.
>>>
>>> E.g.: Function `isearchp-in-thing-p' is a helper
>>> function for defining specific THING-type predicates,
>>> such as `isearch(-not)-in-email-address-p'.
>>> ___
>>>
>>> FWIW, my library `thing-cmds.el' has a command named
>>> `mark-things', which prompts for a THING type as arg:
>>>
>>>  mark-things is an alias for 'select-things' in 'thing-cmds.el'.
>>>
>>>  (mark-things THING &optional ARG ALLOW-EXTEND)
>>>
>>>  Set point at one end of THING and set mark ARG THINGs from point.
>>>  THING is a symbol that names a type of thing.  Interactively, you are
>>>  prompted for it.  Completion is available (lax).
>>>
>>>  (If THING doesn't have an associated `forward-'THING operation then
>>>  do nothing.)
>>>
>>>  Put mark at the same place command `forward-'THING would move point
>>>  with the same prefix argument.
>>>
>>>  Put point at the beginning of THING, unless the prefix argument (ARG)
>>>  is negative, in which case put it at the end of THING.
>>>
>>>  If `select-things' is repeated or if the mark is active (in Transient
>>>  Mark mode), then it marks the next ARG THINGs, after the ones already
>>>  marked.  In this case the type of THING used is whatever was used the
>>>  last time `select-things' was called - you are not prompted for it.
>>>
>>>  This region extension reusing the last type of THING happens even if
>>>  the active region is empty.  This means that you can, for instance,
>>>  just use `C-SPC' to activate an empty region and then use
>>>  `select-things' to select more THINGS of the last kind selected.
>>>
>>>  If there is no THING at point, and `thgcmd-use-nearest-thing-flag' is
>>>  non-nil, then select a THING near point.
>>>
>>>

--000000000000924a7a05fbef3dac
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Is there anything I can do to make this patch easier to ev=
aluate? As far as I&#39;m aware, I&#39;ve addressed all comments that have =
been made in this thread.<br></div><br><div class=3D"gmail_quote"><div dir=
=3D"ltr" class=3D"gmail_attr">On Mon, May 8, 2023 at 8:28=E2=80=AFAM Zachar=
y Kanfer &lt;<a href=3D"mailto:zkanfer@HIDDEN">zkanfer@HIDDEN</a>&gt;=
 wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=
=3D"ltr"><div>Attached is a patch with the following changes:</div><div><br=
></div><div>* Uses the helper function to create mark-foo-forward, mark-foo=
-backward for word, paragraph, sexp, page, and defun.</div><div>* Adds test=
s for all of these.</div><div>* Adds these new functions to etc/NEWS and va=
rious .texi files in doc/emacs/.<br></div></div><br><div class=3D"gmail_quo=
te"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, May 4, 2023 at 12:48=E2=
=80=AFAM Zachary Kanfer &lt;<a href=3D"mailto:zkanfer@HIDDEN" target=3D"=
_blank">zkanfer@HIDDEN</a>&gt; wrote:<br></div><blockquote class=3D"gmai=
l_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,20=
4,204);padding-left:1ex"><div dir=3D"ltr"><span>&gt;=20
Is it an &quot;internal&quot; function?=C2=A0 Then its name should<br><div>
&gt; maybe use `--&#39;.=C2=A0 (But why should it be internal?)<br>
</div><div><br></div></span><div>Hrm, I figured it would be an internal=20
function because it&#39;s intended to be wrapped by other code. But this=20
describes a whole lot of functions. So it can&#39;t be that.</div><div><br>=
</div><div>I
 suppose that if there are other types of things that are created that=20
one might want to mark, then a user could use this method to mark them.=20
So perhaps it shouldn&#39;t be internal -- it really could be used by other=
=20
code.<br></div><span><div><br></div><div>&gt; Is it a helper function?=C2=
=A0 Then its name should maybe<br>
&gt; use a suffix that indicates that, such as `-helper&#39;<br>
&gt; or `-1&#39; (old-school Lisp, I suppose).</div><div><br></div></span><=
div>It&#39;s certainly a helper function -- it&#39;s intended to be called =
by a bunch of different functions we write.</div><span><div><br></div><div>=
&gt; `mark-thing&#39; should be reserved for a function that<br>&gt; takes =
a THING name as arg: `sexp&#39;, `page&#39;, etc.,<br>&gt; instead of a mov=
ement function such as `forward-sexp&#39;.</div><div><br></div></span><div>=
This makes a lot of sense to me.</div></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Fri, Apr 28, 2023 at 3:28=E2=80=AF=
PM Drew Adams &lt;<a href=3D"mailto:drew.adams@HIDDEN" target=3D"_blank=
">drew.adams@HIDDEN</a>&gt; wrote:<br></div><blockquote class=3D"gmail_=
quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,=
204);padding-left:1ex">&gt; &gt; +(defun mark--helper (move-fn number-of-th=
ings)<br>
&gt; <br>
&gt; A nicer name would be &#39;mark-thing&#39; as a reference to thingatpt=
.el.<br>
<br>
FWIW, I have a different take on this.<br>
<br>
Is it an &quot;internal&quot; function?=C2=A0 Then its name should<br>
maybe use `--&#39;.=C2=A0 (But why should it be internal?)<br>
<br>
Is it a helper function?=C2=A0 Then its name should maybe<br>
use a suffix that indicates that, such as `-helper&#39;<br>
or `-1&#39; (old-school Lisp, I suppose).<br>
<br>
`mark-thing&#39; should be reserved for a function that<br>
takes a THING name as arg: `sexp&#39;, `page&#39;, etc.,<br>
instead of a movement function such as `forward-sexp&#39;.<br>
___<br>
<br>
FWIW, I think MOVE-FN is a fine name for the argument.<br>
My own preference, and what I use in my code, is the<br>
name FORWARD-THING-FUNCTION.<br>
___<br>
<br>
FWIW, in my library isearch+.el), I use the arg name<br>
THING for a thing name, not a movement or other<br>
function.<br>
<br>
E.g.: Function `isearchp-in-thing-p&#39; is a helper<br>
function for defining specific THING-type predicates,<br>
such as `isearch(-not)-in-email-address-p&#39;.<br>
___<br>
<br>
FWIW, my library `thing-cmds.el&#39; has a command named<br>
`mark-things&#39;, which prompts for a THING type as arg:<br>
<br>
=C2=A0mark-things is an alias for &#39;select-things&#39; in &#39;thing-cmd=
s.el&#39;.<br>
<br>
=C2=A0(mark-things THING &amp;optional ARG ALLOW-EXTEND)<br>
<br>
=C2=A0Set point at one end of THING and set mark ARG THINGs from point.<br>
=C2=A0THING is a symbol that names a type of thing.=C2=A0 Interactively, yo=
u are<br>
=C2=A0prompted for it.=C2=A0 Completion is available (lax).<br>
<br>
=C2=A0(If THING doesn&#39;t have an associated `forward-&#39;THING operatio=
n then<br>
=C2=A0do nothing.)<br>
<br>
=C2=A0Put mark at the same place command `forward-&#39;THING would move poi=
nt<br>
=C2=A0with the same prefix argument.<br>
<br>
=C2=A0Put point at the beginning of THING, unless the prefix argument (ARG)=
<br>
=C2=A0is negative, in which case put it at the end of THING.<br>
<br>
=C2=A0If `select-things&#39; is repeated or if the mark is active (in Trans=
ient<br>
=C2=A0Mark mode), then it marks the next ARG THINGs, after the ones already=
<br>
=C2=A0marked.=C2=A0 In this case the type of THING used is whatever was use=
d the<br>
=C2=A0last time `select-things&#39; was called - you are not prompted for i=
t.<br>
<br>
=C2=A0This region extension reusing the last type of THING happens even if<=
br>
=C2=A0the active region is empty.=C2=A0 This means that you can, for instan=
ce,<br>
=C2=A0just use `C-SPC&#39; to activate an empty region and then use<br>
=C2=A0`select-things&#39; to select more THINGS of the last kind selected.<=
br>
<br>
=C2=A0If there is no THING at point, and `thgcmd-use-nearest-thing-flag&#39=
; is<br>
=C2=A0non-nil, then select a THING near point.<br>
<br>
</blockquote></div>
</blockquote></div>
</blockquote></div>

--000000000000924a7a05fbef3dac--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 18 May 2023 06:53:01 +0000
Resent-Message-ID: <handler.62892.B62892.168439273529992 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>
Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, monnier@HIDDEN, drew.adams@HIDDEN, juri@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168439273529992
          (code B ref 62892); Thu, 18 May 2023 06:53:01 +0000
Received: (at 62892) by debbugs.gnu.org; 18 May 2023 06:52:15 +0000
Received: from localhost ([127.0.0.1]:51764 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pzXUl-0007nf-C7
	for submit <at> debbugs.gnu.org; Thu, 18 May 2023 02:52:15 -0400
Received: from eggs.gnu.org ([209.51.188.92]:56242)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1pzXUj-0007nO-Nh
 for 62892 <at> debbugs.gnu.org; Thu, 18 May 2023 02:52:14 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pzXUd-0003g2-S5; Thu, 18 May 2023 02:52:07 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=Rrqxp1ZXBktNxstHzYrQaOCZHDuRkBIs1AZ6cf+VDSk=; b=dipfmQGbYWsk
 vwrxUTU99HJlvJuyx9aMJL/vEx2RJ6bf8GnH8KIw8W+X39Mm1yzTgSdciVw7UsU4VpXQBJHroLgo2
 oNxRQGd8o0U0i6SiZuyWIn1HQVqUYEjM7iDvfJ3QYBp4doDaIwSuTiJKIiZ0Ku01cD4mnGCzfAzog
 OmE1kxAnDPn0nZ929n5F6NOyeF3IUwqWoSiSx5oNW1S1V8ZoHVWWjFXvQgHi472c/w7/v97AmjRgD
 35lJgd3Yfrv0SFYAKGJ4UCaLqyrmPRAn8QOn/mjgrUoIGyxsILzRpahRE7h7JHZGAvVj+jREwEnlc
 3KkGUFcFKUfyvTvixMdrrQ==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pzXUd-00020P-Fl; Thu, 18 May 2023 02:52:07 -0400
Date: Thu, 18 May 2023 09:52:19 +0300
Message-Id: <83o7miw2qk.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 (message from Zachary Kanfer on Wed, 17 May 2023 23:17:01 -0400)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <monnier@HIDDEN>,
>  "62892 <at> debbugs.gnu.org" <62892 <at> debbugs.gnu.org>, Juri Linkov <juri@HIDDEN>
> From: Zachary Kanfer <zkanfer@HIDDEN>
> Date: Wed, 17 May 2023 23:17:01 -0400
> 
> Is there anything I can do to make this patch easier to evaluate? As far as I'm aware, I've addressed
> all comments that have been made in this thread.

My POV is still as it was before: I'm not sure we should add these new
commands, since the existing commands already provide this
functionality, if you use "C-x C-x" to switch the direction.

I've seen nothing in the discussion which made me change my mind.  Did
I overlook some convincing arguments?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 21 May 2023 05:47:01 +0000
Resent-Message-ID: <handler.62892.B62892.168464800022939 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, monnier@HIDDEN, drew.adams@HIDDEN, juri@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168464800022939
          (code B ref 62892); Sun, 21 May 2023 05:47:01 +0000
Received: (at 62892) by debbugs.gnu.org; 21 May 2023 05:46:40 +0000
Received: from localhost ([127.0.0.1]:59864 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q0btw-0005xu-1n
	for submit <at> debbugs.gnu.org; Sun, 21 May 2023 01:46:40 -0400
Received: from mail-ot1-f45.google.com ([209.85.210.45]:52380)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1q0btt-0005xh-U9
 for 62892 <at> debbugs.gnu.org; Sun, 21 May 2023 01:46:38 -0400
Received: by mail-ot1-f45.google.com with SMTP id
 46e09a7af769-6af6fe73f11so311094a34.0
 for <62892 <at> debbugs.gnu.org>; Sat, 20 May 2023 22:46:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1684647992; x=1687239992;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=x9ogGORWlVoc8rwW3niGqYCfb9jIm4+mzJWH3LCegxA=;
 b=EF0LvaPlPttwvQjZr7Kc6YYPkT4TdVzc4gTjimBOEK+HnEekMXQVuquJlq6UXQo741
 FfHxZghHYnu5631REklxeO15GPWc+SVbd4UqRMc7KeT6bSkicmQnnNBE7UjURwEYUp4A
 /cydTiKvm9CBKgKWAhGrlyrcAsVQJtObuj8Dm3FRFbtFmuPvQbVPX3YCi8dSUfLFL4BU
 GmKGSGrmMuNDL7SfBghFIa8KSiaRF1rWP0xZviSUB2vaI9ggxQLUavtgOLK2yhWigjXs
 4pQYqf4KDnOmby1xsy5gusTXrfpEoRWCSKRDWp91+VomfZIEAFqU6oHditudm4V58oOk
 2pGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1684647992; x=1687239992;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=x9ogGORWlVoc8rwW3niGqYCfb9jIm4+mzJWH3LCegxA=;
 b=a3V4kIcFIuFtKWXwhHtKlVAMpxULJH8xPJVXbCQBHeAd06S65PAjv4ZBn4oCmzSTQs
 DZeGQr6PG2ji1z5ycwTkp1C2I2f4CXbLZi7NyR8b4MmeNZvC/QyWV/mTQYVRglBY32YF
 lfLbkpRshPcf8Oz3euJzR/qaX8rvUtihn712u62MWD8ZgRX2mCMyUanXqweiiFBacQlp
 klJ6C6e7JtQmjwYi8MXiI1ocUryOdHi7ES/c1AAoQ90E0LevSK4Prplsin1mdADEdTpa
 7+py6MEqjCPcCzbd2dhOUXb+zkeS++fPEnDetStyPu6CQMwHELej0Kfv3ZZuKeWuTiyt
 wQcA==
X-Gm-Message-State: AC+VfDwL1L0xzn1NMAa9fe33rTeoujGHFgVoal3jFjJ2nSVxL+JtBp/E
 zN3GtXY1aqoaseQYbv5URwLnOgfhkmH8UYIympA=
X-Google-Smtp-Source: ACHHUZ4tkhG32gGi18nsLzCF3FMHM0q15eJ9gMpy52EzyCQ3NxqgBgqLNFxMbCiHakmag0UInagR56ldQa9FKELCFtw=
X-Received: by 2002:a05:6808:4da:b0:396:33a9:1e0b with SMTP id
 a26-20020a05680804da00b0039633a91e0bmr3676484oie.34.1684647991870; Sat, 20
 May 2023 22:46:31 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 <83o7miw2qk.fsf@HIDDEN>
In-Reply-To: <83o7miw2qk.fsf@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Sun, 21 May 2023 01:46:21 -0400
Message-ID: <CAFXT+RPY6zWTn2Ts991admZt6CNxmWTifk=3xRO+q2-dF721sA@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000208c0a05fc2dad10"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000208c0a05fc2dad10
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I think I've made as good an argument as I'm going to. It basically boils
down to:

* if the keys are bound, it's quicker to call mark-foo-forward and then
mark-foo-backward than to call mark-foo, then exchange-point-and-mark, then
mark-foo again.
* This behavior is simpler and more predictable: mark-foo-forward always
marks forward. mark-foo sometimes marks forward and sometimes backwards.
The complexity of the various mark-foo functions can be seen in how many
cases the docstring has. The behavior of the mark-foo-forward,
mark-foo-backward functions can be gathered from the name, without reading
the docstrings.

I understand we have different opinions, so if this isn't convincing, I'll
bow out here. Thanks.

On Thu, May 18, 2023 at 2:52=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wrote:

> > Cc: Ruijie Yu <ruijie@HIDDEN>, Stefan Monnier <
> monnier@HIDDEN>,
> >  "62892 <at> debbugs.gnu.org" <62892 <at> debbugs.gnu.org>, Juri Linkov <
> juri@HIDDEN>
> > From: Zachary Kanfer <zkanfer@HIDDEN>
> > Date: Wed, 17 May 2023 23:17:01 -0400
> >
> > Is there anything I can do to make this patch easier to evaluate? As fa=
r
> as I'm aware, I've addressed
> > all comments that have been made in this thread.
>
> My POV is still as it was before: I'm not sure we should add these new
> commands, since the existing commands already provide this
> functionality, if you use "C-x C-x" to switch the direction.
>
> I've seen nothing in the discussion which made me change my mind.  Did
> I overlook some convincing arguments?
>

--000000000000208c0a05fc2dad10
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>I think I&#39;ve made as good an argument as I&#39;m =
going to. It basically boils down to:<br></div><div><br></div><div>* if the=
 keys are bound, it&#39;s quicker to call mark-foo-forward and then mark-fo=
o-backward than to call mark-foo, then exchange-point-and-mark, then mark-f=
oo again.</div><div>* This behavior is simpler and more predictable: mark-f=
oo-forward always marks forward. mark-foo sometimes marks forward and somet=
imes backwards. The complexity of the various mark-foo functions can be see=
n in how many cases the docstring has. The behavior of the mark-foo-forward=
, mark-foo-backward functions can be gathered from the name, without readin=
g the docstrings.<br></div><div><br></div><div>I understand we have differe=
nt opinions, so if this isn&#39;t convincing, I&#39;ll bow out here. Thanks=
.<br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"g=
mail_attr">On Thu, May 18, 2023 at 2:52=E2=80=AFAM Eli Zaretskii &lt;<a hre=
f=3D"mailto:eliz@HIDDEN">eliz@HIDDEN</a>&gt; wrote:<br></div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol=
id rgb(204,204,204);padding-left:1ex">&gt; Cc: Ruijie Yu &lt;<a href=3D"mai=
lto:ruijie@HIDDEN" target=3D"_blank">ruijie@HIDDEN</a>&gt;, Stefan Mo=
nnier &lt;<a href=3D"mailto:monnier@HIDDEN" target=3D"_blank">mon=
nier@HIDDEN</a>&gt;,<br>
&gt;=C2=A0 &quot;<a href=3D"mailto:62892 <at> debbugs.gnu.org" target=3D"_blank"=
>62892 <at> debbugs.gnu.org</a>&quot; &lt;<a href=3D"mailto:62892@HIDDEN=
g" target=3D"_blank">62892 <at> debbugs.gnu.org</a>&gt;, Juri Linkov &lt;<a href=
=3D"mailto:juri@HIDDEN" target=3D"_blank">juri@HIDDEN</a>&gt;<br>
&gt; From: Zachary Kanfer &lt;<a href=3D"mailto:zkanfer@HIDDEN" target=
=3D"_blank">zkanfer@HIDDEN</a>&gt;<br>
&gt; Date: Wed, 17 May 2023 23:17:01 -0400<br>
&gt; <br>
&gt; Is there anything I can do to make this patch easier to evaluate? As f=
ar as I&#39;m aware, I&#39;ve addressed<br>
&gt; all comments that have been made in this thread.<br>
<br>
My POV is still as it was before: I&#39;m not sure we should add these new<=
br>
commands, since the existing commands already provide this<br>
functionality, if you use &quot;C-x C-x&quot; to switch the direction.<br>
<br>
I&#39;ve seen nothing in the discussion which made me change my mind.=C2=A0=
 Did<br>
I overlook some convincing arguments?<br>
</blockquote></div>

--000000000000208c0a05fc2dad10--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 21 May 2023 05:59:02 +0000
Resent-Message-ID: <handler.62892.B62892.168464870525700 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, drew.adams@HIDDEN, juri@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168464870525700
          (code B ref 62892); Sun, 21 May 2023 05:59:02 +0000
Received: (at 62892) by debbugs.gnu.org; 21 May 2023 05:58:25 +0000
Received: from localhost ([127.0.0.1]:59889 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q0c5I-0006gS-VT
	for submit <at> debbugs.gnu.org; Sun, 21 May 2023 01:58:25 -0400
Received: from eggs.gnu.org ([209.51.188.92]:47930)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1q0c5H-0006gE-3v
 for 62892 <at> debbugs.gnu.org; Sun, 21 May 2023 01:58:23 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1q0c5A-0005He-TZ; Sun, 21 May 2023 01:58:16 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=H1dK6A85GhT0DYbl/lYHaabYsf+TmuHN1ZHHfzZvpAU=; b=Ap8kpPfNtWlY
 F0BckKTAodiNhS06rvI9lNJxuojAQcUT2eYjpffxwQljj8EguiY0yAXVsed2yIMi+PixUli3R88Wg
 1gnjEW5Ws5zBWOHkSnU32pEltAC31+UeTonRxYkUDE95y4/0YQwTzFbcfp6piII0vNhUWnLWeEGC6
 RjQ0P7ui6ehk4LHE+/Ycj7PG9afPUYXq7oHlU7zOMIZjzosWSmUqEzb84kY/ks/wfsn6PnUzwUxda
 p6DyUHHuSHYbqj03xQ1Zh+3+UDe0Nnot0IUYAHqbB/sjF6lwsD8HJWrX+tPCjrO+KNIAhlhUUHbTk
 HNig2vQLRnY2T6FgFx3Agg==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1q0c5A-0004UC-Cy; Sun, 21 May 2023 01:58:16 -0400
Date: Sun, 21 May 2023 08:58:35 +0300
Message-Id: <831qjarzsk.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CAFXT+RPY6zWTn2Ts991admZt6CNxmWTifk=3xRO+q2-dF721sA@HIDDEN>
 (message from Zachary Kanfer on Sun, 21 May 2023 01:46:21 -0400)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 <83o7miw2qk.fsf@HIDDEN>
 <CAFXT+RPY6zWTn2Ts991admZt6CNxmWTifk=3xRO+q2-dF721sA@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Zachary Kanfer <zkanfer@HIDDEN>
> Date: Sun, 21 May 2023 01:46:21 -0400
> Cc: drew.adams@HIDDEN, ruijie@HIDDEN, monnier@HIDDEN, 
> 	62892 <at> debbugs.gnu.org, juri@HIDDEN
> 
> I think I've made as good an argument as I'm going to. It basically boils down to:
> 
> * if the keys are bound, it's quicker to call mark-foo-forward and then mark-foo-backward than to call
> mark-foo, then exchange-point-and-mark, then mark-foo again.
> * This behavior is simpler and more predictable: mark-foo-forward always marks forward. mark-foo
> sometimes marks forward and sometimes backwards. The complexity of the various mark-foo
> functions can be seen in how many cases the docstring has. The behavior of the mark-foo-forward,
> mark-foo-backward functions can be gathered from the name, without reading the docstrings.
> 
> I understand we have different opinions, so if this isn't convincing, I'll bow out here. Thanks.

Stefan, WDYT about this?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 21 May 2023 14:32:02 +0000
Resent-Message-ID: <handler.62892.B62892.168467951727209 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: ruijie@HIDDEN, juri@HIDDEN, Zachary Kanfer <zkanfer@HIDDEN>, 62892 <at> debbugs.gnu.org, drew.adams@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168467951727209
          (code B ref 62892); Sun, 21 May 2023 14:32:02 +0000
Received: (at 62892) by debbugs.gnu.org; 21 May 2023 14:31:57 +0000
Received: from localhost ([127.0.0.1]:60949 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q0k6H-00074l-9a
	for submit <at> debbugs.gnu.org; Sun, 21 May 2023 10:31:57 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:45184)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1q0k6F-00074Z-9r
 for 62892 <at> debbugs.gnu.org; Sun, 21 May 2023 10:31:55 -0400
Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id B15ED80AFC;
 Sun, 21 May 2023 10:31:49 -0400 (EDT)
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 8C1EF8028B;
 Sun, 21 May 2023 10:31:48 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1684679508;
 bh=R464suOicom9kpG+7CpS1GcX8p7o1gMRH+GzG2qWS4c=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=CvSXIe6j0ngNSQTyhRlF6lCZcRVtb81xMG9DjzO4dVH0dLAGn2yhO3p1a+4xnweLn
 oo7Wg4N3I3uBI0LEDKxRCTOEfTtDxg6cjAdwJwmLISdwM/bkJfh9OkMVxyC9g52fgn
 TxhBNTIn4GSxwFPfD8VliigsZ7utZoQTTiUTp9zYC2jDkgELBV7/WQoiDHYd46Fnck
 eYvaXwJAt24ASKC9kx3ByIvI+Mwozt98GTVLol9rkLkLIfF93JSPFMSMa3XpwFTmdE
 9sI79fM6kinXsVLuw9vlMVt3ixezFuHVbSXx5covVLqE1AufZNduH4bWPRyD54HZDG
 k7ECZT5DpMKBQ==
Received: from pastel (unknown [45.72.217.176])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 51EB9120403;
 Sun, 21 May 2023 10:31:48 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <831qjarzsk.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 21 May
 2023 08:58:35 +0300")
Message-ID: <jwv5y8lsqon.fsf-monnier+emacs@HIDDEN>
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 <83o7miw2qk.fsf@HIDDEN>
 <CAFXT+RPY6zWTn2Ts991admZt6CNxmWTifk=3xRO+q2-dF721sA@HIDDEN>
 <831qjarzsk.fsf@HIDDEN>
Date: Sun, 21 May 2023 10:31:41 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL 0.086 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain T_SCC_BODY_TEXT_LINE    -0.01 -
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Stefan, WDYT about this?

There's a tension: on the one hand, there's a large number of
alternative UIs with many slightly different commands from the ones we
have, so we can't just add every single one of them to Emacs (instead,
we aim to provide convenient building blocks for them), but on the other
hand, we also want to make it easy for end users who don't want to
program to use slightly different UIs.

Maybe the new building block is useful enough (i.e. can be used in
existing code, thus reducing overall complexity)?  I haven't looked
closely enough to have a clear opinion, I'm afraid.


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 21 May 2023 14:40:02 +0000
Resent-Message-ID: <handler.62892.B62892.168467997327841 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Stefan Monnier <monnier@HIDDEN>
Cc: ruijie@HIDDEN, juri@HIDDEN, zkanfer@HIDDEN, 62892 <at> debbugs.gnu.org, drew.adams@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168467997327841
          (code B ref 62892); Sun, 21 May 2023 14:40:02 +0000
Received: (at 62892) by debbugs.gnu.org; 21 May 2023 14:39:33 +0000
Received: from localhost ([127.0.0.1]:60954 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q0kDd-0007Ez-BU
	for submit <at> debbugs.gnu.org; Sun, 21 May 2023 10:39:33 -0400
Received: from eggs.gnu.org ([209.51.188.92]:53436)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1q0kDb-0007En-O8
 for 62892 <at> debbugs.gnu.org; Sun, 21 May 2023 10:39:32 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1q0kDV-0002Ky-8A; Sun, 21 May 2023 10:39:25 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=WCipRNEEfdfdbmHcFapDR00OZhVvJ0+WMma6Snb36cc=; b=sXYX+UepvjY4
 92xWT66yg6U1Dx+QLqBjMP5EdpUHegEa4s6BIHc+fZYVnBVUhsktAGUS/Vysgp6yxaP0dE5F6dztA
 fqDG/9Bmfhu1uqc0keG0ByMi63zprqGXpae8JstoGI/n/dSh+xOkFgVoMX1kKjX9fAKtDLDmIvZlf
 7fRXk5eY8NRWf7X7gHriBTQc7KUsP0Q6yKtIK77+jlEk/Uu6Xb0+u1KM9pTkOGHLRs0TJYxm7FDdP
 yqiQmL/cu2yVz+E9p+ebWaqnY973UWZwpYKbC1ezycjBHTJBRILKCUkRYu6ibub41AZdF9yfzYJdT
 x5/jerssa7AJV2SbeubOig==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1q0kDU-00065G-Nz; Sun, 21 May 2023 10:39:25 -0400
Date: Sun, 21 May 2023 17:39:44 +0300
Message-Id: <83lehhrbnz.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <jwv5y8lsqon.fsf-monnier+emacs@HIDDEN> (message from Stefan
 Monnier on Sun, 21 May 2023 10:31:41 -0400)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 <83o7miw2qk.fsf@HIDDEN>
 <CAFXT+RPY6zWTn2Ts991admZt6CNxmWTifk=3xRO+q2-dF721sA@HIDDEN>
 <831qjarzsk.fsf@HIDDEN> <jwv5y8lsqon.fsf-monnier+emacs@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: Zachary Kanfer <zkanfer@HIDDEN>,  ruijie@HIDDEN,
>   62892 <at> debbugs.gnu.org,  drew.adams@HIDDEN,  juri@HIDDEN
> Date: Sun, 21 May 2023 10:31:41 -0400
> 
> Maybe the new building block is useful enough (i.e. can be used in
> existing code, thus reducing overall complexity)?

That'd be preferable, certainly.  Enlarging the set of the commands is
not my preference.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 21 May 2023 14:55:01 +0000
Resent-Message-ID: <handler.62892.B62892.168468085129669 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: zkanfer@HIDDEN
Cc: ruijie@HIDDEN, drew.adams@HIDDEN, monnier@HIDDEN, 62892 <at> debbugs.gnu.org, juri@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168468085129669
          (code B ref 62892); Sun, 21 May 2023 14:55:01 +0000
Received: (at 62892) by debbugs.gnu.org; 21 May 2023 14:54:11 +0000
Received: from localhost ([127.0.0.1]:60959 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q0kRm-0007iT-SN
	for submit <at> debbugs.gnu.org; Sun, 21 May 2023 10:54:11 -0400
Received: from eggs.gnu.org ([209.51.188.92]:32786)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1q0kRk-0007iG-CI
 for 62892 <at> debbugs.gnu.org; Sun, 21 May 2023 10:54:09 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1q0kRd-0004g7-Gl; Sun, 21 May 2023 10:54:01 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=/176gHcXOA6MrkC4aSFJwaM5FGkMEV/vR+4tA3nnuUE=; b=ND/xBe2FU0G2
 mBm+GHkMbgpHH66hiriet4fM18MlhfzJl2SxZkmpk980+VOdnKcDKwG5m3MiIjRmta9PpTBDblKff
 1uHEGBA3Aju7L7drgZXuUf2MQHbi/KHO+zsxhN6pgc/sRRedSzAZ3FZngCTsmn61aR7GFJEIWf/A3
 T6cb7xMwAICWfLUmLXyUODA7MeI4OxwkxgXJXR6AcZ6cTWv1qn8qSSRX4shJDLJmKdNy33A8TQKXi
 XZLueAuH9aR7euBabdP9fLCF1WjfZqnUQML/ZYtCQhbw7mlrBnXrcWIhdOXh2LBijTRSjwX23TB54
 YwrWQZ4CN1NmEnn4Ccx9Nw==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1q0kRd-0007P0-0g; Sun, 21 May 2023 10:54:01 -0400
Date: Sun, 21 May 2023 17:54:20 +0300
Message-Id: <83ilclrazn.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <83lehhrbnz.fsf@HIDDEN> (message from Eli Zaretskii on Sun, 21
 May 2023 17:39:44 +0300)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 <83o7miw2qk.fsf@HIDDEN>
 <CAFXT+RPY6zWTn2Ts991admZt6CNxmWTifk=3xRO+q2-dF721sA@HIDDEN>
 <831qjarzsk.fsf@HIDDEN> <jwv5y8lsqon.fsf-monnier+emacs@HIDDEN>
 <83lehhrbnz.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: ruijie@HIDDEN, juri@HIDDEN, zkanfer@HIDDEN, 62892 <at> debbugs.gnu.org,
>  drew.adams@HIDDEN
> Date: Sun, 21 May 2023 17:39:44 +0300
> From: Eli Zaretskii <eliz@HIDDEN>
> 
> > Maybe the new building block is useful enough (i.e. can be used in
> > existing code, thus reducing overall complexity)?
> 
> That'd be preferable, certainly.  Enlarging the set of the commands is
> not my preference.

Btw, these new commands keep the complicated, hard-to-remember MO of
mark-sexp: they do different things depending on whether
transient-mark-mode is on or off and whether the region is or isn't
active.  Why is this a Good Thing?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eshel Yaron <me@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 21 May 2023 14:58:01 +0000
Resent-Message-ID: <handler.62892.B.168468102930312 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 62892 <at> debbugs.gnu.org
Cc: drew.adams@HIDDEN, zkanfer@HIDDEN, juri@HIDDEN, ruijie@HIDDEN, monnier@HIDDEN, eliz@HIDDEN
X-Debbugs-Original-To: Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
X-Debbugs-Original-Cc: drew.adams@HIDDEN, Zachary Kanfer <zkanfer@HIDDEN>, juri@HIDDEN, ruijie@HIDDEN, Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by submit <at> debbugs.gnu.org id=B.168468102930312
          (code B ref -1); Sun, 21 May 2023 14:58:01 +0000
Received: (at submit) by debbugs.gnu.org; 21 May 2023 14:57:09 +0000
Received: from localhost ([127.0.0.1]:60966 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q0kUe-0007sq-OU
	for submit <at> debbugs.gnu.org; Sun, 21 May 2023 10:57:09 -0400
Received: from lists.gnu.org ([209.51.188.17]:58198)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <me@HIDDEN>) id 1q0kUZ-0007sa-Pv
 for submit <at> debbugs.gnu.org; Sun, 21 May 2023 10:57:04 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <me@HIDDEN>) id 1q0kUZ-0001kA-D9
 for bug-gnu-emacs@HIDDEN; Sun, 21 May 2023 10:57:03 -0400
Received: from mail.eshelyaron.com ([107.175.124.16] helo=eshelyaron.com)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <me@HIDDEN>)
 id 1q0kUX-00055U-Ms; Sun, 21 May 2023 10:57:03 -0400
From: Eshel Yaron <me@HIDDEN>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com;
 s=mail; t=1684681020;
 bh=bjxJI4G8/O2ZWrWqdjVqnOO3Hmeba49I9gb+08lcUh4=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=l+LCU1oHCERaHYNjThN5tL/rjm0ie6GGFFjh1Kyturnb/Kgg4kubX0Fp53k/GRNfX
 UZSM0HKPObHk0dUac2zJHlspEZ6hRjCtTeOenLMfbeWSKTALjZkWMxECJST+J6ixs0
 +QVR8sz2qKIF9eKeAwUwa7Ov2doy/tsP3H2ENKPH6z67MHXYwwElM5dl6udmsWjzya
 lu2qkxhfQQQfQgq/f6X7StO+dmD2LsNzMznSgv3YZGldMzSfuJZKHFIVQH+zvF06jB
 neentlizlb0sOe1jQe4aZmuKB/1niv3waZmyJt7ieATS66sVB+2rtMTD1z42OiJxgR
 qBeyMkzUJxEpA==
In-Reply-To: <jwv5y8lsqon.fsf-monnier+emacs@HIDDEN> (Stefan Monnier via's
 message of "Sun, 21 May 2023 10:31:41 -0400")
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 <83o7miw2qk.fsf@HIDDEN>
 <CAFXT+RPY6zWTn2Ts991admZt6CNxmWTifk=3xRO+q2-dF721sA@HIDDEN>
 <831qjarzsk.fsf@HIDDEN> <jwv5y8lsqon.fsf-monnier+emacs@HIDDEN>
Date: Sun, 21 May 2023 17:56:54 +0300
Message-ID: <m1353pzqa1.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=107.175.124.16; envelope-from=me@HIDDEN;
 helo=eshelyaron.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)


One data point that I think is worth taking into consideration:
Currently, `mark-sexp` and `mark-defun` are not consistent with each
other.  This can be seen in the following example:

--8<---------------cut here---------------start------------->8---
(foo)
(bar)
(baz)
--8<---------------cut here---------------end--------------->8---

With point before `(bar)`, doing `C-2 C-M-SPC C-- C-M-SPC` leaves only
`(bar)` selected.  OTOH, doing `C-2 C-M-h C-- C-M-h` leaves all three
expressions selected.

In contrast, the proposed `mark-sexp-forward` and `mark-defun-forward`
are consistent with each other (both behave like `mark-defun` in the
above example).

I'm not sure if that's the preferred behavior, but I do think that
consistently between the different marking commands is a good thing.


-- 
Best,

Eshel




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eshel Yaron <me@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 21 May 2023 14:58:02 +0000
Resent-Message-ID: <handler.62892.B62892.168468102230286 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 62892 <at> debbugs.gnu.org
Cc: drew.adams@HIDDEN, zkanfer@HIDDEN, juri@HIDDEN, ruijie@HIDDEN, monnier@HIDDEN, eliz@HIDDEN
X-Debbugs-Original-To: Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
X-Debbugs-Original-Cc: drew.adams@HIDDEN, Zachary Kanfer <zkanfer@HIDDEN>, juri@HIDDEN, ruijie@HIDDEN, Stefan Monnier <monnier@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 62892 <at> debbugs.gnu.org
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168468102230286
          (code B ref 62892); Sun, 21 May 2023 14:58:02 +0000
Received: (at 62892) by debbugs.gnu.org; 21 May 2023 14:57:02 +0000
Received: from localhost ([127.0.0.1]:60963 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q0kUY-0007sQ-D2
	for submit <at> debbugs.gnu.org; Sun, 21 May 2023 10:57:02 -0400
Received: from mail.eshelyaron.com ([107.175.124.16]:60104 helo=eshelyaron.com)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <me@HIDDEN>) id 1q0kUW-0007rx-R8
 for 62892 <at> debbugs.gnu.org; Sun, 21 May 2023 10:57:01 -0400
From: Eshel Yaron <me@HIDDEN>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com;
 s=mail; t=1684681020;
 bh=bjxJI4G8/O2ZWrWqdjVqnOO3Hmeba49I9gb+08lcUh4=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=l+LCU1oHCERaHYNjThN5tL/rjm0ie6GGFFjh1Kyturnb/Kgg4kubX0Fp53k/GRNfX
 UZSM0HKPObHk0dUac2zJHlspEZ6hRjCtTeOenLMfbeWSKTALjZkWMxECJST+J6ixs0
 +QVR8sz2qKIF9eKeAwUwa7Ov2doy/tsP3H2ENKPH6z67MHXYwwElM5dl6udmsWjzya
 lu2qkxhfQQQfQgq/f6X7StO+dmD2LsNzMznSgv3YZGldMzSfuJZKHFIVQH+zvF06jB
 neentlizlb0sOe1jQe4aZmuKB/1niv3waZmyJt7ieATS66sVB+2rtMTD1z42OiJxgR
 qBeyMkzUJxEpA==
In-Reply-To: <jwv5y8lsqon.fsf-monnier+emacs@HIDDEN> (Stefan Monnier via's
 message of "Sun, 21 May 2023 10:31:41 -0400")
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 <83o7miw2qk.fsf@HIDDEN>
 <CAFXT+RPY6zWTn2Ts991admZt6CNxmWTifk=3xRO+q2-dF721sA@HIDDEN>
 <831qjarzsk.fsf@HIDDEN> <jwv5y8lsqon.fsf-monnier+emacs@HIDDEN>
Date: Sun, 21 May 2023 17:56:54 +0300
Message-ID: <m1353pzqa1.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


One data point that I think is worth taking into consideration:
Currently, `mark-sexp` and `mark-defun` are not consistent with each
other.  This can be seen in the following example:

--8<---------------cut here---------------start------------->8---
(foo)
(bar)
(baz)
--8<---------------cut here---------------end--------------->8---

With point before `(bar)`, doing `C-2 C-M-SPC C-- C-M-SPC` leaves only
`(bar)` selected.  OTOH, doing `C-2 C-M-h C-- C-M-h` leaves all three
expressions selected.

In contrast, the proposed `mark-sexp-forward` and `mark-defun-forward`
are consistent with each other (both behave like `mark-defun` in the
above example).

I'm not sure if that's the preferred behavior, but I do think that
consistently between the different marking commands is a good thing.


-- 
Best,

Eshel




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 21 May 2023 15:12:01 +0000
Resent-Message-ID: <handler.62892.B62892.168468190931620 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eshel Yaron <me@HIDDEN>
Cc: zkanfer@HIDDEN, juri@HIDDEN, ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, drew.adams@HIDDEN, monnier@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168468190931620
          (code B ref 62892); Sun, 21 May 2023 15:12:01 +0000
Received: (at 62892) by debbugs.gnu.org; 21 May 2023 15:11:49 +0000
Received: from localhost ([127.0.0.1]:60972 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q0kir-0008Dw-Al
	for submit <at> debbugs.gnu.org; Sun, 21 May 2023 11:11:49 -0400
Received: from eggs.gnu.org ([209.51.188.92]:60936)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1q0kio-0008Dh-45
 for 62892 <at> debbugs.gnu.org; Sun, 21 May 2023 11:11:48 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1q0kig-0007dl-V5; Sun, 21 May 2023 11:11:38 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=AiBFdMjve+Rt9AMTyUWrR0yk6DcA5f6+FK12WqRCeKk=; b=loCZYMWO6S/c
 nFmSfxlf5KfIUSp1pzAwtvLejXFtwgZQnXiCgrvFKVYUQVXpC8H2xI2L+DQxviGTSPKvMlmRT5ETa
 ttLd20L/PccIFFxamMmUOh67P47YH9VEPdrLHwXUG3guHrgNOQeAwRksJnUDNt8PXCpNmrikbu2jZ
 RHeykSE9df95Y8wRlzVYJgcAXnfMvk4SsG02w8TqYhhVZ4aSoYqN01ba+Cb7Dm12N6V+49B5LxS1S
 PvesrLpjXS5G/VlPUeq3cT6Vj9aUIgPZY05enaq/Z9vXWB3zHIttI7qaNKactaSUNZCEqDMLm3TXM
 6O+bBK6Bl/wIc8ovWvrwAA==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1q0kig-0006dc-EI; Sun, 21 May 2023 11:11:38 -0400
Date: Sun, 21 May 2023 18:11:57 +0300
Message-Id: <83cz2tra6a.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <m1353pzqa1.fsf@HIDDEN> (message from Eshel Yaron on Sun, 21
 May 2023 17:56:54 +0300)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 <83o7miw2qk.fsf@HIDDEN>
 <CAFXT+RPY6zWTn2Ts991admZt6CNxmWTifk=3xRO+q2-dF721sA@HIDDEN>
 <831qjarzsk.fsf@HIDDEN> <jwv5y8lsqon.fsf-monnier+emacs@HIDDEN>
 <m1353pzqa1.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Eshel Yaron <me@HIDDEN>
> Cc: Eli Zaretskii <eliz@HIDDEN>,  Stefan Monnier
>  <monnier@HIDDEN>,  ruijie@HIDDEN,  juri@HIDDEN,  Zachary
>  Kanfer <zkanfer@HIDDEN>,  62892 <at> debbugs.gnu.org,  drew.adams@HIDDEN
> Date: Sun, 21 May 2023 17:56:54 +0300
> 
> I'm not sure if that's the preferred behavior, but I do think that
> consistently between the different marking commands is a good thing.

Why do you think there should be consistency here?  These are
different commands which target different use-cases.

Did you read the doc string of C-M-SPC?  It does something
extra-special when transient-mark-mode is enabled and the region is
active.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Eshel Yaron <me@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 21 May 2023 15:42:01 +0000
Resent-Message-ID: <handler.62892.B62892.16846836901832 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: zkanfer@HIDDEN, juri@HIDDEN, ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, drew.adams@HIDDEN, monnier@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.16846836901832
          (code B ref 62892); Sun, 21 May 2023 15:42:01 +0000
Received: (at 62892) by debbugs.gnu.org; 21 May 2023 15:41:30 +0000
Received: from localhost ([127.0.0.1]:60983 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q0lBa-0000TT-C3
	for submit <at> debbugs.gnu.org; Sun, 21 May 2023 11:41:30 -0400
Received: from mail.eshelyaron.com ([107.175.124.16]:51116 helo=eshelyaron.com)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <me@HIDDEN>) id 1q0lBY-0000TM-Sd
 for 62892 <at> debbugs.gnu.org; Sun, 21 May 2023 11:41:29 -0400
From: Eshel Yaron <me@HIDDEN>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com;
 s=mail; t=1684683688;
 bh=y2lcxsvn1FNh5q2yJ8Q5TIwAPZVIxjdjCsnU6DHblhk=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=jQm2gvJ3VJPD90rhae11xmAlZKaNTfzDz9BxGYDP52IBHHIPI7H2hgqzM1nBjUpQM
 tSekUGtR4/9Knj1QzTUVJO5Zf5FE+KxMHsnKMMfnHhW5POz1xicF5UfkboWSJw3my5
 X6PA7fiq2ExFGfM7BNku+5C1Q9o/Wuhbdf+pupvcEeEuSSZlHGTIuS50eKvwIkibNs
 ptYkb1ratUwmRc6oeNKQ70vCl1KmWB19yVuDFYqWoi5V5kBT+G0rqkIhmbb98a5W3l
 Tc6q6Pir7KOdVTTh6oiixV0nZO3eX4FcqUovTxdKHFPkgOb1/KSBrCvJ2OouodSojM
 3hGg4HiUrsrGQ==
In-Reply-To: <83cz2tra6a.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 21 May
 2023 18:11:57 +0300")
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 <83o7miw2qk.fsf@HIDDEN>
 <CAFXT+RPY6zWTn2Ts991admZt6CNxmWTifk=3xRO+q2-dF721sA@HIDDEN>
 <831qjarzsk.fsf@HIDDEN> <jwv5y8lsqon.fsf-monnier+emacs@HIDDEN>
 <m1353pzqa1.fsf@HIDDEN> <83cz2tra6a.fsf@HIDDEN>
Date: Sun, 21 May 2023 18:41:22 +0300
Message-ID: <m1v8gly9nh.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Eshel Yaron <me@HIDDEN>
>> 
>> I'm not sure if that's the preferred behavior, but I do think that
>> consistently between the different marking commands is a good thing.
>
> Why do you think there should be consistency here?  These are
> different commands which target different use-cases.
>

I see, so `mark-word` and `mark-sexp` differ from `mark-paragraph`,
`mark-defun` and `mark-page` by design.  That's apparent from the Info
manual on second look.  Thanks.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Richard Stallman <rms@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 22 May 2023 22:03:02 +0000
Resent-Message-ID: <handler.62892.B62892.168479293710592 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Zachary Kanfer <zkanfer@HIDDEN>
Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, monnier@HIDDEN, drew.adams@HIDDEN, juri@HIDDEN
Reply-To: rms@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168479293710592
          (code B ref 62892); Mon, 22 May 2023 22:03:02 +0000
Received: (at 62892) by debbugs.gnu.org; 22 May 2023 22:02:17 +0000
Received: from localhost ([127.0.0.1]:37098 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q1Dbd-0002km-Ce
	for submit <at> debbugs.gnu.org; Mon, 22 May 2023 18:02:17 -0400
Received: from eggs.gnu.org ([209.51.188.92]:44270)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rms@HIDDEN>) id 1q1DbZ-0002kU-7e
 for 62892 <at> debbugs.gnu.org; Mon, 22 May 2023 18:02:16 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <rms@HIDDEN>)
 id 1q1DbS-0006eG-6R; Mon, 22 May 2023 18:02:06 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From:
 mime-version; bh=Uore59qTCo8+vebOTl3GLBYp4yw6Xs+XMZFY6Fvnx0g=; b=oCPZxHRSk/tB
 /UoqOrChPwRIQtCtrgkeerZx8B4TY/N+5wKTYwA/bLskZFLwAEyqvbCzYfFoGyO2OH2Q0iEdjC2bz
 OJDdO8uqBUT6ZmpJUwQbCMXvQZQPLRzEhrRXMzpYmCvLbmCsmAGkfO6/bjp4gUr3ICOP53KFUHrUi
 f3z9XJP1/ONfRCDovJ68fYAQ/kFdkMQENLkqjBGDgMx1WlCkqzAXiqogK5uvxconuVAiH8UsQuewL
 xkii/oiuRHZAPsZcdrb/pCGsLqQdaMq9nNgDBX3/f5Z1e3R4pP+Ug/BvRbbWDcZFk9blUqHPHuHte
 qGKXWAs43SvtTq7IeEmAlA==;
Received: from rms by fencepost.gnu.org with local (Exim 4.90_1)
 (envelope-from <rms@HIDDEN>)
 id 1q1DbR-00016p-M0; Mon, 22 May 2023 18:02:05 -0400
Content-Type: text/plain; charset=Utf-8
From: Richard Stallman <rms@HIDDEN>
In-Reply-To: <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 (message from Zachary Kanfer on Wed, 17 May 2023 23:17:01 -0400)
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
Message-Id: <E1q1DbR-00016p-M0@HIDDEN>
Date: Mon, 22 May 2023 18:02:05 -0400
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Attached is a patch with the following changes:
  > >
  > > * Uses the helper function to create mark-foo-forward, mark-foo-backward
  > > for word, paragraph, sexp, page, and defun.

I think these functions would make sense, but I wonder hwo they
would do users any good.

Are you envisioning that we would create standard key bindings
for these functions?

Are you envisioning that users would bind some of these functions
to keys themselves?

Are you envisioning that users would call these functions from their
own Lisp code?

Any of those would make sense in the abstract, but I doubt that any of
them would be convenient enough to make this change worth installing.



-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)






Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command
Resent-From: Zachary Kanfer <zkanfer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 23 May 2023 14:12:02 +0000
Resent-Message-ID: <handler.62892.B62892.168485111010488 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 62892
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: rms@HIDDEN
Cc: ruijie@HIDDEN, 62892 <at> debbugs.gnu.org, monnier@HIDDEN, drew.adams@HIDDEN, juri@HIDDEN
Received: via spool by 62892-submit <at> debbugs.gnu.org id=B62892.168485111010488
          (code B ref 62892); Tue, 23 May 2023 14:12:02 +0000
Received: (at 62892) by debbugs.gnu.org; 23 May 2023 14:11:50 +0000
Received: from localhost ([127.0.0.1]:40062 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1q1Sjt-0002j5-UI
	for submit <at> debbugs.gnu.org; Tue, 23 May 2023 10:11:50 -0400
Received: from mail-ot1-f41.google.com ([209.85.210.41]:46228)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zkanfer@HIDDEN>) id 1q1Sjr-0002in-4Q
 for 62892 <at> debbugs.gnu.org; Tue, 23 May 2023 10:11:48 -0400
Received: by mail-ot1-f41.google.com with SMTP id
 46e09a7af769-6af70ff2761so1082432a34.0
 for <62892 <at> debbugs.gnu.org>; Tue, 23 May 2023 07:11:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1684851101; x=1687443101;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=RKvO0UVtOqkz654TLzHtTDM1NnTp2gQTSIfd3tNw6F0=;
 b=Opsf0zPhXFrC0lPVUTf4CS8vxAGQtuxrTPe17bZL2yKhnWW97ueYGboFMXMxDFqYZA
 v4IJmDL3hiDw/awDNBexX22D2f+mBqls+uK+rry8lAvSLEwlNRw03HlPYcS2wNWzRQti
 4h4qGlE901egzaWoY+27Y4OCHBHxm2hAkbVndIcYFTN6JqpxjYvaZcAyvabTsGfhbGtz
 4hfgCwLtfRhlhUSDNT4456pBm8Z7sHYV2TWWoscv4hayZ7NnuHQfpfpV2I1YzwxzaeHp
 Nw5x9zPeuEsaXkesgsXxrnFpiZOIPUJA6dVgnb7Z40FMRt8JpNWv5q34Jzb6BLl6jY1f
 Y8ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1684851101; x=1687443101;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=RKvO0UVtOqkz654TLzHtTDM1NnTp2gQTSIfd3tNw6F0=;
 b=lwmeV98rODu/orG54Xb/r64EUFcyzi/ZKOE9sod7A2KnxwIGm6RGOeV/IkWxRcDMnU
 XPzmIFJ2yOBGqs3ueMmT9xVlj11ZFo48zx1JBPGYM2SXUtMra1jiJJrqtBnGkk5Jk4jK
 TEdXlwut3nXZWcIT5GDmRgseR7yzGOi86fGk3JpG3AHcfyLTFoJkew2n7mGNa3Qv7pWy
 gUIkJuRY9z5Xatbmde87s2J0oPiHjJUCKWoKBu/BUnjfGL4+nST1YOZM58xX7COO7K7I
 uHFsQT/BJ47NONRz1XnyEVnm1Mq1zHXAlx672vspXY5CJ7YBCYH5iKL5w8o10TqHftxt
 3nNA==
X-Gm-Message-State: AC+VfDxJB/twscT74/dw0JsHzMLM8ctXbLX7PX8MVSNz8KJP7ov3ymb7
 dUge7PwJUAvAiR2jWXXocOs06oqzPAUcGXBiH1g=
X-Google-Smtp-Source: ACHHUZ6ksmMyOpRvaLQjgRD+Z2atq6zGDnHig+RQELHJtKpwXnaOgNr/44tCkEwNZUmv/CmJDBgiyasuIgeCjSbf0do=
X-Received: by 2002:aca:2217:0:b0:398:4008:260d with SMTP id
 b23-20020aca2217000000b003984008260dmr503050oic.39.1684851101298; Tue, 23 May
 2023 07:11:41 -0700 (PDT)
MIME-Version: 1.0
References: <CAFXT+RN4zLaFRYwczji+nxFQjB_r0RRb=NLnmenO3so_ELq5Kw@HIDDEN>
 <sdvcz43w63q.fsf@HIDDEN> <jwv7cu575a2.fsf-monnier+emacs@HIDDEN>
 <CAFXT+RPyNwtS_+o6cRPQgV4UgECHQoHV7wqOiMGxBaDmLqkJFw@HIDDEN>
 <86jzxwuedr.fsf@HIDDEN>
 <SJ0PR10MB5488430E2A9639688D8E5C55F36B9@HIDDEN>
 <CAFXT+RPcXbpJt+xpvQ0eXLhRiBajY+O0hLFtAM4MEmsMXT5Z3A@HIDDEN>
 <CAFXT+ROH9HADi2Di5FsbykD02yFN6f=c0-B0SHav_LB1OmB=oQ@HIDDEN>
 <CAFXT+RNR_K6LTNr_Ss97eCLULrfcK9kfeN77UqLxZNiDq1DzpQ@HIDDEN>
 <E1q1DbR-00016p-M0@HIDDEN>
In-Reply-To: <E1q1DbR-00016p-M0@HIDDEN>
From: Zachary Kanfer <zkanfer@HIDDEN>
Date: Tue, 23 May 2023 10:11:30 -0400
Message-ID: <CAFXT+RNZaqtbP1MiBXYDL7hSCAOScNdkE0WvNUAcEyE0bd921g@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000006476ab05fc5cf764"
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--0000000000006476ab05fc5cf764
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> Are you envisioning that we would create standard key bindings
> for these functions?

I was not suggesting that here. However,I think this would be ideal,
especially given that mark-sexp is bound to three different keybindings
(C-M-@, C-M-SPC, C-M-S-SPC). What is the process for finding out if a new
keybinding would be appropriate? Or for determining whether enough people
use a keybinding to keep it, vs changing it?

> Are you envisioning that users would bind some of these functions
> to keys themselves?

Yes. This is the main use-case I envisioned.

> Are you envisioning that users would call these functions from their
> own Lisp code?

This was not my main proposal, but users can do so if they want.

On Mon, May 22, 2023 at 6:02=E2=80=AFPM Richard Stallman <rms@HIDDEN> wrot=
e:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > > Attached is a patch with the following changes:
>   > >
>   > > * Uses the helper function to create mark-foo-forward,
> mark-foo-backward
>   > > for word, paragraph, sexp, page, and defun.
>
> I think these functions would make sense, but I wonder hwo they
> would do users any good.
>
> Are you envisioning that we would create standard key bindings
> for these functions?
>
> Are you envisioning that users would bind some of these functions
> to keys themselves?
>
> Are you envisioning that users would call these functions from their
> own Lisp code?
>
> Any of those would make sense in the abstract, but I doubt that any of
> them would be convenient enough to make this change worth installing.
>
>
>
> --
> Dr Richard Stallman (https://stallman.org)
> Chief GNUisance of the GNU Project (https://gnu.org)
> Founder, Free Software Foundation (https://fsf.org)
> Internet Hall-of-Famer (https://internethalloffame.org)
>
>
>

--0000000000006476ab05fc5cf764
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">&gt;=20
Are you envisioning that we would create standard key bindings<br><div>&gt;=
 for these functions?</div><div><br></div><div>I was not suggesting that he=
re. However,I think this would be ideal, especially given that mark-sexp is=
 bound to three different keybindings (C-M-@, C-M-SPC, C-M-S-SPC). What is =
the process for finding out if a new keybinding would be appropriate? Or fo=
r determining whether enough people use a keybinding to keep it, vs changin=
g it?<br></div><div><br></div><div>&gt;
Are you envisioning that users would bind some of these functions<br>&gt; t=
o keys themselves?</div><div><br></div><div>Yes. This is the main use-case =
I envisioned.<br></div><div><br></div><div>&gt;=20
Are you envisioning that users would call these functions from their<br>&gt=
; own Lisp code?</div><div><br></div><div>This was not my main proposal, bu=
t users can do so if they want.<br></div></div><br><div class=3D"gmail_quot=
e"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, May 22, 2023 at 6:02=E2=80=
=AFPM Richard Stallman &lt;<a href=3D"mailto:rms@HIDDEN">rms@HIDDEN</a>&g=
t; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p=
x 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">[[[ To=
 any NSA and FBI agents reading my email: please consider=C2=A0 =C2=A0 ]]]<=
br>
[[[ whether defending the US Constitution against all enemies,=C2=A0 =C2=A0=
 =C2=A0]]]<br>
[[[ foreign or domestic, requires you to follow Snowden&#39;s example. ]]]<=
br>
<br>
=C2=A0 &gt; &gt; Attached is a patch with the following changes:<br>
=C2=A0 &gt; &gt;<br>
=C2=A0 &gt; &gt; * Uses the helper function to create mark-foo-forward, mar=
k-foo-backward<br>
=C2=A0 &gt; &gt; for word, paragraph, sexp, page, and defun.<br>
<br>
I think these functions would make sense, but I wonder hwo they<br>
would do users any good.<br>
<br>
Are you envisioning that we would create standard key bindings<br>
for these functions?<br>
<br>
Are you envisioning that users would bind some of these functions<br>
to keys themselves?<br>
<br>
Are you envisioning that users would call these functions from their<br>
own Lisp code?<br>
<br>
Any of those would make sense in the abstract, but I doubt that any of<br>
them would be convenient enough to make this change worth installing.<br>
<br>
<br>
<br>
-- <br>
Dr Richard Stallman (<a href=3D"https://stallman.org" rel=3D"noreferrer" ta=
rget=3D"_blank">https://stallman.org</a>)<br>
Chief GNUisance of the GNU Project (<a href=3D"https://gnu.org" rel=3D"nore=
ferrer" target=3D"_blank">https://gnu.org</a>)<br>
Founder, Free Software Foundation (<a href=3D"https://fsf.org" rel=3D"noref=
errer" target=3D"_blank">https://fsf.org</a>)<br>
Internet Hall-of-Famer (<a href=3D"https://internethalloffame.org" rel=3D"n=
oreferrer" target=3D"_blank">https://internethalloffame.org</a>)<br>
<br>
<br>
</blockquote></div>

--0000000000006476ab05fc5cf764--





Last modified: Tue, 23 May 2023 14:15:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.