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

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