From 84e7a1da762680fa2919e438e354384ab7e18fc4 Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Mon, 26 Jul 2010 13:45:49 +0000 Subject: Note that `Dd' can be empty. This found following a thread on discuss@ started by Sascha Wildner, 07/25/2010 06:30 AM. --- mdoc.7 | 14 ++++++++++---- mdoc_action.c | 7 ++++++- mdoc_validate.c | 4 ++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/mdoc.7 b/mdoc.7 index 8ed3adfe..549a30e2 100644 --- a/mdoc.7 +++ b/mdoc.7 @@ -1,4 +1,4 @@ -.\" $Id: mdoc.7,v 1.141 2010/07/26 12:51:56 kristaps Exp $ +.\" $Id: mdoc.7,v 1.142 2010/07/26 13:45:49 kristaps Exp $ .\" .\" Copyright (c) 2009, 2010 Kristaps Dzonsons .\" Copyright (c) 2010 Ingo Schwarze @@ -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 a4eb532c..928615ab 100644 --- a/mdoc_action.c +++ b/mdoc_action.c @@ -1,4 +1,4 @@ -/* $Id: mdoc_action.c,v 1.76 2010/07/13 23:53:20 schwarze Exp $ */ +/* $Id: mdoc_action.c,v 1.77 2010/07/26 13:45:49 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * @@ -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 822c3b5c..d90107db 100644 --- a/mdoc_validate.c +++ b/mdoc_validate.c @@ -1,4 +1,4 @@ -/* $Id: mdoc_validate.c,v 1.113 2010/07/21 09:08:26 kristaps Exp $ */ +/* $Id: mdoc_validate.c,v 1.114 2010/07/26 13:45:49 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * @@ -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 */ -- cgit v1.2.3-56-ge451