Re: [PATCH] Simplest update to bash completions to prevent unbounded variable errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Another try at fixing bash completions in "set -u" environments.
I agree with Junio; setting -u in your interactive shell is as bad
as export CDPATH.  Its crazy.

This whole series of patches was inspired by a group of workstations at a university that set -u by default for all users.

Additionally, doesn't "set -u" make tcsh users feel more at home in bash? Certainly other shells have this same behavior in their interactive modes.

Additionally added some comments and omitted things like Vim modelines.

These are orthogonal to the -u corrections.  They should be in a
different patch.  The comments are wecome.  The '#!bash' looks like
a good idea.  But a vim specific modeline, I don't like, for the
reasons Junio has already stated.

OK. Can do.

-	if [ -z "$1" ]; then
+	if [ $# -eq 0 ] || [ -z "$1" ]; then

This is one of those places where [ -z "${1-}" ] is likely easier

That was a mistake. I missed that hunk. I meant to use the ${1-}.

+		if [ $# -gt 0 ]&&  [ -n "$1" ]; then

Eh, I'd rather see [ -n "${1-}" ] over the&&  test.

Again, my mistake. It was late and I missed it.


+complete -o bashdefault -o default -o nospace -F _git git 2>/dev/null \
+	|| complete -o default -o nospace -F _git git
+complete -o bashdefault -o default -o nospace -F _gitk gitk 2>/dev/null \
+	|| complete -o default -o nospace -F _gitk gitk

Why are we switching to bashdefault?  Is this an unrelated change
from the -u stuff and should go into its own commit, with its own
justification?

Ok.

From what I understand, normal bash completion is like setting "-o bashdefault -o default". That is, it tries the bash completions first before going to the filename completion. This change makes it so that git jumps back to bash completion if nothing git-specific is found. If nothing bash-specific is found, it will go back to standard default filename completion.

--Ted



--
Ted Pavlic <ted@xxxxxxxxxxxxx>

  Please visit my ALS association page:
        http://web.alsa.org/goto/tedpavlic
  My family appreciates your support in the fight to defeat ALS.
--
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux