Reset abbrevs-changed after saving abbrevs (bug#62208)
* lisp/abbrev.el (abbrev--possibly-save): Reset abbrevs-changed after saving abbrevs. * test/lisp/abbrev-tests.el (abbrev--possibly-save-test): New test.
This commit is contained in:
parent
e8cee15f78
commit
c54bda15e3
2 changed files with 27 additions and 11 deletions
|
@ -1250,17 +1250,17 @@ which see."
|
|||
;; asked to.
|
||||
(and save-abbrevs
|
||||
abbrevs-changed
|
||||
(progn
|
||||
(if (or arg
|
||||
(eq save-abbrevs 'silently)
|
||||
(y-or-n-p (format "Save abbrevs in %s? " abbrev-file-name)))
|
||||
(progn
|
||||
(write-abbrev-file nil)
|
||||
nil)
|
||||
;; Don't keep bothering user if they say no.
|
||||
(setq abbrevs-changed nil)
|
||||
;; Inhibit message in `save-some-buffers'.
|
||||
t)))))
|
||||
(prog1
|
||||
(if (or arg
|
||||
(eq save-abbrevs 'silently)
|
||||
(y-or-n-p (format "Save abbrevs in %s? " abbrev-file-name)))
|
||||
(progn
|
||||
(write-abbrev-file nil)
|
||||
nil)
|
||||
;; Inhibit message in `save-some-buffers'.
|
||||
t)
|
||||
;; Don't ask again whether saved or user said no.
|
||||
(setq abbrevs-changed nil)))))
|
||||
|
||||
(add-hook 'save-some-buffers-functions #'abbrev--possibly-save)
|
||||
|
||||
|
|
|
@ -305,6 +305,22 @@
|
|||
(should-not (abbrev-table-p translation-table-vector))
|
||||
(should (abbrev-table-p (make-abbrev-table))))
|
||||
|
||||
(ert-deftest abbrev--possibly-save-test ()
|
||||
"Test that `abbrev--possibly-save' properly resets
|
||||
`abbrevs-changed'."
|
||||
(ert-with-temp-file temp-test-file
|
||||
(let ((abbrev-file-name temp-test-file)
|
||||
(save-abbrevs t))
|
||||
;; Save
|
||||
(let ((abbrevs-changed t))
|
||||
(should-not (abbrev--possibly-save nil t))
|
||||
(should-not abbrevs-changed))
|
||||
;; Don't save
|
||||
(let ((abbrevs-changed t))
|
||||
(ert-simulate-keys '(?n)
|
||||
(should (abbrev--possibly-save nil)))
|
||||
(should-not abbrevs-changed)))))
|
||||
|
||||
(provide 'abbrev-tests)
|
||||
|
||||
;;; abbrev-tests.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue