Revision: 75527
          http://sourceforge.net/p/brlcad/code/75527
Author:   starseeker
Date:     2020-04-22 13:59:24 +0000 (Wed, 22 Apr 2020)
Log Message:
-----------
Make the dm lookup case insensitive

Modified Paths:
--------------
    brlcad/branches/dm-fb-merge/src/libdm/dm_init.cpp
    brlcad/branches/dm-fb-merge/src/libdm/dm_plugins.cpp
    brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c

Modified: brlcad/branches/dm-fb-merge/src/libdm/dm_init.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/dm_init.cpp   2020-04-22 13:29:12 UTC 
(rev 75526)
+++ brlcad/branches/dm-fb-merge/src/libdm/dm_init.cpp   2020-04-22 13:59:24 UTC 
(rev 75527)
@@ -33,6 +33,7 @@
 #include "bu/file.h"
 #include "bu/vls.h"
 
+#include <algorithm>
 #include <map>
 #include <set>
 #include <string>
@@ -105,6 +106,7 @@
            const struct dm *d = plugin->p;
            const char *dname = dm_get_name(d);
            std::string key(dname);
+           std::transform(key.begin(), key.end(), key.begin(), [](unsigned 
char c){ return std::tolower(c); });
            if (dm_map.find(key) != dm_map.end()) {
                bu_vls_printf(dm_init_msg_str, "Warning - file '%s' provides 
backend '%s' but that backend has already been loaded, skipping\n", pfile, 
dname);
                bu_dlclose(dl_handle);

Modified: brlcad/branches/dm-fb-merge/src/libdm/dm_plugins.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/dm_plugins.cpp        2020-04-22 
13:29:12 UTC (rev 75526)
+++ brlcad/branches/dm-fb-merge/src/libdm/dm_plugins.cpp        2020-04-22 
13:59:24 UTC (rev 75527)
@@ -1,6 +1,9 @@
 #include "common.h"
-#include <string.h>
 
+#include <algorithm>
+#include <map>
+#include <string>
+
 #include "bu/app.h"
 #include "bu/dylib.h"
 #include "bu/file.h"
@@ -21,7 +24,9 @@
        return dm_null.i->dm_open(interp, argc, argv);
     }
     std::map<std::string, const struct dm *> *dmb = (std::map<std::string, 
const struct dm *> *)dm_backends;
-    std::map<std::string, const struct dm *>::iterator d_it = 
dmb->find(std::string(type));
+    std::string key(type);
+    std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c){ 
return std::tolower(c); });
+    std::map<std::string, const struct dm *>::iterator d_it = dmb->find(key);
     if (d_it == dmb->end()) {
        return DM_NULL;
     }
@@ -72,7 +77,9 @@
     int i = 0;
     const char *b = priority_list[i];
     while (!BU_STR_EQUAL(b, "nu")) {
-       std::map<std::string, const struct dm *>::iterator d_it = 
dmb->find(std::string(b));
+       std::string key(b);
+       std::transform(key.begin(), key.end(), key.begin(), [](unsigned char 
c){ return std::tolower(c); });
+       std::map<std::string, const struct dm *>::iterator d_it = 
dmb->find(key);
        if (d_it == dmb->end()) {
            i++;
            b = priority_list[i];
@@ -98,7 +105,9 @@
        return 1;
     }
     std::map<std::string, const struct dm *> *dmb = (std::map<std::string, 
const struct dm *> *)dm_backends;
-    std::map<std::string, const struct dm *>::iterator d_it = 
dmb->find(std::string(name));
+    std::string key(name);
+    std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c){ 
return std::tolower(c); });
+    std::map<std::string, const struct dm *>::iterator d_it = dmb->find(key);
     if (d_it == dmb->end()) {
        return 0;
     }
@@ -130,7 +139,9 @@
     int i = 0;
     const char *b = priority_list[i];
     while (!BU_STR_EQUAL(b, "nu")) {
-       std::map<std::string, const struct dm *>::iterator d_it = 
dmb->find(std::string(b));
+       std::string key(b);
+       std::transform(key.begin(), key.end(), key.begin(), [](unsigned char 
c){ return std::tolower(c); });
+       std::map<std::string, const struct dm *>::iterator d_it = 
dmb->find(key);
        if (d_it == dmb->end()) {
            i++;
            b = priority_list[i];
@@ -164,7 +175,9 @@
     int i = 0;
     const char *b = priority_list[i];
     while (!BU_STR_EQUAL(b, "nu")) {
-       std::map<std::string, const struct dm *>::iterator d_it = 
dmb->find(std::string(b));
+       std::string key(b);
+       std::transform(key.begin(), key.end(), key.begin(), [](unsigned char 
c){ return std::tolower(c); });
+       std::map<std::string, const struct dm *>::iterator d_it = 
dmb->find(key);
        if (d_it == dmb->end()) {
            i++;
            b = priority_list[i];

Modified: brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c    2020-04-22 13:29:12 UTC 
(rev 75526)
+++ brlcad/branches/dm-fb-merge/src/libdm/tk/dm-tk.c    2020-04-22 13:59:24 UTC 
(rev 75527)
@@ -1164,7 +1164,7 @@
     0,                         /* no stereo */
     PLOTBOUND,                 /* zoom-in limit */
     1,                         /* bound flag */
-    "tk",
+    "Tk",
     "Tcl/Tk Abstraction Layer",
     1,
     0,

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