diff src/text.h @ 5784:0cb4f494a548

Have the result of coding_character_tell() reflect str->convert_to, too. src/ChangeLog addition: 2014-01-22 Aidan Kehoe <kehoea@parhasard.net> * text.c (buffered_bytecount_to_charcount): New. Return the number of characters in a coding or lstream buffer, including partial characters at the beginning of the buffer, but not including those at the end. Refactored from Lstream_character_tell(). * text.h: * text.h (buffered_bytecount_to_charcount): Declare it. * lstream.c (Lstream_character_tell): Use the refactored buffered_bytecount_to_charcount () here, both for the unget buffer and in_buffer. * file-coding.c (coding_character_tell): Check the character count of the lstream buffer too, when passing back the character count from the coding stream.
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 22 Jan 2014 17:52:00 +0000
parents 7a538e1a4676
children 6355de501637
line wrap: on
line diff
--- a/src/text.h	Tue Jan 21 00:27:16 2014 +0000
+++ b/src/text.h	Wed Jan 22 17:52:00 2014 +0000
@@ -908,6 +908,12 @@
   return ptr;
 }
 
+/* Return the character count of an lstream or coding buffer of internal
+   format text, counting partial characters at the beginning of the buffer
+   as whole characters, and *not* counting partial characters at the end of
+   the buffer. */
+Charcount buffered_bytecount_to_charcount (const Ibyte *, Bytecount len);
+
 #else
 
 #define bytecount_to_charcount(ptr, len) ((Charcount) (len))
@@ -916,6 +922,7 @@
 #define charcount_to_bytecount_fmt(ptr, len, fmt) ((Bytecount) (len))
 #define skip_ascii(ptr, end) end
 #define skip_ascii_down(ptr, end) end
+#define buffered_bytecount_to_charcount (ptr, len) (len)
 
 #endif /* MULE */