summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@cvs.openbsd.org>2011-11-13 10:40:53 +0000
committerIngo Schwarze <schwarze@cvs.openbsd.org>2011-11-13 10:40:53 +0000
commita8cf81082537b1b37a4ee51b5147db17b6f794e9 (patch)
treeb1c7e2141418da6c727fb0f1cc34ee3217e8529f
parentc1a0cbbbec9055ccd98836dda5d211c0c0ddb81f (diff)
Inventing new keywords for mostly the same thing when a well-established
set of keywords already exists is a bad idea, so reuse the mdoc(7) macro names as apropos(1) search types. This is a gain in brevity as well. Some time ago, kristaps@ agreed in principle. The search type bit field constants are used by both mandocdb(8) and apropos(1) and should better stay in sync, so give them their own header file.
-rw-r--r--usr.bin/mandoc/apropos_db.c36
-rw-r--r--usr.bin/mandoc/apropos_db.h16
-rw-r--r--usr.bin/mandoc/mandocdb.c55
-rw-r--r--usr.bin/mandoc/mandocdb.h32
4 files changed, 71 insertions, 68 deletions
diff --git a/usr.bin/mandoc/apropos_db.c b/usr.bin/mandoc/apropos_db.c
index 0166ccef4da..90176366be3 100644
--- a/usr.bin/mandoc/apropos_db.c
+++ b/usr.bin/mandoc/apropos_db.c
@@ -1,4 +1,4 @@
-/* $Id: apropos_db.c,v 1.1 2011/11/13 10:28:38 schwarze Exp $ */
+/* $Id: apropos_db.c,v 1.2 2011/11/13 10:40:52 schwarze Exp $ */
/*
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -27,6 +27,7 @@
# include <db.h>
#endif
+#include "mandocdb.h"
#include "apropos_db.h"
#include "mandoc.h"
@@ -50,20 +51,21 @@ struct type {
};
static const struct type types[] = {
- { TYPE_NAME, "name" },
- { TYPE_FUNCTION, "func" },
- { TYPE_UTILITY, "utility" },
- { TYPE_INCLUDES, "incl" },
- { TYPE_VARIABLE, "var" },
- { TYPE_STANDARD, "stand" },
- { TYPE_AUTHOR, "auth" },
- { TYPE_CONFIG, "conf" },
- { TYPE_DESC, "desc" },
- { TYPE_XREF, "xref" },
- { TYPE_PATH, "path" },
- { TYPE_ENV, "env" },
- { TYPE_ERR, "err" },
- { INT_MAX, "all" },
+ { TYPE_An, "An" },
+ { TYPE_Cd, "Cd" },
+ { TYPE_Er, "Er" },
+ { TYPE_Ev, "Ev" },
+ { TYPE_Fn, "Fn" },
+ { TYPE_Fn, "Fo" },
+ { TYPE_In, "In" },
+ { TYPE_Nd, "Nd" },
+ { TYPE_Nm, "Nm" },
+ { TYPE_Pa, "Pa" },
+ { TYPE_St, "St" },
+ { TYPE_Va, "Va" },
+ { TYPE_Va, "Vt" },
+ { TYPE_Xr, "Xr" },
+ { INT_MAX, "any" },
{ 0, NULL }
};
@@ -89,7 +91,7 @@ btree_open(void)
memset(&info, 0, sizeof(BTREEINFO));
info.flags = R_DUP;
- db = dbopen("mandoc.db", O_RDONLY, 0, DB_BTREE, &info);
+ db = dbopen(MANDOC_DB, O_RDONLY, 0, DB_BTREE, &info);
if (NULL != db)
return(db);
@@ -274,7 +276,7 @@ index_open(void)
{
DB *db;
- db = dbopen("mandoc.index", O_RDONLY, 0, DB_RECNO, NULL);
+ db = dbopen(MANDOC_IDX, O_RDONLY, 0, DB_RECNO, NULL);
if (NULL != db)
return(db);
diff --git a/usr.bin/mandoc/apropos_db.h b/usr.bin/mandoc/apropos_db.h
index 2008ff73b05..c64136318b1 100644
--- a/usr.bin/mandoc/apropos_db.h
+++ b/usr.bin/mandoc/apropos_db.h
@@ -1,4 +1,4 @@
-/* $Id: apropos_db.h,v 1.1 2011/11/13 10:28:38 schwarze Exp $ */
+/* $Id: apropos_db.h,v 1.2 2011/11/13 10:40:52 schwarze Exp $ */
/*
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -17,20 +17,6 @@
#ifndef APROPOS_H
#define APROPOS_H
-#define TYPE_NAME 0x01
-#define TYPE_FUNCTION 0x02
-#define TYPE_UTILITY 0x04
-#define TYPE_INCLUDES 0x08
-#define TYPE_VARIABLE 0x10
-#define TYPE_STANDARD 0x20
-#define TYPE_AUTHOR 0x40
-#define TYPE_CONFIG 0x80
-#define TYPE_DESC 0x100
-#define TYPE_XREF 0x200
-#define TYPE_PATH 0x400
-#define TYPE_ENV 0x800
-#define TYPE_ERR 0x1000
-
struct rec {
char *file; /* file in file-system */
char *cat; /* category (3p, 3, etc.) */
diff --git a/usr.bin/mandoc/mandocdb.c b/usr.bin/mandoc/mandocdb.c
index 80b9468f677..49ac04ccce5 100644
--- a/usr.bin/mandoc/mandocdb.c
+++ b/usr.bin/mandoc/mandocdb.c
@@ -1,4 +1,4 @@
-/* $Id: mandocdb.c,v 1.4 2011/11/13 00:53:07 schwarze Exp $ */
+/* $Id: mandocdb.c,v 1.5 2011/11/13 10:40:52 schwarze Exp $ */
/*
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -29,28 +29,11 @@
#include "man.h"
#include "mdoc.h"
#include "mandoc.h"
+#include "mandocdb.h"
-#define MANDOC_DB "mandoc.db"
-#define MANDOC_IDX "mandoc.index"
#define MANDOC_BUFSZ BUFSIZ
#define MANDOC_SLOP 1024
-/* Bit-fields. See mandocdb.8. */
-
-#define TYPE_NAME 0x01
-#define TYPE_FUNCTION 0x02
-#define TYPE_UTILITY 0x04
-#define TYPE_INCLUDES 0x08
-#define TYPE_VARIABLE 0x10
-#define TYPE_STANDARD 0x20
-#define TYPE_AUTHOR 0x40
-#define TYPE_CONFIG 0x80
-#define TYPE_DESC 0x100
-#define TYPE_XREF 0x200
-#define TYPE_PATH 0x400
-#define TYPE_ENV 0x800
-#define TYPE_ERR 0x1000
-
/* Tiny list for files. No need to bring in QUEUE. */
struct of {
@@ -719,7 +702,7 @@ pmdoc_An(MDOC_ARGS)
return;
buf_appendmdoc(buf, n->child, 0);
- hash_put(hash, buf, TYPE_AUTHOR);
+ hash_put(hash, buf, TYPE_An);
}
static void
@@ -780,7 +763,7 @@ pmdoc_Fd(MDOC_ARGS)
buf_appendb(buf, start, (size_t)(end - start + 1));
buf_appendb(buf, "", 1);
- hash_put(hash, buf, TYPE_INCLUDES);
+ hash_put(hash, buf, TYPE_In);
}
/* ARGSUSED */
@@ -792,7 +775,7 @@ pmdoc_Cd(MDOC_ARGS)
return;
buf_appendmdoc(buf, n->child, 0);
- hash_put(hash, buf, TYPE_CONFIG);
+ hash_put(hash, buf, TYPE_Cd);
}
/* ARGSUSED */
@@ -806,7 +789,7 @@ pmdoc_In(MDOC_ARGS)
return;
buf_append(buf, n->child->string);
- hash_put(hash, buf, TYPE_INCLUDES);
+ hash_put(hash, buf, TYPE_In);
}
/* ARGSUSED */
@@ -832,7 +815,7 @@ pmdoc_Fn(MDOC_ARGS)
cp++;
buf_append(buf, cp);
- hash_put(hash, buf, TYPE_FUNCTION);
+ hash_put(hash, buf, TYPE_Fn);
}
/* ARGSUSED */
@@ -846,7 +829,7 @@ pmdoc_St(MDOC_ARGS)
return;
buf_append(buf, n->child->string);
- hash_put(hash, buf, TYPE_STANDARD);
+ hash_put(hash, buf, TYPE_St);
}
/* ARGSUSED */
@@ -865,7 +848,7 @@ pmdoc_Xr(MDOC_ARGS)
} else
buf_appendb(buf, ".", 2);
- hash_put(hash, buf, TYPE_XREF);
+ hash_put(hash, buf, TYPE_Xr);
}
/* ARGSUSED */
@@ -902,7 +885,7 @@ pmdoc_Vt(MDOC_ARGS)
buf_appendb(buf, start, sz);
buf_appendb(buf, "", 1);
- hash_put(hash, buf, TYPE_VARIABLE);
+ hash_put(hash, buf, TYPE_Va);
}
/* ARGSUSED */
@@ -916,7 +899,7 @@ pmdoc_Fo(MDOC_ARGS)
return;
buf_append(buf, n->child->string);
- hash_put(hash, buf, TYPE_FUNCTION);
+ hash_put(hash, buf, TYPE_Fn);
}
@@ -931,7 +914,7 @@ pmdoc_Nd(MDOC_ARGS)
buf_appendmdoc(dbuf, n->child, 1);
buf_appendmdoc(buf, n->child, 0);
- hash_put(hash, buf, TYPE_DESC);
+ hash_put(hash, buf, TYPE_Nd);
}
/* ARGSUSED */
@@ -943,7 +926,7 @@ pmdoc_Er(MDOC_ARGS)
return;
buf_appendmdoc(buf, n->child, 0);
- hash_put(hash, buf, TYPE_ERR);
+ hash_put(hash, buf, TYPE_Er);
}
/* ARGSUSED */
@@ -955,7 +938,7 @@ pmdoc_Ev(MDOC_ARGS)
return;
buf_appendmdoc(buf, n->child, 0);
- hash_put(hash, buf, TYPE_ENV);
+ hash_put(hash, buf, TYPE_Ev);
}
/* ARGSUSED */
@@ -967,7 +950,7 @@ pmdoc_Pa(MDOC_ARGS)
return;
buf_appendmdoc(buf, n->child, 0);
- hash_put(hash, buf, TYPE_PATH);
+ hash_put(hash, buf, TYPE_Pa);
}
/* ARGSUSED */
@@ -977,7 +960,7 @@ pmdoc_Nm(MDOC_ARGS)
if (SEC_NAME == n->sec) {
buf_appendmdoc(buf, n->child, 0);
- hash_put(hash, buf, TYPE_NAME);
+ hash_put(hash, buf, TYPE_Nm);
return;
} else if (SEC_SYNOPSIS != n->sec || MDOC_HEAD != n->type)
return;
@@ -986,7 +969,7 @@ pmdoc_Nm(MDOC_ARGS)
buf_append(buf, m->name);
buf_appendmdoc(buf, n->child, 0);
- hash_put(hash, buf, TYPE_UTILITY);
+ hash_put(hash, buf, TYPE_Nm);
}
static void
@@ -1116,7 +1099,7 @@ pman_node(MAN_ARGS)
buf_appendb(buf, start, sz);
buf_appendb(buf, "", 1);
- hash_put(hash, buf, TYPE_NAME);
+ hash_put(hash, buf, TYPE_Nm);
if (' ' == start[(int)sz]) {
start += (int)sz + 1;
@@ -1155,7 +1138,7 @@ pman_node(MAN_ARGS)
buf_appendb(dbuf, start, sz);
buf_appendb(buf, start, sz);
- hash_put(hash, buf, TYPE_DESC);
+ hash_put(hash, buf, TYPE_Nd);
}
}
diff --git a/usr.bin/mandoc/mandocdb.h b/usr.bin/mandoc/mandocdb.h
new file mode 100644
index 00000000000..4e67239eed2
--- /dev/null
+++ b/usr.bin/mandoc/mandocdb.h
@@ -0,0 +1,32 @@
+/* $Id: mandocdb.h,v 1.1 2011/11/13 10:40:52 schwarze Exp $ */
+/*
+ * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#define MANDOC_DB "mandoc.db"
+#define MANDOC_IDX "mandoc.index"
+
+#define TYPE_An 0x01
+#define TYPE_Cd 0x02
+#define TYPE_Er 0x04
+#define TYPE_Ev 0x08
+#define TYPE_Fn 0x10
+#define TYPE_In 0x20
+#define TYPE_Nd 0x40
+#define TYPE_Nm 0x100
+#define TYPE_Pa 0x200
+#define TYPE_St 0x400
+#define TYPE_Va 0x1000
+#define TYPE_Xr 0x2000