summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2003-07-10 09:04:54 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2003-07-10 09:04:54 +0000
commit3577d2c1fa3faa196a80e4867ab099f0fe6f3318 (patch)
tree05f7134dcf23bf7f38cc1cc9c6f4888e7ccd898d
parentc06215411e2d870e9ad25769d6abddb2efd3d536 (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.h5
-rw-r--r--otherlibs/labltk/support/cltkEval.c7
-rw-r--r--otherlibs/labltk/tkanim/cltkaniminit.c4
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;
}