summaryrefslogtreecommitdiffstats
path: root/usr.bin/mandoc/man_validate.c
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2014-01-06 22:39:19 +0000
committerschwarze <schwarze@openbsd.org>2014-01-06 22:39:19 +0000
commit231c70615b60941c7da3720c968c3e06a2433ef0 (patch)
tree89d855e3bce9a2c563129f4ab55e1bf3a9b7f27d /usr.bin/mandoc/man_validate.c
parentdocument random buffer must be multiple of 4 in size (diff)
downloadwireguard-openbsd-231c70615b60941c7da3720c968c3e06a2433ef0.tar.xz
wireguard-openbsd-231c70615b60941c7da3720c968c3e06a2433ef0.zip
Another 18% speedup for mandocdb(8) -Q, found by gprof(1).
In -Q mode, refrain form validating and normalizing the format of the date given in .Dd or .TH, as it won't be used anyway. For /usr/share/man, mandocdb -Q now takes 45% of the time of makewhatis(8).
Diffstat (limited to 'usr.bin/mandoc/man_validate.c')
-rw-r--r--usr.bin/mandoc/man_validate.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/usr.bin/mandoc/man_validate.c b/usr.bin/mandoc/man_validate.c
index 54a4f5acdfc..b1031376ded 100644
--- a/usr.bin/mandoc/man_validate.c
+++ b/usr.bin/mandoc/man_validate.c
@@ -1,7 +1,7 @@
-/* $Id: man_validate.c,v 1.59 2013/12/31 18:07:06 schwarze Exp $ */
+/* $Id: man_validate.c,v 1.60 2014/01/06 22:39:19 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2010, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -207,8 +207,8 @@ check_root(CHKARGS)
man->meta.title = mandoc_strdup("unknown");
man->meta.msec = mandoc_strdup("1");
- man->meta.date = mandoc_normdate
- (man->parse, NULL, n->line, n->pos);
+ man->meta.date = man->quick ? mandoc_strdup("") :
+ mandoc_normdate(man->parse, NULL, n->line, n->pos);
}
return(1);
@@ -431,8 +431,10 @@ post_TH(CHKARGS)
if (n)
n = n->next;
if (n && n->string && '\0' != n->string[0]) {
- man->meta.date = mandoc_normdate
- (man->parse, n->string, n->line, n->pos);
+ man->meta.date = man->quick ?
+ mandoc_strdup(n->string) :
+ mandoc_normdate(man->parse, n->string,
+ n->line, n->pos);
} else
man->meta.date = mandoc_strdup("");