version 1.32, 2014/04/16 21:36:18 |
version 1.33, 2014/04/17 19:20:01 |
Line 590 exprcomp(const struct mansearch *search, int argc, cha |
|
Line 590 exprcomp(const struct mansearch *search, int argc, cha |
|
|
|
first = cur = NULL; |
first = cur = NULL; |
logic = igncase = toclose = 0; |
logic = igncase = toclose = 0; |
toopen = 1; |
toopen = NULL != search->sec || NULL != search->arch; |
|
|
for (i = 0; i < argc; i++) { |
for (i = 0; i < argc; i++) { |
if (0 == strcmp("(", argv[i])) { |
if (0 == strcmp("(", argv[i])) { |
Line 659 exprcomp(const struct mansearch *search, int argc, cha |
|
Line 659 exprcomp(const struct mansearch *search, int argc, cha |
|
if (toopen || logic || igncase || toclose) |
if (toopen || logic || igncase || toclose) |
goto fail; |
goto fail; |
|
|
cur->close++; |
if (NULL != search->sec || NULL != search->arch) |
cur = exprspec(cur, TYPE_arch, search->arch, "^(%s|any)$"); |
cur->close++; |
exprspec(cur, TYPE_sec, search->sec, "^%s$"); |
if (NULL != search->arch) |
|
cur = exprspec(cur, TYPE_arch, search->arch, "^(%s|any)$"); |
|
if (NULL != search->sec) |
|
exprspec(cur, TYPE_sec, search->sec, "^%s$"); |
|
|
return(first); |
return(first); |
|
|
Line 678 exprspec(struct expr *cur, uint64_t key, const char *v |
|
Line 681 exprspec(struct expr *cur, uint64_t key, const char *v |
|
char errbuf[BUFSIZ]; |
char errbuf[BUFSIZ]; |
char *cp; |
char *cp; |
int irc; |
int irc; |
|
|
if (NULL == value) |
|
return(cur); |
|
|
|
mandoc_asprintf(&cp, format, value); |
mandoc_asprintf(&cp, format, value); |
cur->next = mandoc_calloc(1, sizeof(struct expr)); |
cur->next = mandoc_calloc(1, sizeof(struct expr)); |