[PATCH v3] ungetc: Guarantee single char pushback
Florian Weimer
fweimer@redhat.com
Mon Dec 9 12:53:30 GMT 2024
* Siddhesh Poyarekar:
> On 2024-12-08 20:40, Maciej W. Rozycki wrote:
>> On Fri, 6 Dec 2024, Siddhesh Poyarekar wrote:
>>
>>> The C standard requires that ungetc guarantees at least one pushback, so
>>> put a single byte pushback buffer in the FILE struct to enable that.
>> So what would the problem be if we instead replaced:
>> int _flags2;
>> with
>> short int _flags2;
>> char _short_backupbuf[1];
>> char _unused;
>
> I don't see an actual problem other than that of an application maybe
> using the upper bits of _flags2 for their own logic. One could make
> the same argument for unused2, but the defence there is that there's
> precedent of struct expansion into unused2; the same can't be said
> about _flags2.
>
> I personally don't care to retain such abuses, so it seems OK to
> shrink _flags2. Florian, what do you think?
>From my perspective, either way is fine.
Thanks,
Florian
More information about the Libc-alpha
mailing list