From 48d353610fc5fac5a9d491e9d0ad9c7e4c79fe7e Mon Sep 17 00:00:00 2001 From: David Adam Date: Fri, 13 Mar 2015 16:32:05 +0800 Subject: [PATCH] abbr: coalesce multiple arguments to --add Makes the behaviour of the script match the documentation. --- share/functions/abbr.fish | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/share/functions/abbr.fish b/share/functions/abbr.fish index ce104f12f..7669b8fd1 100644 --- a/share/functions/abbr.fish +++ b/share/functions/abbr.fish @@ -10,9 +10,13 @@ function abbr --description "Manage abbreviations" set -l mode_arg set -l needs_arg no while set -q argv[1] - if test $needs_arg = yes + if test $needs_arg = single set mode_arg $argv[1] set needs_arg no + else if test $needs_arg = coalesce + set mode_arg "$argv" + set needs_arg no + set -e argv else set -l new_mode switch $argv[1] @@ -21,10 +25,10 @@ function abbr --description "Manage abbreviations" return 0 case '-a' '--add' set new_mode add - set needs_arg yes + set needs_arg coalesce case '-r' '--remove' set new_mode remove - set needs_arg yes + set needs_arg single case '-l' '--list' set new_mode list case '-s' '--show' @@ -48,7 +52,7 @@ function abbr --description "Manage abbreviations" end set -e argv[1] end - if test $needs_arg = yes + if test $needs_arg != no printf ( _ "%s: option requires an argument -- %s\n" ) abbr $mode_flag >&2 return 1 end