=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/man_validate.c,v retrieving revision 1.40 retrieving revision 1.41 diff -c -r1.40 -r1.41 *** src/usr.bin/mandoc/man_validate.c 2011/01/17 00:15:19 1.40 --- src/usr.bin/mandoc/man_validate.c 2011/03/07 01:35:33 1.41 *************** *** 1,4 **** ! /* $Id: man_validate.c,v 1.40 2011/01/17 00:15:19 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010 Ingo Schwarze --- 1,4 ---- ! /* $Id: man_validate.c,v 1.41 2011/03/07 01:35:33 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010 Ingo Schwarze *************** *** 187,194 **** */ m->meta.title = mandoc_strdup("unknown"); - m->meta.date = time(NULL); m->meta.msec = mandoc_strdup("1"); } return(1); --- 187,195 ---- */ m->meta.title = mandoc_strdup("unknown"); m->meta.msec = mandoc_strdup("1"); + m->meta.date = mandoc_normdate(NULL, + m->msg, m->data, n->line, n->pos); } return(1); *************** *** 370,375 **** --- 371,377 ---- post_TH(CHKARGS) { const char *p; + int line, pos; if (m->meta.title) free(m->meta.title); *************** *** 379,390 **** free(m->meta.source); if (m->meta.msec) free(m->meta.msec); ! if (m->meta.rawdate) ! free(m->meta.rawdate); ! m->meta.title = m->meta.vol = m->meta.rawdate = m->meta.msec = m->meta.source = NULL; - m->meta.date = 0; /* ->TITLE<- MSEC DATE SOURCE VOL */ --- 381,393 ---- free(m->meta.source); if (m->meta.msec) free(m->meta.msec); ! if (m->meta.date) ! free(m->meta.date); ! line = n->line; ! pos = n->pos; ! m->meta.title = m->meta.vol = m->meta.date = m->meta.msec = m->meta.source = NULL; /* ->TITLE<- MSEC DATE SOURCE VOL */ *************** *** 412,435 **** /* TITLE MSEC ->DATE<- SOURCE VOL */ - /* - * Try to parse the date. If this works, stash the epoch (this - * is optimal because we can reformat it in the canonical form). - * If it doesn't parse, isn't specified at all, or is an empty - * string, then use the current date. - */ - if (n) n = n->next; ! if (n && n->string && *n->string) { ! m->meta.date = mandoc_a2time ! (MTIME_ISO_8601, n->string); ! if (0 == m->meta.date) { ! man_nmsg(m, n, MANDOCERR_BADDATE); ! m->meta.rawdate = mandoc_strdup(n->string); ! } ! } else ! m->meta.date = time(NULL); /* TITLE MSEC DATE ->SOURCE<- VOL */ --- 415,426 ---- /* TITLE MSEC ->DATE<- SOURCE VOL */ if (n) n = n->next; ! if (n) ! pos = n->pos; ! m->meta.date = mandoc_normdate(n ? n->string : NULL, ! m->msg, m->data, line, pos); /* TITLE MSEC DATE ->SOURCE<- VOL */