summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/emacs-lisp/derived.el7
2 files changed, 10 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 4167d86f972..2bb0bad7282 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-01 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/derived.el (define-derived-mode): Make abbrev-table
+ inherit from parent.
+
2011-07-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
* dired-aux.el (dired-diff): Doc fixup (bug#8816).
diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el
index 1db98ac39c8..e8f799b9afc 100644
--- a/lisp/emacs-lisp/derived.el
+++ b/lisp/emacs-lisp/derived.el
@@ -253,8 +253,11 @@ No problems result if this variable is not bound.
`(let ((parent (char-table-parent ,syntax)))
(unless (and parent
(not (eq parent (standard-syntax-table))))
- (set-char-table-parent ,syntax (syntax-table)))))))
-
+ (set-char-table-parent ,syntax (syntax-table)))))
+ ,(when declare-abbrev
+ `(unless (abbrev-table-get ,abbrev :parents)
+ (abbrev-table-put ,abbrev :parents
+ (list local-abbrev-table))))))
(use-local-map ,map)
,(when syntax `(set-syntax-table ,syntax))
,(when abbrev `(setq local-abbrev-table ,abbrev))