GNU bug report logs -
#21321
24.5; sh-mode incorrectly indents case statements in certain cases
Previous Next
To reply to this bug, email your comments to 21321 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#21321
; Package
emacs
.
(Sat, 22 Aug 2015 17:13:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Phil <heller.barde <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Sat, 22 Aug 2015 17:13:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
If there is a pair of parens (for bash globbing) in a case match, the
indentation of sh-mode indents everything after the match expression to
the end of that expression. If there are multiple such expressions, it will
progressively indent further and further.
To see what I mean, load the example below into an emacs buffer with
sh-mode and press
M-x mark-whole-buffer RET M-x indent-region RET
------------- Example ----------------------
#!/bin/bash
TEST=foo234bar
###### Expected: (does not contain the offending parens)
case $TEST in
foo[0-9]bar)
echo "TEST contains a digit between foo and bar";
;;
foobar)
echo "TEST does not contain numbers";
;;
*)
echo "Invalid value in TEST";
;;
esac
###### End expected
###### Actual: (contains the parens for the repeating pattern match)
case $TEST in
foo+([0-9])bar)
echo "TEST contains numbers between foo and bar";
;;
foobar)
echo "TEST does not contain numbers";
;;
*)
echo "Invalid value in TEST";
;;
esac;
###### End actual
----------------- END Example -------------------
Thanks for looking at this
Regards,
Philip Stark
In GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.2)
of 2015-04-20 on bitzer.hoetzel.info
Windowing system distributor `The X.Org Foundation', version 11.0.11702000
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_MONETARY: de_CH.UTF-8
value of $LC_NUMERIC: de_CH.UTF-8
value of $LC_TIME: de_CH.UTF-8
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Shell-script
Minor modes in effect:
sh-electric-here-document-mode: t
global-diff-hl-mode: t
diff-hl-mode: t
diff-auto-refine-mode: t
winner-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
global-anzu-mode: t
anzu-mode: t
projectile-global-mode: t
projectile-mode: t
shell-dirtrack-mode: t
volatile-highlights-mode: t
global-hl-line-mode: t
recentf-mode: t
savehist-mode: t
show-smartparens-global-mode: t
show-smartparens-mode: t
global-auto-revert-mode: t
delete-selection-mode: t
prelude-global-mode: t
prelude-mode: t
tooltip-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
size-indication-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
Saving file /home/phil/tmp/emacs_indentation_test.sh...
Wrote /tmp/.!home!phil!tmp!emacs_indentation_test.sh.~undo-tree~
Wrote /home/phil/tmp/emacs_indentation_test.sh
Saving file /home/phil/tmp/emacs_indentation_test.sh...
Wrote /tmp/.!home!phil!tmp!emacs_indentation_test.sh.~undo-tree~
Wrote /home/phil/tmp/emacs_indentation_test.sh
byte-code: Beginning of buffer [7 times]
Making completion list...
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message idna rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils easy-kill
vc-git sh-script smie executable help-mode server flatland-theme
prelude-global-keybindings prelude-editor operate-on-number calc-bin
calc-ext calc calc-loaddefs calc-macs diff-hl smartrep vc-dir ewoc vc
vc-dispatcher diff-mode easy-mmode winner undo-tree diff esh-var esh-io
esh-cmd esh-opt esh-ext esh-proc esh-arg eldoc esh-groups eshell
esh-module esh-mode esh-util re-builder whitespace tabify
browse-kill-ring midnight ediff-merg ediff-wind ediff-diff ediff-mult
ediff-help ediff-init ediff-util ediff dired-x dired anzu avy projectile
compile ibuf-ext ibuffer bookmark pp expand-region text-mode-expansions
er-basic-expansions expand-region-core expand-region-custom flyspell
ispell tramp tramp-compat auth-source gnus-util mm-util mail-prsvr
password-cache tramp-loaddefs trampver shell pcomplete comint ansi-color
format-spec etags ring volatile-highlights hl-line windmove recentf
tree-widget wid-edit savehist saveplace diminish edmacro kmacro
smartparens-config smartparens time-date autorevert filenotify delsel
prelude-mode prelude-core imenu epl ido ov dash thingatpt prelude-ui
smart-mode-line mule-util rich-minority prelude-custom prelude-packages
finder-inf eieio byte-opt bytecomp byte-compile cl-extra cconv
eieio-core cl-macs advice help-fns info easymenu package epg-config cl
gv cl-loaddefs cl-lib theme 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 267771 213712)
(symbols 48 38350 1)
(miscs 40 482 957)
(strings 32 70315 175298)
(string-bytes 1 1986298)
(vectors 16 30716)
(vector-slots 8 613249 119243)
(floats 8 168 1362)
(intervals 56 1105 3300)
(buffers 960 16)
(heap 1024 67464 33453))
[Message part 2 (text/html, inline)]
Forcibly Merged 21321 31609.
Request was from
Noam Postavsky <npostavs <at> gmail.com>
to
control <at> debbugs.gnu.org
.
(Mon, 28 May 2018 00:20:04 GMT)
Full text and
rfc822 format available.
Merged 21321 25353 31609.
Request was from
Glenn Morris <rgm <at> fencepost.gnu.org>
to
control <at> debbugs.gnu.org
.
(Tue, 11 Jan 2022 16:50:01 GMT)
Full text and
rfc822 format available.
This bug report was last modified 3 years and 160 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.