2013-12-06 12:04:52 +01:00
|
|
|
/* $NetBSD: mkhelp.c,v 1.3 2013/09/04 19:44:21 tron Exp $ */
|
2013-12-03 11:35:03 +01:00
|
|
|
|
|
|
|
/*
|
2013-12-06 12:04:52 +01:00
|
|
|
* Copyright (C) 1984-2012 Mark Nudelman
|
2013-12-03 11:35:03 +01:00
|
|
|
*
|
|
|
|
* You may distribute under the terms of either the GNU General Public
|
|
|
|
* License or the Less License, as specified in the README file.
|
|
|
|
*
|
2013-12-06 12:04:52 +01:00
|
|
|
* For more information, see the README file.
|
2013-12-03 11:35:03 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* 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);
|
|
|
|
}
|