From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitri Paduchikh Newsgroups: gmane.emacs.devel Subject: Re: Brittleness of called-interactively-p Date: Fri, 17 Jul 2015 09:52:02 +0500 Message-ID: <87oajbs7wt.fsf@gmail.com> References: <871tgeufzt.fsf@gmail.com> <87r3odtngi.fsf@gmail.com> <87380st7c1.fsf@gmail.com> <56ffd903-483b-49cf-acf1-f17c1231537e@default> <21927.61661.861463.374658@retriever.mtv.corp.google.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1437108752 7962 80.91.229.3 (17 Jul 2015 04:52:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 17 Jul 2015 04:52:32 +0000 (UTC) Cc: emacs-devel@gnu.org, monnier@IRO.UMontreal.CA, drew.adams@oracle.com, "T.V Raman" To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jul 17 06:52:31 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZFxdO-0003q0-Ls for ged-emacs-devel@m.gmane.org; Fri, 17 Jul 2015 06:52:31 +0200 Original-Received: from localhost ([::1]:42769 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFxdN-000608-Pm for ged-emacs-devel@m.gmane.org; Fri, 17 Jul 2015 00:52:29 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41874) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFxd6-0005zw-E3 for emacs-devel@gnu.org; Fri, 17 Jul 2015 00:52:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZFxd3-0007MS-UB for emacs-devel@gnu.org; Fri, 17 Jul 2015 00:52:12 -0400 Original-Received: from mail-la0-x230.google.com ([2a00:1450:4010:c03::230]:36694) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFxcz-0007L7-K1; Fri, 17 Jul 2015 00:52:06 -0400 Original-Received: by lagw2 with SMTP id w2so54835358lag.3; Thu, 16 Jul 2015 21:52:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=8ruAZ9+zUZtb7H5IMLQEuYYUgsnsRDPTQ9KP8JmjFRI=; b=Nd/tAedZW5qPvdMe7rnKMFndalHQ+9Q56GgWWIB8tuCIXuYkxBJ2fRM4yio+do/DTi ZX0Bo3j1a4H0JQ82iYKkvd/WZStl+ea+ysz8h4BBDiNOCtVf8ZmRapNaAmz+v6tZtT7T KtsNPVWnZhlYeWu3FC+73Ps+hBdhUUUfU1nq6a1OA/Pc516xPS4YH/8F+mRElhxakzy1 VQlhWQPdH5B0n1/ySQjpvG3GpVxA1kywNYKSNuaE4rzn7YLe/zLsXYNot09cLTo+zebx yEt+dQXj59HrOXayTqrc02DoZYVx/mdfni4s5eXZHB68O7zQm0Gg/uFDNzMHAzyLeQ27 tzzg== X-Received: by 10.112.123.179 with SMTP id mb19mr12899214lbb.55.1437108723680; Thu, 16 Jul 2015 21:52:03 -0700 (PDT) Original-Received: from gmail.com ([46.48.49.226]) by smtp.gmail.com with ESMTPSA id c2sm2506196laa.43.2015.07.16.21.52.02 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Jul 2015 21:52:02 -0700 (PDT) In-Reply-To: (Richard Stallman's message of "Thu, 16 Jul 2015 21:55:27 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c03::230 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:187917 Archived-At: Richard Stallman writes: RS> Can you try using called-interactively-p and provide a bug report RS> showing concretely how it fails? The following is probably similar to what T. V. Raman describes. Debugger entered--Lisp error: (quit) funcall((closure ((i . 11809182) (frame2) (frame1) (origi . 3) t) nil (se= tq frame1 frame2) (setq frame2 (backtrace-frame i (function called-interact= ively-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) (quot= e 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) (func= all get-next-frame)) (let ((inneradvice (nth 1 frame1))) (if (and (eq (nth 1 frame2) (quote ap= ply)) (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) (ad= vice--p (indirect-function (nth 1 frame2))))) (funcall get-next-frame) (whi= le (progn (funcall get-next-frame) (not (and (eq ... ...) (eq ... inneradvi= ce))))) (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)) (pr= ogn (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-fram= e) (advice--p ...))) (funcall get-next-frame) (while (progn (funcall get-ne= xt-frame) (not ...))) (funcall get-next-frame) (funcall get-next-frame)))) = (- i origi 1))) (let* ((i origi) (get-next-frame (function (lambda nil (setq frame1 frame= 2) (setq frame2 (backtrace-frame i (function called-interactively-p))) (set= q i (1+ i)))))) (if (and (eq (nth 1 frame2) (quote apply)) (progn (funcall = get-next-frame) (advice--p (indirect-function (nth 1 frame2))))) (progn (fu= ncall get-next-frame) (while (advice--p (nth 1 frame1)) (let ((inneradvice = (nth 1 frame1))) (if (and (eq ... ...) (progn ... ...)) (funcall get-next-f= rame) (while (progn ... ...)) (funcall get-next-frame) (funcall get-next-fr= ame)))) (- i origi 1)))) advice--called-interactively-skip(3 (t ad-Advice-backward-sexp #[256 "\21= 1\204=07.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"] 1) (t apply= ad-Advice-backward-sexp #[256 "\211\204=07.\300\262.\301.[!\207" [1 forwar= d-sexp] 3 2389807 "^p"] 1)) run-hook-with-args-until-success(advice--called-interactively-skip 3 (t a= d-Advice-backward-sexp #[256 "\211\204=07.\300\262.\301.[!\207" [1 forward-= sexp] 3 2389807 "^p"] 1) (t apply ad-Advice-backward-sexp #[256 "\211\204= =07.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"] 1)) called-interactively-p(interactive) ad-Advice-backward-sexp(#[256 "\211\204=07.\300\262.\301.[!\207" [1 forwa= rd-sexp] 3 2389807 "^p"] 1) apply(ad-Advice-backward-sexp #[256 "\211\204=07.\300\262.\301.[!\207" [1= forward-sexp] 3 2389807 "^p"] 1) #[128 "\300\301\302.#\207" [apply ad-Advice-backward-sexp #[256 "\211\204= =07.\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=07.\300\262.\301.[!\207" [1 forward-sexp] 3 2= 389807 "^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=07.\300\262.\301.[!\207" [1 forward-s= exp] 3 2389807 "^p"] nil] 5 nil "^p"] 1 nil] 2 "\n\n(fn)"]) #[0 "\304\242;\205.=00\306\304\242.\"AC\304\307\240\210`\300 \306.=0D\"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.=0B!\326\"\327\330%\311EDC\217\210.`=3D\203$.\331\= 332\333`D\"\210\202$.\303.!\247\204t.\302.!\247\204l.\334\335\336C\"\210\21= 1.B\262.\202$.=03\203\212.\303.!\302.@!W\203\212.=03A\262.\202t.=03\204\266= .\304\242\203\242.\302.!\247\203\242.\211.B\262.\202$.\331\332\302.!\206\25= 3.\333`.E.b\210\"\210\202$.=03\211\203\313.\303.!\302.=06@!U\203\313.=04A\2= 62.=04\203\336.\302.!\247\203#.=01.B\262.\202#.\302.!\247\204\361.\331\332\= 307`.=06E\"\210\202#.\337.!\204\377.=01.B\262.\202#.\211\203 .\337.@!\203 .= \331\332\302.!\206.=01\333`.=06E.=06b\210\"\210\202#.\211\262.\210.\266\203= \2051.\304\307\240\210\202.=00\207" [#[0 "\304 \305`[!\210n\203*.o\204*.\30= 6`S!\307\232\203*.\310\311 8\204*.\312.\313\314!\210)\315\202\225.`.W\203K.= \316 \203=3D.\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\2= 02\223.\211\327\232\203t.\330\202\223.\211\203\222.\331\332.\"\203\222.\333= .=0B\"\203\222.\212\334.!)\204\222.\335\202\223.\211\262.\207" [forward-sex= p-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-smi= e--newline-semi-p looking-back greedy 1 match-string-no-properties sh-smie-= -default-backward-token ")" "case-)" "(" "case-(" string-match "\\`[a-z]" a= ssoc sh-smie--sh-keyword-p " word "] 5 "\n\n(fn)"] #[128 "\300\301\302.#\20= 7" [apply ad-Advice-backward-sexp #[256 "\211\204=07.\300\262.\301.[!\207" = [1 forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] # #[257 "\211A@= \207" [] 2 1636664] (halfsexp) smie-grammar assoc nil zerop err funcall mak= e-byte-code 0 "\300\301!\210\302\207" vconcat vector [1 nil] 2 "\n\n(fn)" s= can-error 257 "\301.8`.X\203.=00\302.8\202.=00\211\300b\210\303\304\305.\30= 6.\211`.W\203%.\307\202&.\310\\\"E\"\207" [2 3 throw return t buffer-subst= ring-no-properties -1 1] 12 "\n\n(fn ERR)" throw return t signal cl-asserti= on-failed (numberp (funcall op-forw toklevels)) smie--associative-p] 14 "\n= \n(fn)"]() funcall(#[0 "\304\242;\205.=00\306\304\242.\"AC\304\307\240\210`\300 \306= .=0D\"A\211\204X.\310.G!\203$.\311\312\313\314\315\316\317\301!\320\"\321\3= 22%D\323\312\313\324\325\316\317.=0B!\326\"\327\330%\311EDC\217\210.`=3D\20= 3$.\331\332\333`D\"\210\202$.\303.!\247\204t.\302.!\247\204l.\334\335\336C\= "\210\211.B\262.\202$.=03\203\212.\303.!\302.@!W\203\212.=03A\262.\202t.=03= \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$.=03\211\203\313.\303.!\302.=06@!U\203\31= 3.=04A\262.=04\203\336.\302.!\247\203#.=01.B\262.\202#.\302.!\247\204\361.\= 331\332\307`.=06E\"\210\202#.\337.!\204\377.=01.B\262.\202#.\211\203 .\337.= @!\203 .\331\332\302.!\206.=01\333`.=06E.=06b\210\"\210\202#.\211\262.\210.= \266\203\2051.\304\307\240\210\202.=00\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=3D.\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\203= j.\326\202\223.\211\327\232\203t.\330\202\223.\211\203\222.\331\332.\"\203\= 222.\333.=0B\"\203\222.\212\334.!)\204\222.\335\202\223.\211\262.\207" [for= ward-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=07.\300\262.\301.= [!\207" [1 forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] # #[257= "\211A@\207" [] 2 1636664] (halfsexp) smie-grammar assoc nil zerop err fun= call make-byte-code 0 "\300\301!\210\302\207" vconcat vector [1 nil] 2 "\n\= n(fn)" scan-error 257 "\301.8`.X\203.=00\302.8\202.=00\211\300b\210\303\304= \305.\306.\211`.W\203%.\307\202&.\310\\\"E\"\207" [2 3 throw return t buff= er-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*.\3= 10\311 8\204*.\312.\313\314!\210)\315\202\225.`.W\203K.\316 \203=3D.\314u\2= 10 \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.=0B\"\203\222.\212\= 334.!)\204\222.\335\202\223.\211\262.\207" [forward-sexp-function smie-back= ward-token-function sh-smie--sh-operators-back-re smie-grammar line-beginni= ng-position forward-comment syntax-after (15) 3 syntax-ppss nil forward-sex= p -1 ";" sh-smie--looking-back-at-continuation-p sh-smie--newline-semi-p lo= oking-back greedy 1 match-string-no-properties sh-smie--default-backward-to= ken ")" "case-)" "(" "case-(" string-match "\\`[a-z]" assoc sh-smie--sh-key= word-p " word "] 5 "\n\n(fn)"] #[128 "\300\301\302.#\207" [apply ad-Advice-= backward-sexp #[256 "\211\204=07.\300\262.\301.[!\207" [1 forward-sexp] 3 2= 389807 "^p"] nil] 5 nil "^p"] # #[257 "\211A@\207" [] 2 1636664] = halfsexp) smie-backward-sexp(halfsexp) smie-forward-sexp-command(-1) #[256 "\211\204=07.\301\262.\203.=00.!\207\302`.\"\206.=00\303.!b\210\2= 11\304W\205#.\305 \207" [forward-sexp-function 1 scan-sexps buffer-end 0 ba= ckward-prefix-chars] 4 2389495 "^p"](-1) ad-Advice-forward-sexp(#[256 "\211\204=07.\301\262.\203.=00.!\207\302`.= \"\206.=00\303.!b\210\211\304W\205#.\305 \207" [forward-sexp-function 1 sca= n-sexps buffer-end 0 backward-prefix-chars] 4 2389495 "^p"] -1) apply(ad-Advice-forward-sexp #[256 "\211\204=07.\301\262.\203.=00.!\207= \302`.\"\206.=00\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=07.\300\262.\301.[!\207" [1 forward-sexp] 3 2389807 "^p"]= (1) ad-Advice-backward-sexp(#[256 "\211\204=07.\300\262.\301.[!\207" [1 forwa= rd-sexp] 3 2389807 "^p"] 1) apply(ad-Advice-backward-sexp #[256 "\211\204=07.\300\262.\301.[!\207" [1= forward-sexp] 3 2389807 "^p"] 1) #[128 "\300\301\302.#\207" [apply ad-Advice-backward-sexp #[256 "\211\204= =07.\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=07.\300\262.\301.[!\207" [1 forward-sexp] 3 2= 389807 "^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=07.\300\262.\301.[!\207" [1 forward-s= exp] 3 2389807 "^p"] nil] 5 nil "^p"] 1 nil] 2 "\n\n(fn)"]) #[0 "\304\242;\205.=00\306\304\242.\"AC\304\307\240\210`\300 \306.=0D\"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.=0B!\326\"\327\330%\311EDC\217\210.`=3D\203$.\331\= 332\333`D\"\210\202$.\303.!\247\204t.\302.!\247\204l.\334\335\336C\"\210\21= 1.B\262.\202$.=03\203\212.\303.!\302.@!W\203\212.=03A\262.\202t.=03\204\266= .\304\242\203\242.\302.!\247\203\242.\211.B\262.\202$.\331\332\302.!\206\25= 3.\333`.E.b\210\"\210\202$.=03\211\203\313.\303.!\302.=06@!U\203\313.=04A\2= 62.=04\203\336.\302.!\247\203#.=01.B\262.\202#.\302.!\247\204\361.\331\332\= 307`.=06E\"\210\202#.\337.!\204\377.=01.B\262.\202#.\211\203 .\337.@!\203 .= \331\332\302.!\206.=01\333`.=06E.=06b\210\"\210\202#.\211\262.\210.\266\203= \2051.\304\307\240\210\202.=00\207" [#[0 "\304 \305`[!\210n\203*.o\204*.\30= 6`S!\307\232\203*.\310\311 8\204*.\312.\313\314!\210)\315\202\225.`.W\203K.= \316 \203=3D.\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\2= 02\223.\211\327\232\203t.\330\202\223.\211\203\222.\331\332.\"\203\222.\333= .=0B\"\203\222.\212\334.!)\204\222.\335\202\223.\211\262.\207" [forward-sex= p-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-smi= e--newline-semi-p looking-back greedy 1 match-string-no-properties sh-smie-= -default-backward-token ")" "case-)" "(" "case-(" string-match "\\`[a-z]" a= ssoc sh-smie--sh-keyword-p " word "] 5 "\n\n(fn)"] #[128 "\300\301\302.#\20= 7" [apply ad-Advice-backward-sexp #[256 "\211\204=07.\300\262.\301.[!\207" = [1 forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] # #[257 "\211A@= \207" [] 2 1636664] (nil) smie-grammar assoc nil zerop err funcall make-byt= e-code 0 "\300\301!\210\302\207" vconcat vector [1 nil] 2 "\n\n(fn)" scan-e= rror 257 "\301.8`.X\203.=00\302.8\202.=00\211\300b\210\303\304\305.\306.\21= 1`.W\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-fa= iled (numberp (funcall op-forw toklevels)) smie--associative-p] 14 "\n\n(fn= )"]() funcall(#[0 "\304\242;\205.=00\306\304\242.\"AC\304\307\240\210`\300 \306= .=0D\"A\211\204X.\310.G!\203$.\311\312\313\314\315\316\317\301!\320\"\321\3= 22%D\323\312\313\324\325\316\317.=0B!\326\"\327\330%\311EDC\217\210.`=3D\20= 3$.\331\332\333`D\"\210\202$.\303.!\247\204t.\302.!\247\204l.\334\335\336C\= "\210\211.B\262.\202$.=03\203\212.\303.!\302.@!W\203\212.=03A\262.\202t.=03= \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$.=03\211\203\313.\303.!\302.=06@!U\203\31= 3.=04A\262.=04\203\336.\302.!\247\203#.=01.B\262.\202#.\302.!\247\204\361.\= 331\332\307`.=06E\"\210\202#.\337.!\204\377.=01.B\262.\202#.\211\203 .\337.= @!\203 .\331\332\302.!\206.=01\333`.=06E.=06b\210\"\210\202#.\211\262.\210.= \266\203\2051.\304\307\240\210\202.=00\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=3D.\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\203= j.\326\202\223.\211\327\232\203t.\330\202\223.\211\203\222.\331\332.\"\203\= 222.\333.=0B\"\203\222.\212\334.!)\204\222.\335\202\223.\211\262.\207" [for= ward-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=07.\300\262.\301.= [!\207" [1 forward-sexp] 3 2389807 "^p"] nil] 5 nil "^p"] # #[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.=00\302.8\202.=00\211\300b\210\303\304\305.= \306.\211`.W\203%.\307\202&.\310\\\"E\"\207" [2 3 throw return t buffer-su= bstring-no-properties -1 1] 12 "\n\n(fn ERR)" throw return t signal cl-asse= rtion-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*.\3= 10\311 8\204*.\312.\313\314!\210)\315\202\225.`.W\203K.\316 \203=3D.\314u\2= 10 \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.=0B\"\203\222.\212\= 334.!)\204\222.\335\202\223.\211\262.\207" [forward-sexp-function smie-back= ward-token-function sh-smie--sh-operators-back-re smie-grammar line-beginni= ng-position forward-comment syntax-after (15) 3 syntax-ppss nil forward-sex= p -1 ";" sh-smie--looking-back-at-continuation-p sh-smie--newline-semi-p lo= oking-back greedy 1 match-string-no-properties sh-smie--default-backward-to= ken ")" "case-)" "(" "case-(" string-match "\\`[a-z]" assoc sh-smie--sh-key= word-p " word "] 5 "\n\n(fn)"] #[128 "\300\301\302.#\207" [apply ad-Advice-= backward-sexp #[256 "\211\204=07.\300\262.\301.[!\207" [1 forward-sexp] 3 2= 389807 "^p"] nil] 5 nil "^p"] # #[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.=00\300\303\240\210\304 \20= 6.=00\301)\207" [(941) 0 " " nil smie-indent-calculate] 2 "\n\n(fn)"]() funcall(#[0 "\212\301y\210\302\303w\210`\300\242Y\203.=00\300\303\240\210= \304 \206.=00\301)\207" [(941) 0 " " nil smie-indent-calculate] 2 "\n\n(fn= )"]) smie-indent-line() #[256 "\304 \203\f.\305\306 \307 \"\207\310=3D\204#. \204'.i\311 V\204#.= \n=0B=3D\203'.\312.!\207\313 `\311  \210 \314=3D\203G.=01`=3D\203G.=02\313= =3D\203G.\315 \202r.=03\205r.\212\316y\210\317 \210\320 )\311 .Z\212\321y\= 210\322.!?\205o.`.W\205o.\323`.=03#)\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 b= uffer-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= \310=3D\204#. \204'.i\311 V\204#.\n=0B=3D\203'.\312.!\207\313 `\311  \210 = \314=3D\203G.=01`=3D\203G.=02\313 =3D\203G.\315 \202r.=03\205r.\212\316y\21= 0\317 \210\320 )\311 .Z\212\321y\210\322.!?\205o.`.W\205o.\323`.=03#)\266\2= 02\207" [indent-line-function tab-always-indent this-command last-command u= se-region-p indent-region region-beginning region-end indent-to-left-margin= current-indentation insert-tab buffer-chars-modified-tick complete complet= ion-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\310=3D\204#. \204'.i\311 V\204#.\n=0B=3D\203'.\312.!\207\313 `\311 = \210 \314=3D\203G.=01`=3D\203G.=02\313 =3D\203G.\315 \202r.=03\205r.\212\3= 16y\210\317 \210\320 )\311 .Z\212\321y\210\322.!?\205o.`.W\205o.\323`.=03#)= \266\202\207" [indent-line-function tab-always-indent this-command last-com= mand use-region-p indent-region region-beginning region-end indent-to-left-= margin current-indentation insert-tab buffer-chars-modified-tick complete c= ompletion-at-point 0 forward-sexp point-marker 1 zerop indent-rigidly] 10 2= 133678 "P"] nil) indent-for-tab-command(nil) call-interactively(indent-for-tab-command nil nil) command-execute(indent-for-tab-command)