summaryrefslogtreecommitdiff
path: root/src/if_mzsch.h
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2004-07-05 15:58:32 +0000
committerBram Moolenaar <Bram@vim.org>2004-07-05 15:58:32 +0000
commit325b7a2fb5b970b77f7b9ec28ba15eb794f6edf8 (patch)
treea2b0cfed6da973286326442419e56938dc966ea4 /src/if_mzsch.h
parent592e0a2a1dbc542134c3fd88b4cdfa40e258f41b (diff)
downloadvim-git-325b7a2fb5b970b77f7b9ec28ba15eb794f6edf8.tar.gz
updated for version 7.0006
Diffstat (limited to 'src/if_mzsch.h')
-rw-r--r--src/if_mzsch.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/if_mzsch.h b/src/if_mzsch.h
new file mode 100644
index 000000000..88f6a54f9
--- /dev/null
+++ b/src/if_mzsch.h
@@ -0,0 +1,45 @@
+/* vi:set ts=8 sts=4 sw=4:
+ *
+ * MzScheme interface for Vim, wrapper around scheme.h
+ */
+#ifndef _IF_MZSCH_H_
+#define _IF_MZSCH_H_
+#ifdef __MINGW32__
+/* Hack to engage Cygwin-specific settings */
+# define __CYGWIN32__
+#endif
+
+#include <scheme.h>
+
+#ifdef __MINGW32__
+# undef __CYGWIN32__
+#endif
+
+#if MZSCHEME_VERSION_MAJOR >= 299
+/* macros to be compatible with 20x versions */
+# define scheme_config scheme_current_config()
+# define scheme_make_string scheme_make_byte_string
+# define scheme_make_string_output_port scheme_make_byte_string_output_port
+# define scheme_get_sized_string_output scheme_get_sized_byte_string_output
+# define scheme_write_string scheme_write_byte_string
+# define scheme_make_sized_string scheme_make_sized_byte_string
+
+# define SCHEME_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) || SCHEME_CHAR_STRINGP(obj))
+# define SCHEME_STR_VAL(obj) SCHEME_BYTE_STR_VAL( \
+ (SCHEME_BYTE_STRINGP(obj) ? obj : scheme_char_string_to_byte_string(obj)))
+# define GUARANTEE_STRING(fname, argnum) GUARANTEE_TYPE(fname, argnum, SCHEME_STRINGP, "string")
+
+# ifdef scheme_format
+# undef scheme_format
+# endif
+# define scheme_format scheme_format_utf8
+
+# define GET_BYTE_STRING(obj) (SCHEME_BYTE_STRINGP(obj) ? obj : \
+ scheme_char_string_to_byte_string(obj))
+#else
+# define GET_BYTE_STRING(obj) (obj)
+# define SCHEME_BYTE_STRLEN_VAL SCHEME_STRLEN_VAL
+# define SCHEME_BYTE_STR_VAL SCHEME_STR_VAL
+#endif
+
+#endif /* _IF_MZSCH_H_ */