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