From 4e30e25a89b97a27ff8da7153593931f12895004 Mon Sep 17 00:00:00 2001 From: Mikael Pettersson Date: Tue, 10 Mar 2020 21:53:16 +0100 Subject: [PATCH] getopt: factor out duplicated code for non-options --- erlang/apps/lib/src/getopt.erl | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/erlang/apps/lib/src/getopt.erl b/erlang/apps/lib/src/getopt.erl index 66d0bf4..23f1bde 100644 --- a/erlang/apps/lib/src/getopt.erl +++ b/erlang/apps/lib/src/getopt.erl @@ -45,16 +45,15 @@ parse_argv([], _OptString, _LongOpts, RevOpts, RevArgv) -> parse_argv(["--" | Argv], _OptString, _LongOpts, RevOpts, RevArgv) -> finish(RevOpts, RevArgv, Argv); parse_argv([Arg = "-" | Argv], OptString, LongOpts, RevOpts, RevArgv) -> - case OptString of - [$+ | _] -> finish(RevOpts, [Arg | RevArgv], Argv); - [$- | _] -> parse_argv(Argv, OptString, LongOpts, [{1, Arg} | RevOpts], RevArgv); - _ -> parse_argv(Argv, OptString, LongOpts, RevOpts, [Arg | RevArgv]) - end; + nonoption(Arg, Argv, OptString, LongOpts, RevOpts, RevArgv); parse_argv([[$-, $- | Long] | Argv], OptString, LongOpts, RevOpts, RevArgv) -> parse_long(Long, Argv, OptString, LongOpts, RevOpts, RevArgv); parse_argv([[$- | Element] | Argv], OptString, LongOpts, RevOpts, RevArgv) -> parse_element(Element, Argv, OptString, LongOpts, RevOpts, RevArgv); parse_argv([Arg | Argv], OptString, LongOpts, RevOpts, RevArgv) -> + nonoption(Arg, Argv, OptString, LongOpts, RevOpts, RevArgv). + +nonoption(Arg, Argv, OptString, LongOpts, RevOpts, RevArgv) -> case OptString of [$+ | _] -> finish(RevOpts, [Arg | RevArgv], Argv); [$- | _] -> parse_argv(Argv, OptString, LongOpts, [{1, Arg} | RevOpts], RevArgv);