mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-05-28 04:35:40 -04:00
Fix bug with --extra-opts as last argument with no value
Fix problem with duplicate function name (function should eventually move to /lib) git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1969 f882894a-f735-0410-b71e-b25c423dba1c
This commit is contained in:
parent
20a8bf1a3f
commit
d043862c15
2 changed files with 16 additions and 4 deletions
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
/* FIXME: copied from utils.h; we should move a bunch of libs! */
|
||||
int
|
||||
is_option (char *str)
|
||||
is_option2 (char *str)
|
||||
{
|
||||
if (!str)
|
||||
return 0;
|
||||
|
|
@ -67,7 +67,7 @@ char **np_extra_opts(int *argc, char **argv, const char *plugin_name){
|
|||
i--;
|
||||
*argc-=1;
|
||||
}else if(strcmp(argv[i], "--extra-opts")==0){
|
||||
if(!is_option(argv[i+1])){
|
||||
if((i+1<*argc)&&!is_option2(argv[i+1])){
|
||||
/* It is a argument with separate value */
|
||||
argptr=argv[i+1];
|
||||
/* Delete the extra-opts argument/value */
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ main (int argc, char **argv)
|
|||
char **argv_test=NULL, **argv_known=NULL;
|
||||
int i, argc_test;
|
||||
|
||||
plan_tests(11);
|
||||
plan_tests(12);
|
||||
|
||||
argv_test=(char **)malloc(2*sizeof(char **));
|
||||
argv_test[0] = "prog_name";
|
||||
|
|
@ -221,6 +221,18 @@ main (int argc, char **argv)
|
|||
argv_known[5] = NULL;
|
||||
argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
|
||||
ok(array_diff(argc_test, argv_test, 5, argv_known), "Default section 1");
|
||||
|
||||
argv_test=(char **)malloc(3*sizeof(char **));
|
||||
argv_test[0] = "prog_name";
|
||||
argv_test[1] = "--extra-opts";
|
||||
argv_test[2] = NULL;
|
||||
argc_test=2;
|
||||
argv_known=(char **)realloc(argv_known, 3*sizeof(char **));
|
||||
argv_known[0] = "prog_name";
|
||||
argv_known[1] = "--foo=bar";
|
||||
argv_known[2] = NULL;
|
||||
argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
|
||||
ok(array_diff(argc_test, argv_test, 2, argv_known), "Default section 2");
|
||||
my_free(&argc_test,argv_test);
|
||||
|
||||
argv_test=(char **)malloc(6*sizeof(char **));
|
||||
|
|
@ -239,7 +251,7 @@ main (int argc, char **argv)
|
|||
argv_known[4] = "val2";
|
||||
argv_known[5] = NULL;
|
||||
argv_test=np_extra_opts(&argc_test, argv_test, "check_disk");
|
||||
ok(array_diff(argc_test, argv_test, 5, argv_known), "Default section 2");
|
||||
ok(array_diff(argc_test, argv_test, 5, argv_known), "Default section 3");
|
||||
my_free(&argc_test,argv_test);
|
||||
|
||||
argv_test=(char **)malloc(6*sizeof(char **));
|
||||
|
|
|
|||
Loading…
Reference in a new issue