1: /*************************************************************************
2: * This program is copyright (C) 1985, 1986 by Jonathan Payne. It is *
3: * provided to you without charge for use only on a licensed Unix *
4: * system. You may copy JOVE provided that this notice is included with *
5: * the copy. You may not sell copies of this program or versions *
6: * modified for use on microcomputer systems, unless the copies are *
7: * included with a Unix system distribution and the source is provided. *
8: *************************************************************************/
9:
10: #define TXT_TO_C
11:
12: #include "funcdefs.c"
13: #undef putchar /* From jove.h via funcdefs.c, conflicts with STDIO */
14: #undef putc
15: #undef getc
16: #undef EOF
17: #undef FILE
18: #undef BUFSIZ
19: #include <stdio.h>
20:
21: match(choices, what)
22: register struct cmd choices[];
23: register char *what;
24: {
25: register int len;
26: int i,
27: found = 0,
28: save,
29: exactmatch = -1;
30:
31: len = strlen(what);
32: for (i = 0; choices[i].Name != 0; i++) {
33: if (*what != *choices[i].Name)
34: continue;
35: if (strncmp(what, choices[i].Name, len) == 0)
36: return i;
37: }
38: return -1;
39: }
40:
41: char *
42: PPchar(c)
43: int c;
44: {
45: static char str[10];
46: char *cp = str;
47:
48: if (c == '\033')
49: strcpy(cp, "ESC");
50: else if (c < ' ')
51: (void) sprintf(cp, "C-%c", c + '@');
52: else if (c == '\177')
53: strcpy(cp, "^?");
54: else
55: (void) sprintf(cp, "%c", c);
56: return cp;
57: }
58:
59: (into, from)
60: char *into,
61: *from;
62: {
63: from += 2; /* Past tab and first double quote. */
64: while ((*into = *from++) != '"')
65: into++;
66: *into = 0;
67: }
68:
69: main()
70: {
71: FILE *ifile,
72: *of;
73: char line[100],
74: comname[70];
75: int comnum,
76: ch;
77:
78: ifile = stdin;
79: of = stdout;
80: if (ifile == NULL || of == NULL) {
81: printf("Cannot read input or write output.\n");
82: exit(1);
83: }
84: while (fgets(line, sizeof line, ifile) != NULL) {
85: if (strncmp(line, "\t\"", 2) != 0) {
86: fprintf(of, line);
87: ch = 0;
88: continue;
89: }
90: extract(comname, line);
91: if (strcmp(comname, "unbound") == 0)
92: comnum = 12345;
93: else {
94: comnum = match(commands, comname);
95: if (comnum < 0) {
96: fprintf(stderr, "Cannot find command \"%s\".\n", comname);
97: exit(1);
98: }
99: }
100: if (comnum == 12345)
101: fprintf(of, " (data_obj *) 0, /* %s */\n", PPchar(ch++));
102: else
103: fprintf(of, " (data_obj *) &commands[%d], /* %s */\n", comnum, PPchar(ch++));
104: }
105: fclose(of);
106: fclose(ifile);
107: exit(0);
108: }
Defined functions
defined in line
59; used 1 times
main
defined in line
69;
never used
match
defined in line
21; used 1 times
Defined macros