Revision: 65192
          http://sourceforge.net/p/brlcad/code/65192
Author:   starseeker
Date:     2015-06-05 01:05:53 +0000 (Fri, 05 Jun 2015)
Log Message:
-----------
Add proof-of-concept test for negative number parsing

Modified Paths:
--------------
    brlcad/trunk/src/libbu/opt.c
    brlcad/trunk/src/libbu/tests/CMakeLists.txt
    brlcad/trunk/src/libbu/tests/opt.c

Modified: brlcad/trunk/src/libbu/opt.c
===================================================================
--- brlcad/trunk/src/libbu/opt.c        2015-06-05 00:45:22 UTC (rev 65191)
+++ brlcad/trunk/src/libbu/opt.c        2015-06-05 01:05:53 UTC (rev 65192)
@@ -691,6 +691,30 @@
     return ret;
 }
 
+
+int
+bu_opt_arg_int(struct bu_vls *UNUSED(msg), struct bu_opt_data *data)
+{
+    int i, ret;
+    if (!data) return 0;
+
+    if (data->argc != 1 || !data->argv || !data->argv[0]) {
+       data->valid = 0;
+       return 0;
+    }
+
+    ret = bu_sscanf(data->argv[0], "%i", &i);
+
+    if (ret == 0) {
+       data->valid = 0;
+       return 1;
+    } else {
+       return 1;
+    }
+
+}
+
+
 /*
  * Local Variables:
  * mode: C

Modified: brlcad/trunk/src/libbu/tests/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/libbu/tests/CMakeLists.txt 2015-06-05 00:45:22 UTC (rev 
65191)
+++ brlcad/trunk/src/libbu/tests/CMakeLists.txt 2015-06-05 01:05:53 UTC (rev 
65192)
@@ -470,6 +470,9 @@
 add_test(NAME bu_opt_2_12 COMMAND tester_bu_opt 2 --color=200 10 30)
 add_test(NAME bu_opt_2_13 COMMAND tester_bu_opt 2 --color=200/10/30)
 add_test(NAME bu_opt_2_14 COMMAND tester_bu_opt 2 --color=200 10 30 file)
+add_test(NAME bu_opt_3_00 COMMAND tester_bu_opt 3 -n)
+add_test(NAME bu_opt_3_01 COMMAND tester_bu_opt 3 -n 1)
+add_test(NAME bu_opt_3_02 COMMAND tester_bu_opt 3 -n -1)
 
 #
 #  *********** date-time.c tests ************

Modified: brlcad/trunk/src/libbu/tests/opt.c
===================================================================
--- brlcad/trunk/src/libbu/tests/opt.c  2015-06-05 00:45:22 UTC (rev 65191)
+++ brlcad/trunk/src/libbu/tests/opt.c  2015-06-05 01:05:53 UTC (rev 65192)
@@ -139,7 +139,15 @@
        BU_OPT_DESC_NULL
     };
 
+    enum d3_opt_ind {D3_HELP, D3_NUM};
+    struct bu_opt_desc d3[4] = {
+       {D3_HELP, 0, 0, "h", "help", NULL, "", help_str},
+       {D3_NUM, 1, 1, "n", "num", &bu_opt_arg_int, "#", "Read number"},
+       BU_OPT_DESC_NULL
+    };
 
+
+
     if (argc < 2)
        bu_exit(1, "ERROR: wrong number of parameters");
 
@@ -156,6 +164,9 @@
        case 2:
            (void)bu_opt_parse(&results, NULL, argc-2, argv+2, d2);
            break;
+       case 3:
+           (void)bu_opt_parse(&results, NULL, argc-2, argv+2, d3);
+           break;
     }
 
     if (results) {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to