source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: Remember which names are in the NAME section.
@ 2014-04-04 15:55 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2014-04-04 15:55 UTC (permalink / raw)
  To: source

Log Message:
-----------
Remember which names are in the NAME section.
This helps to find missing MLINKS.
Database build times do not change and database growth is minimal
(1.2% with -Q, 0.7% without -Q in /usr/share/man),
so making this optional would be pointless.

Modified Files:
--------------
    mdocml:
        apropos.1
        mandocdb.c
        mansearch.h
        mansearch_const.c

Revision Data
-------------
Index: mansearch.h
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mansearch.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -Lmansearch.h -Lmansearch.h -u -p -r1.9 -r1.10
--- mansearch.h
+++ mansearch.h
@@ -1,7 +1,7 @@
 /*	$Id$ */
 /*
  * Copyright (c) 2012 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2013 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 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
@@ -20,46 +20,47 @@
 
 #define	MANDOC_DB	 "mandoc.db"
 
-#define	TYPE_Nm		 0x0000000000000001ULL
-#define	TYPE_Nd		 0x0000000000000002ULL
-#define	TYPE_arch	 0x0000000000000004ULL
-#define	TYPE_sec	 0x0000000000000008ULL
-#define	TYPE_Xr		 0x0000000000000010ULL
-#define	TYPE_Ar		 0x0000000000000020ULL
-#define	TYPE_Fa		 0x0000000000000040ULL
-#define	TYPE_Fl		 0x0000000000000080ULL
-#define	TYPE_Dv		 0x0000000000000100ULL
-#define	TYPE_Fn		 0x0000000000000200ULL
-#define	TYPE_Ic		 0x0000000000000400ULL
-#define	TYPE_Pa		 0x0000000000000800ULL
-#define	TYPE_Cm		 0x0000000000001000ULL
-#define	TYPE_Li		 0x0000000000002000ULL
-#define	TYPE_Em		 0x0000000000004000ULL
-#define	TYPE_Cd		 0x0000000000008000ULL
-#define	TYPE_Va		 0x0000000000010000ULL
-#define	TYPE_Ft		 0x0000000000020000ULL
-#define	TYPE_Tn		 0x0000000000040000ULL
-#define	TYPE_Er		 0x0000000000080000ULL
-#define	TYPE_Ev		 0x0000000000100000ULL
-#define	TYPE_Sy		 0x0000000000200000ULL
-#define	TYPE_Sh		 0x0000000000400000ULL
-#define	TYPE_In		 0x0000000000800000ULL
-#define	TYPE_Ss		 0x0000000001000000ULL
-#define	TYPE_Ox		 0x0000000002000000ULL
-#define	TYPE_An		 0x0000000004000000ULL
-#define	TYPE_Mt		 0x0000000008000000ULL
-#define	TYPE_St		 0x0000000010000000ULL
-#define	TYPE_Bx          0x0000000020000000ULL
-#define	TYPE_At		 0x0000000040000000ULL
-#define	TYPE_Nx		 0x0000000080000000ULL
-#define	TYPE_Fx		 0x0000000100000000ULL
-#define	TYPE_Lk		 0x0000000200000000ULL
-#define	TYPE_Ms		 0x0000000400000000ULL
-#define	TYPE_Bsx	 0x0000000800000000ULL
-#define	TYPE_Dx		 0x0000001000000000ULL
-#define	TYPE_Rs		 0x0000002000000000ULL
-#define	TYPE_Vt		 0x0000004000000000ULL
-#define	TYPE_Lb		 0x0000008000000000ULL
+#define	TYPE_NAME	 0x0000000000000001ULL
+#define	TYPE_Nm		 0x0000000000000002ULL
+#define	TYPE_Nd		 0x0000000000000004ULL
+#define	TYPE_arch	 0x0000000000000008ULL
+#define	TYPE_sec	 0x0000000000000010ULL
+#define	TYPE_Xr		 0x0000000000000020ULL
+#define	TYPE_Ar		 0x0000000000000040ULL
+#define	TYPE_Fa		 0x0000000000000080ULL
+#define	TYPE_Fl		 0x0000000000000100ULL
+#define	TYPE_Dv		 0x0000000000000200ULL
+#define	TYPE_Fn		 0x0000000000000400ULL
+#define	TYPE_Ic		 0x0000000000000800ULL
+#define	TYPE_Pa		 0x0000000000001000ULL
+#define	TYPE_Cm		 0x0000000000002000ULL
+#define	TYPE_Li		 0x0000000000004000ULL
+#define	TYPE_Em		 0x0000000000008000ULL
+#define	TYPE_Cd		 0x0000000000010000ULL
+#define	TYPE_Va		 0x0000000000020000ULL
+#define	TYPE_Ft		 0x0000000000040000ULL
+#define	TYPE_Tn		 0x0000000000080000ULL
+#define	TYPE_Er		 0x0000000000100000ULL
+#define	TYPE_Ev		 0x0000000000200000ULL
+#define	TYPE_Sy		 0x0000000000400000ULL
+#define	TYPE_Sh		 0x0000000000800000ULL
+#define	TYPE_In		 0x0000000001000000ULL
+#define	TYPE_Ss		 0x0000000002000000ULL
+#define	TYPE_Ox		 0x0000000004000000ULL
+#define	TYPE_An		 0x0000000008000000ULL
+#define	TYPE_Mt		 0x0000000010000000ULL
+#define	TYPE_St		 0x0000000020000000ULL
+#define	TYPE_Bx		 0x0000000040000000ULL
+#define	TYPE_At		 0x0000000080000000ULL
+#define	TYPE_Nx		 0x0000000100000000ULL
+#define	TYPE_Fx		 0x0000000200000000ULL
+#define	TYPE_Lk		 0x0000000400000000ULL
+#define	TYPE_Ms		 0x0000000800000000ULL
+#define	TYPE_Bsx	 0x0000001000000000ULL
+#define	TYPE_Dx		 0x0000002000000000ULL
+#define	TYPE_Rs		 0x0000004000000000ULL
+#define	TYPE_Vt		 0x0000008000000000ULL
+#define	TYPE_Lb		 0x0000010000000000ULL
 
 __BEGIN_DECLS
 
Index: mandocdb.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mandocdb.c,v
retrieving revision 1.128
retrieving revision 1.129
diff -Lmandocdb.c -Lmandocdb.c -u -p -r1.128 -r1.129
--- mandocdb.c
+++ mandocdb.c
@@ -224,7 +224,7 @@ static	const struct mdoc_handler mdocs[M
 	{ NULL, TYPE_In },  /* In */
 	{ NULL, TYPE_Li },  /* Li */
 	{ parse_mdoc_Nd, TYPE_Nd },  /* Nd */
-	{ parse_mdoc_Nm, TYPE_Nm },  /* Nm */
+	{ parse_mdoc_Nm, 0 },  /* Nm */
 	{ NULL, 0 },  /* Op */
 	{ NULL, 0 },  /* Ot */
 	{ NULL, TYPE_Pa },  /* Pa */
@@ -1397,7 +1397,7 @@ parse_man(struct mpage *mpage, const str
 				    ('\\' == start[0] && '-' == start[1]))
 					break;
 
-				putkey(mpage, start, TYPE_Nm);
+				putkey(mpage, start, TYPE_NAME | TYPE_Nm);
 
 				if (' ' == byte) {
 					start += sz + 1;
@@ -1411,7 +1411,7 @@ parse_man(struct mpage *mpage, const str
 			}
 
 			if (start == title) {
-				putkey(mpage, start, TYPE_Nm);
+				putkey(mpage, start, TYPE_NAME | TYPE_Nm);
 				free(title);
 				return;
 			}
@@ -1588,8 +1588,11 @@ static int
 parse_mdoc_Nm(struct mpage *mpage, const struct mdoc_node *n)
 {
 
-	return(SEC_NAME == n->sec ||
-	    (SEC_SYNOPSIS == n->sec && MDOC_HEAD == n->type));
+	if (SEC_NAME == n->sec)
+		putmdockey(mpage, n->child, TYPE_NAME | TYPE_Nm);
+	else if (SEC_SYNOPSIS == n->sec && MDOC_HEAD == n->type)
+		putmdockey(mpage, n->child, TYPE_Nm);
+	return(0);
 }
 
 static int
Index: apropos.1
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/apropos.1,v
retrieving revision 1.24
retrieving revision 1.25
diff -Lapropos.1 -Lapropos.1 -u -p -r1.24 -r1.25
--- apropos.1
+++ apropos.1
@@ -1,6 +1,7 @@
 .\"	$Id$
 .\"
 .\" Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
+.\" Copyright (c) 2011, 2012, 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
@@ -195,6 +196,7 @@ may be used to match any available macro
 .Pp
 Names and description:
 .Bl -column "xLix" description -offset indent -compact
+.It Li NAME Ta manual name in the NAME section, subset of \&Nm
 .It Li \&Nm Ta manual name
 .It Li \&Nd Ta one-line manual description
 .It Li arch Ta machine architecture (case-insensitive)
Index: mansearch_const.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mansearch_const.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -Lmansearch_const.c -Lmansearch_const.c -u -p -r1.1 -r1.2
--- mansearch_const.c
+++ mansearch_const.c
@@ -20,12 +20,13 @@
 #include "manpath.h"
 #include "mansearch.h"
 
-const int mansearch_keymax = 40;
+const int mansearch_keymax = 41;
 
-const char *const mansearch_keynames[40] = {
-	"Nm",	"Nd",	"arch", "sec",	"Xr",	"Ar",	"Fa",	"Fl",
-	"Dv",	"Fn",	"Ic",	"Pa",	"Cm",	"Li",	"Em",	"Cd",
-	"Va",	"Ft",	"Tn",	"Er",	"Ev",	"Sy",	"Sh",	"In",
-	"Ss",	"Ox",	"An",	"Mt",	"St",	"Bx",	"At",	"Nx",
-	"Fx",	"Lk",	"Ms",	"Bsx",	"Dx",	"Rs",	"Vt",	"Lb"
+const char *const mansearch_keynames[41] = {
+	"NAME",	"Nm",	"Nd",	"arch", "sec",	"Xr",	"Ar",	"Fa",
+	"Fl",	"Dv",	"Fn",	"Ic",	"Pa",	"Cm",	"Li",	"Em",
+	"Cd",	"Va",	"Ft",	"Tn",	"Er",	"Ev",	"Sy",	"Sh",
+	"In",	"Ss",	"Ox",	"An",	"Mt",	"St",	"Bx",	"At",
+	"Nx",	"Fx",	"Lk",	"Ms",	"Bsx",	"Dx",	"Rs",	"Vt",
+	"Lb"
 };
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-04-04 15:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-04 15:55 mdocml: Remember which names are in the NAME section schwarze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).