diff --git a/autotests/folding/test.bash.fold b/autotests/folding/test.bash.fold
index eb99e8f..216f11c 100644
--- a/autotests/folding/test.bash.fold
+++ b/autotests/folding/test.bash.fold
@@ -1,12 +1,23 @@
#!/bin/bash
for i in `ls tests/auto/output/*.html`; do
refFile=`echo $i | sed -e s,build,src, | sed -e s,output,reference, | sed -e s,.html,.ref.html,`
cp -v $i $refFile
done
## >Settings >Configure Kate >Fonts & Colors >Highlitghing Text Styles >Scripts/Bash >Option >Change colors to some distinct color
## 1- In following line the -ucode should not be colored as option
pacman -Syu --needed intel-ucode grub
pacman -syu --needed intel-ucode grub
+
+# Braces (bug ##387915)
+[[ $line_name =~ \{([0-9]{1,})\}\{([0-9]{1,})\}(.*) ]]
+[[ $name =~ (.*)_(S[0-9]{2})(E[0-9]{2,3}[a-z]{0,1})_(.*) ]]
+rm /data/{hello1,hello2}/input/{bye1,$bye2}/si{a,${b},c{k,p{e,a}}}/*.non
+rm /data/{aa,{e,i}t{b,c} # Not closed
+rm /data{aa{bb{cc{dd}}}}
+rm /data{aaa`aaa}aa`aaa}a
+
+${array[0]: -7 : + 22 } ${array[1]: num }
+${parameter##word} ${parameter%%word} ${parameter^^pattern} ${parameter,,pattern} ${parameter@operator}
diff --git a/autotests/html/test.bash.html b/autotests/html/test.bash.html
index 3b0648d..161a975 100644
--- a/autotests/html/test.bash.html
+++ b/autotests/html/test.bash.html
@@ -1,19 +1,30 @@
test.bash
#!/bin/bash
for i in `ls tests/auto/output/*.html`; do
refFile=`echo $i | sed -e s,build,src, | sed -e s,output,reference, | sed -e s,.html,.ref.html,`
cp -v $i $refFile
done
## >Settings >Configure Kate >Fonts & Colors >Highlitghing Text Styles >Scripts/Bash >Option >Change colors to some distinct color
## 1- In following line the -ucode should not be colored as option
pacman -Syu --needed intel-ucode grub
pacman -syu --needed intel-ucode grub
+
+# Braces (bug ##387915)
+[[ $line_name =~ \{([0-9]{1,})\}\{([0-9]{1,})\}(.*) ]]
+[[ $name =~ (.*)_(S[0-9]{2})(E[0-9]{2,3}[a-z]{0,1})_(.*) ]]
+rm /data/{hello1,hello2}/input/{bye1,$bye2}/si{a,${b},c{k,p{e,a}}}/*.non
+rm /data/{aa,{e,i}t{b,c} # Not closed
+rm /data{aa{bb{cc{dd}}}}
+rm /data{aaa`aaa}aa`aaa}a
+
+${array[0]: -7 : + 22 } ${array[1]: num }
+${parameter##word} ${parameter%%word} ${parameter^^pattern} ${parameter,,pattern} ${parameter@operator}
diff --git a/autotests/input/test.bash b/autotests/input/test.bash
index 069d834..6241e5a 100644
--- a/autotests/input/test.bash
+++ b/autotests/input/test.bash
@@ -1,12 +1,23 @@
#!/bin/bash
for i in `ls tests/auto/output/*.html`; do
refFile=`echo $i | sed -e s,build,src, | sed -e s,output,reference, | sed -e s,.html,.ref.html,`
cp -v $i $refFile
done
## >Settings >Configure Kate >Fonts & Colors >Highlitghing Text Styles >Scripts/Bash >Option >Change colors to some distinct color
## 1- In following line the -ucode should not be colored as option
pacman -Syu --needed intel-ucode grub
pacman -syu --needed intel-ucode grub
+
+# Braces (bug ##387915)
+[[ $line_name =~ \{([0-9]{1,})\}\{([0-9]{1,})\}(.*) ]]
+[[ $name =~ (.*)_(S[0-9]{2})(E[0-9]{2,3}[a-z]{0,1})_(.*) ]]
+rm /data/{hello1,hello2}/input/{bye1,$bye2}/si{a,${b},c{k,p{e,a}}}/*.non
+rm /data/{aa,{e,i}t{b,c} # Not closed
+rm /data{aa{bb{cc{dd}}}}
+rm /data{aaa`aaa}aa`aaa}a
+
+${array[0]: -7 : + 22 } ${array[1]: num }
+${parameter##word} ${parameter%%word} ${parameter^^pattern} ${parameter,,pattern} ${parameter@operator}
diff --git a/autotests/reference/test.bash.ref b/autotests/reference/test.bash.ref
index bd1f04c..adeaa9d 100644
--- a/autotests/reference/test.bash.ref
+++ b/autotests/reference/test.bash.ref
@@ -1,12 +1,23 @@
#!/bin/bash
for i `ls tests/auto/output/*.html`; do
refFile=`echo $i | sed s,build,src, | sed s,output,reference, | sed s,.html,.ref.html,`
cp $i $refFile
done
## >Settings >Configure Kate >Fonts & Colors >Highlitghing Text Styles >Scripts/Bash >Option >Change colors to some distinct color
## 1- In following line the -ucode should not be colored as option
pacman intel-ucode grub
pacman intel-ucode grub
+
+# Braces (bug ##387915)
+[[ $line_name =~ \{([0-9]{1,})\}\{([0-9]{1,})\}(.*) ]]
+[[ $name =~ (.*)_(S[0-9]{2})(E[0-9]{2,3}[a-z]{0,1})_(.*) ]]
+rm /data/{hello1,hello2}/input/{bye1,$bye2}/si{a,${b},c{k,p{e,a}}}/*.non
+rm /data/{aa,{e,i}t{b,c} # Not closed
+rm /data{aa{bb{cc{dd}}}}
+rm /data{aaa`aaa}aa`aaa}a
+
+${array[0]: -7 : + 22 } ${array[1]: num }
+${parameter##word} ${parameter%%word} ${parameter^^pattern} ${parameter,,pattern} ${parameter@operator}
diff --git a/data/syntax/bash.xml b/data/syntax/bash.xml
index 48ac94f..cdfdf95 100644
--- a/data/syntax/bash.xml
+++ b/data/syntax/bash.xml
@@ -1,965 +1,980 @@
]>
-
+
- else
- for
- function
- in
- select
- until
- while
- elif
- then
- set
- :
- source
- alias
- bg
- bind
- break
- builtin
- cd
- caller
- command
- compgen
- complete
- continue
- dirs
- disown
- echo
- enable
- eval
- exec
- exit
- fc
- fg
- getopts
- hash
- help
- history
- jobs
- kill
- let
- logout
- popd
- printf
- pushd
- pwd
- return
- set
- shift
- shopt
- suspend
- test
- time
- times
- trap
- type
- ulimit
- umask
- unalias
- wait
- export
- unset
- declare
- typeset
- local
- read
- readonly
- arch
- awk
- bash
- bunzip2
- bzcat
- bzcmp
- bzdiff
- bzegrep
- bzfgrep
- bzgrep
- bzip2
- bzip2recover
- bzless
- bzmore
- cat
- chattr
- chgrp
- chmod
- chown
- chvt
- cp
- date
- dd
- deallocvt
- df
- dir
- dircolors
- dmesg
- dnsdomainname
- domainname
- du
- dumpkeys
- echo
- ed
- egrep
- false
- fgconsole
- fgrep
- fuser
- gawk
- getkeycodes
- gocr
- grep
- groff
- groups
- gunzip
- gzexe
- gzip
- hostname
- igawk
- install
- kbd_mode
- kbdrate
- killall
- last
- lastb
- link
- ln
- loadkeys
- loadunimap
- login
- ls
- lsattr
- lsmod
- lsmod.old
- lzcat
- lzcmp
- lzdiff
- lzegrep
- lzfgrep
- lzgrep
- lzless
- lzcat
- lzma
- lzmainfo
- lzmore
- mapscrn
- mesg
- mkdir
- mkfifo
- mknod
- mktemp
- more
- mount
- mv
- nano
- netstat
- nisdomainname
- nroff
- openvt
- pgawk
- pidof
- ping
- ps
- pstree
- pwd
- rbash
- readlink
- red
- resizecons
- rm
- rmdir
- run-parts
- sash
- sed
- setfont
- setkeycodes
- setleds
- setmetamode
- setserial
- sh
- showkey
- shred
- sleep
- ssed
- stat
- stty
- su
- sync
- tar
- tempfile
- touch
- troff
- true
- umount
- uname
- unicode_start
- unicode_stop
- unlink
- unlzma
- unxz
- utmpdump
- uuidgen
- vdir
- wall
- wc
- xz
- xzcat
- ypdomainname
- zcat
- zcmp
- zdiff
- zegrep
- zfgrep
- zforce
- zgrep
- zless
- zmore
- znew
- zsh
- aclocal
- aconnect
- aplay
- apm
- apmsleep
- apropos
- ar
- arecord
- as
- as86
- autoconf
- autoheader
- automake
- awk
- basename
- bc
- bison
- c++
- cal
- cat
- cc
- cdda2wav
- cdparanoia
- cdrdao
- cd-read
- cdrecord
- chfn
- chgrp
- chmod
- chown
- chroot
- chsh
- clear
- cmp
- co
- col
- comm
- cp
- cpio
- cpp
- cut
- dc
- dd
- df
- diff
- diff3
- dir
- dircolors
- directomatic
- dirname
- du
- env
- expr
- fbset
- file
- find
- flex
- flex++
- fmt
- free
- ftp
- funzip
- fuser
- g++
- gawk
- gc
- gcc
- clang
- valgrind
- xdg-open
- cmake
- qmake
- svn
- git
- rsync
- gdb
- getent
- getopt
- gettext
- gettextize
- gimp
- gimp-remote
- gimptool
- gmake
- gs
- head
- hexdump
- id
- install
- join
- kill
- killall
- ld
- ld86
- ldd
- less
- lex
- ln
- locate
- lockfile
- logname
- lp
- lpr
- ls
- lynx
- m4
- make
- man
- mkdir
- mknod
- msgfmt
- mv
- namei
- nasm
- nawk
- nice
- nl
- nm
- nm86
- nmap
- nohup
- nop
- od
- passwd
- patch
- pcregrep
- pcretest
- perl
- perror
- pidof
- pr
- printf
- procmail
- prune
- ps2ascii
- ps2epsi
- ps2frag
- ps2pdf
- ps2ps
- psbook
- psmerge
- psnup
- psresize
- psselect
- pstops
- rcs
- rev
- rm
- scp
- sed
- seq
- setterm
- shred
- size
- size86
- skill
- slogin
- snice
- sort
- sox
- split
- ssh
- ssh-add
- ssh-agent
- ssh-keygen
- ssh-keyscan
- stat
- strings
- strip
- sudo
- suidperl
- sum
- tac
- tail
- tee
- test
- tr
- uniq
- unlink
- unzip
- updatedb
- updmap
- uptime
- users
- vmstat
- w
- wc
- wget
- whatis
- whereis
- which
- who
- whoami
- write
- xargs
- yacc
- yes
- zip
- zsoelim
- dcop
- kdialog
- kfile
- xhost
- xmodmap
- xset
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
+
-
+