GNU bug report logs -
#71727
Deleting TAGS buffer will cause `etags-regen--update-file` doesn't work
Previous Next
Reported by: Siyuan Chen <chansey97 <at> gmail.com>
Date: Sat, 22 Jun 2024 23:57:02 UTC
Severity: normal
Done: Dmitry Gutov <dmitry <at> gutov.dev>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hi again!
On 29/06/2024 14:49, Siyuan Chen wrote:
> > Is there are particular reason you killed the TAGS buffer?
>
> No. I found this bug is just because I tried to view the TAGS content
> while editing a .c file and then closed it (I am using tab-line-mode
> with tab-line-close-tab-function set to kill-buffer). Since then, I have
> stopped closing the TAGS buffer.
Thanks for the clarification.
> Another option is to temporarily add documentation advising users not to
> close the TAGS buffer, because closing it accidentally can result in the
> odd behavior.
I think actually a simpler approach can suffice: using kill-buffer-hook
in the TAGS buffer. Like this:
diff --git a/lisp/progmodes/etags-regen.el b/lisp/progmodes/etags-regen.el
index dc778b14061..21ea9bfb8b3 100644
--- a/lisp/progmodes/etags-regen.el
+++ b/lisp/progmodes/etags-regen.el
@@ -294,7 +294,9 @@ etags-regen--visit-table
(add-hook 'before-save-hook #'etags-regen--mark-as-new)
(setq etags-regen--tags-file tags-file
etags-regen--tags-root root)
- (visit-tags-table etags-regen--tags-file))
+ (visit-tags-table etags-regen--tags-file)
+ (with-current-buffer (get-file-buffer tags-file)
+ (add-hook 'kill-buffer-hook #'etags-regen--tags-cleanup nil t)))
(defun etags-regen--ctags-p ()
(string-search "Ctags"
@@ -390,7 +392,8 @@ etags-regen--mark-as-new
(defun etags-regen--tags-cleanup ()
(when etags-regen--tags-file
- (let ((buffer (get-file-buffer etags-regen--tags-file)))
+ (let ((buffer (get-file-buffer etags-regen--tags-file))
+ kill-buffer-hook)
(and buffer
(kill-buffer buffer)))
(tags-reset-tags-tables)
This bug report was last modified 317 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.