* bug#21083: 24.5; Infinite loop in called-interactively-p
@ 2015-07-18 3:48 Dmitri Paduchikh
2015-07-21 23:10 ` Stefan Monnier
0 siblings, 1 reply; 2+ messages in thread
From: Dmitri Paduchikh @ 2015-07-18 3:48 UTC (permalink / raw
To: 21083
[-- Attachment #1: Type: text/plain, Size: 19546 bytes --]
Hello,
I have prepared a simple example to reproduce the problem. In the
attachment is a small elisp file testfile.el. Save it and execute:
emacs -q -l testfile.el
In the started Emacs open some shell script and press TAB. Observe
infinite loop running inside advice--called-interactively-skip. I have
pressed TAB on an empty line, though probably any other will work as
well.
Debugger entered--Lisp error: (quit)
funcall((closure ((i . 11809182) (frame2) (frame1) (origi . 3) t) nil
(setq frame1 frame2) (setq frame2 (backtrace-frame i (function
called-interactively-p))) (setq i (1+ i))))
(progn (funcall get-next-frame) (not (and (eq (nth 1 frame2) (quote apply)) (eq (nth 3 frame2) inneradvice))))
(while (progn (funcall get-next-frame) (not (and (eq (nth 1 frame2) (quote apply)) (eq (nth 3 frame2) inneradvice)))))
(if (and (eq (nth 1 frame2) (quote apply)) (progn (funcall get-next-frame)
(advice--p (indirect-function (nth 1 frame2))))) (funcall get-next-frame)
(while (progn (funcall get-next-frame) (not (and (eq (nth 1 frame2) (quote
apply)) (eq (nth 3 frame2) inneradvice))))) (funcall get-next-frame)
(funcall get-next-frame))
(let ((inneradvice (nth 1 frame1))) (if (and (eq (nth 1 frame2) (quote
apply)) (progn (funcall get-next-frame) (advice--p (indirect-function (nth 1
frame2))))) (funcall get-next-frame) (while (progn (funcall get-next-frame)
(not (and (eq (nth 1 frame2) (quote apply)) (eq (nth 3 frame2)
inneradvice))))) (funcall get-next-frame) (funcall get-next-frame)))
(while (advice--p (nth 1 frame1)) (let ((inneradvice (nth 1 frame1))) (if
(and (eq (nth 1 frame2) (quote apply)) (progn (funcall get-next-frame)
(advice--p (indirect-function (nth 1 frame2))))) (funcall get-next-frame)
(while (progn (funcall get-next-frame) (not (and (eq ... ...) (eq ...
inneradvice))))) (funcall get-next-frame) (funcall get-next-frame))))
(progn (funcall get-next-frame) (while (advice--p (nth 1 frame1)) (let
((inneradvice (nth 1 frame1))) (if (and (eq (nth 1 frame2) (quote apply))
(progn (funcall get-next-frame) (advice--p (indirect-function ...))))
(funcall get-next-frame) (while (progn (funcall get-next-frame) (not (and
... ...)))) (funcall get-next-frame) (funcall get-next-frame)))) (- i origi
1))
(if (and (eq (nth 1 frame2) (quote apply)) (progn (funcall get-next-frame)
(advice--p (indirect-function (nth 1 frame2))))) (progn (funcall
get-next-frame) (while (advice--p (nth 1 frame1)) (let ((inneradvice (nth 1
frame1))) (if (and (eq (nth 1 frame2) (quote apply)) (progn (funcall
get-next-frame) (advice--p ...))) (funcall get-next-frame) (while (progn
(funcall get-next-frame) (not ...))) (funcall get-next-frame) (funcall
get-next-frame)))) (- i origi 1)))
(let* ((i origi) (get-next-frame (function (lambda nil (setq frame1
frame2) (setq frame2 (backtrace-frame i (function called-interactively-p)))
(setq i (1+ i)))))) (if (and (eq (nth 1 frame2) (quote apply)) (progn
(funcall get-next-frame) (advice--p (indirect-function (nth 1 frame2)))))
(progn (funcall get-next-frame) (while (advice--p (nth 1 frame1)) (let
((inneradvice (nth 1 frame1))) (if (and (eq ... ...) (progn ... ...))
(funcall get-next-frame) (while (progn ... ...)) (funcall get-next-frame)
(funcall get-next-frame)))) (- i origi 1))))
advice--called-interactively-skip(3 (t ad-Advice-backward-sexp #[256
"\211\204\a.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"] 1) (t
apply ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] 1))
run-hook-with-args-until-success(advice--called-interactively-skip 3 (t
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] 1) (t apply ad-Advice-backward-sexp #[256
"\211\204\a.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"] 1))
called-interactively-p(interactive)
ad-Advice-backward-sexp(#[256 "\211\204\a.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"] 1)
apply(ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"] 1)
#[128 "\300\301\302.#\207" [apply ad-Advice-backward-sexp #[256
"\211\204\a.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"] nil] 5
nil "^p"](1)
#[0 "\300\301!\210\302\207" [#[128 "\300\301\302.#\207" [apply
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] 1 nil] 2 "\n\n(fn)"]()
funcall(#[0 "\300\301!\210\302\207" [#[128 "\300\301\302.#\207" [apply
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] 1 nil] 2 "\n\n(fn)"])
#[0 "\304\242;\205..\306\304\242.\"AC\304\307\240\210`\300 \306.
\"A\211\204X.\310.G!\203$.\311\312\313\314\315\316\317\301!\320\"\321\322%D\323\312\313\324\325\316\317.\v!\326\"\327\330%\311EDC\217\210.`=\203$.\331\332\333`D\"\210\202$.\303.!\247\204t.\302.!\247\204l.\334\335\336C\"\210\211.B\262.\202$..\203\212.\303.!\302.@!W\203\212..A\262.\202t..\204\266.\304\242\203\242.\302.!\247\203\242.\211.B\262.\202$.\331\332\302.!\206\253.\333`.E.b\210\"\210\202$..\211\203\313.\303.!\302..@!U\203\313..A\262..\203\336.\302.!\247\203#...B\262.\202#.\302.!\247\204\361.\331\332\307`..E\"\210\202#.\337.!\204\377...B\262.\202#.\211\203
.\337.@!\203
.\331\332\302.!\206..\333`..E..b\210\"\210\202#.\211\262.\210.\266\203\2051.\304\307\240\210\202..\207"
[#[0 "\304 \305`[!\210n\203*.o\204*.\306`S!\307\232\203*.\310\311
8\204*.\312.\313\314!\210)\315\202\225.`.W\203K.\316 \203=.\314u\210
\202\225.\317 \203F.\315\202\225. \202\225.\320\n\304
\321#\203^.\322\224b\210\323\322!\202\225.\324
\211\325\232\203j.\326\202\223.\211\327\232\203t.\330\202\223.\211\203\222.\331\332.\"\203\222.\333.\v\"\203\222.\212\334.!)\204\222.\335\202\223.\211\262.\207"
[forward-sexp-function smie-backward-token-function
sh-smie--sh-operators-back-re smie-grammar line-beginning-position
forward-comment syntax-after (15) 3 syntax-ppss nil forward-sexp -1 ";"
sh-smie--looking-back-at-continuation-p sh-smie--newline-semi-p looking-back
greedy 1 match-string-no-properties sh-smie--default-backward-token ")"
"case-)" "(" "case-(" string-match "\\`[a-z]" assoc sh-smie--sh-keyword-p "
word "] 5 "\n\n(fn)"] #[128 "\300\301\302.#\207" [apply
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] #<subr car> #[257
"\211A@\207" [] 2 1636664] (halfsexp) smie-grammar assoc nil zerop err
funcall make-byte-code 0 "\300\301!\210\302\207" vconcat vector [1 nil] 2
"\n\n(fn)" scan-error 257
"\301.8`.X\203..\302.8\202..\211\300b\210\303\304\305.\306.\211`.\bW\203%.\307\202&.\310\\\"E\"\207"
[2 3 throw return t buffer-substring-no-properties -1 1] 12 "\n\n(fn ERR)"
throw return t signal cl-assertion-failed (numberp (funcall op-forw
toklevels)) smie--associative-p] 14 "\n\n(fn)"]()
funcall(#[0 "\304\242;\205..\306\304\242.\"AC\304\307\240\210`\300 \306.
\"A\211\204X.\310.G!\203$.\311\312\313\314\315\316\317\301!\320\"\321\322%D\323\312\313\324\325\316\317.\v!\326\"\327\330%\311EDC\217\210.`=\203$.\331\332\333`D\"\210\202$.\303.!\247\204t.\302.!\247\204l.\334\335\336C\"\210\211.B\262.\202$..\203\212.\303.!\302.@!W\203\212..A\262.\202t..\204\266.\304\242\203\242.\302.!\247\203\242.\211.B\262.\202$.\331\332\302.!\206\253.\333`.E.b\210\"\210\202$..\211\203\313.\303.!\302..@!U\203\313..A\262..\203\336.\302.!\247\203#...B\262.\202#.\302.!\247\204\361.\331\332\307`..E\"\210\202#.\337.!\204\377...B\262.\202#.\211\203
.\337.@!\203
.\331\332\302.!\206..\333`..E..b\210\"\210\202#.\211\262.\210.\266\203\2051.\304\307\240\210\202..\207"
[#[0 "\304 \305`[!\210n\203*.o\204*.\306`S!\307\232\203*.\310\311
8\204*.\312.\313\314!\210)\315\202\225.`.W\203K.\316 \203=.\314u\210
\202\225.\317 \203F.\315\202\225. \202\225.\320\n\304
\321#\203^.\322\224b\210\323\322!\202\225.\324
\211\325\232\203j.\326\202\223.\211\327\232\203t.\330\202\223.\211\203\222.\331\332.\"\203\222.\333.\v\"\203\222.\212\334.!)\204\222.\335\202\223.\211\262.\207"
[forward-sexp-function smie-backward-token-function
sh-smie--sh-operators-back-re smie-grammar line-beginning-position
forward-comment syntax-after (15) 3 syntax-ppss nil forward-sexp -1 ";"
sh-smie--looking-back-at-continuation-p sh-smie--newline-semi-p looking-back
greedy 1 match-string-no-properties sh-smie--default-backward-token ")"
"case-)" "(" "case-(" string-match "\\`[a-z]" assoc sh-smie--sh-keyword-p "
word "] 5 "\n\n(fn)"] #[128 "\300\301\302.#\207" [apply
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] #<subr car> #[257
"\211A@\207" [] 2 1636664] (halfsexp) smie-grammar assoc nil zerop err
funcall make-byte-code 0 "\300\301!\210\302\207" vconcat vector [1 nil] 2
"\n\n(fn)" scan-error 257
"\301.8`.X\203..\302.8\202..\211\300b\210\303\304\305.\306.\211`.\bW\203%.\307\202&.\310\\\"E\"\207"
[2 3 throw return t buffer-substring-no-properties -1 1] 12 "\n\n(fn ERR)"
throw return t signal cl-assertion-failed (numberp (funcall op-forw
toklevels)) smie--associative-p] 14 "\n\n(fn)"])
smie-next-sexp(#[0 "\304
\305`[!\210n\203*.o\204*.\306`S!\307\232\203*.\310\311
8\204*.\312.\313\314!\210)\315\202\225.`.W\203K.\316 \203=.\314u\210
\202\225.\317 \203F.\315\202\225. \202\225.\320\n\304
\321#\203^.\322\224b\210\323\322!\202\225.\324
\211\325\232\203j.\326\202\223.\211\327\232\203t.\330\202\223.\211\203\222.\331\332.\"\203\222.\333.\v\"\203\222.\212\334.!)\204\222.\335\202\223.\211\262.\207"
[forward-sexp-function smie-backward-token-function
sh-smie--sh-operators-back-re smie-grammar line-beginning-position
forward-comment syntax-after (15) 3 syntax-ppss nil forward-sexp -1 ";"
sh-smie--looking-back-at-continuation-p sh-smie--newline-semi-p looking-back
greedy 1 match-string-no-properties sh-smie--default-backward-token ")"
"case-)" "(" "case-(" string-match "\\`[a-z]" assoc sh-smie--sh-keyword-p "
word "] 5 "\n\n(fn)"] #[128 "\300\301\302.#\207" [apply
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] #<subr car> #[257
"\211A@\207" [] 2 1636664] halfsexp)
smie-backward-sexp(halfsexp)
smie-forward-sexp-command(-1)
#[256
"\211\204\a.\301\262.\b\203..\b.!\207\302`.\"\206..\303.!b\210\211\304W\205#.\305
\207" [forward-sexp-function 1 scan-sexps buffer-end 0
backward-prefix-chars] 4 2389495 "^p"](-1)
ad-Advice-forward-sexp(#[256
"\211\204\a.\301\262.\b\203..\b.!\207\302`.\"\206..\303.!b\210\211\304W\205#.\305
\207" [forward-sexp-function 1 scan-sexps buffer-end 0
backward-prefix-chars] 4 2389495 "^p"] -1)
apply(ad-Advice-forward-sexp #[256
"\211\204\a.\301\262.\b\203..\b.!\207\302`.\"\206..\303.!b\210\211\304W\205#.\305
\207" [forward-sexp-function 1 scan-sexps buffer-end 0
backward-prefix-chars] 4 2389495 "^p"] -1)
forward-sexp(-1)
#[256 "\211\204\a.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"](1)
ad-Advice-backward-sexp(#[256 "\211\204\a.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"] 1)
apply(ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"] 1)
#[128 "\300\301\302.#\207" [apply ad-Advice-backward-sexp #[256
"\211\204\a.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"] nil] 5
nil "^p"](1)
#[0 "\300\301!\210\302\207" [#[128 "\300\301\302.#\207" [apply
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] 1 nil] 2 "\n\n(fn)"]()
funcall(#[0 "\300\301!\210\302\207" [#[128 "\300\301\302.#\207" [apply
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] 1 nil] 2 "\n\n(fn)"])
#[0 "\304\242;\205..\306\304\242.\"AC\304\307\240\210`\300 \306.
\"A\211\204X.\310.G!\203$.\311\312\313\314\315\316\317\301!\320\"\321\322%D\323\312\313\324\325\316\317.\v!\326\"\327\330%\311EDC\217\210.`=\203$.\331\332\333`D\"\210\202$.\303.!\247\204t.\302.!\247\204l.\334\335\336C\"\210\211.B\262.\202$..\203\212.\303.!\302.@!W\203\212..A\262.\202t..\204\266.\304\242\203\242.\302.!\247\203\242.\211.B\262.\202$.\331\332\302.!\206\253.\333`.E.b\210\"\210\202$..\211\203\313.\303.!\302..@!U\203\313..A\262..\203\336.\302.!\247\203#...B\262.\202#.\302.!\247\204\361.\331\332\307`..E\"\210\202#.\337.!\204\377...B\262.\202#.\211\203
.\337.@!\203
.\331\332\302.!\206..\333`..E..b\210\"\210\202#.\211\262.\210.\266\203\2051.\304\307\240\210\202..\207"
[#[0 "\304 \305`[!\210n\203*.o\204*.\306`S!\307\232\203*.\310\311
8\204*.\312.\313\314!\210)\315\202\225.`.W\203K.\316 \203=.\314u\210
\202\225.\317 \203F.\315\202\225. \202\225.\320\n\304
\321#\203^.\322\224b\210\323\322!\202\225.\324
\211\325\232\203j.\326\202\223.\211\327\232\203t.\330\202\223.\211\203\222.\331\332.\"\203\222.\333.\v\"\203\222.\212\334.!)\204\222.\335\202\223.\211\262.\207"
[forward-sexp-function smie-backward-token-function
sh-smie--sh-operators-back-re smie-grammar line-beginning-position
forward-comment syntax-after (15) 3 syntax-ppss nil forward-sexp -1 ";"
sh-smie--looking-back-at-continuation-p sh-smie--newline-semi-p looking-back
greedy 1 match-string-no-properties sh-smie--default-backward-token ")"
"case-)" "(" "case-(" string-match "\\`[a-z]" assoc sh-smie--sh-keyword-p "
word "] 5 "\n\n(fn)"] #[128 "\300\301\302.#\207" [apply
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] #<subr car> #[257
"\211A@\207" [] 2 1636664] (nil) smie-grammar assoc nil zerop err funcall
make-byte-code 0 "\300\301!\210\302\207" vconcat vector [1 nil] 2 "\n\n(fn)"
scan-error 257
"\301.8`.X\203..\302.8\202..\211\300b\210\303\304\305.\306.\211`.\bW\203%.\307\202&.\310\\\"E\"\207"
[2 3 throw return t buffer-substring-no-properties -1 1] 12 "\n\n(fn ERR)"
throw return t signal cl-assertion-failed (numberp (funcall op-forw
toklevels)) smie--associative-p] 14 "\n\n(fn)"]()
funcall(#[0 "\304\242;\205..\306\304\242.\"AC\304\307\240\210`\300 \306.
\"A\211\204X.\310.G!\203$.\311\312\313\314\315\316\317\301!\320\"\321\322%D\323\312\313\324\325\316\317.\v!\326\"\327\330%\311EDC\217\210.`=\203$.\331\332\333`D\"\210\202$.\303.!\247\204t.\302.!\247\204l.\334\335\336C\"\210\211.B\262.\202$..\203\212.\303.!\302.@!W\203\212..A\262.\202t..\204\266.\304\242\203\242.\302.!\247\203\242.\211.B\262.\202$.\331\332\302.!\206\253.\333`.E.b\210\"\210\202$..\211\203\313.\303.!\302..@!U\203\313..A\262..\203\336.\302.!\247\203#...B\262.\202#.\302.!\247\204\361.\331\332\307`..E\"\210\202#.\337.!\204\377...B\262.\202#.\211\203
.\337.@!\203
.\331\332\302.!\206..\333`..E..b\210\"\210\202#.\211\262.\210.\266\203\2051.\304\307\240\210\202..\207"
[#[0 "\304 \305`[!\210n\203*.o\204*.\306`S!\307\232\203*.\310\311
8\204*.\312.\313\314!\210)\315\202\225.`.W\203K.\316 \203=.\314u\210
\202\225.\317 \203F.\315\202\225. \202\225.\320\n\304
\321#\203^.\322\224b\210\323\322!\202\225.\324
\211\325\232\203j.\326\202\223.\211\327\232\203t.\330\202\223.\211\203\222.\331\332.\"\203\222.\333.\v\"\203\222.\212\334.!)\204\222.\335\202\223.\211\262.\207"
[forward-sexp-function smie-backward-token-function
sh-smie--sh-operators-back-re smie-grammar line-beginning-position
forward-comment syntax-after (15) 3 syntax-ppss nil forward-sexp -1 ";"
sh-smie--looking-back-at-continuation-p sh-smie--newline-semi-p looking-back
greedy 1 match-string-no-properties sh-smie--default-backward-token ")"
"case-)" "(" "case-(" string-match "\\`[a-z]" assoc sh-smie--sh-keyword-p "
word "] 5 "\n\n(fn)"] #[128 "\300\301\302.#\207" [apply
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] #<subr car> #[257
"\211A@\207" [] 2 1636664] (nil) smie-grammar assoc nil zerop err funcall
make-byte-code 0 "\300\301!\210\302\207" vconcat vector [1 nil] 2 "\n\n(fn)"
scan-error 257
"\301.8`.X\203..\302.8\202..\211\300b\210\303\304\305.\306.\211`.\bW\203%.\307\202&.\310\\\"E\"\207"
[2 3 throw return t buffer-substring-no-properties -1 1] 12 "\n\n(fn ERR)"
throw return t signal cl-assertion-failed (numberp (funcall op-forw
toklevels)) smie--associative-p] 14 "\n\n(fn)"])
smie-next-sexp(#[0 "\304
\305`[!\210n\203*.o\204*.\306`S!\307\232\203*.\310\311
8\204*.\312.\313\314!\210)\315\202\225.`.W\203K.\316 \203=.\314u\210
\202\225.\317 \203F.\315\202\225. \202\225.\320\n\304
\321#\203^.\322\224b\210\323\322!\202\225.\324
\211\325\232\203j.\326\202\223.\211\327\232\203t.\330\202\223.\211\203\222.\331\332.\"\203\222.\333.\v\"\203\222.\212\334.!)\204\222.\335\202\223.\211\262.\207"
[forward-sexp-function smie-backward-token-function
sh-smie--sh-operators-back-re smie-grammar line-beginning-position
forward-comment syntax-after (15) 3 syntax-ppss nil forward-sexp -1 ";"
sh-smie--looking-back-at-continuation-p sh-smie--newline-semi-p looking-back
greedy 1 match-string-no-properties sh-smie--default-backward-token ")"
"case-)" "(" "case-(" string-match "\\`[a-z]" assoc sh-smie--sh-keyword-p "
word "] 5 "\n\n(fn)"] #[128 "\300\301\302.#\207" [apply
ad-Advice-backward-sexp #[256 "\211\204\a.\300\262.\301.[!\207" [1
forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] #<subr car> #[257
"\211A@\207" [] 2 1636664] ";")
smie-backward-sexp(";")
smie-indent-keyword()
run-hook-with-args-until-success(smie-indent-keyword)
smie-indent-calculate()
smie-indent-virtual()
smie-indent-after-keyword()
run-hook-with-args-until-success(smie-indent-after-keyword)
smie-indent-calculate()
#[0 "\212\301y\210\302\303w\210`\300\242Y\203..\300\303\240\210\304
\206..\301)\207" [(941) 0 " " nil smie-indent-calculate] 2 "\n\n(fn)"]()
funcall(#[0
"\212\301y\210\302\303w\210`\300\242Y\203..\300\303\240\210\304
\206..\301)\207" [(941) 0 " " nil smie-indent-calculate] 2 "\n\n(fn)"])
smie-indent-line()
#[256 "\304 \203\f.\305\306 \307 \"\207\b\310=\204#. \204'.i\311
V\204#.\n\v=\203'.\312.!\207\313 `\311 \b \210 \314=\203G..`=\203G..\313
=\203G.\315 \202r..\205r.\212\316y\210\317 \210\320 )\311
.Z\212\321y\210\322.!?\205o.`.W\205o.\323`..#)\266\202\207"
[indent-line-function tab-always-indent this-command last-command
use-region-p indent-region region-beginning region-end indent-to-left-margin
current-indentation insert-tab buffer-chars-modified-tick complete
completion-at-point 0 forward-sexp point-marker 1 zerop indent-rigidly] 10
2133678 "P"](nil)
ad-Advice-indent-for-tab-command(#[256 "\304 \203\f.\305\306 \307
\"\207\b\310=\204#. \204'.i\311 V\204#.\n\v=\203'.\312.!\207\313 `\311 \b
\210 \314=\203G..`=\203G..\313 =\203G.\315 \202r..\205r.\212\316y\210\317
\210\320 )\311 .Z\212\321y\210\322.!?\205o.`.W\205o.\323`..#)\266\202\207"
[indent-line-function tab-always-indent this-command last-command
use-region-p indent-region region-beginning region-end indent-to-left-margin
current-indentation insert-tab buffer-chars-modified-tick complete
completion-at-point 0 forward-sexp point-marker 1 zerop indent-rigidly] 10
2133678 "P"] nil)
apply(ad-Advice-indent-for-tab-command #[256 "\304 \203\f.\305\306 \307
\"\207\b\310=\204#. \204'.i\311 V\204#.\n\v=\203'.\312.!\207\313 `\311 \b
\210 \314=\203G..`=\203G..\313 =\203G.\315 \202r..\205r.\212\316y\210\317
\210\320 )\311 .Z\212\321y\210\322.!?\205o.`.W\205o.\323`..#)\266\202\207"
[indent-line-function tab-always-indent this-command last-command
use-region-p indent-region region-beginning region-end indent-to-left-margin
current-indentation insert-tab buffer-chars-modified-tick complete
completion-at-point 0 forward-sexp point-marker 1 zerop indent-rigidly] 10
2133678 "P"] nil)
indent-for-tab-command(nil)
call-interactively(indent-for-tab-command nil nil)
command-execute(indent-for-tab-command)
[-- Attachment #2: testfile.el --]
[-- Type: application/emacs-lisp, Size: 274 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* bug#21083: 24.5; Infinite loop in called-interactively-p
2015-07-18 3:48 bug#21083: 24.5; Infinite loop in called-interactively-p Dmitri Paduchikh
@ 2015-07-21 23:10 ` Stefan Monnier
0 siblings, 0 replies; 2+ messages in thread
From: Stefan Monnier @ 2015-07-21 23:10 UTC (permalink / raw
To: Dmitri Paduchikh; +Cc: 21083-done
> I have prepared a simple example to reproduce the problem. In the
> attachment is a small elisp file testfile.el. Save it and execute:
Thanks, that made it easy.
I installed the patch below which should fix the inf-loop.
Stefan
diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
index a6db5e9..5a59a98 100644
--- a/lisp/emacs-lisp/nadvice.el
+++ b/lisp/emacs-lisp/nadvice.el
@@ -522,8 +522,9 @@ of the piece of advice."
(while
(progn
(funcall get-next-frame)
- (not (and (eq (nth 1 frame2) 'apply)
- (eq (nth 3 frame2) inneradvice)))))
+ (and frame2
+ (not (and (eq (nth 1 frame2) 'apply)
+ (eq (nth 3 frame2) inneradvice))))))
(funcall get-next-frame)
(funcall get-next-frame))))
(- i origi 1))))
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-07-21 23:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-18 3:48 bug#21083: 24.5; Infinite loop in called-interactively-p Dmitri Paduchikh
2015-07-21 23:10 ` Stefan Monnier
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.