diff src/lstream.h @ 70:131b0175ea99 r20-0b30

Import from CVS: tag r20-0b30
author cvs
date Mon, 13 Aug 2007 09:02:59 +0200
parents 376386a54a3c
children 3d6bfa290dbd
line wrap: on
line diff
--- a/src/lstream.h	Mon Aug 13 09:00:04 2007 +0200
+++ b/src/lstream.h	Mon Aug 13 09:02:59 2007 +0200
@@ -252,10 +252,44 @@
 /*             working with an Lstream as a stream of Emchars           */
 /************************************************************************/
 
+#ifdef MULE
+
+MAC_DECLARE_EXTERN (Emchar, MTlstream_emchar)
+MAC_DECLARE_EXTERN (int, MTlstream_emcint)
+/* In mule-charset.c */
+Emchar Lstream_get_emchar_1 (Lstream *lstr, int first_char);
+int Lstream_fput_emchar (Lstream *lstr, Emchar ch);
+void Lstream_funget_emchar (Lstream *lstr, Emchar ch);
+
+# define Lstream_get_emchar(stream)				\
+MAC_BEGIN							\
+  MAC_DECLARE (int, MTlstream_emcint, Lstream_getc (stream))	\
+  BYTE_ASCII_P (MTlstream_emcint) ? (Emchar) MTlstream_emcint :	\
+    Lstream_get_emchar_1 (stream, MTlstream_emcint)		\
+MAC_END
+# define Lstream_put_emchar(stream, ch)			\
+MAC_BEGIN						\
+  MAC_DECLARE (Emchar, MTlstream_emchar, ch)		\
+  CHAR_ASCII_P (MTlstream_emchar) ?			\
+    Lstream_putc (stream, MTlstream_emchar) :		\
+    Lstream_fput_emchar (stream, MTlstream_emchar)	\
+MAC_END
+# define Lstream_unget_emchar(stream, ch)		\
+MAC_BEGIN						\
+  MAC_DECLARE (Emchar, MTlstream_emchar, ch)		\
+  CHAR_ASCII_P (MTlstream_emchar) ?			\
+    Lstream_ungetc (stream, MTlstream_emchar) :		\
+    Lstream_funget_emchar (stream, MTlstream_emchar)	\
+MAC_END
+
+#else /* not MULE */
+
 # define Lstream_get_emchar(stream) Lstream_getc (stream)
 # define Lstream_put_emchar(stream, ch) Lstream_putc (stream, ch)
 # define Lstream_unget_emchar(stream, ch) Lstream_ungetc (stream, ch)
 
+#endif /* not MULE */
+
 
 
 /************************************************************************/