Subject: bug#22381: 24.5; emacs hangs in shell-script-mode + show-paren-mode

From: [email-masked]
Date: Sat, 16 Jan 2016 02:24:37 +0100

Hi,

when I'm in shell-script-mode with show-paren-mode enabled my Emacs
might hang if I'm writing a while-loop. In order for this to happen the
last line in the buffer has to start with "while" and must not be
terminated with a newline. The following actions trigger this symptom
for me when I start emacs using "emacs -Q":

1) Enable show-paren-mode by typing "(show-paren-mode 1)" and evaluating
it with "C-x C-e".
2) Enable shell-script-mode by typing "(shell-script-mode)" and
evaluting it with "C-x C-e".
3) Clear the *scratch*-buffer by first doing "C-x h" followed by "C-w".
4) Type the word "while". Other words might follow but the line might
not be terminated with a newline.
5) Go to the begining of the line using "C-a". Afterwards emacs hangs. I
can't move the cursor anymore.

To quit this state I type "C-g C-g C-g". If afterwards I do "C-h l" I
get:

<help-echo> <help-echo> ( s h o w - p a r e n - m o
d e SPC 1 ) C-x C-e <return> ( s h e l l - s c r i
p t - m o d e ) C-x C-e <return> C-x h C-w w h i l
e C-a C-h l

If show-paren-mode is not enabled or the "while"-line is terminated with
a newline, then the problem does not occur. Further I have the same
problem with "if", "case", "for", "until". 
It is not necessary that the line begins with these keywords, e.g.
"ls -1 | while read line". If I move the cursor to the beginning of this
"while" I have the same problem (as long as the line is not terminated
with a newline). 

Cheers,
Robert

In GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.6)
 of 2015-09-10 on foutrelis
Windowing system distributor `The X.Org Foundation', version 11.0.11800000
Configured using:
 `configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
 --param=ssp-buffer-size=4' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'

Important settings:
  value of $LC_NUMERIC: C
  value of $LANG: de_DE.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Shell-script

Minor modes in effect:
  sh-electric-here-document-mode: t
  show-paren-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
t
Setting up indent for shell type bash
Indentation variables are now local.
Indentation setup for shell type bash
nil
Mark set [2 times]
Quit
Type C-x 1 to delete the help window.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
help-fns mail-prsvr mail-utils help-mode easymenu sh-script smie
executable paren time-date tooltip electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
gfilenotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 78588 7843)
 (symbols 48 18083 0)
 (miscs 40 59 149)
 (strings 32 11666 4609)
 (string-bytes 1 303227)
 (vectors 16 9767)
 (vector-slots 8 401840 14424)
 (floats 8 67 350)
 (intervals 56 195 3)
 (buffers 960 12)
 (heap 1024 35245 944))