]> git.cameronkatri.com Git - mandoc.git/commitdiff
Note that `Dd' can be empty. This found following a thread on discuss@
authorKristaps Dzonsons <kristaps@bsd.lv>
Mon, 26 Jul 2010 13:45:49 +0000 (13:45 +0000)
committerKristaps Dzonsons <kristaps@bsd.lv>
Mon, 26 Jul 2010 13:45:49 +0000 (13:45 +0000)
started by Sascha Wildner, 07/25/2010 06:30 AM.

mdoc.7
mdoc_action.c
mdoc_validate.c

diff --git a/mdoc.7 b/mdoc.7
index 8ed3adfec69b82833b9c1fda9cdcb0bf1ae41b6f..549a30e2a74d6790dc3b218e6a4cb1f04e677c3d 100644 (file)
--- 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 <kristaps@bsd.lv>
 .\" Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
 .\"
 .\" Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
 .\" Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -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 \&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
 .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
 manual.
 Its syntax is as follows:
 .Pp
-.D1 Pf \. Sx \&Dd Ar date
+.D1 Pf \. Sx \&Dd Op Ar date
 .Pp
 The
 .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 .
 .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$
 .Pp
 Examples:
 .D1 \&.Dd $\&Mdocdate$
@@ -2718,6 +2718,12 @@ Heirloom troff, the other significant troff implementation accepting
 .Pp
 .Bl -dash -compact
 .It
 .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
 The \es (font size), \em (font colour), and \eM (font filling colour)
 font decoration escapes are all discarded in mandoc.
 .It
index a4eb532c9bc45f2490946bafbf64fc5d363ab6f8..928615aba89abc429c31773998b8858476f43427 100644 (file)
@@ -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 <kristaps@bsd.lv>
  *
 /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -904,6 +904,11 @@ post_dd(POST_ARGS)
 {
        char            buf[DATESIZ];
 
 {
        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);
 
        if ( ! concat(m, buf, n->child, DATESIZ))
                return(0);
 
index 822c3b5c52da6c82dfc161358afaedc68dd6e602..d90107dbbcb18e69c6026d51749e68dc75cebadf 100644 (file)
@@ -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 <kristaps@bsd.lv>
  *
 /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -145,7 +145,7 @@ static      v_pre    pres_ss[] = { pre_ss, NULL };
 
 const  struct valids mdoc_valids[MDOC_MAX] = {
        { NULL, NULL },                         /* Ap */
 
 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 */ 
        { pres_dt, posts_dt },                  /* Dt */
        { pres_os, NULL },                      /* Os */
        { pres_sh, posts_sh },                  /* Sh */