From ad5f463cf975eb6a9c4cb335fc2ce7a84c7d49a7 Mon Sep 17 00:00:00 2001 From: Xin LI Date: Fri, 8 May 2009 23:34:35 +0000 Subject: Flatten all tags of the dist tree of less. --- mkhelp.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 mkhelp.c (limited to 'mkhelp.c') diff --git a/mkhelp.c b/mkhelp.c new file mode 100644 index 0000000000000..f4a7ea76dcff9 --- /dev/null +++ b/mkhelp.c @@ -0,0 +1,69 @@ +/* + * Copyright (C) 1984-2007 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 + + 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); +} -- cgit v1.3