mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-01 21:33:04 +00:00
a5f0fb151d
distributed under your choice of the GPL or a BSD style license. Reviewed by: peter Obtained from: http://home.flash.net/~marknu/less/
70 lines
1.4 KiB
C
70 lines
1.4 KiB
C
/*
|
|
* Copyright (C) 1984-2000 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 about less, or for information on how to
|
|
* contact the author, 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);
|
|
}
|