-/* $Id: manpath.c,v 1.9 2012/06/08 10:32:40 kristaps Exp $ */
+/* $Id: manpath.c,v 1.17 2014/08/16 19:00:01 schwarze Exp $ */
/*
* Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
-#include <sys/param.h>
+#include <sys/types.h>
#include <assert.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
-#include "mandoc.h"
+#include "mandoc_aux.h"
#include "manpath.h"
#define MAN_CONF_FILE "/etc/man.conf"
manpath_parse(struct manpaths *dirs, const char *file,
char *defp, char *auxp)
{
-#ifdef USE_MANPATH
- char cmd[(MAXPATHLEN * 3) + 20];
+#if HAVE_MANPATH
+ char cmd[(PATH_MAX * 3) + 20];
FILE *stream;
char *buf;
size_t sz, bsz;
char *insert;
/* Always prepend -m. */
- manpath_parseline(dirs, auxp);
-
+ manpath_parseline(dirs, auxp);
+
/* If -M is given, it overrides everything else. */
if (NULL != defp) {
manpath_parseline(dirs, defp);
if (0 == strcmp(dirs->paths[i], dir))
return;
- dirs->paths = mandoc_realloc
- (dirs->paths,
- (dirs->sz + 1) * sizeof(char *));
+ dirs->paths = mandoc_reallocarray(dirs->paths,
+ dirs->sz + 1, sizeof(char *));
dirs->paths[dirs->sz++] = mandoc_strdup(cp);
}
if (strncmp(MAN_CONF_KEY, p, keysz))
continue;
p += keysz;
- while (isspace(*p))
+ while (isspace((unsigned char)*p))
p++;
if ('\0' == *p)
continue;