Merge from vendor branch NTPD:
[dragonfly.git] / contrib / less-381 / mkhelp.c
1 /*
2  * Copyright (C) 1984-2002  Mark Nudelman
3  *
4  * You may distribute under the terms of either the GNU General Public
5  * License or the Less License, as specified in the README file.
6  *
7  * For more information about less, or for information on how to 
8  * contact the author, see the README file.
9  */
10
11
12 /*
13  * Silly little program to generate the help.c source file
14  * from the less.hlp text file.
15  * help.c just contains a char array whose contents are 
16  * the contents of less.hlp.
17  */
18
19 #include <stdio.h>
20
21         int
22 main(argc, argv)
23         int argc;
24         char *argv[];
25 {
26         int ch;
27         int prevch;
28
29         printf("/* This file was generated by mkhelp from less.hlp */\n");
30         printf("#include \"less.h\"\n");
31         printf("constant char helpdata[] = {\n");
32         ch = 0;
33         while (prevch = ch, (ch = getchar()) != EOF)
34         {
35                 switch (ch)
36                 {
37                 case '\'':
38                         printf("'\\'',");
39                         break;
40                 case '\\':
41                         printf("'\\\\',");
42                         break;
43                 case '\b':
44                         printf("'\\b',");
45                         break;
46                 case '\t':
47                         printf("'\\t',");
48                         break;
49                 case '\n':
50                         if (prevch != '\r') 
51                                 printf("'\\n',\n");
52                         break;
53                 case '\r':
54                         if (prevch != '\n') 
55                                 printf("'\\n',\n");
56                         break;
57                 default:
58                         if (ch >= ' ' && ch < 0x7f)
59                                 printf("'%c',", ch);
60                         else
61                                 printf("0x%02x,", ch);
62                         break;
63                 }
64         }
65         /* Add an extra null char to avoid having a trailing comma. */
66         printf(" 0 };\n");
67         printf("constant int size_helpdata = sizeof(helpdata) - 1;\n");
68         return (0);
69 }