X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/942561da2455ee50a1eb82c8c4f2bdb5e25133d1..e19df85ee3edbc78b6029aa2344bb62bf4270747:/sbr/m_getfld.c?ds=sidebyside diff --git a/sbr/m_getfld.c b/sbr/m_getfld.c index 9315059d..4da2f3ee 100644 --- a/sbr/m_getfld.c +++ b/sbr/m_getfld.c @@ -444,29 +444,21 @@ read_more (m_getfld_state_t s) { but EOF is typically 0xffffffff. */ static int Getc (m_getfld_state_t s) { - if (s->end - s->readpos < 1) { - if (read_more (s) == 0) { - /* Pretend that we read a character. That's what stdio does. */ - ++s->readpos; - return EOF; - } + if (s->end - s->readpos < 1 && read_more (s) == 0) { + return EOF; + } else { + ++s->bytes_read; + return s->readpos < s->end ? (unsigned char) *s->readpos++ : EOF; } - - ++s->bytes_read; - return s->readpos < s->end ? (unsigned char) *s->readpos++ : EOF; } static int Peek (m_getfld_state_t s) { - if (s->end - s->readpos < 1) { - if (read_more (s) == 0) { - /* Pretend that we read a character. That's what stdio does. */ - ++s->readpos; - return EOF; - } + if (s->end - s->readpos < 1 && read_more (s) == 0) { + return EOF; + } else { + return s->readpos < s->end ? (unsigned char) *s->readpos : EOF; } - - return s->readpos < s->end ? (unsigned char) *s->readpos : EOF; } static int