aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mandocdb.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2011-11-27 23:27:31 +0000
committerIngo Schwarze <schwarze@openbsd.org>2011-11-27 23:27:31 +0000
commited2b299580efe32fb4986fa067bfa028375ef29c (patch)
tree59da2222724d9d31deaf1a7fdf472098eeb88826 /mandocdb.c
parent07304175d86315fbc89776525d955c80343d865e (diff)
downloadmandoc-ed2b299580efe32fb4986fa067bfa028375ef29c.tar.gz
mandoc-ed2b299580efe32fb4986fa067bfa028375ef29c.tar.zst
mandoc-ed2b299580efe32fb4986fa067bfa028375ef29c.zip
Reimplement the global command line options -a and -v
as static global variables, reducing the maze of arguments passed around among various static functions. Suggested by kristaps@.
Diffstat (limited to 'mandocdb.c')
-rw-r--r--mandocdb.c48
1 files changed, 21 insertions, 27 deletions
diff --git a/mandocdb.c b/mandocdb.c
index 1925389a..9d0417a0 100644
--- a/mandocdb.c
+++ b/mandocdb.c
@@ -1,4 +1,4 @@
-/* $Id: mandocdb.c,v 1.15 2011/11/27 23:11:37 schwarze Exp $ */
+/* $Id: mandocdb.c,v 1.16 2011/11/27 23:27:31 schwarze Exp $ */
/*
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
@@ -97,18 +97,15 @@ static void dbt_put(DB *, const char *, DBT *, DBT *);
static void hash_put(DB *, const struct buf *, uint64_t);
static void hash_reset(DB **);
static void index_merge(const struct of *, struct mparse *,
- struct buf *, struct buf *,
- DB *, DB *, const char *,
- DB *, const char *, int, int,
+ struct buf *, struct buf *, DB *,
+ DB *, const char *, DB *, const char *,
recno_t, const recno_t *, size_t);
static void index_prune(const struct of *, DB *,
const char *, DB *, const char *,
- int, recno_t *, recno_t **, size_t *);
-static void ofile_argbuild(char *[], int, int, int,
- struct of **);
+ recno_t *, recno_t **, size_t *);
+static void ofile_argbuild(int, char *[], struct of **);
static int ofile_dirbuild(const char *, const char *,
- const char *, int, int, int,
- struct of **);
+ const char *, int, struct of **);
static void ofile_free(struct of *);
static void pformatted(DB *, struct buf *, struct buf *,
const struct of *);
@@ -258,6 +255,8 @@ static const pmdoc_nf mdocs[MDOC_MAX] = {
};
static const char *progname;
+static int use_all; /* Use all directories and files. */
+static int verb; /* Output verbosity level. */
int
main(int argc, char *argv[])
@@ -268,9 +267,7 @@ main(int argc, char *argv[])
const char *dir;
char ibuf[MAXPATHLEN], /* index fname */
fbuf[MAXPATHLEN]; /* btree fname */
- int verb, /* output verbosity */
- use_all, /* use all directories and files */
- ch, i, flags;
+ int ch, i, flags;
DB *idx, /* index database */
*db, /* keyword database */
*hash; /* temporary keyword hashtable */
@@ -377,19 +374,19 @@ main(int argc, char *argv[])
printf("%s: Opened\n", ibuf);
}
- ofile_argbuild(argv, argc, use_all, verb, &of);
+ ofile_argbuild(argc, argv, &of);
if (NULL == of)
goto out;
of = of->first;
- index_prune(of, db, fbuf, idx, ibuf, verb,
+ index_prune(of, db, fbuf, idx, ibuf,
&maxrec, &recs, &recsz);
if (OP_UPDATE == op)
index_merge(of, mp, &dbuf, &buf, hash,
- db, fbuf, idx, ibuf, use_all,
- verb, maxrec, recs, reccur);
+ db, fbuf, idx, ibuf,
+ maxrec, recs, reccur);
goto out;
}
@@ -450,7 +447,7 @@ main(int argc, char *argv[])
of = NULL;
if ( ! ofile_dirbuild(dirs.paths[i], NULL, NULL,
- 0, use_all, verb, &of))
+ 0, &of))
exit((int)MANDOCLEVEL_SYSERR);
if (NULL == of)
@@ -459,8 +456,7 @@ main(int argc, char *argv[])
of = of->first;
index_merge(of, mp, &dbuf, &buf, hash, db, fbuf,
- idx, ibuf, use_all, verb,
- maxrec, recs, reccur);
+ idx, ibuf, maxrec, recs, reccur);
}
out:
@@ -484,9 +480,8 @@ out:
void
index_merge(const struct of *of, struct mparse *mp,
- struct buf *dbuf, struct buf *buf,
- DB *hash, DB *db, const char *dbf,
- DB *idx, const char *idxf, int use_all, int verb,
+ struct buf *dbuf, struct buf *buf, DB *hash,
+ DB *db, const char *dbf, DB *idx, const char *idxf,
recno_t maxrec, const recno_t *recs, size_t reccur)
{
recno_t rec;
@@ -662,7 +657,7 @@ index_merge(const struct of *of, struct mparse *mp,
*/
static void
index_prune(const struct of *ofile, DB *db, const char *dbf,
- DB *idx, const char *idxf, int verb,
+ DB *idx, const char *idxf,
recno_t *maxrec, recno_t **recs, size_t *recsz)
{
const struct of *of;
@@ -1336,8 +1331,7 @@ pformatted(DB *hash, struct buf *buf, struct buf *dbuf,
}
static void
-ofile_argbuild(char *argv[], int argc, int use_all, int verb,
- struct of **of)
+ofile_argbuild(int argc, char *argv[], struct of **of)
{
char buf[MAXPATHLEN];
char *sec, *arch, *title, *p;
@@ -1429,7 +1423,7 @@ ofile_argbuild(char *argv[], int argc, int use_all, int verb,
*/
static int
ofile_dirbuild(const char *dir, const char* psec, const char *parch,
- int p_src_form, int use_all, int verb, struct of **of)
+ int p_src_form, struct of **of)
{
char buf[MAXPATHLEN];
struct stat sb;
@@ -1495,7 +1489,7 @@ ofile_dirbuild(const char *dir, const char* psec, const char *parch,
printf("%s: Scanning\n", buf);
if ( ! ofile_dirbuild(buf, sec, arch,
- src_form, use_all, verb, of))
+ src_form, of))
return(0);
}
if (DT_REG != dp->d_type ||