From: "Andreas Röhler" <andreas.roehler@easy-emacs.de>
To: Drew Adams <drew.adams@oracle.com>,
Tino Calancha <tino.calancha@gmail.com>
Cc: Stephen Berman <stephen.berman@gmx.net>,
24969@debbugs.gnu.org, npostavs@users.sourceforge.net
Subject: bug#24969: 26.0.50; number-at-point
Date: Tue, 22 Nov 2016 09:45:01 +0100 [thread overview]
Message-ID: <8130a1ef-b77d-b1df-3db7-8952a592e6aa@easy-emacs.de> (raw)
In-Reply-To: <30945b58-5353-4475-92b3-7e276f20750e@default>
On 22.11.2016 00:07, Drew Adams wrote:
>>> In Emacs 25.1 (emacs -Q), `number-at-point' at either
>>> the `-' or the `1' returns nil, for me. And I do not
>>> see why it should return a number.
>>>
>>> `number-at-point' is defined using `form-at-point' with
>>> THING `sexp' and predicate `numberp'. The sexp picked
>>> up at point is `foo-1', and that fails `numberp'.
>> From the time when i opened Bug#24605, the
>> implementation, in master branch, of `number-at-point'
>> was different: it changed in commit 786ab4a5 (Bug#8634).
>> My patch was driven by this implementation. I didn't notice
>> that `number-at-point' behaves different in emacs-25.
> It behaves the same in Emacs 25.1 as previously. If something
> broke this after Emacs 25.1 then it should be reverted.
>
>>> What am I missing? Why should this rightfully return
>>> a number? I'm guessing that you are all using a more
>>> recent version of `number-at-point' than what is in
>>> Emacs 25.1 (?). But to me the Emacs 25.1 behavior I
>>> see (i.e., returning nil) is correct.
>>>
>>> Did someone change the meaning of `number-at-point'
>>> so that it now picks up a numeral that is not isolated?
>>> If so, why would that be considered proper behavior?
>>> At the very least it is not backward-compatible behavior.
>> That's right. Commit above breaks backward-compatibility.
> If it returns a number for point on a numeral in the middle
> of a symbol name etc. then it breaks not only backward
> compatibility - it breaks the very notion of a number at
> point. A number at point should be a number as delimited
> and distinguished in the current mode.
>
> The longstanding definition uses Lisp `read', so it distinguishes
> a _Lisp_ number. It uses what Lisp uses to delimit a numeral.
>
> A better implementation of `number-at-point' than what has
> always existed would do this:
>
> 1. Get (thing-at-point 'sexp)
> 2. If it is not a string, return nil.
> 3. Else match it against a regexp that tests for a numeral
> in the current mode/context. Or use another such test
> other than regexp matching. If there the mode/context
> defines numeric syntax then perhaps use a function that
> tests that way.
> 4. For Lisp, the result must coincide with the longstanding
> behavior, one way or another.
>
> Unless `number-at-point' is extended in such a way, it should
> simply be restored to what it has always been. It's behavior
> in Lisp should in any case be to return a Lisp number.
>
Why? A lisp-number is useful for further computations, for adding them
for example.
It's not useful when editing the numbers text at point.
As (thing-at-point 'sexp) internally will get the buffer-substring with
the number's literal, why not make is accessible for edits?
next prev parent reply other threads:[~2016-11-22 8:45 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-20 12:47 bug#24969: 26.0.50; number-at-point Andreas Röhler
2016-11-20 12:53 ` Stephen Berman
2016-11-20 13:53 ` Andreas Röhler
2016-11-20 14:15 ` npostavs
2016-11-20 16:19 ` Drew Adams
2016-11-20 16:35 ` Noam Postavsky
2016-11-20 16:58 ` Drew Adams
2016-11-20 19:26 ` Andreas Röhler
2016-11-20 21:28 ` Drew Adams
2016-11-21 6:48 ` Andreas Röhler
2016-11-21 14:22 ` Drew Adams
2016-11-21 13:09 ` Tino Calancha
2016-11-21 23:07 ` Drew Adams
2016-11-22 8:45 ` Andreas Röhler [this message]
2021-08-10 16:18 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8130a1ef-b77d-b1df-3db7-8952a592e6aa@easy-emacs.de \
--to=andreas.roehler@easy-emacs.de \
--cc=24969@debbugs.gnu.org \
--cc=drew.adams@oracle.com \
--cc=npostavs@users.sourceforge.net \
--cc=stephen.berman@gmx.net \
--cc=tino.calancha@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).