Package: emacs;
Reported by: Aaron Madlon-Kay <aaron <at> madlon-kay.com>
Date: Tue, 14 Feb 2023 23:05:01 UTC
Severity: normal
Tags: fixed
Found in version 30.0.50
Fixed in version 30.1
Done: Robert Pluim <rpluim <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Aaron Madlon-Kay <aaron <at> madlon-kay.com> To: 61519 <at> debbugs.gnu.org Subject: bug#61519: 30.0.50; thing-at-point misdetects emails with numerals in user part Date: Wed, 15 Feb 2023 08:04:26 +0900
1. Launch Emacs with `emacs -Q` 2. Enter an email address with a numeral in the user part, like foo0bar <at> example.com 3. With point inside the domain part of the email address, evaluate `(thing-at-point 'email)` 4. Result will be `bar <at> example.com` (expected `foo0bar <at> example.com`) The cause of this is the implementation of `thing-at-point-looking-at' where it backs up one character at a time to find the start of the email. The value for `thing-at-point-email-regexp' allows numbers in the user part only from the *second* character, so as the function backs up it will mistakenly find the `0` in `0bar <at> example.com` to be outside of the email address. --- In GNU Emacs 30.0.50 (build 1, x86_64-apple-darwin22.3.0, NS appkit-2299.40 Version 13.2 (Build 22D49)) of 2023-01-30 built on Macmac.local Windowing system distributor 'Apple', version 10.3.2299 System Description: macOS 13.2.1 Configured using: 'configure --prefix=/opt/local --disable-silent-rules --without-dbus --without-gconf --without-libotf --without-m17n-flt --with-libgmp --with-gnutls --with-json --with-xml2 --with-modules --infodir /opt/local/share/info/emacs --with-sqlite3 --with-webp --with-ns --with-lcms2 --without-harfbuzz --without-imagemagick --without-xaw3d --with-tree-sitter --with-rsvg --with-native-compilation=aot 'CFLAGS=-pipe -Os -Wno-attributes -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch x86_64' 'CPPFLAGS=-I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk' 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath /opt/local/lib/gcc12 -Wl,-no_pie -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -arch x86_64'' Configured features: ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB Important settings: value of $LC_ALL: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: paredit-mode: t global-diff-hl-mode: t diff-hl-mode: t dap-tooltip-mode: t dap-ui-many-windows-mode: t dap-ui-controls-mode: t dap-ui-mode: t treemacs-filewatch-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t dap-auto-configure-mode: t dap-mode: t rainbow-delimiters-mode: t rainbow-mode: t company-quickhelp-mode: t company-quickhelp-local-mode: t global-company-mode: t company-mode: t editorconfig-mode: t csv-field-index-mode: t beacon-mode: t yas-global-mode: t yas-minor-mode: t global-flycheck-mode: t flycheck-mode: t which-key-mode: t auto-sudoedit-mode: 0 recentf-mode: t counsel-projectile-mode: t projectile-mode: t all-the-icons-ivy-rich-mode: t ivy-rich-mode: t counsel-mode: t pcre-mode: t global-git-commit-mode: t magit-auto-revert-mode: t pdf-occur-global-minor-mode: t ivy-mode: t shell-dirtrack-mode: t global-subword-mode: t subword-mode: t desktop-save-mode: t override-global-mode: t pixel-scroll-precision-mode: t server-mode: t global-display-line-numbers-mode: t display-line-numbers-mode: t delete-selection-mode: t electric-pair-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t global-prettify-symbols-mode: t prettify-symbols-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t hs-minor-mode: t Load-path shadows: /opt/local/share/emacs/site-lisp/cmake-mode hides /Users/amake/.emacs.d/elpa-30/cmake-mode-20230209.1921/cmake-mode /Users/amake/.emacs.d/elpa-30/transient-20230213.1337/transient hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/transient Features: (shadow mail-extr emacsbug cl-print amk-vterm benchmark ido loaddefs-gen tar-mode arc-mode archive-mode mm-archive url-cache magit-patch magit-subtree magit-extras magit-gitignore magit-ediff emoji-github py-autopep8 emacs-news-mode paredit dired-aux vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs diff-hl-dired all-the-icons-dired dired-collapse dired-hacks-utils tcl make-mode org-eldoc image-file image-converter oc-basic ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win ol-docview doc-view ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi conf-mode hl-tags-mode cl rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-enc xmltok shfmt flyspell ispell yaml-mode diff-hl log-view vc-dir dap-mouse dap-ui gdb-mi bindat gud bui bui-list bui-info bui-entry bui-core bui-history bui-button bui-utils lsp-modeline lsp-headerline lsp-icons lsp-diagnostics view lsp-zig lsp-steep lsp-svelte lsp-sqls lsp-ruby-syntax-tree lsp-yaml lsp-xml lsp-vimscript lsp-vhdl lsp-volar lsp-vetur lsp-html lsp-verilog lsp-vala lsp-v lsp-typeprof lsp-ttcn3 lsp-toml lsp-terraform lsp-tex lsp-sourcekit lsp lsp-sorbet lsp-solargraph lsp-rust lsp-rf lsp-remark lsp-racket lsp-r lsp-purescript lsp-pylsp lsp-pyls lsp-pwsh lsp-php lsp-pls lsp-perlnavigator lsp-perl lsp-openscad lsp-ocaml lsp-magik lsp-nix lsp-nim lsp-nginx lsp-mint lsp-marksman lsp-markdown lsp-lua lsp-kotlin lsp-json lsp-javascript lsp-idris lsp-haxe lsp-groovy lsp-hack lsp-graphql lsp-gleam lsp-go lsp-completion lsp-gdscript lsp-fsharp lsp-fortran lsp-eslint lsp-erlang lsp-emmet lsp-elixir lsp-elm lsp-dockerfile lsp-dhall lsp-d lsp-css lsp-csharp lsp-crystal lsp-cmake lsp-clojure lsp-semantic-tokens lsp-clangd lsp-beancount lsp-bash lsp-astro lsp-ansible lsp-angular lsp-ada lsp-actionscript lsp-ui lsp-ui-flycheck lsp-ui-imenu lsp-ui-peek lsp-ui-sideline lsp-ui-doc goto-addr csharp-mode c-ts-common dap-java lsp-java lsp-ivy lsp-dart lsp-dart-commands lsp-dart-flutter-widget-guide lsp-dart-flutter-fringe-colors lsp-dart-flutter-colors lsp-dart-outline lsp-dart-code-lens lsp-lens lsp-dart-test-tree lsp-treemacs lsp-treemacs-generic lsp-treemacs-themes treemacs-treelib treemacs-projectile treemacs treemacs-header-line treemacs-compatibility treemacs-mode treemacs-bookmarks treemacs-tags treemacs-interface treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom treemacs-visuals treemacs-fringe-indicator treemacs-scope pulse treemacs-faces treemacs-icons treemacs-themes treemacs-core-utils pfuture hl-line treemacs-logging treemacs-customization treemacs-macros lsp-dart-test-output lsp-dart-test-support lsp-dart-dap lsp-dart-devtools lsp-dart-flutter-daemon jsonrpc ert dap-utils dap-mode dap-tasks dap-launch lsp-docker posframe dap-overlays lsp-dart-closing-labels lsp-dart-utils lsp-dart-protocol lsp-mode spinner network-stream lv inline ewoc lsp-protocol ht lsp-ui-util vc-git vc vc-dispatcher hideshow rainbow-delimiters rainbow-mode flutter-l10n-flycheck flutter flutter-l10n flutter-project dart-mode company-oddmuse company-keywords company-etags etags fileloop company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb company-quickhelp pos-tip company init nodejs-repl pug-mode coffee-mode docker docker-volume docker-network docker-image docker-container docker-faces docker-core docker-compose docker-process docker-utils docker-group aio editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch csv-mode sort vterm term disp-table ehelp vterm-module term/xterm xterm cmake-mode rst jq-mode beacon yasnippet flycheck-kotlin flycheck-commitlint flycheck-committed flycheck-yard flycheck-dart-sass flycheck-sassc flycheck-innosetup flycheck-shfmt shfmt-common sh-script executable flycheck-package package-lint finder flycheck kotlin-mode kotlin-mode-indent kotlin-mode-lexer which-key vue-l10n helpful cc-langs trace edebug debug backtrace info-look help-fns radix-tree elisp-refs nginx-mode auto-sudoedit tramp-sh recentf tree-widget f f-shortdoc vlf-setup vlf vlf-base vlf-tune dumb-jump popup s edit-string counsel-projectile projectile lisp-mnt grep all-the-icons-ibuffer all-the-icons-ivy-rich ivy-rich all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons two-column counsel xref swiper ruby-test-mode inf-ruby ruby-mode cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs crdt forms forms-mode pcre2el rxt re-builder git-link orgit-forge orgit forge-list forge-commands forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy gsexp ghub url-http url-gw nsm url-auth gnutls forge-notify forge-revnote forge-pullreq forge-issue forge-topic yaml bug-reference forge-post markdown-mode edit-indirect forge-repo forge forge-core forge-db closql emacsql-sqlite emacsql emacsql-compiler magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff diff-mode git-commit log-edit message sendmail yank-media rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils pcvs-util add-log magit-core magit-autorevert autorevert filenotify magit-margin magit-transient magit-process with-editor comp comp-cstr warnings magit-mode magit-git magit-base magit-section crm org-pdftools pdf-occur ibuf-ext ibuffer ibuffer-loaddefs pdf-isearch let-alist pdf-annot tablist advice tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet pdf-misc pdf-tools pdf-view bookmark jka-compr pdf-cache pdf-info tq pdf-util pdf-macs org-noter org-element org-persist org-id avl-tree generator org-refile org-backlog backlog ivy ivy-faces ivy-overlay colir request mailheader org-tempo tempo dash async ob-ruby ob-python python project ob-dot ob-shell org org-macro org-pcomplete org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp org-table org-loaddefs find-func cal-menu calendar cal-loaddefs ob-async tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp ob-passthrough ob ob-tangle ol org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-core org-cycle org-fold org-fold-core ob-eval org-keys oc org-compat org-version org-macs css-mode treesit smie imenu eww url-queue shr pixel-fill kinsoku url-file svg xml puny mm-url gnus nnheader gnus-util time-date mail-utils range mm-util mail-prsvr color dired-x amk-dired amk-dired-mac image-dired image-dired-tags image-dired-external image-dired-util xdg ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util cus-edit pp cus-load icons wid-edit image-mode dired dired-loaddefs exif shell pcomplete cap-words superword subword desktop frameset macports macports-select macports-installed macports-outdated macports-describe thingatpt macports-core compile text-property-search comint ansi-osc transient format-spec compat scale-to-fit face-remap reformatter ansi-color amk-mac amk-xml sgml-mode facemenu dom edmacro kmacro exec-path-from-shell use-package-ensure-system-package diminish cl-extra help-mode finder-inf use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core pixel-scroll cua-base ring server display-line-numbers delsel elec-pair custom-file pcase auto-sudoedit-autoloads lsp-ivy-autoloads reformatter-autoloads hide-lines-autoloads counsel-projectile-autoloads lsp-java-autoloads edit-indirect-autoloads lsp-sourcekit-autoloads diff-hl-autoloads paredit-autoloads pyvenv-autoloads svelte-mode-autoloads rainbow-delimiters-autoloads all-the-icons-ivy-rich-autoloads helpful-autoloads elisp-refs-autoloads lsp-dart-autoloads flycheck-package-autoloads yaml-mode-autoloads flycheck-kotlin-autoloads counsel-autoloads ivy-rich-autoloads go-mode-autoloads kotlin-mode-autoloads lsp-ui-autoloads cmake-mode-autoloads company-quickhelp-autoloads company-autoloads docker-autoloads aio-autoloads terraform-mode-autoloads nginx-mode-autoloads csv-mode-autoloads ob-async-autoloads crdt-autoloads hcl-mode-autoloads vlf-autoloads pug-mode-autoloads all-the-icons-dired-autoloads jq-mode-autoloads swiper-autoloads ivy-autoloads org-contrib-autoloads dash-at-point-autoloads coffee-mode-autoloads dumb-jump-autoloads dart-mode-autoloads rainbow-mode-autoloads popup-autoloads vterm-autoloads which-key-autoloads graphviz-dot-mode-autoloads request-autoloads flycheck-autoloads pos-tip-autoloads ruby-test-mode-autoloads py-autopep8-autoloads dap-mode-autoloads lsp-docker-autoloads lsp-treemacs-autoloads expand-region-autoloads json-mode-autoloads rx json-snatcher-autoloads org-pdftools-autoloads org-noter-autoloads nodejs-repl-autoloads git-link-autoloads apache-mode-autoloads pdf-tools-autoloads tablist-autoloads inf-ruby-autoloads pkg-info-autoloads epl-autoloads diminish-autoloads groovy-mode-autoloads typescript-mode-autoloads beacon-autoloads bui-autoloads web-mode-autoloads treemacs-projectile-autoloads treemacs-autoloads cfrs-autoloads posframe-autoloads hydra-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads projectile-autoloads yasnippet-autoloads pcre2el-autoloads dockerfile-mode-autoloads all-the-icons-ibuffer-autoloads all-the-icons-autoloads dired-collapse-autoloads dired-hacks-utils-autoloads lsp-mode-autoloads lv-autoloads spinner-autoloads prettier-autoloads editorconfig-autoloads nvm-autoloads f-autoloads s-autoloads iter2-autoloads ht-autoloads jest-test-mode-autoloads async-autoloads free-keys-autoloads package-lint-autoloads exec-path-from-shell-autoloads orgit-forge-autoloads orgit-autoloads forge-autoloads yaml-autoloads markdown-mode-autoloads magit-autoloads magit-section-autoloads git-commit-autoloads with-editor-autoloads transient-autoloads ghub-autoloads treepy-autoloads dash-autoloads closql-autoloads emacsql-sqlite-autoloads emacsql-autoloads info compat-autoloads swift-mode-autoloads early-init package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 1620320 827570) (symbols 48 102949 1121) (strings 32 435004 231186) (string-bytes 1 13032964) (vectors 16 209870) (vector-slots 8 4281952 1068627) (floats 8 1654 3481) (intervals 56 24416 11684) (buffers 984 147))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.