mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-07 15:21:46 +00:00
Fix error in copy-abbrev-table
* lisp/abbrev.el (define-abbrev): Don't erase the :abbrev-table-modiff property of the abbrev-table. (Bug#21828) * test/automated/abbrev-tests.el: New file.
This commit is contained in:
parent
b29be62888
commit
bede518c38
@ -87,6 +87,7 @@ be replaced by its expansion."
|
||||
"Make a new abbrev-table with the same abbrevs as TABLE.
|
||||
Does not copy property lists."
|
||||
(let ((new-table (make-abbrev-table)))
|
||||
(message "modif: %s" (abbrev-table-get new-table :abbrev-table-modiff))
|
||||
(mapatoms
|
||||
(lambda (symbol)
|
||||
(define-abbrev new-table
|
||||
@ -580,6 +581,8 @@ An obsolete but still supported calling form is:
|
||||
,@(if (cadr props) (list :system (cadr props))))))
|
||||
(unless (plist-get props :count)
|
||||
(setq props (plist-put props :count 0)))
|
||||
(setq props (plist-put props :abbrev-table-modiff
|
||||
(abbrev-table-get table :abbrev-table-modiff)))
|
||||
(let ((system-flag (plist-get props :system))
|
||||
(sym (intern name table)))
|
||||
;; Don't override a prior user-defined abbrev with a system abbrev,
|
||||
|
43
test/automated/abbrev-tests.el
Normal file
43
test/automated/abbrev-tests.el
Normal file
@ -0,0 +1,43 @@
|
||||
;;; abbrev-tests.el --- Test suite for abbrevs.
|
||||
|
||||
;; Copyright (C) 2015 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Eli Zaretskii <eliz@gnu.org>
|
||||
;; Keywords: abbrevs
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ert)
|
||||
(require 'abbrev)
|
||||
|
||||
(ert-deftest copy-abbrev-table-test ()
|
||||
(defvar foo-abbrev-table nil) ; Avoid compiler warning
|
||||
(define-abbrev-table 'foo-abbrev-table
|
||||
'())
|
||||
(should (abbrev-table-p foo-abbrev-table))
|
||||
;; Bug 21828
|
||||
(let ((new-foo-abbrev-table
|
||||
(condition-case nil
|
||||
(copy-abbrev-table foo-abbrev-table)
|
||||
(error nil))))
|
||||
(should (abbrev-table-p new-foo-abbrev-table)))
|
||||
(should-not (string-equal (buffer-name) "*Backtrace*")))
|
||||
|
||||
(provide 'abbrev-tests)
|
||||
|
||||
;;; add-log-tests.el ends here
|
Loading…
Reference in New Issue
Block a user