#ifndef _XEMACS_BUFFER_H_
#define _XEMACS_BUFFER_H_
-#ifdef MULE
-#include "mule-charset.h"
+#include "character.h"
+
+#ifdef UTF2000
+#include "mb-utf-8.h"
#endif
/************************************************************************/
#define REAL_INC_CHARPTR(ptr) \
((void) ((ptr) += REP_BYTES_BY_FIRST_BYTE (* (unsigned char *) (ptr))))
+#define REAL_INC_CHARBYTIND(ptr,pos) \
+ (pos += REP_BYTES_BY_FIRST_BYTE (* (unsigned char *) (ptr)))
+
#define REAL_DEC_CHARPTR(ptr) do { \
(ptr)--; \
} while (!VALID_CHARPTR_P (ptr))
REAL_INC_CHARPTR (ptr); \
} while (0)
+#define INC_CHARBYTIND(ptr,pos) do { \
+ ASSERT_VALID_CHARPTR (ptr); \
+ REAL_INC_CHARBYTIND (ptr,pos); \
+} while (0)
+
#define DEC_CHARPTR(ptr) do { \
CONST Bufbyte *dc_ptr1 = (ptr); \
CONST Bufbyte *dc_ptr2 = dc_ptr1; \
} while (0)
#else /* ! ERROR_CHECK_BUFPOS */
+#define INC_CHARBYTIND(ptr,pos) REAL_INC_CHARBYTIND (ptr,pos)
#define INC_CHARPTR(ptr) REAL_INC_CHARPTR (ptr)
#define DEC_CHARPTR(ptr) REAL_DEC_CHARPTR (ptr)
#endif /* ! ERROR_CHECK_BUFPOS */
/* (D) For working with Emchars */
/* ---------------------------- */
-#ifdef MULE
-
-#ifdef UTF2000
-#define valid_char_p(ch) 1
-#else
-int non_ascii_valid_char_p (Emchar ch);
-
-INLINE int valid_char_p (Emchar ch);
-INLINE int
-valid_char_p (Emchar ch)
-{
- return ((unsigned int) (ch) <= 0xff) || non_ascii_valid_char_p (ch);
-}
-#endif
-
-#else /* not MULE */
-
-#define valid_char_p(ch) ((unsigned int) (ch) <= 0xff)
-
-#endif /* not MULE */
-
#define CHAR_INTP(x) (INTP (x) && valid_char_p (XINT (x)))
#define CHAR_OR_CHAR_INTP(x) (CHARP (x) || CHAR_INTP (x))
#ifndef MULE
+typedef int Charset_ID;
+
#define Vcharset_ascii Qnil
#define CHAR_CHARSET(ch) Vcharset_ascii
/* from insdel.c */
void set_buffer_point (struct buffer *buf, Bufpos pos, Bytind bipos);
-void find_charsets_in_bufbyte_string (unsigned char *charsets,
+void find_charsets_in_bufbyte_string (Charset_ID *charsets,
CONST Bufbyte *str,
Bytecount len);
-void find_charsets_in_emchar_string (unsigned char *charsets,
+void find_charsets_in_emchar_string (Charset_ID *charsets,
CONST Emchar *str,
Charcount len);
int bufbyte_string_displayed_columns (CONST Bufbyte *str, Bytecount len);