Mercurial > hg > Applications > mh
diff miscellany/less-177/help.c @ 0:bce86c4163a3
Initial revision
author | kono |
---|---|
date | Mon, 18 Apr 2005 23:46:02 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/miscellany/less-177/help.c Mon Apr 18 23:46:02 2005 +0900 @@ -0,0 +1,54 @@ +/* + * Display some help. + * Just invoke another "less" to display the help file. + * + * {{ This makes this function very simple, and makes changing the + * help file very easy, but it may present difficulties on + * (non-Unix) systems which do not supply the "system()" function. }} + */ + +#include "less.h" + +#if __MSDOS__ +#include <io.h> +#include <dir.h> +#include <string.h> +#include <stdlib.h> +extern int output_mode; +#endif + +extern char *progname; + + public void +help() +{ + char *helpfile; + char *cmd; + + helpfile = find_helpfile(); + if (helpfile == NULL) + { + error("Cannot find help file", NULL_PARG); + return; + } +#if __MSDOS__ + putenv("LESS=-+v -+E -+s -mHPmHELP -- ?eEND -- Press g to see " + "it again:Press RETURN for more., or q when done "); + cmd = (char *) ecalloc(strlen(helpfile) + strlen(progname) + 50, + sizeof(char)); + if (output_mode == 0) + sprintf(cmd, "-%s %s", progname, helpfile); + else + sprintf(cmd, "-%s -qVW4,4,76,23,Help %s", progname, helpfile); +#else + cmd = (char *) ecalloc(strlen(helpfile) + strlen(progname) + 150, + sizeof(char)); + sprintf(cmd, + "-%s -m -H -+E -+s '-PmHELP -- ?eEND -- Press g to see it again:Press RETURN for more., or q when done ' %s", + progname, helpfile); +#endif + free(helpfile); + lsystem(cmd); + error("End of help", NULL_PARG); + free(cmd); +}