From: Andre Noll Date: Sat, 30 Aug 2014 16:47:50 +0000 (+0200) Subject: subcommand: Overhaul _gsu_print_available_commands(). X-Git-Url: http://git.tuebingen.mpg.de/versions/paraslash-0.3.1.tar.bz2.asc?a=commitdiff_plain;h=96dedb2c454e93e307a45721b202f304c9464a2b;p=gsu.git subcommand: Overhaul _gsu_print_available_commands(). 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. --- diff --git a/subcommand b/subcommand index 6b5df0a..f668f2a 100644 --- a/subcommand +++ b/subcommand @@ -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()