From fb45e2e046619062965b5415b716d03cfe132f6a Mon Sep 17 00:00:00 2001 From: Marcin Date: Thu, 24 Sep 2020 14:50:44 +0200 Subject: [PATCH] flag: fix panic on single `-` --- vlib/flag/flag.v | 2 +- vlib/flag/flag_test.v | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/vlib/flag/flag.v b/vlib/flag/flag.v index 2faee64c6d..e62acb535f 100644 --- a/vlib/flag/flag.v +++ b/vlib/flag/flag.v @@ -176,7 +176,7 @@ fn (mut fs FlagParser) parse_bool_value(longhand string, shorthand byte) ?string fs.args.delete(i) return val } - if arg[0] == `-` && arg[1] != `-` && arg.index_byte(shorthand) != -1 { + if arg.len > 1 && arg[0] == `-` && arg[1] != `-` && arg.index_byte(shorthand) != -1 { // -abc is equivalent to -a -b -c return 'true' } diff --git a/vlib/flag/flag_test.v b/vlib/flag/flag_test.v index e8f695dc8f..4de8c2255b 100644 --- a/vlib/flag/flag_test.v +++ b/vlib/flag/flag_test.v @@ -344,3 +344,11 @@ fn test_long_options_that_start_with_the_same_letter_as_another_short_option_bot assert verbose == true assert vabc == '/abc' } + +fn test_single_dash() { + mut fp := flag.new_flag_parser([ + '-' + ]) + flag_update := fp.bool('update', `u`, false, 'Update tools') + assert flag_update == false +}