diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2003-07-10 09:04:54 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2003-07-10 09:04:54 +0000 |
commit | 3577d2c1fa3faa196a80e4867ab099f0fe6f3318 (patch) | |
tree | 05f7134dcf23bf7f38cc1cc9c6f4888e7ccd898d | |
parent | c06215411e2d870e9ad25769d6abddb2efd3d536 (diff) |
Meilleure solution au probleme des CAMLprim dans camltk.h
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5680 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | otherlibs/labltk/support/camltk.h | 5 | ||||
-rw-r--r-- | otherlibs/labltk/support/cltkEval.c | 7 | ||||
-rw-r--r-- | otherlibs/labltk/tkanim/cltkaniminit.c | 4 |
3 files changed, 11 insertions, 5 deletions
diff --git a/otherlibs/labltk/support/camltk.h b/otherlibs/labltk/support/camltk.h index 06505cf71..44354076a 100644 --- a/otherlibs/labltk/support/camltk.h +++ b/otherlibs/labltk/support/camltk.h @@ -25,7 +25,8 @@ extern value tcl_string_to_caml( char * ); extern char * caml_string_to_tcl( value ); /* cltkEval.c */ -CAMLprim Tcl_Interp *cltclinterp; /* The Tcl interpretor */ +extern Tcl_Interp *cltclinterp; /* The Tcl interpretor */ +extern Tcl_Interp * get_cltclinterp(void); extern value copy_string_list(int argc, char ** argv); /* cltkCaml.c */ @@ -34,7 +35,7 @@ extern value *tkerror_exn; extern value *handler_code; extern int CamlCBCmd(ClientData clientdata, Tcl_Interp *interp, int argc, char *argv[]); -CAMLprim void tk_error(char * errmsg) Noreturn; +extern void tk_error(char * errmsg) Noreturn; /* cltkMain.c */ extern int signal_events; diff --git a/otherlibs/labltk/support/cltkEval.c b/otherlibs/labltk/support/cltkEval.c index ae86452f2..5c9aeac12 100644 --- a/otherlibs/labltk/support/cltkEval.c +++ b/otherlibs/labltk/support/cltkEval.c @@ -30,7 +30,12 @@ #include "camltk.h" /* The Tcl interpretor */ -CAMLprim Tcl_Interp *cltclinterp = NULL; +Tcl_Interp *cltclinterp = NULL; + +CAMLexport Tcl_Interp * get_cltclinterp(void) +{ + return cltclinterp; +} /* Copy a list of strings from the C heap to Caml */ value copy_string_list(int argc, char **argv) diff --git a/otherlibs/labltk/tkanim/cltkaniminit.c b/otherlibs/labltk/tkanim/cltkaniminit.c index 7277ee17e..1839bbf80 100644 --- a/otherlibs/labltk/tkanim/cltkaniminit.c +++ b/otherlibs/labltk/tkanim/cltkaniminit.c @@ -19,10 +19,10 @@ extern int Tkanim_Init(Tcl_Interp *); -value tkanim_init (rien) /* ML */ +CAMLprim value tkanim_init (rien) /* ML */ value rien; { - if (Tkanim_Init(cltclinterp) != TCL_OK) + if (Tkanim_Init(get_cltclinterp()) != TCL_OK) tk_error ("Can't initialize TkAnim"); return Val_unit; } |