1*ec18bca0Stron /* $NetBSD: mkhelp.c,v 1.3 2013/09/04 19:44:21 tron Exp $ */
220006a0bStron
320006a0bStron /*
4*ec18bca0Stron * Copyright (C) 1984-2012 Mark Nudelman
520006a0bStron *
620006a0bStron * You may distribute under the terms of either the GNU General Public
720006a0bStron * License or the Less License, as specified in the README file.
820006a0bStron *
9*ec18bca0Stron * For more information, see the README file.
1020006a0bStron */
1120006a0bStron
1220006a0bStron
1320006a0bStron /*
1420006a0bStron * Silly little program to generate the help.c source file
1520006a0bStron * from the less.hlp text file.
1620006a0bStron * help.c just contains a char array whose contents are
1720006a0bStron * the contents of less.hlp.
1820006a0bStron */
1920006a0bStron
2020006a0bStron #include <stdio.h>
2120006a0bStron
2220006a0bStron int
main(argc,argv)2320006a0bStron main(argc, argv)
2420006a0bStron int argc;
2520006a0bStron char *argv[];
2620006a0bStron {
2720006a0bStron int ch;
2820006a0bStron int prevch;
2920006a0bStron
3020006a0bStron printf("/* This file was generated by mkhelp from less.hlp */\n");
3120006a0bStron printf("#include \"less.h\"\n");
3220006a0bStron printf("constant char helpdata[] = {\n");
3320006a0bStron ch = 0;
3420006a0bStron while (prevch = ch, (ch = getchar()) != EOF)
3520006a0bStron {
3620006a0bStron switch (ch)
3720006a0bStron {
3820006a0bStron case '\'':
3920006a0bStron printf("'\\'',");
4020006a0bStron break;
4120006a0bStron case '\\':
4220006a0bStron printf("'\\\\',");
4320006a0bStron break;
4420006a0bStron case '\b':
4520006a0bStron printf("'\\b',");
4620006a0bStron break;
4720006a0bStron case '\t':
4820006a0bStron printf("'\\t',");
4920006a0bStron break;
5020006a0bStron case '\n':
5120006a0bStron if (prevch != '\r')
5220006a0bStron printf("'\\n',\n");
5320006a0bStron break;
5420006a0bStron case '\r':
5520006a0bStron if (prevch != '\n')
5620006a0bStron printf("'\\n',\n");
5720006a0bStron break;
5820006a0bStron default:
5920006a0bStron if (ch >= ' ' && ch < 0x7f)
6020006a0bStron printf("'%c',", ch);
6120006a0bStron else
6220006a0bStron printf("0x%02x,", ch);
6320006a0bStron break;
6420006a0bStron }
6520006a0bStron }
6620006a0bStron /* Add an extra null char to avoid having a trailing comma. */
6720006a0bStron printf(" 0 };\n");
6820006a0bStron printf("constant int size_helpdata = sizeof(helpdata) - 1;\n");
6920006a0bStron return (0);
7020006a0bStron }
71