1
0
Fork 0

Merging upstream version 1.12~rc1.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-24 04:19:50 +01:00
parent 4ddb634c25
commit cd6a248630
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
24 changed files with 874 additions and 719 deletions

View file

@ -75,19 +75,19 @@ bool Arg_parser::parse_long_option( const char * const opt, const char * const a
error_ += "' requires an argument";
return false;
}
data.back().argument = &opt[len+3];
data.back().argument = &opt[len+3]; // argument may be empty
return true;
}
if( options[index].has_arg == yes )
if( options[index].has_arg == yes || options[index].has_arg == yme )
{
if( !arg || !arg[0] )
if( !arg || ( options[index].has_arg == yes && !arg[0] ) )
{
error_ = "option '--"; error_ += options[index].long_name;
error_ += "' requires an argument";
return false;
}
++argind; data.back().argument = arg;
++argind; data.back().argument = arg; // argument may be empty
return true;
}
@ -123,15 +123,16 @@ bool Arg_parser::parse_short_option( const char * const opt, const char * const
{
data.back().argument = &opt[cind]; ++argind; cind = 0;
}
else if( options[index].has_arg == yes )
else if( options[index].has_arg == yes || options[index].has_arg == yme )
{
if( !arg || !arg[0] )
if( !arg || ( options[index].has_arg == yes && !arg[0] ) )
{
error_ = "option requires an argument -- '"; error_ += c;
error_ += '\'';
return false;
}
data.back().argument = arg; ++argind; cind = 0;
++argind; cind = 0;
data.back().argument = arg; // argument may be empty
}
}
return true;