[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)
bug.m
Description: bug.m
- bug#14381: 24.3; smie-auto-fill infinite loop,
Leo Liu <=