1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 12:21:25 -08:00

Make number-at-point recognize some hex numbers

* lisp/thingatpt.el (number-at-point): Also return common hex
numbers (bug#37458).
This commit is contained in:
Lars Ingebrigtsen 2019-09-20 19:37:54 +02:00
parent 1646e448d0
commit 385bb140de
2 changed files with 15 additions and 4 deletions

View file

@ -1661,6 +1661,10 @@ backtrace with 'b'.
A symbol 'uuid' can be passed to 'thing-at-point' and it returns the
UUID at point.
---
*** 'number-at-point' will now recognize hex number like 0xAb09 and #xAb09
and return them as numbers.
---
*** 'word-at-point' and 'sentence-at-point' accept NO-PROPERTIES.
Just like 'thing-at-point' itself.

View file

@ -632,10 +632,17 @@ Signal an error if the entire string was not used."
(if thing (intern thing))))
;;;###autoload
(defun number-at-point ()
"Return the number at point, or nil if none is found."
(when (thing-at-point-looking-at "-?[0-9]+\\.?[0-9]*" 500)
(string-to-number
(buffer-substring (match-beginning 0) (match-end 0)))))
"Return the number at point, or nil if none is found.
Decimal numbers like \"14\" or \"-14.5\", as well as hex numbers
like \"0xBEEF09\" or \"#xBEEF09\", are regognized."
(when (thing-at-point-looking-at
"\\(-?[0-9]+\\.?[0-9]*\\)\\|\\(0x\\|#x\\)\\([a-zA-Z0-9]+\\)" 500)
(if (match-beginning 1)
(string-to-number
(buffer-substring (match-beginning 1) (match-end 1)))
(string-to-number
(buffer-substring (match-beginning 3) (match-end 3))
16))))
(put 'number 'thing-at-point 'number-at-point)
;;;###autoload