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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#14381: 24.3; smie-auto-fill infinite loop


From: Leo Liu
Subject: bug#14381: 24.3; smie-auto-fill infinite loop
Date: Fri, 10 May 2013 21:06:15 +0800

1. emacs -q
2. open the attached bug.m file
3. move to the end of second line
4. M-: (smie-auto-fill)

Should enter an infinite loop.

Debugger entered--Lisp error: (quit)
  syntax-ppss()
  smie-indent-comment-inside()
  run-hook-with-args-until-success(smie-indent-comment-inside)
  smie-indent-calculate()
  (let* ((newcol (smie-indent-calculate)) (newgain (- curcol newcol))) (when (> 
newgain gain) (setq gain newgain) (setq bsf (point))))
  (while (<= (setq curcol (current-column)) fc) (let* ((newcol 
(smie-indent-calculate)) (newgain (- curcol newcol))) (when (> newgain gain) 
(setq gain newgain) (setq bsf (point)))) (smie-indent-forward-token))
  (let ((bsf (point)) (gain 0) curcol) (while (<= (setq curcol 
(current-column)) fc) (let* ((newcol (smie-indent-calculate)) (newgain (- 
curcol newcol))) (when (> newgain gain) (setq gain newgain) (setq bsf 
(point)))) (smie-indent-forward-token)) (when (> gain 0) (goto-char bsf) 
(newline-and-indent)))
  (save-excursion (beginning-of-line) (smie-indent-forward-token) (let ((bsf 
(point)) (gain 0) curcol) (while (<= (setq curcol (current-column)) fc) (let* 
((newcol (smie-indent-calculate)) (newgain (- curcol newcol))) (when (> newgain 
gain) (setq gain newgain) (setq bsf (point)))) (smie-indent-forward-token)) 
(when (> gain 0) (goto-char bsf) (newline-and-indent))))
  (cond ((not (or (nth 8 (save-excursion (syntax-ppss 
(line-beginning-position)))) (nth 8 (syntax-ppss)))) (save-excursion 
(beginning-of-line) (smie-indent-forward-token) (let ((bsf (point)) (gain 0) 
curcol) (while (<= (setq curcol (current-column)) fc) (let* ((newcol ...) 
(newgain ...)) (when (> newgain gain) (setq gain newgain) (setq bsf ...))) 
(smie-indent-forward-token)) (when (> gain 0) (goto-char bsf) 
(newline-and-indent))))) (t (do-auto-fill)))
  (while (and fc (> (current-column) fc)) (cond ((not (or (nth 8 
(save-excursion (syntax-ppss ...))) (nth 8 (syntax-ppss)))) (save-excursion 
(beginning-of-line) (smie-indent-forward-token) (let ((bsf (point)) (gain 0) 
curcol) (while (<= (setq curcol ...) fc) (let* (... ...) (when ... ... ...)) 
(smie-indent-forward-token)) (when (> gain 0) (goto-char bsf) 
(newline-and-indent))))) (t (do-auto-fill))))
  (let ((fc (current-fill-column))) (while (and fc (> (current-column) fc)) 
(cond ((not (or (nth 8 (save-excursion ...)) (nth 8 (syntax-ppss)))) 
(save-excursion (beginning-of-line) (smie-indent-forward-token) (let ((bsf ...) 
(gain 0) curcol) (while (<= ... fc) (let* ... ...) (smie-indent-forward-token)) 
(when (> gain 0) (goto-char bsf) (newline-and-indent))))) (t (do-auto-fill)))))
  smie-auto-fill()
  eval((smie-auto-fill) nil)
  eval-expression((smie-auto-fill) nil)
  call-interactively(eval-expression nil nil)


Attachment: bug.m
Description: bug.m


reply via email to

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