+2011-07-05 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/lisp-mode.el (lisp-interaction-mode-abbrev-table):
+ Let define-derived-mode define it.
+ * emacs-lisp/derived.el (define-derived-mode): Try to avoid creating
+ cycles of abbrev-table inheritance (bug#8998).
+
2011-07-05 Roland Winkler <winkler@gnu.org>
* textmodes/bibtex.el: Add support for biblatex.
(bibtex-entry-alist, bibtex-field-alist): New widgets.
(bibtex-set-dialect): New command.
(bibtex-entry-type, bibtex-entry-head)
- (bibtex-entry-maybe-empty-head, bibtex-any-valid-entry-type): Bind
- via bibtex-set-dialect.
+ (bibtex-entry-maybe-empty-head, bibtex-any-valid-entry-type):
+ Bind via bibtex-set-dialect.
(bibtex-Article, bibtex-Book, bibtex-Booklet, bibtex-InBook)
(bibtex-InCollection, bibtex-InProceedings, bibtex-Manual)
(bibtex-MastersThesis, bibtex-Misc, bibtex-PhdThesis)
(bibtex-Proceedings, bibtex-TechReport, bibtex-Unpublished):
Define via bibtex-set-dialect.
- (bibtex-name-in-field, bibtex-remove-OPT-or-ALT): Obey
- bibtex-no-opt-remove-re.
+ (bibtex-name-in-field, bibtex-remove-OPT-or-ALT):
+ Obey bibtex-no-opt-remove-re.
(bibtex-vec-push, bibtex-vec-incr): New functions.
(bibtex-format-entry, bibtex-field-list)
(bibtex-print-help-message, bibtex-validate)
(not (eq parent (standard-syntax-table))))
(set-char-table-parent ,syntax (syntax-table)))))
,(when declare-abbrev
- `(unless (abbrev-table-get ,abbrev :parents)
+ `(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)
"Keymap for Lisp Interaction mode.
All commands in `lisp-mode-shared-map' are inherited by this map.")
-(defvar lisp-interaction-mode-abbrev-table lisp-mode-abbrev-table)
(define-derived-mode lisp-interaction-mode emacs-lisp-mode "Lisp Interaction"
"Major mode for typing and evaluating Lisp forms.
Like Lisp mode except that \\[eval-print-last-sexp] evals the Lisp expression