Mercurial > hg > xemacs-beta
comparison src/file-coding.c @ 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 | ccaa851ae712 |
children | d2c0ff38ad5c |
comparison
equal
deleted
inserted
replaced
5783:cfc6a8c144f1 | 5784:0cb4f494a548 |
---|---|
1992 | 1992 |
1993 static Charcount | 1993 static Charcount |
1994 coding_character_tell (Lstream *stream) | 1994 coding_character_tell (Lstream *stream) |
1995 { | 1995 { |
1996 struct coding_stream *str = CODING_STREAM_DATA (stream); | 1996 struct coding_stream *str = CODING_STREAM_DATA (stream); |
1997 | 1997 Charcount ctell |
1998 return XCODESYSMETH_OR_GIVEN (str->codesys, character_tell, (str), -1); | 1998 = XCODESYSMETH_OR_GIVEN (str->codesys, character_tell, (str), -1); |
1999 | |
2000 if (ctell > 0 && Dynarr_length (str->convert_to) > 0) | |
2001 { | |
2002 ctell | |
2003 -= buffered_bytecount_to_charcount ((const Ibyte *) | |
2004 (Dynarr_begin (str->convert_to)), | |
2005 Dynarr_length (str->convert_to)); | |
2006 text_checking_assert (ctell >= 0); | |
2007 } | |
2008 | |
2009 return ctell; | |
1999 } | 2010 } |
2000 | 2011 |
2001 static int | 2012 static int |
2002 coding_flusher (Lstream *stream) | 2013 coding_flusher (Lstream *stream) |
2003 { | 2014 { |