GNU bug report logs -
#8998
24.0.50; expand-abbrev goes into infinite loop
Previous Next
Reported by: Richard Kim <emacs18 <at> gmail.com>
Date: Tue, 5 Jul 2011 00:48:01 UTC
Severity: normal
Merged with 8999
Found in version 24.0.50
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> Why is `lisp-interaction-mode-abbrev-table' its own parent?
I've installed the patch below which I believe fixes the problem.
Can you confirm that it fixes the problem for you?
Stefan
=== modified file 'lisp/emacs-lisp/derived.el'
--- lisp/emacs-lisp/derived.el 2011-07-01 16:41:02 +0000
+++ lisp/emacs-lisp/derived.el 2011-07-05 18:23:08 +0000
@@ -255,7 +255,10 @@
(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)
=== modified file 'lisp/emacs-lisp/lisp-mode.el'
--- lisp/emacs-lisp/lisp-mode.el 2011-06-28 12:09:43 +0000
+++ lisp/emacs-lisp/lisp-mode.el 2011-07-05 16:14:45 +0000
@@ -525,7 +525,6 @@
"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
This bug report was last modified 14 years and 19 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.