[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
infinite recursion in describe-mode
From: |
Drew Adams |
Subject: |
infinite recursion in describe-mode |
Date: |
Sun, 24 Dec 2006 13:14:31 -0800 |
emacs -Q
M-x set-variable pop-up-frames t
M-: (make-frame '((minibuffer . only)))
Put cursor in the new minibuffer-only frame.
M-: (describe-mode "name-of-some-other-buffer")
You get an infinite recursion, with (fill-paragraph nil) calling
(fill-in-buffer-function nil) calling (fill-paragraph nil)...
Here is the *Backtrace*, with some snipped:
Debugger entered--Lisp error: (error "Lisp nesting exceeds
`max-lisp-eval-depth'")
...
fill-paragraph(nil)
fill-minibuffer-function(nil)
fill-paragraph(nil)
fill-minibuffer-function(nil)
fill-paragraph(nil)
fill-minibuffer-function(nil)
fill-paragraph(nil)
describe-mode("drews-lisp-20")
eval((describe-mode "drews-lisp-20"))
eval-expression((describe-mode "drews-lisp-20") nil)
call-interactively(eval-expression)
The problem appears to be near the end of this part of the definition
of `describe-mode':
(with-current-buffer standard-output
(dolist (mode minor-modes)
(let ((mode-function (nth 0 mode))
(pretty-minor-mode (nth 1 mode))
(indicator (nth 2 mode)))
(add-text-properties 0 (length pretty-minor-mode)
'(face bold) pretty-minor-mode)
(save-excursion
(goto-char (point-max))
(princ "\n\f\n")
(push (point-marker) help-button-cache)
;; Document the minor modes fully.
(insert pretty-minor-mode)
(princ (format " minor mode (%s):\n"
(if (zerop (length indicator))
"no indicator"
(format "indicator%s"
indicator))))
(princ (documentation mode-function)))
(insert-button pretty-minor-mode
'action (car help-button-cache)
'follow-link t
'help-echo "mouse-2, RET: show full information")
(newline)))
(forward-line -1)
(fill-paragraph nil) ; <===== Problem is here
(forward-line 1))
It appears to me, but I'm not sure, that the `fill-paragraph' should
not at all be executed in the original buffer (in this case, the
minibuffer of the minibuffer-only frame).
In GNU Emacs 22.0.91.1 (i386-mingw-nt5.1.2600)
of 2006-12-11 on LENNART-69DE564
X server distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4) --cflags -Id:/g/include'
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: ENU
locale-coding-system: cp1252
default-enable-multibyte-characters: t
Major mode: Debugger
Minor modes in effect:
encoded-kbd-mode: t
tooltip-mode: t
tool-bar-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
unify-8859-on-encoding-mode: t
utf-translate-cjk-mode: t
auto-compression-mode: t
line-number-mode: t
Recent input:
<mouse-1> M-: ( m a k e - f r a m e SPC ' <help-echo>
( ( m i n i b u f f e r SPC . SPC o n l y ) ) ) <return>
<switch-frame> M-: ( d e s c i <backspace> r i b e
- m o d e SPC " d r e w s - l i s p - 2 0 " ) <return>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <menu-bar> <help-menu> <re
port-emacs-bug>
Recent messages:
Loading dired...
Loading regexp-opt...done
Loading dired...done
For information about the GNU Project and its goals, type C-h C-p.
Loading help-fns...done
Loading easymenu...done
#<frame address@hidden 0x1304600>
Loading debug...done
Entering debugger...
Loading emacsbug...done
- infinite recursion in describe-mode,
Drew Adams <=