+#ifdef UTF2000
+#define SETUP_SYNTAX_CACHE_FOR_OBJECT(OBJECT, BUFFER, FROM, COUNT) \
+ do { \
+ syntax_cache.buffer = (BUFFER); \
+ syntax_cache.object = (OBJECT); \
+ if (NILP (syntax_cache.object)) \
+ { \
+ XSETBUFFER (syntax_cache.object, syntax_cache.buffer); \
+ } \
+ else if (EQ (syntax_cache.object, Qt)) \
+ { \
+ XSETBUFFER (syntax_cache.object, syntax_cache.buffer); \
+ } \
+ else if (STRINGP (syntax_cache.object)) \
+ { \
+ /* do nothing */; \
+ } \
+ else if (BUFFERP (syntax_cache.object)) \
+ { \
+ syntax_cache.buffer = XBUFFER (syntax_cache.object); \
+ } \
+ else \
+ { \
+ /* OBJECT must be buffer/string/t/nil */ \
+ assert(0); \
+ } \
+ syntax_cache.current_syntax_table \
+ = syntax_cache.buffer->syntax_table; \
+ syntax_cache.use_code = 0; \
+ if (lookup_syntax_properties) \
+ { \
+ SYNTAX_CACHE_STATISTICS_COUNT_INIT; \
+ update_syntax_cache ((FROM) + ((COUNT) > 0 ? 0 : -1), (COUNT)); \
+ } \
+ } while (0)
+#else