summaryrefslogtreecommitdiff
path: root/lib/libc/stdtime/strftime.c
diff options
context:
space:
mode:
authorAndrey A. Chernov <ache@FreeBSD.org>1999-11-30 19:24:07 +0000
committerAndrey A. Chernov <ache@FreeBSD.org>1999-11-30 19:24:07 +0000
commitc63a4303abebacd23556930e87f4dfe93704faea (patch)
treefc01182c5a92b4503bdb7d9a32d9e63876d24b56 /lib/libc/stdtime/strftime.c
parenta36840a71a9f803c2d1e5258644bf5dc0f348992 (diff)
Notes
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 aa3847368d22..9aa891f6e168 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,