diff options
Diffstat (limited to 'otherlibs/labltk/support')
-rw-r--r-- | otherlibs/labltk/support/camltk.h | 5 | ||||
-rw-r--r-- | otherlibs/labltk/support/cltkDMain.c | 2 | ||||
-rw-r--r-- | otherlibs/labltk/support/cltkEval.c | 8 | ||||
-rw-r--r-- | otherlibs/labltk/support/cltkMain.c | 8 | ||||
-rw-r--r-- | otherlibs/labltk/support/cltkMisc.c | 2 | ||||
-rw-r--r-- | otherlibs/labltk/support/cltkVar.c | 10 | ||||
-rw-r--r-- | otherlibs/labltk/support/cltkWait.c | 4 |
7 files changed, 22 insertions, 17 deletions
diff --git a/otherlibs/labltk/support/camltk.h b/otherlibs/labltk/support/camltk.h index 56cb29a68..5be206faa 100644 --- a/otherlibs/labltk/support/camltk.h +++ b/otherlibs/labltk/support/camltk.h @@ -27,6 +27,11 @@ #define CONST84 #endif +/* if Tcl_GetStringResult is not defined, we use interp->result */ +#ifndef Tcl_GetStringResult +# define Tcl_GetStringResult(interp) (interp->result) +#endif + /* cltkMisc.c */ /* copy a Caml string to the C heap. Must be deallocated with stat_free */ extern char *string_to_c(value s); diff --git a/otherlibs/labltk/support/cltkDMain.c b/otherlibs/labltk/support/cltkDMain.c index 9272e8fc2..3d9a4c2df 100644 --- a/otherlibs/labltk/support/cltkDMain.c +++ b/otherlibs/labltk/support/cltkDMain.c @@ -223,7 +223,7 @@ int Caml_Init(interp) if (0 == access(f,R_OK)) if (TCL_OK != Tcl_EvalFile(cltclinterp,f)) { stat_free(f); - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); }; stat_free(f); } diff --git a/otherlibs/labltk/support/cltkEval.c b/otherlibs/labltk/support/cltkEval.c index 168b9fe8f..cdd16a914 100644 --- a/otherlibs/labltk/support/cltkEval.c +++ b/otherlibs/labltk/support/cltkEval.c @@ -75,9 +75,9 @@ CAMLprim value camltk_tcl_eval(value str) switch (code) { case TCL_OK: - return tcl_string_to_caml(cltclinterp->result); + return tcl_string_to_caml(Tcl_GetStringResult(cltclinterp)); case TCL_ERROR: - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); default: /* TCL_BREAK, TCL_CONTINUE, TCL_RETURN */ tk_error("bad tcl result"); } @@ -234,9 +234,9 @@ CAMLprim value camltk_tcl_direct_eval(value v) switch (result) { case TCL_OK: - return tcl_string_to_caml (cltclinterp->result); + return tcl_string_to_caml (Tcl_GetStringResult(cltclinterp)); case TCL_ERROR: - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); default: /* TCL_BREAK, TCL_CONTINUE, TCL_RETURN */ tk_error("bad tcl result"); } diff --git a/otherlibs/labltk/support/cltkMain.c b/otherlibs/labltk/support/cltkMain.c index 2853b3856..eb4617a45 100644 --- a/otherlibs/labltk/support/cltkMain.c +++ b/otherlibs/labltk/support/cltkMain.c @@ -95,7 +95,7 @@ CAMLprim value camltk_opentk(value argv) } if (Tcl_Init(cltclinterp) != TCL_OK) - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); Tcl_SetVar(cltclinterp, "argv0", String_val (argv0), TCL_GLOBAL_ONLY); { /* Sets argv */ @@ -132,13 +132,13 @@ CAMLprim value camltk_opentk(value argv) } } if (Tk_Init(cltclinterp) != TCL_OK) - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); /* Retrieve the main window */ cltk_mainWindow = Tk_MainWindow(cltclinterp); if (NULL == cltk_mainWindow) - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); Tk_GeometryRequest(cltk_mainWindow,200,200); } @@ -165,7 +165,7 @@ CAMLprim value camltk_opentk(value argv) if (0 == access(f,R_OK)) if (TCL_OK != Tcl_EvalFile(cltclinterp,f)) { stat_free(f); - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); }; stat_free(f); } diff --git a/otherlibs/labltk/support/cltkMisc.c b/otherlibs/labltk/support/cltkMisc.c index 23364ad11..b19713cda 100644 --- a/otherlibs/labltk/support/cltkMisc.c +++ b/otherlibs/labltk/support/cltkMisc.c @@ -47,7 +47,7 @@ CAMLprim value camltk_splitlist (value v) case TCL_ERROR: default: stat_free( utf ); - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); } } diff --git a/otherlibs/labltk/support/cltkVar.c b/otherlibs/labltk/support/cltkVar.c index 674b8e9db..0411a94cd 100644 --- a/otherlibs/labltk/support/cltkVar.c +++ b/otherlibs/labltk/support/cltkVar.c @@ -38,8 +38,8 @@ CAMLprim value camltk_getvar(value var) stat_free(stable_var); if (s == NULL) - tk_error(cltclinterp->result); - else + tk_error(Tcl_GetStringResult(cltclinterp)); + else return(tcl_string_to_caml(s)); } @@ -64,8 +64,8 @@ CAMLprim value camltk_setvar(value var, value contents) stat_free(utf_contents); if (s == NULL) - tk_error(cltclinterp->result); - else + tk_error(Tcl_GetStringResult(cltclinterp)); + else return(Val_unit); } @@ -104,7 +104,7 @@ CAMLprim value camltk_trace_var(value var, value cbid) (ClientData) (Long_val(cbid))) != TCL_OK) { stat_free(cvar); - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); }; stat_free(cvar); return Val_unit; diff --git a/otherlibs/labltk/support/cltkWait.c b/otherlibs/labltk/support/cltkWait.c index a4fdab0c4..4c126b5d2 100644 --- a/otherlibs/labltk/support/cltkWait.c +++ b/otherlibs/labltk/support/cltkWait.c @@ -66,7 +66,7 @@ CAMLprim value camltk_wait_vis(value win, value cbid) vis->win = Tk_NameToWindow(cltclinterp, String_val(win), cltk_mainWindow); if (vis -> win == NULL) { stat_free((char *)vis); - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); }; vis->cbid = Int_val(cbid); Tk_CreateEventHandler(vis->win, VisibilityChangeMask, @@ -93,7 +93,7 @@ CAMLprim value camltk_wait_des(value win, value cbid) vis->win = Tk_NameToWindow(cltclinterp, String_val(win), cltk_mainWindow); if (vis -> win == NULL) { stat_free((char *)vis); - tk_error(cltclinterp->result); + tk_error(Tcl_GetStringResult(cltclinterp)); }; vis->cbid = Int_val(cbid); Tk_CreateEventHandler(vis->win, StructureNotifyMask, |