Subject: bug#46093: closed (Re: bug#2910: 23.0.60; Shell-script coloring bug)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 14 Oct 2023 15:03:03 +0000

Your bug report

#26217: Shell-script mode formatting error eats half the page

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
26217: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26217
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#2910: 23.0.60; Shell-script coloring bug
From: Stefan Monnier <[email-masked]>
To: Mauro Aranda <[email-masked]>
Cc: Martin Vath <[email-masked]>, [email-masked], [email-masked]
Date: Sat, 14 Oct 2023 11:01:40 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

>> I haven't found problems, but I'm suspicious because it seems too easy.
> Welcome to the world of Emacs, where "if it's easy it must be right".

BTW, pushed to `master`, thank you.

        Stefan

Subject: Shell-script mode formatting error eats half the page
From: 積丹尼 Dan Jacobson <[email-masked]>
To: [email-masked]
Date: Mon, 25 Jan 2021 12:40:44 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Here we observe lines severely shoved over due to Shell-script mode not
recognizing the statement has terminated. emacs-version "27.1".

$ cat x.sh
set /home/$j/.adobe /home/$j/.macromedia && for i do if test -d $i; then rm -vr $i; fi; done
                                                echo these lines are now indented wrongly
                                                echo these lines are now indented wrongly for the rest of the file.
                                                echo There is no recovery.

"Well then use if ...; then ..."

if set /home/$j/.adobe /home/$j/.macromedia
then for i do if test -d $i; then rm -vr $i; fi; done
     fi #UH OH, STILL MESSED UP
	 set /home/$j/.procmail/backup #UH OH EVEN MORE
	 if ! test -d $1 #AT LEAST INDENTING HAS STABILIZED finally

if set /home/$j/.adobe /home/$j/.macromedia
then
    for i do if test -d $i; then rm -vr $i; fi; done
    fi #STILL BAD

if set /home/$j/.adobe /home/$j/.macromedia
then
    for i
    do if test -d $i; then rm -vr $i; fi; done
fi #AH, FINALLY it has come to its senses.