Fix character offsets for EOFs

EOFs only need special offset handling if they are on the same line as
the previous token - otherwise they can just take the current offset of
zero.