aren't these lines comparing the last char read to the next char that will be read, even if the next char is not available?