diff options
-rw-r--r-- | mdoc.7 | 12 | ||||
-rw-r--r-- | mdoc_action.c | 5 | ||||
-rw-r--r-- | mdoc_validate.c | 2 |
3 files changed, 15 insertions, 4 deletions
@@ -805,7 +805,7 @@ then the macro accepts an arbitrary number of arguments. .It Sx \&Cd Ta Yes Ta Yes Ta >0 .It Sx \&Cm Ta Yes Ta Yes Ta n .It Sx \&Db Ta \&No Ta \&No Ta 1 -.It Sx \&Dd Ta \&No Ta \&No Ta >0 +.It Sx \&Dd Ta \&No Ta \&No Ta n .It Sx \&Dt Ta \&No Ta \&No Ta n .It Sx \&Dv Ta Yes Ta Yes Ta n .It Sx \&Dx Ta Yes Ta Yes Ta n @@ -1470,7 +1470,7 @@ This is the mandatory first macro of any manual. Its syntax is as follows: .Pp -.D1 Pf \. Sx \&Dd Ar date +.D1 Pf \. Sx \&Dd Op Ar date .Pp The .Ar date @@ -1480,7 +1480,7 @@ which signifies the current manual revision date dictated by .Xr cvs 1 , or instead a valid canonical date as specified by .Sx Dates . -If a date does not conform, the current date is used instead. +If a date does not conform or is empty, the current date is used. .Pp Examples: .D1 \&.Dd $\&Mdocdate$ @@ -2718,6 +2718,12 @@ Heirloom troff, the other significant troff implementation accepting .Pp .Bl -dash -compact .It +An empty +.Sq \&Dd +macro in groff prints +.Dq Epoch . +In mandoc, it resolves to the current date. +.It The \es (font size), \em (font colour), and \eM (font filling colour) font decoration escapes are all discarded in mandoc. .It diff --git a/mdoc_action.c b/mdoc_action.c index bb58f768..317fa54a 100644 --- a/mdoc_action.c +++ b/mdoc_action.c @@ -904,6 +904,11 @@ post_dd(POST_ARGS) { char buf[DATESIZ]; + if (NULL == n->child) { + m->meta.date = time(NULL); + return(post_prol(m, n)); + } + if ( ! concat(m, buf, n->child, DATESIZ)) return(0); diff --git a/mdoc_validate.c b/mdoc_validate.c index 958399af..ed5988ce 100644 --- a/mdoc_validate.c +++ b/mdoc_validate.c @@ -145,7 +145,7 @@ static v_pre pres_ss[] = { pre_ss, NULL }; const struct valids mdoc_valids[MDOC_MAX] = { { NULL, NULL }, /* Ap */ - { pres_dd, posts_text }, /* Dd */ + { pres_dd, posts_wtext }, /* Dd */ { pres_dt, posts_dt }, /* Dt */ { pres_os, NULL }, /* Os */ { pres_sh, posts_sh }, /* Sh */ |