[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master bede518: Fix error in copy-abbrev-table
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] master bede518: Fix error in copy-abbrev-table |
Date: |
Sat, 07 Nov 2015 11:33:25 +0000 |
branch: master
commit bede518c38db805ab9ac4b86f570ca9bff79a783
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
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.
---
lisp/abbrev.el | 3 ++
test/automated/abbrev-tests.el | 43 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/lisp/abbrev.el b/lisp/abbrev.el
index f372a28..bd1650b 100644
--- a/lisp/abbrev.el
+++ b/lisp/abbrev.el
@@ -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,
diff --git a/test/automated/abbrev-tests.el b/test/automated/abbrev-tests.el
new file mode 100644
index 0000000..da77f61
--- /dev/null
+++ b/test/automated/abbrev-tests.el
@@ -0,0 +1,43 @@
+;;; abbrev-tests.el --- Test suite for abbrevs.
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Eli Zaretskii <address@hidden>
+;; 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
- [Emacs-diffs] master bede518: Fix error in copy-abbrev-table,
Eli Zaretskii <=