PFH@CUTHRY.BITNET (06/30/88)
Hi netland,
Since installing vms v4.6, ungetc() function of VAX C
has been broken. In particular, a character returned by ungetc()
is ignored in subsequent fscanf() calls.
Has this plagued anyone else? Is there a simple fix? (e.g
does vms v4.7 fix this?)
For the record, we are running VAX C v2.4 on vms v4.6 on
a VAX 11/780. Thanks.
Paul Hsieh
39 Pupin Physics Lab
Columbia University
pfh@cuthry.bitnetLEICHTER@VENUS.YCC.YALE.EDU ("Jerry Leichter ", LEICHTER-JERRY@CS.YALE.EDU) (07/04/88)
Since installing vms v4.6, ungetc() function of VAX C
has been broken. In particular, a character returned by ungetc()
is ignored in subsequent fscanf() calls.
Has this plagued anyone else? Is there a simple fix? (e.g
does vms v4.7 fix this?)
For the record, we are running VAX C v2.4 on vms v4.6 on
a VAX 11/780. Thanks.
Known bug, discussed on this list a while back. It's really unfortunate that
there is no way to go back and find messages on a given topic!
As you've noted, the connection between ungetc() and fscanf() (and, I think,
fgets()) got broken in the V4.6 version of the library. Unfortunately, this
was NOT fixed in V4.7 - the V4.6-V4.7 interval was very short, and I gather
the bug report arrived the day after the V4.7 of the library went out the
door. It IS fixed in V5.0. If this is a serious problem for you, you might
ask your DEC support person if a special patch is available.
BTW, the ungetc and getc work together just fine.
In case you are wondering what kind of changes could lead to this kind of
problem: A (since-withdrawn) piece of the proposed ANSI C spec add to the
definition of fflush() that "flushing" an input file would discard any
"ungotten" character. It was adding this that broke the code. Sigh.
-- Jerry