Ted Pavlic <ted@xxxxxxxxxxxxx> writes: > An alternative (to a Vim modeline) is to put > > #!bash I actually like this much better than "# vim:" thing. It talks about WHAT the file is ("It is a bash scriptlet"), as opposed to "# vim:" that tells HOW one user wants to edit the file ("with this settings I use vim to edit this file"). In case somebody misunderstood me, my "Yuck" was not about Emacs vs vi holy war. [*1*]. As people noted, it may not have any meaning to the shell, but it serves as an important documentation to humans. As the maintainer, I try to be reasonably strict about keeping our shell scripts free of bash-ism to help people on platforms without bash, but this file is about bash (and bash only). We are free to use all bash-isms we usually try to stay away from in our scripts marked with #!/bin/sh (namely, "local", "let", shell arrays, and substitutions outside POSIX such as ${parameter:offset:length} substring, ${#parameter} length, and ${parameter/pattern/string} regexp replacement), as long as they are compatible across recent bash versions. If tools like vim notice the same hint that says "this is bash" and adjusts its behaviour accordingly, that is great. Even though I've grown to know Shawn well enough to be able to tell that certain kinds of changes would get his Ack and often apply patches myself without waiting him to give his Ack, the completion script is ultimately his code and you do not necessarily have to make me like it. Your updated patch still had [ $# -eq 0 -o -z "$1" ] even though the commit log message (which is not the place to describe changes between v1 and v2 submissions, by the way) claimed that you replaced them with "${1-}". I am guessing it would need at least one more iteration to clean up, but I think this patch is improving _provided if_ supporting "set -u" in the user's interactive environment is a good idea to begin with. I just hope that next person who complains about bash completion scripts would not say that he has "set -e" in his interactive environment ;-) I personally consider that "set -u" is equally silly, but it probably is just me. [Footnote] *1* For the same reason, Local Variables section to please Emacs is equally offending; it tends to be much bigger which is even worse. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html