From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook Date: Sat, 24 Oct 2015 17:05:10 +0300 Message-ID: <83lhasweeh.fsf@gnu.org> References: <87bnboemqb.fsf@gnu.org> <838u6sy9s1.fsf@gnu.org> <877fmcejgn.fsf@gnu.org> <83ziz8wrun.fsf@gnu.org> <8737x0egvm.fsf@gnu.org> <83vb9wwnc6.fsf@gnu.org> <874mhg1n25.fsf@gnu.org> <83si50wi2m.fsf@gnu.org> <87fv109yxo.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1445695601 17073 80.91.229.3 (24 Oct 2015 14:06:41 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 24 Oct 2015 14:06:41 +0000 (UTC) Cc: storm@cua.dk, monnier@iro.umontreal.ca, 21747@debbugs.gnu.org, bruce.connor.am@gmail.com To: Tassilo Horn Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Oct 24 16:06:29 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1ZpzSV-0005Ov-Tw for geb-bug-gnu-emacs@m.gmane.org; Sat, 24 Oct 2015 16:06:12 +0200 Original-Received: from localhost ([::1]:44502 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZpzSV-0006AR-Gy for geb-bug-gnu-emacs@m.gmane.org; Sat, 24 Oct 2015 10:06:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41222) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZpzSQ-000682-Ib for bug-gnu-emacs@gnu.org; Sat, 24 Oct 2015 10:06:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZpzSN-0005eT-Bc for bug-gnu-emacs@gnu.org; Sat, 24 Oct 2015 10:06:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:46290) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZpzSN-0005eP-8R for bug-gnu-emacs@gnu.org; Sat, 24 Oct 2015 10:06:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZpzSM-0000nT-MM for bug-gnu-emacs@gnu.org; Sat, 24 Oct 2015 10:06:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 24 Oct 2015 14:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21747 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 21747-submit@debbugs.gnu.org id=B21747.14456955102930 (code B ref 21747); Sat, 24 Oct 2015 14:06:02 +0000 Original-Received: (at 21747) by debbugs.gnu.org; 24 Oct 2015 14:05:10 +0000 Original-Received: from localhost ([127.0.0.1]:36995 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZpzRV-0000lA-F0 for submit@debbugs.gnu.org; Sat, 24 Oct 2015 10:05:09 -0400 Original-Received: from mtaout27.012.net.il ([80.179.55.183]:54951) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZpzRS-0000kv-I7 for 21747@debbugs.gnu.org; Sat, 24 Oct 2015 10:05:08 -0400 Original-Received: from conversion-daemon.mtaout27.012.net.il by mtaout27.012.net.il (HyperSendmail v2007.08) id <0NWQ0000092FW500@mtaout27.012.net.il> for 21747@debbugs.gnu.org; Sat, 24 Oct 2015 17:00:47 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([84.94.185.246]) by mtaout27.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NWQ00LKU9LABA50@mtaout27.012.net.il>; Sat, 24 Oct 2015 17:00:47 +0300 (IDT) In-reply-to: <87fv109yxo.fsf@gnu.org> X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:107987 Archived-At: > From: Tassilo Horn > Cc: bruce.connor.am@gmail.com, monnier@iro.umontreal.ca, storm@cua.dk, 21747@debbugs.gnu.org > Date: Sat, 24 Oct 2015 15:30:11 +0200 > > Eli Zaretskii writes: > > >> My recipe for reproduction is > >> > >> 1. emacs -Q > >> 2. M-x package-initialize > >> 3. M-x global-aggressive-indent-mode > >> 4. C-x C-f ~/test.sh > >> 5. type the keyword if where the i is displayed immediately > >> and the display of f is delayed > >> > >> This does only occur for sh-mode keywords like if, while, etc. where the > >> delaying starts with after entering the last char of the keyword. Also, > >> I can reproduce that problem only if test.sh doesn't exist. > > > > I don't understand: are you saying that the post-command-hook finished > > its job, and yet redisplay is not entered? > > Yes, or rather the function aggressive-indent--indent-if-changed which > is in post-command-hook finished. > > >> Or well, I just tried what happens when I replace the `while-no-input' > >> with a `progn'. Then Emacs goes into some infloop. Attaching with gdb > >> shows: > > > > There's a procedure in etc/DEBUG to determine which call-stack frame > > infloops, please use it and tell what you found. > > Ok, so with the aggressive-indent--indent-if-changed where > while-no-input is replaced with progn, I perform my recipe until emacs > infloops. Then do "kill -TSTP " and repeatedly "finish" at the gdb > prompt. But the last frame being displayed in GDB before finish doesn't > return anymore is not always the same. Most of the time it is poll () > from /usr/lib/libc.so.6. Here are two other results. No, that's bogus (GC cannot infloop, you just didn't wait long enough for that "finish" to return). The function that infloops is re-search-backward, because it is called with LIMIT set to zero. The real problem is here: (defun sh-smie--keyword-p () "Non-nil if we're at a keyword position. A keyword position is one where if we're looking at something that looks like a keyword, then it is a keyword." (let ((prev (funcall smie-backward-token-function))) (if (zerop (length prev)) (looking-back "\\`\\|\\s(" (1- (point))) <<<<<<<<<<<<<<<<<< (assoc prev smie-grammar)))) What do you expect looking-back to do here when point is at BOB?