mirror of
https://github.com/mikpe/pdp10-tools.git
synced 2026-01-23 02:49:07 +00:00
getopt: correct parsing of options with optional arguments
This commit is contained in:
parent
2e07d7945e
commit
ea4861ad33
@ -88,12 +88,10 @@ parse_element([OptCh | Element], Argv, OptString, LongOpts, RevOpts, RevArgv) ->
|
||||
{error, io_lib:format("missing argment to -~c", [OptCh])}
|
||||
end;
|
||||
?optional ->
|
||||
case {Element, Argv} of
|
||||
{[_|_], _} ->
|
||||
case Element of
|
||||
[_|_] ->
|
||||
parse_argv(Argv, OptString, LongOpts, [{OptCh, Element} | RevOpts], RevArgv);
|
||||
{[], [(Arg = [Ch | _]) | Argv2]} when Ch =/= $- ->
|
||||
parse_argv(Argv2, OptString, LongOpts, [{OptCh, Arg} | RevOpts], RevArgv);
|
||||
{_, _} ->
|
||||
[] ->
|
||||
parse_argv(Argv, OptString, LongOpts, [OptCh | RevOpts], RevArgv)
|
||||
end;
|
||||
?invalid ->
|
||||
@ -134,8 +132,6 @@ parse_long(Long, Argv, OptString, LongOpts, RevOpts, RevArgv) ->
|
||||
{error, io_lib:format("missing argument to --~s", [Prefix])};
|
||||
{?optional, [Arg], _} ->
|
||||
parse_argv(Argv, OptString, LongOpts, [{Val, Arg} | RevOpts], RevArgv);
|
||||
{?optional, [], [(Arg = [Ch | _]) | Argv2]} when Ch =/= $- ->
|
||||
parse_argv(Argv2, OptString, LongOpts, [{Val, Arg} | RevOpts], RevArgv);
|
||||
{?optional, [], _} ->
|
||||
parse_argv(Argv, OptString, LongOpts, [Val | RevOpts], RevArgv);
|
||||
{_, _, _} ->
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user