summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mdoc.712
-rw-r--r--mdoc_action.c5
-rw-r--r--mdoc_validate.c2
3 files changed, 15 insertions, 4 deletions
diff --git a/mdoc.7 b/mdoc.7
index 11341d22..4061c427 100644
--- a/mdoc.7
+++ b/mdoc.7
@@ -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 */