summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/man/2/tmdate7
-rw-r--r--sys/src/libc/port/date.c3
2 files changed, 7 insertions, 3 deletions
diff --git a/sys/man/2/tmdate b/sys/man/2/tmdate
index e4123c3e1..ba5c4441a 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 1c90a7985..7be6cb52f 100644
--- a/sys/src/libc/port/date.c
+++ b/sys/src/libc/port/date.c
@@ -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;