comparison miscellany/less-177/help.c @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:bce86c4163a3
1 /*
2 * Display some help.
3 * Just invoke another "less" to display the help file.
4 *
5 * {{ This makes this function very simple, and makes changing the
6 * help file very easy, but it may present difficulties on
7 * (non-Unix) systems which do not supply the "system()" function. }}
8 */
9
10 #include "less.h"
11
12 #if __MSDOS__
13 #include <io.h>
14 #include <dir.h>
15 #include <string.h>
16 #include <stdlib.h>
17 extern int output_mode;
18 #endif
19
20 extern char *progname;
21
22 public void
23 help()
24 {
25 char *helpfile;
26 char *cmd;
27
28 helpfile = find_helpfile();
29 if (helpfile == NULL)
30 {
31 error("Cannot find help file", NULL_PARG);
32 return;
33 }
34 #if __MSDOS__
35 putenv("LESS=-+v -+E -+s -mHPmHELP -- ?eEND -- Press g to see "
36 "it again:Press RETURN for more., or q when done ");
37 cmd = (char *) ecalloc(strlen(helpfile) + strlen(progname) + 50,
38 sizeof(char));
39 if (output_mode == 0)
40 sprintf(cmd, "-%s %s", progname, helpfile);
41 else
42 sprintf(cmd, "-%s -qVW4,4,76,23,Help %s", progname, helpfile);
43 #else
44 cmd = (char *) ecalloc(strlen(helpfile) + strlen(progname) + 150,
45 sizeof(char));
46 sprintf(cmd,
47 "-%s -m -H -+E -+s '-PmHELP -- ?eEND -- Press g to see it again:Press RETURN for more., or q when done ' %s",
48 progname, helpfile);
49 #endif
50 free(helpfile);
51 lsystem(cmd);
52 error("End of help", NULL_PARG);
53 free(cmd);
54 }