git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Ted Pavlic <ted@tedpavlic.com>
Date
Jan 13, 2009, 15:30 UTC
Message-ID
<496CB3B0.7010605@tedpavlic.com>
In-Reply-To
<20090113152047.GO10179@spearce.org>
>> 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.

Show 6 quoted lines
>> 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.
Show 8 quoted lines
>> +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@tedpavlic.com>

   Please visit my ALS association page:
         http://web.alsa.org/goto/tedpavlic
   My family appreciates your support in the fight to defeat ALS.
Previous: Shawn O. PearceNext: Shawn O. Pearce
Message 3 of 4 in “Simplest update to bash completions to prevent unbounded variable errors”
  1. Simplest update to bash completions to prevent unbounded variable errorsTed Pavlic, Jan 13, 2009
  2. Shawn O. PearceJan 13, 2009
  3. Ted PavlicJan 13, 2009
  4. Shawn O. PearceJan 13, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.