Re: Fw: [PATCH 1/2] strftime.c(__strftime): add %i, %q, %v, tests; tweak %Z docs
Corinna Vinschen <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
On Oct 20 16:07, Brian Inglis wrote: > On 2022-10-18 08:03, Corinna Vinschen wrote: > > On Sep 19 11:51, C Howland wrote: > > > On Saturday, September 17, 2022 1:00 AM, Brian Inglis wrote: > > > > newlib/libc/time/strftime.c(__strftime): > > > > %i year in century [00..99] Synonym for "%y". Non-POSIX extension. > > > > [tm_year] > > > > %q GNU quarter of the year (from `<<1>>' to `<<4>>') [tm_mon] > > > > %v OSX/Ruby VMS/Oracle date "%d-%b-%Y". Non-POSIX extension. [tm_mday, > > > > tm_mon, tm_year] > > > > add %i %q %v tests > > > > %Z clarify current time zone *abbreviation* not "name" [tm_isdst] > > > > --- > > > > newlib/libc/time/strftime.c | 67 +++++++++++++++++++++++++++++++++++-- > > > > 1 file changed, 64 insertions(+), 3 deletions(-) > > > - %i: Where is used and documented? I don't see this in glibc, not even > > in the latest from the glibc git repo. > > Some portable language implementations for non-Unix platforms that I came > across and documented but did not keep track of, and now can't find! So we don't have that in either BSD, nor GNU, nor POSIX, but only in other non-POSIX platforms. Hmm. Along these lines, we could also make a case for supporting Microsoft's %I64 printf format and I'm not so hot on that... For the time being, please let's drop %i. Defining it now may result in accidental collisions with the POSIX standard, should it get extended. > > - %q: Ditto. For a GNU extension, it's surprisingly absent from the > > most recent glibc code, or do I miss something? > > Looks like this may have been lost in the discussion: > > https://inbox.sourceware.org/libc-alpha/[email protected]/ > > but as he says, it was already in gnulib, and made it into date the same month: > > https://git.savannah.gnu.org/cgit/coreutils.git/diff/?id=30012b290facf66551cdf395ace397903d00483d Ok, that's fine then. > > - %v: OSX/Ruby? Isn't that already gone? Also, it introduces another > > ambiguous date format where %F or equivalent should be used instead. > > All the BSDs, Darwin, Oracle, and Ruby support it: it is localized, but not > ambiguous, as it's dd-Mon-yyyy. I found it in all three BSDs with a comment /* ** From Arnold Robbins' strftime version 3.0: ** "date as dd-bbb-YYYY" ** (ado, 1993-05-24) */ Also, it's defined as a recursion with the format "%e-%b-%Y", unconditionally (no padding, etc). Maybe we should replicate that verbatim (including the comment) to keep in line with BSD. Also, the BSDs do *not* define %v in strptime, so I think we shouldn't do this either. It may accidentally collide with a standards extension, just as %i. Thanks, Corinna