[BACK]Return to mkhelp.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / less

Annotation of src/usr.bin/less/mkhelp.c, Revision 1.1.1.2

1.1       millert     1: /*
1.1.1.2 ! shadchin    2:  * Copyright (C) 1984-2011  Mark Nudelman
1.1       millert     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: }