summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-01-06 22:39:25 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-01-06 22:39:25 +0000
commit4f5108d3edb20e0466c0447dcc9a5b4a49267ba6 (patch)
tree3defb603ea1ab2ac45573c1968f424864854d351
parent8ef6371c96cde9fbf1a78af3c9c275c188466bf4 (diff)
downloadmandoc-4f5108d3edb20e0466c0447dcc9a5b4a49267ba6.tar.gz
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).
-rw-r--r--man_validate.c12
-rw-r--r--mdoc_validate.c10
2 files changed, 12 insertions, 10 deletions
diff --git a/man_validate.c b/man_validate.c
index 2c64608c..8ab5c2c5 100644
--- a/man_validate.c
+++ b/man_validate.c
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* 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
@@ -211,8 +211,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);
@@ -435,8 +435,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("");
diff --git a/mdoc_validate.c b/mdoc_validate.c
index bab95c8b..9f6e736f 100644
--- a/mdoc_validate.c
+++ b/mdoc_validate.c
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2010, 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
* Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
@@ -2184,8 +2184,8 @@ post_dd(POST_ARGS)
n = mdoc->last;
if (NULL == n->child || '\0' == n->child->string[0]) {
- mdoc->meta.date = mandoc_normdate
- (mdoc->parse, NULL, n->line, n->pos);
+ mdoc->meta.date = mdoc->quick ? mandoc_strdup("") :
+ mandoc_normdate(mdoc->parse, NULL, n->line, n->pos);
return(1);
}
@@ -2196,8 +2196,8 @@ post_dd(POST_ARGS)
}
assert(c);
- mdoc->meta.date = mandoc_normdate
- (mdoc->parse, buf, n->line, n->pos);
+ mdoc->meta.date = mdoc->quick ? mandoc_strdup(buf) :
+ mandoc_normdate(mdoc->parse, buf, n->line, n->pos);
return(1);
}