[CLI] Fix parsing empty string within arguments

Fixes https://github.com/github/hub/issues/2036
This commit is contained in:
Mislav Marohnić 2019-02-13 01:27:34 +01:00
Родитель 081810c441
Коммит 7ea9a151b4
2 изменённых файлов: 9 добавлений и 1 удалений

Просмотреть файл

@ -95,7 +95,7 @@ func (p *ArgsParser) Parse(args []string) ([]string, error) {
for i = 0; i < len(args); i++ {
arg = args[i]
if p.HasTerminated || arg == "-" {
if p.HasTerminated || len(arg) == 0 || arg == "-" {
} else if arg == "--" {
if !p.HasTerminated {
p.HasTerminated = true

Просмотреть файл

@ -70,6 +70,14 @@ func TestArgsParser_UnknownFlag(t *testing.T) {
equal(t, true, p.Bool("--yes"))
}
func TestArgsParser_BlankArgs(t *testing.T) {
p := NewArgsParser()
rest, err := p.Parse([]string{"", ""})
equal(t, nil, err)
equal(t, []string{"", ""}, rest)
equal(t, []int{0, 1}, p.PositionalIndices)
}
func TestArgsParser_Values(t *testing.T) {
p := NewArgsParser()
p.RegisterValue("--origin", "-o")