]> git.cameronkatri.com Git - mandoc.git/commitdiff
Remember which names are in the NAME section.
authorIngo Schwarze <schwarze@openbsd.org>
Fri, 4 Apr 2014 15:55:19 +0000 (15:55 +0000)
committerIngo Schwarze <schwarze@openbsd.org>
Fri, 4 Apr 2014 15:55:19 +0000 (15:55 +0000)
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.

apropos.1
mandocdb.c
mansearch.h
mansearch_const.c

index bdbb9aa46a2a44da67b22888737fe5df37333500..165a676a7bc799cb7d7065922581d612f77b86c8 100644 (file)
--- a/apropos.1
+++ b/apropos.1
@@ -1,6 +1,7 @@
-.\"    $Id: apropos.1,v 1.24 2014/04/04 15:51:28 schwarze Exp $
+.\"    $Id: apropos.1,v 1.25 2014/04/04 15:55:19 schwarze Exp $
 .\"
 .\" 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 key.
 .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 a054ffc9bdce3bb80a0f796d77b37ef3ad196531..40f673fe4c2cbd78be211e6a1631fc3243548a0a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mandocdb.c,v 1.128 2014/04/04 02:31:07 schwarze Exp $ */
+/*     $Id: mandocdb.c,v 1.129 2014/04/04 15:55:19 schwarze Exp $ */
 /*
  * Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -224,7 +224,7 @@ static      const struct mdoc_handler mdocs[MDOC_MAX] = {
        { 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 struct man_node *n)
                                    ('\\' == 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 struct man_node *n)
                        }
 
                        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 f779c301ba39ad6d0d410d0f08e7455ca7d4633d..78c69c994c32f4baf73dfa9f75278458d57eba84 100644 (file)
@@ -1,7 +1,7 @@
-/*     $Id: mansearch.h,v 1.9 2014/01/18 08:23:55 schwarze Exp $ */
+/*     $Id: mansearch.h,v 1.10 2014/04/04 15:55:19 schwarze Exp $ */
 /*
  * 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
 
 #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 b4d4720040c7376a2415ce8492305ef3a07bfad3..12d10b2a1fdf58675e7bfca359bd3d38aa702750 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mansearch_const.c,v 1.1 2014/01/19 00:09:38 schwarze Exp $ */
+/*     $Id: mansearch_const.c,v 1.2 2014/04/04 15:55:19 schwarze Exp $ */
 /*
  * Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org>
  *
 #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"
 };