summaryrefslogtreecommitdiff
path: root/src/if_mzsch.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/if_mzsch.c')
-rw-r--r--src/if_mzsch.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/if_mzsch.c b/src/if_mzsch.c
index 9038195cb..4f0857748 100644
--- a/src/if_mzsch.c
+++ b/src/if_mzsch.c
@@ -29,6 +29,19 @@
* depend". */
#if defined(FEAT_MZSCHEME) || defined(PROTO)
+#ifdef PROTO
+typedef int Scheme_Object;
+typedef int Scheme_Closed_Prim;
+typedef int Scheme_Env;
+typedef int Scheme_Hash_Table;
+typedef int Scheme_Type;
+typedef int Scheme_Thread;
+typedef int Scheme_Closed_Prim;
+typedef int mzshort;
+typedef int Scheme_Prim;
+typedef int HINSTANCE;
+#endif
+
/*
* scheme_register_tls_space is only available on 32-bit Windows until
* racket-6.3. See
@@ -248,7 +261,7 @@ static int window_fixup_proc(void *obj)
# define BUFFER_REF(buf) (vim_mz_buffer *)((buf)->b_mzscheme_ref)
#endif
-#ifdef DYNAMIC_MZSCHEME
+#if defined(DYNAMIC_MZSCHEME) || defined(PROTO)
static Scheme_Object *dll_scheme_eof;
static Scheme_Object *dll_scheme_false;
static Scheme_Object *dll_scheme_void;
@@ -406,6 +419,8 @@ static void (*dll_scheme_register_embedded_load)(intptr_t len, const char *s);
static void (*dll_scheme_set_config_path)(Scheme_Object *p);
# endif
+#if defined(DYNAMIC_MZSCHEME) /* not when defined(PROTO) */
+
/* arrays are imported directly */
# define scheme_eof dll_scheme_eof
# define scheme_false dll_scheme_false
@@ -539,6 +554,8 @@ scheme_external_get_thread_local_variables(void)
# endif
# endif
+#endif
+
typedef struct
{
char *name;
@@ -866,7 +883,7 @@ mzvim_check_threads(void)
}
#endif
-#ifdef MZSCHEME_GUI_THREADS
+#if defined(MZSCHEME_GUI_THREADS) || defined(PROTO)
static void setup_timer(void);
static void remove_timer(void);