minix/external/bsd/less/dist/mkhelp.c
Lionel Sambuc 84d9c625bf Synchronize on NetBSD-CVS (2013/12/1 12:00:00 UTC)
- Fix for possible unset uid/gid in toproto
 - Fix for default mtree style
 - Update libelf
 - Importing libexecinfo
 - Resynchronize GCC, mpc, gmp, mpfr
 - build.sh: Replace params with show-params.
     This has been done as the make target has been renamed in the same
     way, while a new target named params has been added. This new
     target generates a file containing all the parameters, instead of
     printing it on the console.
 - Update test48 with new etc/services (Fix by Ben Gras <ben@minix3.org)
     get getservbyport() out of the inner loop

Change-Id: Ie6ad5226fa2621ff9f0dee8782ea48f9443d2091
2014-07-28 17:05:06 +02:00

70 lines
1.4 KiB
C

/* $NetBSD: mkhelp.c,v 1.3 2013/09/04 19:44:21 tron Exp $ */
/*
* Copyright (C) 1984-2012 Mark Nudelman
*
* You may distribute under the terms of either the GNU General Public
* License or the Less License, as specified in the README file.
*
* For more information, see the README file.
*/
/*
* Silly little program to generate the help.c source file
* from the less.hlp text file.
* help.c just contains a char array whose contents are
* the contents of less.hlp.
*/
#include <stdio.h>
int
main(argc, argv)
int argc;
char *argv[];
{
int ch;
int prevch;
printf("/* This file was generated by mkhelp from less.hlp */\n");
printf("#include \"less.h\"\n");
printf("constant char helpdata[] = {\n");
ch = 0;
while (prevch = ch, (ch = getchar()) != EOF)
{
switch (ch)
{
case '\'':
printf("'\\'',");
break;
case '\\':
printf("'\\\\',");
break;
case '\b':
printf("'\\b',");
break;
case '\t':
printf("'\\t',");
break;
case '\n':
if (prevch != '\r')
printf("'\\n',\n");
break;
case '\r':
if (prevch != '\n')
printf("'\\n',\n");
break;
default:
if (ch >= ' ' && ch < 0x7f)
printf("'%c',", ch);
else
printf("0x%02x,", ch);
break;
}
}
/* Add an extra null char to avoid having a trailing comma. */
printf(" 0 };\n");
printf("constant int size_helpdata = sizeof(helpdata) - 1;\n");
return (0);
}