summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdtime/strftime.c
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1999-11-30 19:24:07 +0000
committerache <ache@FreeBSD.org>1999-11-30 19:24:07 +0000
commit220fa3568085fd0ad052a65bf3f7f6065248e490 (patch)
tree27b3b9d8ce2ca7a51c9f4d37493d0eb5c0e61589 /lib/libc/stdtime/strftime.c
parent764544f79db5c70e43cf95469521d403163cab31 (diff)
downloadFreeBSD-src-220fa3568085fd0ad052a65bf3f7f6065248e490.zip
FreeBSD-src-220fa3568085fd0ad052a65bf3f7f6065248e490.tar.gz
%Ex -> %Ef to not conflict with POSIX
Add %EF (long months name / day order) Check that O and E not intermixed Add missing POSIX extension to example
Diffstat (limited to 'lib/libc/stdtime/strftime.c')
-rw-r--r--lib/libc/stdtime/strftime.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/libc/stdtime/strftime.c b/lib/libc/stdtime/strftime.c
index aa38473..9aa891f 100644
--- a/lib/libc/stdtime/strftime.c
+++ b/lib/libc/stdtime/strftime.c
@@ -129,6 +129,8 @@ label:
pt = _conv(t->tm_mday, "%02d", pt, ptlim);
continue;
case 'E':
+ if (Ealternative || Oalternative)
+ break;
Ealternative++;
goto label;
case 'O':
@@ -136,18 +138,33 @@ label:
** POSIX locale extensions, a la
** Arnold Robbins' strftime version 3.0.
** The sequences
- ** %Ec %EC %Ex %Ey %EY
+ ** %Ec %EC %Ex %EX %Ey %EY
** %Od %oe %OH %OI %Om %OM
** %OS %Ou %OU %OV %Ow %OW %Oy
** are supposed to provide alternate
** representations.
** (ado, 5/24/93)
+ **
+ ** FreeBSD extensions
+ ** %OB %Ef %EF
*/
+ if (Ealternative || Oalternative)
+ break;
Oalternative++;
goto label;
case 'e':
pt = _conv(t->tm_mday, "%2d", pt, ptlim);
continue;
+ case 'f':
+ if (!Ealternative)
+ break;
+ pt = _fmt(Locale->Ef_fmt, t, pt, ptlim);
+ continue;
+ case 'F':
+ if (!Ealternative)
+ break;
+ pt = _fmt(Locale->EF_fmt, t, pt, ptlim);
+ continue;
case 'H':
pt = _conv(t->tm_hour, "%02d", pt, ptlim);
continue;
@@ -361,7 +378,7 @@ label:
pt = _fmt(Locale->X_fmt, t, pt, ptlim);
continue;
case 'x':
- pt = _fmt(Ealternative ? Locale->Ex_fmt : Locale->x_fmt, t, pt, ptlim);
+ pt = _fmt(Locale->x_fmt, t, pt, ptlim);
continue;
case 'y':
pt = _conv((t->tm_year + TM_YEAR_BASE) % 100,
OpenPOWER on IntegriCloud