version 1.216, 2016/03/17 21:26:26 |
version 1.220.2.1, 2016/10/20 17:35:58 |
|
|
#else |
#else |
#include "compat_fts.h" |
#include "compat_fts.h" |
#endif |
#endif |
#include <getopt.h> |
|
#include <limits.h> |
#include <limits.h> |
|
#if HAVE_SANDBOX_INIT |
|
#include <sandbox.h> |
|
#endif |
#include <stddef.h> |
#include <stddef.h> |
#include <stdio.h> |
#include <stdio.h> |
#include <stdint.h> |
#include <stdint.h> |
Line 137 struct mdoc_handler { |
|
Line 139 struct mdoc_handler { |
|
uint64_t mask; /* set unless handler returns 0 */ |
uint64_t mask; /* set unless handler returns 0 */ |
}; |
}; |
|
|
|
|
|
int mandocdb(int, char *[]); |
|
|
static void dbclose(int); |
static void dbclose(int); |
static void dbadd(struct mpage *); |
static void dbadd(struct mpage *); |
static void dbadd_mlink(const struct mlink *mlink); |
static void dbadd_mlink(const struct mlink *mlink); |
Line 180 static void putkeys(const struct mpage *, char *, siz |
|
Line 185 static void putkeys(const struct mpage *, char *, siz |
|
static void putmdockey(const struct mpage *, |
static void putmdockey(const struct mpage *, |
const struct roff_node *, uint64_t); |
const struct roff_node *, uint64_t); |
static int render_string(char **, size_t *); |
static int render_string(char **, size_t *); |
static void say(const char *, const char *, ...); |
static void say(const char *, const char *, ...) |
|
__attribute__((__format__ (printf, 2, 3))); |
static int set_basedir(const char *, int); |
static int set_basedir(const char *, int); |
static int treescan(void); |
static int treescan(void); |
static size_t utf8(unsigned int, char [7]); |
static size_t utf8(unsigned int, char [7]); |
Line 346 mandocdb(int argc, char *argv[]) |
|
Line 352 mandocdb(int argc, char *argv[]) |
|
} |
} |
#endif |
#endif |
|
|
|
#if HAVE_SANDBOX_INIT |
|
if (sandbox_init(kSBXProfileNoInternet, SANDBOX_NAMED, NULL) == -1) { |
|
warnx("sandbox_init"); |
|
return (int)MANDOCLEVEL_SYSERR; |
|
} |
|
#endif |
|
|
memset(&conf, 0, sizeof(conf)); |
memset(&conf, 0, sizeof(conf)); |
memset(stmts, 0, STMT__MAX * sizeof(sqlite3_stmt *)); |
memset(stmts, 0, STMT__MAX * sizeof(sqlite3_stmt *)); |
|
|
Line 1758 parse_mdoc_Nm(struct mpage *mpage, const struct roff_m |
|
Line 1771 parse_mdoc_Nm(struct mpage *mpage, const struct roff_m |
|
if ( ! (mpage->name_head_done || |
if ( ! (mpage->name_head_done || |
n->child == NULL || n->child->string == NULL || |
n->child == NULL || n->child->string == NULL || |
strcasecmp(n->child->string, meta->title))) { |
strcasecmp(n->child->string, meta->title))) { |
putkey(mpage, n->child->string, ROFFT_HEAD); |
putkey(mpage, n->child->string, NAME_HEAD); |
mpage->name_head_done = 1; |
mpage->name_head_done = 1; |
} |
} |
return 0; |
return 0; |
Line 1806 putkeys(const struct mpage *mpage, char *cp, size_t sz |
|
Line 1819 putkeys(const struct mpage *mpage, char *cp, size_t sz |
|
name_mask &= ~NAME_FIRST; |
name_mask &= ~NAME_FIRST; |
if (debug > 1) |
if (debug > 1) |
say(mpage->mlinks->file, |
say(mpage->mlinks->file, |
"Adding name %*s, bits=%d", sz, cp, v); |
"Adding name %*s, bits=0x%llu", (int)sz, cp, v); |
} else { |
} else { |
htab = &strings; |
htab = &strings; |
if (debug > 1) |
if (debug > 1) |
Line 1814 putkeys(const struct mpage *mpage, char *cp, size_t sz |
|
Line 1827 putkeys(const struct mpage *mpage, char *cp, size_t sz |
|
if ((uint64_t)1 << i & v) |
if ((uint64_t)1 << i & v) |
say(mpage->mlinks->file, |
say(mpage->mlinks->file, |
"Adding key %s=%*s", |
"Adding key %s=%*s", |
mansearch_keynames[i], sz, cp); |
mansearch_keynames[i], (int)sz, cp); |
} |
} |
|
|
end = cp + sz; |
end = cp + sz; |