=================================================================== RCS file: /cvs/mandoc/mansearch.c,v retrieving revision 1.70 retrieving revision 1.73 diff -u -p -r1.70 -r1.73 --- mandoc/mansearch.c 2017/04/17 20:05:08 1.70 +++ mandoc/mansearch.c 2017/05/17 21:19:32 1.73 @@ -1,4 +1,4 @@ -/* $OpenBSD: mansearch.c,v 1.70 2017/04/17 20:05:08 schwarze Exp $ */ +/* $OpenBSD: mansearch.c,v 1.73 2017/05/17 21:19:32 schwarze Exp $ */ /* * Copyright (c) 2012 Kristaps Dzonsons * Copyright (c) 2013-2017 Ingo Schwarze @@ -155,7 +155,8 @@ mansearch(const struct mansearch *search, chdir_status = 1; if (dbm_open(MANDOC_DB) == -1) { - warn("%s/%s", paths->paths[i], MANDOC_DB); + if (errno != ENOENT) + warn("%s/%s", paths->paths[i], MANDOC_DB); continue; } @@ -516,6 +517,8 @@ buildoutput(size_t im, struct dbm_page *page) output = mandoc_malloc(sz); i = 0; lstcat(output, &i, input, " # "); + output[i++] = '\0'; + assert(i == sz); return output; } @@ -670,6 +673,12 @@ exprterm(const struct mansearch *search, int argc, cha return e; } + if (strcmp("-i", argv[*argi]) == 0 && *argi + 1 < argc) { + cs = 0; + ++*argi; + } else + cs = 1; + e = mandoc_calloc(1, sizeof(*e)); e->type = EXPR_TERM; e->bits = 0; @@ -688,7 +697,6 @@ exprterm(const struct mansearch *search, int argc, cha * If needed, request regular expression handling. */ - cs = 1; if (search->argmode == ARG_WORD) { e->bits = TYPE_Nm; e->match.type = DBM_REGEX;