libdockapp: removed assertion that short-form options have length 2.
The mixed-option parsing code includes an assertion that short-form options have a length of two. However, there is no other validation of this requirement and some dock-apps do not comply with it, which means that if one exec's them with an unrecognized option or a mix of short options, the assertion fails and the app aborts. For example: $ /usr/bin/wmail --help | grep '\<display\>' -display <string> display to use $ /usr/bin/wmail --blah wmail: daargs.c:126: contains: Assertion `strlen(needle) == 2' failed. Aborted Since there is no explicit statement of this requirement, let's replace the assertion with a conditional.
This commit is contained in:
parent
00630c75c7
commit
5b50ebaefb
|
@ -117,13 +117,11 @@ DAParseArguments(
|
||||||
int
|
int
|
||||||
contains(char *needle, char *haystack)
|
contains(char *needle, char *haystack)
|
||||||
{
|
{
|
||||||
char c, *pos;
|
char *pos = NULL;
|
||||||
|
|
||||||
assert(strlen(needle) == 2);
|
if (strlen(needle) == 2 && needle[0] == '-') {
|
||||||
|
pos = strchr(haystack, needle[1]);
|
||||||
c = needle[1];
|
}
|
||||||
|
|
||||||
pos = strchr(haystack, c);
|
|
||||||
|
|
||||||
return (pos != NULL);
|
return (pos != NULL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue