Revision: 76823
          http://sourceforge.net/p/brlcad/code/76823
Author:   starseeker
Date:     2020-08-18 11:07:46 +0000 (Tue, 18 Aug 2020)
Log Message:
-----------
Rather than bu_log at the library level, let the calling code decide what to do 
about validating argv[0] with the information returned by the GED_UNKNOWN flag 
and argv[0] value itself.

Modified Paths:
--------------
    brlcad/trunk/src/libged/exec_mapping.cpp
    brlcad/trunk/src/libged/tests/plugins.cpp

Modified: brlcad/trunk/src/libged/exec_mapping.cpp
===================================================================
--- brlcad/trunk/src/libged/exec_mapping.cpp    2020-08-18 10:57:01 UTC (rev 
76822)
+++ brlcad/trunk/src/libged/exec_mapping.cpp    2020-08-18 11:07:46 UTC (rev 
76823)
@@ -38,7 +38,6 @@
            const char *fname = #x ; \
            int vret = ged_cmd_valid(argv[0], fname); \
            if (vret) { \
-               bu_log("Warning(%d): LIBGED command \"ged_" #x "\" called with 
argv[0] value \"%s\" which is not a known version of this command - overriding 
argv[0] with \"%s\"\n", vret, argv[0], fname); \
                argv[0] = fname; \
            }\
            int ret = ged_exec(gedp, argc, argv); \

Modified: brlcad/trunk/src/libged/tests/plugins.cpp
===================================================================
--- brlcad/trunk/src/libged/tests/plugins.cpp   2020-08-18 10:57:01 UTC (rev 
76822)
+++ brlcad/trunk/src/libged/tests/plugins.cpp   2020-08-18 11:07:46 UTC (rev 
76823)
@@ -368,11 +368,19 @@
     /* Deliberately call a ged function with invalid argv[0] */
     {
        const char *wav0 = "wrong_name";
-       int ret = ged_ls(gbp, 1, &wav0);
-       if (ret & GED_UNKNOWN) {
+       const char *wav[2];
+       wav[0] = wav0;
+       wav[1] = NULL;
+       int ret = ged_ls(gbp, 1, (const char **)wav);
+       if (ret & GED_UNKNOWN && wav[0] != wav0) {
            bu_log("\nged_ls called with command name \"%s\" correctly returned 
with GED_UNKNOWN set\n", wav0);
        } else {
-           bu_log("\nged_ls called with command name \"%s\" did not return 
with GED_UNKNOWN set\n", wav0);
+           if (!(ret & GED_UNKNOWN)) {
+               bu_log("\nged_ls called with command name \"%s\" did not return 
with GED_UNKNOWN set\n", wav0);
+           }
+           if (wav[0] == wav0) {
+               bu_log("\nged_ls called with command name \"%s\" did not 
override wav[0]\n", wav0);
+           }
        }
     }
 
@@ -380,11 +388,19 @@
      * command, just not one matching the function) */
     {
        const char *wav1 = "search";
-       int ret = ged_ls(gbp, 1, &wav1);
-       if (ret & GED_UNKNOWN) {
-           bu_log("\nged_ls called with command name \"%s\" reported expected 
error\n", wav1);
+       const char *wav[2];
+       wav[0] = wav1;
+       wav[1] = NULL;
+       int ret = ged_ls(gbp, 1, (const char **)wav);
+       if (ret & GED_UNKNOWN && wav[0] != wav1) {
+           bu_log("\nged_ls called with command name \"%s\" correctly returned 
with GED_UNKNOWN set\n", wav1);
        } else {
-           bu_log("\nged_ls called with command name \"%s\" did not report the 
expected error\n", wav1);
+           if (!(ret & GED_UNKNOWN)) {
+               bu_log("\nged_ls called with command name \"%s\" did not return 
with GED_UNKNOWN set\n", wav1);
+           }
+           if (wav[0] == wav1) {
+               bu_log("\nged_ls called with command name \"%s\" did not 
override wav[0]\n", wav1);
+           }
        }
     }
 

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