Revision: 1969
http://nagiosplug.svn.sourceforge.net/nagiosplug/?rev=1969&view=rev
Author: dermoth
Date: 2008-03-31 00:04:07 -0700 (Mon, 31 Mar 2008)
Log Message:
-----------
Fix bug with --extra-opts as last argument with no value
Fix problem with duplicate function name (function should eventually move to /lib)
Modified Paths:
--------------
nagiosplug/trunk/lib/extra_opts.c
nagiosplug/trunk/lib/tests/test_opts.c
Modified: nagiosplug/trunk/lib/extra_opts.c
===================================================================
--- nagiosplug/trunk/lib/extra_opts.c 2008-03-31 05:31:14 UTC (rev 1968)
+++ nagiosplug/trunk/lib/extra_opts.c 2008-03-31 07:04:07 UTC (rev 1969)
@@ -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 @@
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 */
Modified: nagiosplug/trunk/lib/tests/test_opts.c
===================================================================
--- nagiosplug/trunk/lib/tests/test_opts.c 2008-03-31 05:31:14 UTC (rev 1968)
+++ nagiosplug/trunk/lib/tests/test_opts.c 2008-03-31 07:04:07 UTC (rev 1969)
@@ -59,7 +59,7 @@
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 @@
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 @@
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 **));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.