subcommand: Overhaul _gsu_print_available_commands().
authorAndre Noll <maan@tuebingen.mpg.de>
Sat, 30 Aug 2014 16:47:50 +0000 (18:47 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sat, 30 Aug 2014 16:47:50 +0000 (18:47 +0200)
This function is rather confused. It uses gsu_short_msg() to print
the header to stderr while the list of subcommands is printed to
stdout. This is "fixed" by executing all commands in a subshell and
redirecting stderr to stdout.

It's easier to just print everything to stdout. This patch also
renames the loop variable i to cmd, declares $count as a local
integer variable and switches to single quoted string constants.

subcommand

index 6b5df0a..f668f2a 100644 (file)
@@ -49,23 +49,22 @@ _gsu_available_commands()
 }
 
 _gsu_print_available_commands()
-{(
-       local i count=0
-       gsu_short_msg "Available commands:"
-       for i in $gsu_cmds; do
-               printf "$i"
-               count=$(($count + 1))
-               if test $(($count % 4)) -eq 0; then
-                       echo
+{
+       local cmd
+       local -i count=0
+
+       printf 'Available commands:\n'
+       for cmd in $gsu_cmds; do
+               printf '%s' "$cmd"
+               let count++
+               if (($count % 4)); then
+                       printf '\t'
+                       ((${#cmd} < 8)) && printf '\t'
                else
-                       printf "\t"
-                       if test ${#i} -lt 8; then
-                               printf "\t"
-                       fi
+                       printf '\n'
                fi
        done
-       echo
-) 2>&1
+       printf '\n'
 }
 
 gsu_complete_options()