PR/47958: Robert Kovacic: makewhatis.c not generating entries in whatisdb

for POD generated pages
This commit is contained in:
christos 2013-06-24 12:56:22 +00:00
parent a27e3fe5b7
commit 1b9025205b
1 changed files with 22 additions and 2 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: makewhatis.c,v 1.47 2009/04/02 21:39:33 apb Exp $ */
/* $NetBSD: makewhatis.c,v 1.48 2013/06/24 12:56:22 christos Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -37,7 +37,7 @@
#if !defined(lint)
__COPYRIGHT("@(#) Copyright (c) 1999\
The NetBSD Foundation, Inc. All rights reserved.");
__RCSID("$NetBSD: makewhatis.c,v 1.47 2009/04/02 21:39:33 apb Exp $");
__RCSID("$NetBSD: makewhatis.c,v 1.48 2013/06/24 12:56:22 christos Exp $");
#endif /* not lint */
#include <sys/types.h>
@ -871,6 +871,8 @@ static char *
parsemanpage(const char *name, gzFile *in, int defaultsection)
{
char *section, buffer[8192], *ptr;
static const char POD[] = ".\\\" Automatically generated by Pod";
static const char IX[] = ".IX TITLE";
section = NULL;
do {
@ -878,6 +880,24 @@ parsemanpage(const char *name, gzFile *in, int defaultsection)
free(section);
return NULL;
}
/*
* Skip over lines in man pages that have been generated
* by Pod, until we find the TITLE. This makewhatis cannot
* deal with it (and as * a result the man page would not
* appear in whatis.db)
* Modified by Robert Kovacic, June 23 2013.
*/
if (strncasecmp(buffer, POD, sizeof(POD) - 1) == 0) {
do {
if (GetS(in, buffer, sizeof(buffer) - 1)
== NULL) {
free(section);
return NULL;
}
} while (strncasecmp(buffer, IX, sizeof(IX) - 1) != 0);
}
if (manpreprocess(buffer))
continue;
if (strncasecmp(buffer, ".Dt", 3) == 0) {