[Nagiosplug-checkins] SF.net SVN: nagiosplug: [1969] nagiosplug/trunk/lib

dermoth at users.sourceforge.net dermoth at users.sourceforge.net
Mon Mar 31 09:04:11 CEST 2008


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.




More information about the Commits mailing list