GNU bug report logs - #61192
Emacs 28.1: Bash Shell Script Indenting does not recognize if, [....];then

Previous Next

Package: emacs;

Reported by: stephm <at> pobox.com

Date: Tue, 31 Jan 2023 05:37:02 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 61192 in the body.
You can then email your comments to 61192 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#61192; Package emacs. (Tue, 31 Jan 2023 05:37:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to stephm <at> pobox.com:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 31 Jan 2023 05:37:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Stephen Montsaroff <stephm <at> pobox.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Emacs 28.1: Bash Shell Script Indenting does not recognize if,
 [....];then
Date: Mon, 30 Jan 2023 14:14:32 -0800
[Message part 1 (text/plain, inline)]


Since upgrade to Emacs 28.1, I have noted an annoy change in
shell-script mode auto-formatting.

I would like to recover the old behavior

Before, if I entered

if [ "$x" = "" ];then
    export x=$y
fi

and then enter new line, the new line would align with the fi

if [ "$x" = "" ];then
    export x=$y
fi
cp fred ethel

Now it I do the same thing I get the new line indented

if [ "$x" = "" ];then
    export x=$y
fi
    cp fred ethel

The matching code also does not recognize that the
fi is connected to the then statement.

This is not the case if I break the if into two lines or add a leading
space to the ;

if [ "$x" = "" ]
then
    export x=$y
fi
cp fred ethel

if [ "$x" = "" ];then
    export x=$y
fi
cp fred ethel





In GNU Emacs 28.1 (build 2, x86_64-w64-mingw32)
 of 2022-04-21 built on AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.19045
System Description: Microsoft Windows 10 Enterprise (v10.0.2009.19045.2130)

Configured using:
 'configure --with-modules --without-dbus --with-native-compilation
 --without-compress-install CFLAGS=-O2'

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
XPM ZLIB

(NATIVE_COMP present but libgccjit not available)

Important settings:
  value of $LC_CTYPE: en_US.UTF-8
  value of $LANG: ENU
  locale-coding-system: cp1252

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-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
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map text-property-search seq byte-opt
gv bytecomp byte-compile cconv mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils time-date subr-x cl-loaddefs
cl-lib iso-transl tooltip eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel dos-w32 ls-lisp disp-table
term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 60127 6905)
 (symbols 48 7062 1)
 (strings 32 21734 2167)
 (string-bytes 1 718164)
 (vectors 16 14999)
 (vector-slots 8 258735 12590)
 (floats 8 23 303)
 (intervals 56 228 0)
 (buffers 992 10))
[Message part 2 (text/html, inline)]

Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Tue, 31 Jan 2023 13:54:02 GMT) Full text and rfc822 format available.

Notification sent to stephm <at> pobox.com:
bug acknowledged by developer. (Tue, 31 Jan 2023 13:54:02 GMT) Full text and rfc822 format available.

Message #10 received at 61192-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: stephm <at> pobox.com
Cc: 61192-done <at> debbugs.gnu.org
Subject: Re: bug#61192: Emacs 28.1: Bash Shell Script Indenting does not
 recognize if, [....]; then
Date: Tue, 31 Jan 2023 15:53:09 +0200
> Date: Mon, 30 Jan 2023 14:14:32 -0800
> From: Stephen Montsaroff <stephm <at> pobox.com>
> 
> Since upgrade to Emacs 28.1, I have noted an annoy change in
> shell-script mode auto-formatting.
> 
> I would like to recover the old behavior
> 
> Before, if I entered
> 
> if [ "$x" = "" ];then
>     export x=$y
> fi
> 
> and then enter new line, the new line would align with the fi
> 
> if [ "$x" = "" ];then
>     export x=$y
> fi
> cp fred ethel
> 
> Now it I do the same thing I get the new line indented
> 
> if [ "$x" = "" ];then
>     export x=$y
> fi
>     cp fred ethel
> 
> The matching code also does not recognize that the
> fi is connected to the then statement.

I can reproduce this in Emacs 28.1, but not in Emacs 28.2 and later.
So I think we already fixed this bug; please upgrade.

I'm therefore closing this bug.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61192; Package emacs. (Wed, 01 Feb 2023 18:29:01 GMT) Full text and rfc822 format available.

Message #13 received at 61192 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: stephm <at> pobox.com
Cc: 61192 <at> debbugs.gnu.org
Subject: Re: bug#61192: Emacs 28.1: Bash Shell Script Indenting does not
 recognize if, [....]; then
Date: Wed, 01 Feb 2023 20:28:13 +0200
> Date: Wed, 1 Feb 2023 09:49:36 -0800
> From: Stephen Montsaroff <stephm <at> pobox.com>
> 
> I have been able to reproduce for emacs 28.2.

Well, I cannot reproduce with Emacs 28.2, so it is strange that it
happens for you in Emacs 28.2.  Are you sure you don't have some stale
files lurking somewhere and shadowing the files that came with Emacs
28.2?  Does the problem happen in "emacs -Q" with Emacs 28.2?





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 02 Mar 2023 12:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 168 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.