X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fmb-multibyte.h;h=3d2aa08e15b705e953f08ec46e64d4b7b54ed278;hb=c055fb9d54088bf2dff25f6be1a033ff0cea5f92;hp=69f137cc3124c002a6a681dba0ae3c7248ad6a6a;hpb=97db4061be5b7d6788a853fb737da060625bf804;p=chise%2Fxemacs-chise.git- diff --git a/src/mb-multibyte.h b/src/mb-multibyte.h index 69f137c..3d2aa08 100644 --- a/src/mb-multibyte.h +++ b/src/mb-multibyte.h @@ -24,6 +24,29 @@ Boston, MA 02111-1307, USA. */ #ifndef _XEMACS_MB_MULTIBYTE_H #define _XEMACS_MB_MULTIBYTE_H +/************************************************************************/ +/* Operations on individual bytes */ +/* of any format */ +/************************************************************************/ + +/* Argument `c' should be (unsigned int) or (unsigned char). */ +/* Note that SP and DEL are not included. */ + +#define BYTE_ASCII_P(c) ((c) < 0x80) +#define BYTE_C0_P(c) ((c) < 0x20) +/* Do some forced casting just to make *sure* things are gotten right. */ +#define BYTE_C1_P(c) ((unsigned int) ((unsigned int) (c) - 0x80) < 0x20) + + +/************************************************************************/ +/* Dealing with characters */ +/************************************************************************/ + +/* Is this character represented by more than one byte in a string? */ + +#define CHAR_MULTIBYTE_P(c) ((c) >= 0x80) + + /* ---------------------------------------------------------------------- */ /* (A) For working with charptr's (pointers to internally-formatted text) */ /* ---------------------------------------------------------------------- */ @@ -86,4 +109,18 @@ charptr_copy_char (CONST Bufbyte *ptr, Bufbyte *ptr2) non_ascii_charptr_copy_char (ptr, ptr2); } + +/************************************************************************/ +/* Exported functions */ +/************************************************************************/ + +Emchar Lstream_get_emchar_1 (Lstream *stream, int first_char); +int Lstream_fput_emchar (Lstream *stream, Emchar ch); +void Lstream_funget_emchar (Lstream *stream, Emchar ch); + +int copy_internal_to_external (CONST Bufbyte *internal, Bytecount len, + unsigned char *external); +Bytecount copy_external_to_internal (CONST unsigned char *external, + int len, Bufbyte *internal); + #endif /* _XEMACS_MB_MULTIBYTE_H */