diff options
author | Kenichi Handa <handa@m17n.org> | 2011-07-07 08:28:00 +0900 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2011-07-07 08:28:00 +0900 |
commit | d2a0a50628933d3cdb09818eee2e17f55e22531f (patch) | |
tree | d19c8e71eb63eb6ccd204c2f36f406e4cf853154 /lisp/emacs-lisp/derived.el | |
parent | c805dec0b5fa81b5c9f2b724e2ec12a17d723aca (diff) | |
parent | 354cf0ba0b20108c9776be1d868458893bc2cd54 (diff) | |
download | emacs-d2a0a50628933d3cdb09818eee2e17f55e22531f.tar.gz emacs-d2a0a50628933d3cdb09818eee2e17f55e22531f.tar.bz2 emacs-d2a0a50628933d3cdb09818eee2e17f55e22531f.zip |
merge trunk
Diffstat (limited to 'lisp/emacs-lisp/derived.el')
-rw-r--r-- | lisp/emacs-lisp/derived.el | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el index 1db98ac39c8..4fda2bf1d52 100644 --- a/lisp/emacs-lisp/derived.el +++ b/lisp/emacs-lisp/derived.el @@ -253,8 +253,14 @@ 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 (or (abbrev-table-get ,abbrev :parents) + ;; This can happen if the major mode defines + ;; the abbrev-table to be its parent's. + (eq ,abbrev local-abbrev-table)) + (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)) |