emacs-pretest-bug
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]