In Bash, the characters !%:.^~, are not valid in variable names. In sh,
they are not permitted in either function or variable names. Treating
them as punctuation is convenient, as they are rarely used in function
names and never in variable names. Even among commands, their usage is
uncommon. The only character among these that is commonly seen in
command names is '.', although it is rarely used in function names.
Marking these characters as punctuation, rather than symbol
constituents, enhances the accuracy of symbol detection.
* lisp/progmodes/sh-script.el: Mark !%:.^~, as punctuation in the
sh-mode-syntax-table syntax table.
Copyright-paperwork-exempt: yes
(cherry picked from commit
4e1fe56e316c041ed3b07f510ecba428c6b06cd1)
;; to work fine. This is needed so that dabbrev-expand
;; $VARNAME works.
?$ "'"
- ?! "_"
- ?% "_"
- ?: "_"
- ?. "_"
- ?^ "_"
- ?~ "_"
- ?, "_"
+ ?! "."
+ ?% "."
+ ?: "."
+ ?. "."
+ ?^ "."
+ ?~ "."
+ ?, "."
?= "."
?/ "."
?\; "."