diff options
author | Ori Bernstein <ori@eigenstate.org> | 2020-09-25 16:51:08 -0700 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2020-09-25 16:51:08 -0700 |
commit | eb6b1e672c33a9dce0de368a0e954b801f2035d3 (patch) | |
tree | b1b351f20fc3f5591723ceebc74b635bf33fe0e8 | |
parent | 022bc980b88ca6c06df2f4055ecc0b62231f01ea (diff) | |
parent | 9f8d62ab644553b11286dbcd283db56c83d6ebdd (diff) | |
download | plan9front-eb6b1e672c33a9dce0de368a0e954b801f2035d3.tar.xz |
merge
-rw-r--r-- | sys/man/2/tmdate | 7 | ||||
-rw-r--r-- | sys/src/libc/port/date.c | 5 |
2 files changed, 8 insertions, 4 deletions
diff --git a/sys/man/2/tmdate b/sys/man/2/tmdate index ea8a67125..a99da78c7 100644 --- a/sys/man/2/tmdate +++ b/sys/man/2/tmdate @@ -134,8 +134,7 @@ For example, will format to a width of 3. When parsing, this acts as whitespace. .TP .B ? -When parsing, this makes the following argument match fuzzily. -Fuzzy matching means that all formats are tried, from most to least specific. +When parsing, all formats of the following argument are tried from most to least specific. For example, .I ?M will match @@ -144,7 +143,9 @@ will match .IR 01 , and .IR 1 , -in that order of preference. +in that order. When formatting, +.B ? +is ignored. .TP .B ~ When parsing a date, this slackens range enforcement, accepting diff --git a/sys/src/libc/port/date.c b/sys/src/libc/port/date.c index 44ae15696..7be6cb52f 100644 --- a/sys/src/libc/port/date.c +++ b/sys/src/libc/port/date.c @@ -330,7 +330,7 @@ tmfill(Tm *tm, vlong abs, vlong nsec) if(d < 0) d += mdays[m - 1]; - tm->yday = d; + tm->yday = d - 1; for(i = 0; i < m - 1; i++) tm->yday += mdays[i]; if(m > 1 && isleap(y)) @@ -428,6 +428,9 @@ static int switch(c0){ case 0: break; + /* Ignore '?' so we can share parse and format strings */ + case '?': + continue; case 'Y': switch(w){ case 1: n += fmtprint(f, "%*d", pad, tm->year + 1900); break; |