[PATCH] Improve the width of alternate representation for year in strftime [BZ #23758]

Florian Weimer fweimer@redhat.com
Wed Oct 24 11:03:00 GMT 2018


* TAMUKI Shoichi:

>> It looks like that there are two changes (plus some formatting cleanups)
>> in this patch: the change in padding:
>> 
>> > -		  DO_NUMBER (1, (era->offset
>> > +		  DO_NUMBER (2, (era->offset
>> >  				 + delta * era->absolute_direction));
>> 
>> and adding a way to override the padding, when %EY is exanded using
>> locale data, rewriting the %Ey contained in the format string.
>
> Yes, that's right.
>
>> I think the second part should be handled differently, by not rewriting
>> the format string, and rather adding strftime arguments (possibly in a
>> struct) to set the default padding.
>> 
>> This should also avoid the need for new memory allocations.
>
> Certainly.  I also want to avoid dynamic memory allocation as much as
> possible.  To add strftime arguments, which is not the prepared format
> string (era_format in locale data) but the modified string (rewriting
> the %Ey), anoher allocated separate memory is required.

Sorry, I don't understand.  I think all we need is a way to change the
default padding, so that the %Ey (unchanged) is interpreted as if
decorated with the appropriate flag.  I think this would avoid the need
to do any dynamically-sized allocations.

> An alternative plan will be to allocate memory beforehand statically.
> In that case, we have to decide the size to be assumed.

That's not possible because users can define their own locales if they
want.

Thanks,
Florian



More information about the Libc-alpha mailing list