Package: emacs;
Reported by: Piyush Srivastava <piyush.srivastava <at> tifr.res.in>
Date: Tue, 12 Aug 2025 16:13:02 UTC
Severity: normal
Found in version 30.1
Done: Eli Zaretskii <eliz <at> gnu.org>
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Piyush Srivastava <piyush.srivastava <at> tifr.res.in> Subject: bug#79225: closed (Re: bug#79225: 30.1; Success and abort callbacks are shared across different invocations of string-edit) Date: Wed, 13 Aug 2025 12:14:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report #79225: 30.1; Success and abort callbacks are shared across different invocations of string-edit which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 79225 <at> debbugs.gnu.org. -- 79225: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79225 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org> To: Piyush Srivastava <piyush.srivastava <at> tifr.res.in> Cc: 79225-done <at> debbugs.gnu.org Subject: Re: bug#79225: 30.1; Success and abort callbacks are shared across different invocations of string-edit Date: Wed, 13 Aug 2025 15:12:51 +0300> Date: Wed, 13 Aug 2025 07:57:25 +0530 > From: Piyush Srivastava <piyush.srivastava <at> tifr.res.in> > > There is an error in my bug-report: the string-edit function uses > setq-local, Thus, the callbacks indeed become buffer local when they > are assigned, so the problem I was worried about should not occur. I > just got confused because the variables that store these callbacks are > declared using defvar rather than defvar-local, even though they are > intended for buffer-local use. Thanks, I'm therefore closing this non-bug.
[Message part 3 (message/rfc822, inline)]
From: Piyush Srivastava <piyush.srivastava <at> tifr.res.in> To: bug-gnu-emacs <at> gnu.org Subject: 30.1; Success and abort callbacks are shared across different invocations of string-edit Date: Tue, 12 Aug 2025 12:28:05 +0530The function `string-edit' uses variables `string-edit--success-callback' and `string-edit--abort-callback' to store callbacks to be called on successful completion and abort respectively. However, these variables are declared using `defvar' and not using `defvar-local', so it looks like they are shared across different concurrent invocations of `string-edit' (e.g., if, while a `string-edit' buffer is active, a user goes to another buffer and invokes another command calling `read-string-from-buffer' from that buffer). Is this the intended behaviour? In GNU Emacs 30.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0) of 2025-02-25 built on OptiPlex-7440-AIO Windowing system distributor 'The X.Org Foundation', version 11.0.12302006 System Description: Ubuntu 24.04.2 LTS Configured using: 'configure --with-prefix=/usr/local --with-native-compilation --with-modules' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LC_MONETARY: en_IN.UTF-8 value of $LC_NUMERIC: en_IN.UTF-8 value of $LC_TIME: en_IN.UTF-8 value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t whitespace-mode: t which-key-mode: t projectile-mode: t electric-pair-mode: t fido-vertical-mode: t icomplete-vertical-mode: t icomplete-mode: t fido-mode: t server-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t mouse-wheel-mode: t tab-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/piyushs/.config/emacs/elpa/magit-4.3.0/magit-autorevert hides /home/piyushs/.config/emacs/elpa/magit-section-4.3.0/magit-autorevert /home/piyushs/.config/emacs/elpa/transient-0.8.4/transient hides /usr/local/share/emacs/30.1/lisp/transient Features: (shadow sort mail-extr reporter emacsbug pcmpl-unix edebug cl-print jka-compr slime-tests ert ewoc debug backtrace slime etags fileloop arc-mode archive-mode hyperspec hippie-exp string-edit gptel-bedrock gptel-gh gptel-org gptel-rewrite gptel-transient gptel-gemini gptel-ollama cus-start gptel gptel-openai vc-hg vc-bzr vc-src vc-sccs vc-cvs vc-rcs log-view bug-reference flyspell magit-extras face-remap magit-submodule 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 imenu magit-diff smerge-mode diff git-commit log-edit pcvs-util add-log magit-core magit-autorevert autorevert filenotify magit-margin magit-transient magit-process with-editor magit-mode transient benchmark magit-git magit-base magit-section cursor-sensor crm llama mm-archive message sendmail yank-media rfc822 mml mml-sec epa mailabbrev gmm-utils mailheader mm-decode mm-bodies mm-encode package-vc vc lisp-mnt gnutls network-stream url-cache url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 ietf-drums url-gw nsm puny epg rfc6068 epg-config display-line-numbers mode-local tramp-cache time-stamp tramp-sh shortdoc ess-tracebug comp comp-cstr warnings ess-utils ess-custom tramp trampver tramp-integration files-x tramp-message tramp-compat shell tramp-loaddefs help-fns radix-tree misearch multi-isearch dired-aux ps-my-utils cal-islam holidays holiday-loaddefs mule-util cal-move vc-git diff-mode track-changes vc-dispatcher beancount derived apropos xref comp-run comp-common disp-table whitespace quail ag vc-svn find-dired dired dired-loaddefs skeleton ibuf-macs which-key projectile grep ibuf-ext ibuffer ibuffer-loaddefs org-attach org-protocol org-crypt org-datetree org-habit org-agenda org-element org-persist xdg org-id org-refile org-element-ast inline avl-tree generator ob-haskell ob-R ob-python python project gnus nnheader gnus-util mail-utils range mm-util mail-prsvr ispell howm-markdown citeproc citeproc-itemgetters parsebib citeproc-cite citeproc-biblatex citeproc-bibtex ol-bibtex org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie treesit executable ob-comint org-pcomplete pcomplete org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol rx org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-version org-compat org-macs format-spec bibtex parse-time iso8601 time-date citeproc-subbibs citeproc-sort citeproc-name citeproc-formatters citeproc-proc citeproc-disamb citeproc-itemdata citeproc-generic-elements citeproc-macro citeproc-choose citeproc-date citeproc-number rst compile text-property-search comint ansi-osc ansi-color ring citeproc-context citeproc-prange citeproc-style citeproc-locale citeproc-term f citeproc-rt citeproc-lib citeproc-s thingatpt compat s let-alist queue dash elec-pair notifications dbus xml finder-inf use-package-ensure icomplete modus-vivendi-theme modus-themes server edmacro kmacro cus-edit pp cus-load wid-edit cl-extra help-mode use-package-bind-key bind-key easy-mmode use-package-core ada-mode-autoloads ag-autoloads auctex-autoloads tex-site cdlatex-autoloads citeproc-autoloads company-autoloads elfeed-autoloads ess-autoloads flycheck-autoloads gnat-compiler-autoloads gptel-autoloads haskell-mode-autoloads howm-autoloads htmlize-autoloads lean4-mode-autoloads lsp-mode-autoloads ht-autoloads f-autoloads lv-autoloads magit-autoloads pcase magit-section-autoloads llama-autoloads markdown-mode-autoloads parsebib-autoloads projectile-autoloads queue-autoloads s-autoloads slime-autoloads macrostep-autoloads speed-type-autoloads dash-autoloads spinner-autoloads string-inflection-autoloads stylus-mode-autoloads tmr-autoloads transient-autoloads uniquify-files-autoloads wisi-autoloads info with-editor-autoloads yasnippet-snippets-autoloads yasnippet-autoloads 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 icons 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/x-win x-win term/common-win x-dnd touch-screen 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 dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 903799 1968635) (symbols 48 48925 19) (strings 32 253930 118628) (string-bytes 1 10201886) (vectors 16 89901) (vector-slots 8 1848710 586934) (floats 8 446 66591) (intervals 56 4329 5321) (buffers 992 26))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.