* lisp/emacs-lisp/derived.el (define-derived-mode): Make abbrev-table
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 1 Jul 2011 16:41:02 +0000 (12:41 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 1 Jul 2011 16:41:02 +0000 (12:41 -0400)
inherit from parent.

lisp/ChangeLog
lisp/emacs-lisp/derived.el

index 4167d86..2bb0bad 100644 (file)
@@ -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).
index 1db98ac..e8f799b 100644 (file)
@@ -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))