From 96dedb2c454e93e307a45721b202f304c9464a2b Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sat, 30 Aug 2014 18:47:50 +0200 Subject: [PATCH] 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. --- subcommand | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) 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() -- 2.39.2