comparison src/if_mzsch.h @ 4074:16e8a09e8ab0 v7.3.791

updated for version 7.3.791 Problem: MzScheme interface doesn't work propely. Solution: Make it work better. (Sergey Khorev)
author Bram Moolenaar <bram@vim.org>
date Wed, 30 Jan 2013 14:55:42 +0100
parents ea4bf6df1a8a
children 068f397d0da4
comparison
equal deleted inserted replaced
4073:e362db8b2d7b 4074:16e8a09e8ab0
5 #ifndef _IF_MZSCH_H_ 5 #ifndef _IF_MZSCH_H_
6 #define _IF_MZSCH_H_ 6 #define _IF_MZSCH_H_
7 #ifdef __MINGW32__ 7 #ifdef __MINGW32__
8 /* Hack to engage Cygwin-specific settings */ 8 /* Hack to engage Cygwin-specific settings */
9 # define __CYGWIN32__ 9 # define __CYGWIN32__
10 # include <stdint.h>
10 #endif 11 #endif
11 12
12 /* #ifdef needed for "make depend" */ 13 /* #ifdef needed for "make depend" */
13 #ifdef FEAT_MZSCHEME 14 #ifdef FEAT_MZSCHEME
14 # include <schvers.h> 15 # include <schvers.h>
18 #ifdef __MINGW32__ 19 #ifdef __MINGW32__
19 # undef __CYGWIN32__ 20 # undef __CYGWIN32__
20 #endif 21 #endif
21 22
22 #if MZSCHEME_VERSION_MAJOR >= 299 23 #if MZSCHEME_VERSION_MAJOR >= 299
23 /* macros to be compatible with 20x versions */ 24 # define SCHEME_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) || SCHEME_CHAR_STRINGP(obj))
24 # define scheme_config scheme_current_config() 25 # define BYTE_STRING_VALUE(obj) ((char_u *)SCHEME_BYTE_STR_VAL(obj))
25 # define scheme_make_string scheme_make_byte_string 26 #else
26 # define scheme_make_string_output_port scheme_make_byte_string_output_port 27 /* macros for compatibility with older versions */
27 # define scheme_get_sized_string_output scheme_get_sized_byte_string_output 28 # define scheme_current_config() scheme_config
28 # define scheme_write_string scheme_write_byte_string 29 # define scheme_make_sized_byte_string scheme_make_sized_string
29 # define scheme_make_sized_string scheme_make_sized_byte_string 30 # define scheme_format_utf8 scheme_format
31 # ifndef DYNAMIC_MZSCHEME
32 /* for dynamic MzScheme there will be separate definitions in if_mzsch.c */
33 # define scheme_get_sized_byte_string_output scheme_get_sized_string_output
34 # define scheme_make_byte_string scheme_make_string
35 # define scheme_make_byte_string_output_port scheme_make_string_output_port
36 # endif
30 37
31 # define SCHEME_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) || SCHEME_CHAR_STRINGP(obj))
32 # define SCHEME_STR_VAL(obj) SCHEME_BYTE_STR_VAL( \
33 (SCHEME_BYTE_STRINGP(obj) ? obj : scheme_char_string_to_byte_string(obj)))
34 # define GUARANTEE_STRING(fname, argnum) GUARANTEE_TYPE(fname, argnum, SCHEME_STRINGP, "string")
35
36 # ifdef scheme_format
37 # undef scheme_format
38 # endif
39 # define scheme_format scheme_format_utf8
40
41 # define SCHEME_GET_BYTE_STRING(obj) (SCHEME_BYTE_STRINGP(obj) ? obj : \
42 scheme_char_string_to_byte_string(obj))
43 #else
44 # define SCHEME_GET_BYTE_STRING(obj) (obj)
45 # define SCHEME_BYTE_STRLEN_VAL SCHEME_STRLEN_VAL 38 # define SCHEME_BYTE_STRLEN_VAL SCHEME_STRLEN_VAL
46 # define SCHEME_BYTE_STR_VAL SCHEME_STR_VAL 39 # define BYTE_STRING_VALUE(obj) ((char_u *)SCHEME_STR_VAL(obj))
47 # define scheme_byte_string_to_char_string(obj) (obj) 40 # define scheme_byte_string_to_char_string(obj) (obj)
41 # define SCHEME_BYTE_STRINGP SCHEME_STRINGP
48 #endif 42 #endif
49 43
50 /* Precise GC macros */ 44 /* Precise GC macros */
51 #ifndef MZ_GC_DECL_REG 45 #ifndef MZ_GC_DECL_REG
52 # define MZ_GC_DECL_REG(size) /* empty */ 46 # define MZ_GC_DECL_REG(size) /* empty */