Revision: 76667
          http://sourceforge.net/p/brlcad/code/76667
Author:   starseeker
Date:     2020-08-06 16:11:47 +0000 (Thu, 06 Aug 2020)
Log Message:
-----------
Have the caller provide a vls to dm_list_types, remove some more DM ifdefs

Modified Paths:
--------------
    brlcad/trunk/include/dm.h
    brlcad/trunk/src/libdm/dm_plugins.cpp
    brlcad/trunk/src/libdm/tests/dm_test.c
    brlcad/trunk/src/libtclcad/dm.c
    brlcad/trunk/src/mged/attach.c

Modified: brlcad/trunk/include/dm.h
===================================================================
--- brlcad/trunk/include/dm.h   2020-08-06 14:53:49 UTC (rev 76666)
+++ brlcad/trunk/include/dm.h   2020-08-06 16:11:47 UTC (rev 76667)
@@ -171,7 +171,7 @@
                             const char *type,
                             int argc,
                             const char *argv[]);
-DM_EXPORT extern struct bu_vls *dm_list_types(const char *separator); /* free 
return list with bu_vls_free(list); BU_PUT(list, struct bu_vls); */
+DM_EXPORT extern void dm_list_types(struct bu_vls *list, const char 
*separator);
 DM_EXPORT const char *dm_bestXType(const char *dpy_string);
 
 

Modified: brlcad/trunk/src/libdm/dm_plugins.cpp
===================================================================
--- brlcad/trunk/src/libdm/dm_plugins.cpp       2020-08-06 14:53:49 UTC (rev 
76666)
+++ brlcad/trunk/src/libdm/dm_plugins.cpp       2020-08-06 16:11:47 UTC (rev 
76667)
@@ -61,13 +61,12 @@
     return dmp;
 }
 
-extern "C" struct bu_vls *
-dm_list_types(const char *separator)
+extern "C" void
+dm_list_types(struct bu_vls *list, const char *separator)
 {
-    struct bu_vls *list;
-    BU_GET(list, struct bu_vls);
-    bu_vls_init(list);
-    bu_vls_trunc(list, 0);
+    if (!list) {
+       return;
+    }
 
     // We've got something, and may need a separator
     struct bu_vls sep = BU_VLS_INIT_ZERO;
@@ -118,7 +117,6 @@
        b = priority_list[i];
     }
 #endif
-    return list;
 }
 
 extern "C" int

Modified: brlcad/trunk/src/libdm/tests/dm_test.c
===================================================================
--- brlcad/trunk/src/libdm/tests/dm_test.c      2020-08-06 14:53:49 UTC (rev 
76666)
+++ brlcad/trunk/src/libdm/tests/dm_test.c      2020-08-06 16:11:47 UTC (rev 
76667)
@@ -36,10 +36,10 @@
 
     bu_log("load msgs: %s\n", dm_init_msgs());
 
-    struct bu_vls *blist = dm_list_types("\n   ");
-    bu_log("Available types:\n %s\n", bu_vls_cstr(blist));
-    bu_vls_free(blist);
-    BU_PUT(blist, struct bu_vls);
+    struct bu_vls blist = BU_VLS_INIT_ZERO;
+    dm_list_types(&blist, "\n  ");
+    bu_log("Available types:\n %s\n", bu_vls_cstr(&blist));
+    bu_vls_free(&blist);
 
     int vtype;
     vtype = dm_valid_type("nu", NULL);

Modified: brlcad/trunk/src/libtclcad/dm.c
===================================================================
--- brlcad/trunk/src/libtclcad/dm.c     2020-08-06 14:53:49 UTC (rev 76666)
+++ brlcad/trunk/src/libtclcad/dm.c     2020-08-06 16:11:47 UTC (rev 76667)
@@ -2930,10 +2930,10 @@
            int UNUSED(argc),
            const char **UNUSED(argv))
 {
-    struct bu_vls *list = dm_list_types(",");
-    Tcl_SetResult(interp, bu_vls_addr(list), TCL_VOLATILE);
-    bu_vls_free(list);
-    BU_PUT(list, struct bu_vls);
+    struct bu_vls list = BU_VLS_INIT_ZERO;
+    dm_list_types(&list, ",");
+    Tcl_SetResult(interp, bu_vls_addr(&list), TCL_VOLATILE);
+    bu_vls_free(&list);
     return TCL_OK;
 }
 

Modified: brlcad/trunk/src/mged/attach.c
===================================================================
--- brlcad/trunk/src/mged/attach.c      2020-08-06 14:53:49 UTC (rev 76666)
+++ brlcad/trunk/src/mged/attach.c      2020-08-06 16:11:47 UTC (rev 76667)
@@ -264,45 +264,16 @@
 static void
 print_valid_dm(Tcl_Interp *interpreter)
 {
-    int i = 0;
     Tcl_AppendResult(interpreter, "\tThe following display manager types are 
valid: ", (char *)NULL);
-#ifdef DM_X
-    Tcl_AppendResult(interpreter, "X  ", (char *)NULL);
-    i++;
-#endif /* DM_X */
-#if 0
-#ifdef DM_TK
-    Tcl_AppendResult(interpreter, "tk  ", (char *)NULL);
-    i++;
-#endif /* DM_TK */
-#endif
-#ifdef DM_WGL
-    Tcl_AppendResult(interpreter, "wgl  ", (char *)NULL);
-    i++;
-#endif /* DM_WGL */
-#ifdef DM_OGL
-    Tcl_AppendResult(interpreter, "ogl  ", (char *)NULL);
-    i++;
-#endif /* DM_OGL */
-#ifdef DM_OSG
-    Tcl_AppendResult(interpreter, "osg  ", (char *)NULL);
-    i++;
-#endif /* DM_OSG*/
-#ifdef DM_OSGL
-    Tcl_AppendResult(interpreter, "osgl  ", (char *)NULL);
-    i++;
-#endif /* DM_OSGL*/
-#ifdef DM_GLX
-    Tcl_AppendResult(interpreter, "glx", (char *)NULL);
-    i++;
-#endif /* DM_GLX */
-#ifdef DM_QT
-    Tcl_AppendResult(interpreter, "qt", (char *)NULL);
-    i++;
-#endif /* DM_QT */
-    if (i == 0) {
+    struct bu_vls dm_types = BU_VLS_INIT_ZERO;
+    dm_list_types(&dm_types, " ");
+
+    if (bu_vls_strlen(&dm_types)) {
+       Tcl_AppendResult(interpreter, bu_vls_cstr(&dm_types), (char *)NULL);
+    } else {
        Tcl_AppendResult(interpreter, "NONE AVAILABLE", (char *)NULL);
     }
+    bu_vls_free(&dm_types);
     Tcl_AppendResult(interpreter, "\n", (char *)NULL);
 }
 
@@ -527,9 +498,10 @@
     struct bu_vls type = BU_VLS_INIT_ZERO;
 
     struct bu_vls type_msg = BU_VLS_INIT_ZERO;
-    struct bu_vls *dm_types = dm_list_types(" ");
-    char **dms = (char **)bu_calloc(bu_vls_strlen(dm_types), sizeof(char *), 
"dm name array");
-    int nargc = bu_argv_from_string(dms, bu_vls_strlen(dm_types), 
bu_vls_addr(dm_types));
+    struct bu_vls dm_types = BU_VLS_INIT_ZERO;
+    dm_list_types(&dm_types, " ");
+    char **dms = (char **)bu_calloc(bu_vls_strlen(&dm_types), sizeof(char *), 
"dm name array");
+    int nargc = bu_argv_from_string(dms, bu_vls_strlen(&dm_types), 
bu_vls_addr(&dm_types));
 
     bu_vls_sprintf(&type_msg, "attach (nu");
     for (int i = 0; i < nargc; i++) {
@@ -543,7 +515,7 @@
     }
     bu_vls_printf(&type_msg, ")[nu]? ");
     bu_free(dms, "array");
-    bu_vls_free(dm_types);
+    bu_vls_free(&dm_types);
 
     while (inflimit > 0) {
        bu_log("%s", bu_vls_cstr(&type_msg));

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