Revision: 76903
http://sourceforge.net/p/brlcad/code/76903
Author: brlcad
Date: 2020-08-23 16:12:28 +0000 (Sun, 23 Aug 2020)
Log Message:
-----------
make sure we're not dereferencing null
Modified Paths:
--------------
brlcad/trunk/src/libtclcad/tclcad_obj.c
brlcad/trunk/src/libtclcad/view/util.c
Modified: brlcad/trunk/src/libtclcad/tclcad_obj.c
===================================================================
--- brlcad/trunk/src/libtclcad/tclcad_obj.c 2020-08-23 16:10:28 UTC (rev
76902)
+++ brlcad/trunk/src/libtclcad/tclcad_obj.c 2020-08-23 16:12:28 UTC (rev
76903)
@@ -547,6 +547,7 @@
ged_func_ptr to_func;
};
+
static struct to_cmdtab ged_cmds[] = {
{"3ptarb", (char *)0, TO_UNLIMITED, to_more_args_func, ged_3ptarb},
{"adc", "args", 7, to_view_func, ged_adc},
@@ -820,7 +821,6 @@
};
-
static struct to_cmdtab to_cmds[] = {
{"autoview", "vname", TO_UNLIMITED, to_autoview, GED_FUNC_PTR_NULL},
{"base2local", (char *)0, TO_UNLIMITED, to_base2local,
GED_FUNC_PTR_NULL},
@@ -954,6 +954,7 @@
{(char *)0, (char *)0, 0, TO_WRAPPER_FUNC_PTR_NULL,
GED_FUNC_PTR_NULL}
};
+
/**
* @brief create the Tcl command for to_open
*
@@ -1083,6 +1084,7 @@
}
}
+
/**
* @brief
* Called by Tcl when the object is destroyed.
@@ -1106,7 +1108,8 @@
// There is a top level command created in the Tcl interp that is
the name
// of the dm. Clear that command.
const char *dm_tcl_cmd = bu_vls_cstr(dm_get_pathname((struct dm
*)gdvp->dmp));
- Tcl_DeleteCommand(top->to_interp, dm_tcl_cmd);
+ if (dm_tcl_cmd)
+ Tcl_DeleteCommand(top->to_interp, dm_tcl_cmd);
// Close the dm. This is not done by libged because libged only
manages the
// data bview knows about. From bview's perspective, dmp is just a
pointer
@@ -1191,6 +1194,7 @@
}
}
+
void
tclcad_delete_io_handler(struct ged_subprocess *p, bu_process_io_t d)
{
@@ -1202,6 +1206,7 @@
}
}
+
#else
void
tclcad_create_io_handler(struct ged_subprocess *p, bu_process_io_t d,
ged_io_func_t callback, void *data)
@@ -1216,6 +1221,7 @@
}
}
+
void
tclcad_delete_io_handler(struct ged_subprocess *p, bu_process_io_t d)
{
@@ -2887,257 +2893,259 @@
struct bu_vls bindings = BU_VLS_INIT_ZERO;
if (dm_get_pathname((struct dm *)gdvp->dmp)) {
- bu_vls_printf(&bindings, "bind %s <Configure> {%s configure %s; break};
",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Enter> {focus %s; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)));
- bu_vls_printf(&bindings, "bind %s <Expose> {%s handle_expose %s %%c;
break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "catch {wm protocol %s WM_DELETE_WINDOW {%s
delete_view %s; break}}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
+ struct bu_vls *pathvls = dm_get_pathname((struct dm *)gdvp->dmp);
+ if (pathvls) {
+ bu_vls_printf(&bindings, "bind %s <Configure> {%s configure %s;
break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Enter> {focus %s; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(pathvls));
+ bu_vls_printf(&bindings, "bind %s <Expose> {%s handle_expose %s
%%c; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "catch {wm protocol %s WM_DELETE_WINDOW
{%s delete_view %s; break}}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
- /* Mouse Bindings */
- bu_vls_printf(&bindings, "bind %s <2> {%s vslew %s %%x %%y; focus %s;
break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name),
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)));
- bu_vls_printf(&bindings, "bind %s <1> {%s zoom %s 0.5; focus %s;
break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name),
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)));
- bu_vls_printf(&bindings, "bind %s <3> {%s zoom %s 2.0; focus %s;
break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name),
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)));
- bu_vls_printf(&bindings, "bind %s <4> {%s zoom %s 1.1; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <5> {%s zoom %s 0.9; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <MouseWheel> {if {%%D < 0} {%s zoom
%s 0.9} else {%s zoom %s 1.1}; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
+ /* Mouse Bindings */
+ bu_vls_printf(&bindings, "bind %s <2> {%s vslew %s %%x %%y; focus
%s; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name),
+ bu_vls_addr(pathvls));
+ bu_vls_printf(&bindings, "bind %s <1> {%s zoom %s 0.5; focus %s;
break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name),
+ bu_vls_addr(pathvls));
+ bu_vls_printf(&bindings, "bind %s <3> {%s zoom %s 2.0; focus %s;
break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name),
+ bu_vls_addr(pathvls));
+ bu_vls_printf(&bindings, "bind %s <4> {%s zoom %s 1.1; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <5> {%s zoom %s 0.9; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <MouseWheel> {if {%%D < 0} {%s
zoom %s 0.9} else {%s zoom %s 1.1}; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
- /* Idle Mode */
- bu_vls_printf(&bindings, "bind %s <ButtonRelease> {%s idle_mode %s}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <KeyRelease-Control_L> {%s idle_mode
%s}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <KeyRelease-Control_R> {%s idle_mode
%s}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <KeyRelease-Shift_L> {%s idle_mode
%s}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <KeyRelease-Shift_R> {%s idle_mode
%s}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <KeyRelease-Alt_L> {%s idle_mode %s;
break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <KeyRelease-Alt_R> {%s idle_mode %s;
break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
+ /* Idle Mode */
+ bu_vls_printf(&bindings, "bind %s <ButtonRelease> {%s idle_mode
%s}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <KeyRelease-Control_L> {%s
idle_mode %s}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <KeyRelease-Control_R> {%s
idle_mode %s}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <KeyRelease-Shift_L> {%s
idle_mode %s}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <KeyRelease-Shift_R> {%s
idle_mode %s}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <KeyRelease-Alt_L> {%s idle_mode
%s; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <KeyRelease-Alt_R> {%s idle_mode
%s; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
- /* Rotate Mode */
- bu_vls_printf(&bindings, "bind %s <Control-ButtonRelease-1> {%s
idle_mode %s}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Control-ButtonPress-1> {%s
rotate_mode %s %%x %%y}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Control-ButtonPress-2> {%s
rotate_mode %s %%x %%y}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Control-ButtonPress-3> {%s
rotate_mode %s %%x %%y}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
+ /* Rotate Mode */
+ bu_vls_printf(&bindings, "bind %s <Control-ButtonRelease-1> {%s
idle_mode %s}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Control-ButtonPress-1> {%s
rotate_mode %s %%x %%y}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Control-ButtonPress-2> {%s
rotate_mode %s %%x %%y}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Control-ButtonPress-3> {%s
rotate_mode %s %%x %%y}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
- /* Translate Mode */
- bu_vls_printf(&bindings, "bind %s <Shift-ButtonRelease-1> {%s idle_mode
%s}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Shift-ButtonPress-1> {%s
translate_mode %s %%x %%y}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Shift-ButtonPress-2> {%s
translate_mode %s %%x %%y}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Shift-ButtonPress-3> {%s
translate_mode %s %%x %%y}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
+ /* Translate Mode */
+ bu_vls_printf(&bindings, "bind %s <Shift-ButtonRelease-1> {%s
idle_mode %s}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Shift-ButtonPress-1> {%s
translate_mode %s %%x %%y}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Shift-ButtonPress-2> {%s
translate_mode %s %%x %%y}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Shift-ButtonPress-3> {%s
translate_mode %s %%x %%y}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
- /* Scale Mode */
- bu_vls_printf(&bindings, "bind %s <Control-Shift-ButtonRelease-1> {%s
idle_mode %s}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Control-Shift-ButtonPress-1> {%s
scale_mode %s %%x %%y}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Control-Shift-ButtonPress-2> {%s
scale_mode %s %%x %%y}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Control-Shift-ButtonPress-3> {%s
scale_mode %s %%x %%y}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
+ /* Scale Mode */
+ bu_vls_printf(&bindings, "bind %s <Control-Shift-ButtonRelease-1>
{%s idle_mode %s}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Control-Shift-ButtonPress-1> {%s
scale_mode %s %%x %%y}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Control-Shift-ButtonPress-2> {%s
scale_mode %s %%x %%y}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Control-Shift-ButtonPress-3> {%s
scale_mode %s %%x %%y}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
- /* Constrained Rotate Mode */
- bu_vls_printf(&bindings, "bind %s <Control-Lock-ButtonRelease-1> {%s
idle_mode %s}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Control-Lock-ButtonPress-1> {%s
constrain_rmode %s x %%x %%y; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Control-Lock-ButtonPress-2> {%s
constrain_rmode %s y %%x %%y; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Control-Lock-ButtonPress-3> {%s
constrain_rmode %s z %%x %%y; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
+ /* Constrained Rotate Mode */
+ bu_vls_printf(&bindings, "bind %s <Control-Lock-ButtonRelease-1>
{%s idle_mode %s}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Control-Lock-ButtonPress-1> {%s
constrain_rmode %s x %%x %%y; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Control-Lock-ButtonPress-2> {%s
constrain_rmode %s y %%x %%y; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Control-Lock-ButtonPress-3> {%s
constrain_rmode %s z %%x %%y; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
- /* Constrained Translate Mode */
- bu_vls_printf(&bindings, "bind %s <Shift-Lock-ButtonRelease-1> {%s
idle_mode %s; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Shift-Lock-ButtonPress-1> {%s
constrain_tmode %s x %%x %%y; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Shift-Lock-ButtonPress-2> {%s
constrain_tmode %s y %%x %%y; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Shift-Lock-ButtonPress-3> {%s
constrain_tmode %s z %%x %%y; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
+ /* Constrained Translate Mode */
+ bu_vls_printf(&bindings, "bind %s <Shift-Lock-ButtonRelease-1> {%s
idle_mode %s; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Shift-Lock-ButtonPress-1> {%s
constrain_tmode %s x %%x %%y; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Shift-Lock-ButtonPress-2> {%s
constrain_tmode %s y %%x %%y; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Shift-Lock-ButtonPress-3> {%s
constrain_tmode %s z %%x %%y; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
- /* Key Bindings */
- bu_vls_printf(&bindings, "bind %s 3 {%s aet %s 35 25; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s 4 {%s aet %s 45 45; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s f {%s aet %s 0 0; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s F {%s aet %s 0 0; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s R {%s aet %s 180 0; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s r {%s aet %s 270 0; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s l {%s aet %s 90 0; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s L {%s aet %s 90 0; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s t {%s aet %s 270 90; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s T {%s aet %s 270 90; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s b {%s aet %s 270 -90; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s B {%s aet %s 270 -90; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s + {%s zoom %s 2.0; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s = {%s zoom %s 2.0; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s _ {%s zoom %s 0.5; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s - {%s zoom %s 0.5; break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Key-Left> {%s rot %s -v 0 1 0;
break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Key-Right> {%s rot %s -v 0 -1 0;
break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Key-Up> {%s rot %s -v 1 0 0; break};
",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
- bu_vls_printf(&bindings, "bind %s <Key-Down> {%s rot %s -v -1 0 0;
break}; ",
- bu_vls_addr(dm_get_pathname((struct dm *)gdvp->dmp)),
- bu_vls_addr(¤t_top->to_gedp->go_name),
- bu_vls_addr(&gdvp->gv_name));
+ /* Key Bindings */
+ bu_vls_printf(&bindings, "bind %s 3 {%s aet %s 35 25; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s 4 {%s aet %s 45 45; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s f {%s aet %s 0 0; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s F {%s aet %s 0 0; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s R {%s aet %s 180 0; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s r {%s aet %s 270 0; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s l {%s aet %s 90 0; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s L {%s aet %s 90 0; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s t {%s aet %s 270 90; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s T {%s aet %s 270 90; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s b {%s aet %s 270 -90; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s B {%s aet %s 270 -90; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s + {%s zoom %s 2.0; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s = {%s zoom %s 2.0; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s _ {%s zoom %s 0.5; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s - {%s zoom %s 0.5; break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Key-Left> {%s rot %s -v 0 1 0;
break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Key-Right> {%s rot %s -v 0 -1 0;
break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Key-Up> {%s rot %s -v 1 0 0;
break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
+ bu_vls_printf(&bindings, "bind %s <Key-Down> {%s rot %s -v -1 0 0;
break}; ",
+ bu_vls_addr(pathvls),
+ bu_vls_addr(¤t_top->to_gedp->go_name),
+ bu_vls_addr(&gdvp->gv_name));
-
- Tcl_Eval(current_top->to_interp, bu_vls_addr(&bindings));
+ Tcl_Eval(current_top->to_interp, bu_vls_addr(&bindings));
+ }
}
bu_vls_free(&bindings);
}
@@ -3490,7 +3498,6 @@
};
-
HIDDEN void
redraw_edited_paths(struct bu_hash_tbl *t, void *udata)
{
@@ -3763,7 +3770,6 @@
}
-
HIDDEN int
to_local2base(struct ged *gedp,
int UNUSED(argc),
@@ -3849,7 +3855,6 @@
}
-
HIDDEN int
to_edit_motion_delta_callback(struct ged *gedp,
int argc,
@@ -5901,7 +5906,6 @@
}
-
HIDDEN int
to_view_callback(struct ged *gedp,
int argc,
@@ -6321,6 +6325,7 @@
return GED_OK;
}
+
/*************************** Local Utility Functions
***************************/
HIDDEN void
@@ -6389,6 +6394,7 @@
}
}
+
HIDDEN void
to_rt_end_callback_internal(int aborted)
{
Modified: brlcad/trunk/src/libtclcad/view/util.c
===================================================================
--- brlcad/trunk/src/libtclcad/view/util.c 2020-08-23 16:10:28 UTC (rev
76902)
+++ brlcad/trunk/src/libtclcad/view/util.c 2020-08-23 16:12:28 UTC (rev
76903)
@@ -61,8 +61,11 @@
Tcl_Obj *our_result;
Tcl_Obj *saved_result;
int result_int;
- const char *pathname = bu_vls_addr(dm_get_pathname((struct dm
*)gdvp->dmp));
+ const char *pathname;
+ const struct bu_vls *pathvls = dm_get_pathname((struct dm *)gdvp->dmp);
+ pathname = bu_vls_addr(pathvls);
+
/* stash any existing result so we can inspect our own */
saved_result = Tcl_GetObjResult(current_top->to_interp);
Tcl_IncrRefCount(saved_result);
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