version 1.222, 2016/07/19 22:40:33 |
version 1.223, 2016/07/29 15:23:57 |
Line 1084 mlink_check(struct mpage *mpage, struct mlink *mlink) |
|
Line 1084 mlink_check(struct mpage *mpage, struct mlink *mlink) |
|
static void |
static void |
mpages_merge(struct dba *dba, struct mparse *mp) |
mpages_merge(struct dba *dba, struct mparse *mp) |
{ |
{ |
char any[] = "any"; |
|
struct mpage *mpage, *mpage_dest; |
struct mpage *mpage, *mpage_dest; |
struct mlink *mlink, *mlink_dest; |
struct mlink *mlink, *mlink_dest; |
struct roff_man *man; |
struct roff_man *man; |
Line 1186 mpages_merge(struct dba *dba, struct mparse *mp) |
|
Line 1185 mpages_merge(struct dba *dba, struct mparse *mp) |
|
mpage->arch = mandoc_strdup(mlink->arch); |
mpage->arch = mandoc_strdup(mlink->arch); |
mpage->title = mandoc_strdup(mlink->name); |
mpage->title = mandoc_strdup(mlink->name); |
} |
} |
putkey(mpage, mpage->sec, TYPE_sec); |
|
if (*mpage->arch != '\0') |
|
putkey(mpage, mpage->arch, TYPE_arch); |
|
|
|
for ( ; mlink != NULL; mlink = mlink->next) { |
|
if ('\0' != *mlink->dsec) |
|
putkey(mpage, mlink->dsec, TYPE_sec); |
|
if ('\0' != *mlink->fsec) |
|
putkey(mpage, mlink->fsec, TYPE_sec); |
|
putkey(mpage, '\0' == *mlink->arch ? |
|
any : mlink->arch, TYPE_arch); |
|
putkey(mpage, mlink->name, NAME_FILE); |
|
} |
|
|
|
assert(mpage->desc == NULL); |
assert(mpage->desc == NULL); |
if (man != NULL && man->macroset == MACROSET_MDOC) |
if (man != NULL && man->macroset == MACROSET_MDOC) |
parse_mdoc(mpage, &man->meta, man->first); |
parse_mdoc(mpage, &man->meta, man->first); |
Line 1347 parse_cat(struct mpage *mpage, int fd) |
|
Line 1333 parse_cat(struct mpage *mpage, int fd) |
|
static void |
static void |
putkey(const struct mpage *mpage, char *value, uint64_t type) |
putkey(const struct mpage *mpage, char *value, uint64_t type) |
{ |
{ |
char *cp; |
|
|
|
assert(NULL != value); |
|
if (TYPE_arch == type) |
|
for (cp = value; *cp; cp++) |
|
if (isupper((unsigned char)*cp)) |
|
*cp = _tolower((unsigned char)*cp); |
|
putkeys(mpage, value, strlen(value), type); |
putkeys(mpage, value, strlen(value), type); |
} |
} |
|
|
Line 1954 dbadd_mlink(const struct mlink *mlink) |
|
Line 1933 dbadd_mlink(const struct mlink *mlink) |
|
{ |
{ |
dba_page_alias(mlink->mpage->dba, mlink->name, NAME_FILE); |
dba_page_alias(mlink->mpage->dba, mlink->name, NAME_FILE); |
dba_page_add(mlink->mpage->dba, DBP_SECT, mlink->dsec); |
dba_page_add(mlink->mpage->dba, DBP_SECT, mlink->dsec); |
|
dba_page_add(mlink->mpage->dba, DBP_SECT, mlink->fsec); |
dba_page_add(mlink->mpage->dba, DBP_ARCH, mlink->arch); |
dba_page_add(mlink->mpage->dba, DBP_ARCH, mlink->arch); |
dba_page_add(mlink->mpage->dba, DBP_FILE, mlink->file); |
dba_page_add(mlink->mpage->dba, DBP_FILE, mlink->file); |
} |
} |
Line 2013 dbadd(struct dba *dba, struct mpage *mpage) |
|
Line 1993 dbadd(struct dba *dba, struct mpage *mpage) |
|
cp = mpage->desc; |
cp = mpage->desc; |
i = strlen(cp); |
i = strlen(cp); |
mustfree = render_string(&cp, &i); |
mustfree = render_string(&cp, &i); |
mpage->dba = dba_page_new(dba->pages, mlink->name, |
mpage->dba = dba_page_new(dba->pages, mlink->name, mpage->sec, |
mlink->dsec, mlink->arch, cp, mlink->file, mpage->form); |
*mpage->arch == '\0' ? mlink->arch : mpage->arch, |
|
cp, mlink->file, mpage->form); |
if (mustfree) |
if (mustfree) |
free(cp); |
free(cp); |
|
|
while ((mlink = mlink->next) != NULL) |
while (mlink != NULL) { |
dbadd_mlink(mlink); |
dbadd_mlink(mlink); |
|
mlink = mlink->next; |
|
} |
|
|
for (key = ohash_first(&names, &slot); NULL != key; |
for (key = ohash_first(&names, &slot); NULL != key; |
key = ohash_next(&names, &slot)) { |
key = ohash_next(&names, &slot)) { |