annotate uip/mhparam.c @ 12:441a2190cfae

Lion fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 21 Apr 2012 13:10:49 +0900
parents bce86c4163a3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1 /* mhparam.c - print mh_profile values */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2 #ifndef lint
12
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
3 static char ident[] = "@(#)$Id: mhparam.c,v 1.1.1.1 2005/04/18 14:46:07 kono Exp $";
0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
4 #endif /* lint */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
5 /* contributed by Jeffrey C Honig <Jeffrey_C_Honig@cornell.edu> */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
6
bce86c4163a3 Initial revision
kono
parents:
diff changeset
7 #include "../h/mh.h"
bce86c4163a3 Initial revision
kono
parents:
diff changeset
8 #include <stdio.h>
bce86c4163a3 Initial revision
kono
parents:
diff changeset
9
bce86c4163a3 Initial revision
kono
parents:
diff changeset
10 extern char *mhlibdir; /* NB: this will change soon */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
11 char *sbackup = SBACKUP;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
12 char *slink = LINK;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
13
bce86c4163a3 Initial revision
kono
parents:
diff changeset
14 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
15
bce86c4163a3 Initial revision
kono
parents:
diff changeset
16 static struct swit switches[] = {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
17 #define COMPSW 0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
18 "components", 0,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
19 #define NCOMPSW 1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
20 "nocomponents", 0,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
21 #define ALLSW 2
bce86c4163a3 Initial revision
kono
parents:
diff changeset
22 "all", 0,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
23 #define HELPSW 3
bce86c4163a3 Initial revision
kono
parents:
diff changeset
24 "help", 4,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
25
bce86c4163a3 Initial revision
kono
parents:
diff changeset
26 NULL, 0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
27 };
bce86c4163a3 Initial revision
kono
parents:
diff changeset
28
bce86c4163a3 Initial revision
kono
parents:
diff changeset
29 static char *p_find();
bce86c4163a3 Initial revision
kono
parents:
diff changeset
30
bce86c4163a3 Initial revision
kono
parents:
diff changeset
31 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
32
bce86c4163a3 Initial revision
kono
parents:
diff changeset
33 /* ARGSUSED */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
34
bce86c4163a3 Initial revision
kono
parents:
diff changeset
35 main(argc, argv)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
36 int argc;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
37 char *argv[];
bce86c4163a3 Initial revision
kono
parents:
diff changeset
38 {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
39 int i,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
40 all = 0,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
41 compp = 0,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
42 components = -1,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
43 missed = 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
44 char *cp,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
45 buf[100],
bce86c4163a3 Initial revision
kono
parents:
diff changeset
46 **ap,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
47 **argp,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
48 *arguments[MAXARGS],
bce86c4163a3 Initial revision
kono
parents:
diff changeset
49 *comps[MAXARGS];
bce86c4163a3 Initial revision
kono
parents:
diff changeset
50
bce86c4163a3 Initial revision
kono
parents:
diff changeset
51 #ifdef JAPAN
bce86c4163a3 Initial revision
kono
parents:
diff changeset
52 ml_init();
bce86c4163a3 Initial revision
kono
parents:
diff changeset
53 #endif /* JAPAN */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
54 invo_name = r1bindex (argv[0], '/');
bce86c4163a3 Initial revision
kono
parents:
diff changeset
55 if ((cp = m_find (invo_name)) != NULL) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
56 ap = brkstring (cp = getcpy (cp), " ", "\n");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
57 ap = copyip (ap, arguments);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
58 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
59 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
60 ap = arguments;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
61 (void) copyip (argv + 1, ap);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
62 argp = arguments;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
63
bce86c4163a3 Initial revision
kono
parents:
diff changeset
64 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
65
bce86c4163a3 Initial revision
kono
parents:
diff changeset
66 while (cp = *argp++) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
67 if (*cp == '-')
bce86c4163a3 Initial revision
kono
parents:
diff changeset
68 switch (smatch (++cp, switches)) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
69 case AMBIGSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
70 ambigsw (cp, switches);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
71 done (1);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
72 case UNKWNSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
73 adios (NULLCP, "-%s unknown", cp);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
74 case HELPSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
75 (void) sprintf (buf, "%s [profile-components] [switches]",
bce86c4163a3 Initial revision
kono
parents:
diff changeset
76 invo_name);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
77 help (buf, switches);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
78 done (1);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
79
bce86c4163a3 Initial revision
kono
parents:
diff changeset
80 case COMPSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
81 components = 1;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
82 break;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
83 case NCOMPSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
84 components = 0;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
85 break;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
86
bce86c4163a3 Initial revision
kono
parents:
diff changeset
87 case ALLSW:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
88 all = 1;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
89 break;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
90
bce86c4163a3 Initial revision
kono
parents:
diff changeset
91 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
92 else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
93 comps[compp++] = cp;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
94 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
95
bce86c4163a3 Initial revision
kono
parents:
diff changeset
96 /* */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
97
bce86c4163a3 Initial revision
kono
parents:
diff changeset
98 if (all) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
99 register struct node *np;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
100
bce86c4163a3 Initial revision
kono
parents:
diff changeset
101 if (compp)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
102 advise(NULLCP, "profile-components ignored with -all");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
103
bce86c4163a3 Initial revision
kono
parents:
diff changeset
104 if (components >= 0)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
105 advise(NULLCP, "-%scomponents ignored with -all",
bce86c4163a3 Initial revision
kono
parents:
diff changeset
106 components ? "" : "no");
bce86c4163a3 Initial revision
kono
parents:
diff changeset
107
bce86c4163a3 Initial revision
kono
parents:
diff changeset
108 m_getdefs ();
bce86c4163a3 Initial revision
kono
parents:
diff changeset
109 for (np = m_defs; np; np = np -> n_next) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
110 #ifdef JAPAN
bce86c4163a3 Initial revision
kono
parents:
diff changeset
111 printf("%s:\t", np -> n_name);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
112 (void) ml_conv(np -> n_field);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
113 ml_fputs(np -> n_field, stdout);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
114 fputs("\n", stdout);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
115 #else /* JAPAN */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
116 printf("%s:\t%s\n", np -> n_name, np -> n_field);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
117 #endif /* JAPAN */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
118 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
119 } else {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
120 if (components < 0)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
121 components = compp > 1;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
122
bce86c4163a3 Initial revision
kono
parents:
diff changeset
123 for (i = 0; i < compp; i++) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
124 register char *value = m_find(comps[i]);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
125
bce86c4163a3 Initial revision
kono
parents:
diff changeset
126 if (!value)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
127 value = p_find(comps[i]);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
128
bce86c4163a3 Initial revision
kono
parents:
diff changeset
129 if (value) {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
130 if (components)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
131 printf("%s:\t", comps[i]);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
132
bce86c4163a3 Initial revision
kono
parents:
diff changeset
133 #ifdef JAPAN
bce86c4163a3 Initial revision
kono
parents:
diff changeset
134 (void) ml_conv(value);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
135 ml_fputs(value, stdout);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
136 fputs("\n", stdout);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
137 #else /* JAPAN */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
138 printf("%s\n", value);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
139 #endif /* JAPAN */
bce86c4163a3 Initial revision
kono
parents:
diff changeset
140 } else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
141 missed++;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
142 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
143 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
144
bce86c4163a3 Initial revision
kono
parents:
diff changeset
145 done (missed);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
146 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
147
bce86c4163a3 Initial revision
kono
parents:
diff changeset
148 static struct procs {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
149 char *p_name;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
150 char **p_field;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
151 } procs [] = {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
152 { "context", &context },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
153 { "faceproc", &faceproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
154 { "fileproc", &fileproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
155 { "foldprot", &foldprot },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
156 { "incproc", &incproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
157 { "installproc", &installproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
158 { "lproc", &lproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
159 { "mailproc", &mailproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
160 { "mhlproc", &mhlproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
161 { "moreproc", &moreproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
162 { "msgprot", &msgprot },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
163 { "mshproc", &mshproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
164 { "packproc", &packproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
165 { "postproc", &postproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
166 { "rmfproc", &rmfproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
167 { "rmmproc", &rmmproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
168 { "sendproc", &sendproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
169 { "showproc", &showproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
170 { "slocalproc", &slocalproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
171 { "version", &version },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
172 { "vmhproc", &vmhproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
173 { "whatnowproc", &whatnowproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
174 { "whomproc", &whomproc },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
175 { "libdir", &mhlibdir },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
176 { "sbackup", &sbackup },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
177 { "link", &slink },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
178
bce86c4163a3 Initial revision
kono
parents:
diff changeset
179 { NULL, NULL },
bce86c4163a3 Initial revision
kono
parents:
diff changeset
180 };
bce86c4163a3 Initial revision
kono
parents:
diff changeset
181
bce86c4163a3 Initial revision
kono
parents:
diff changeset
182 static char *p_find(str)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
183 register char *str;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
184 {
bce86c4163a3 Initial revision
kono
parents:
diff changeset
185 register struct procs *ps;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
186
bce86c4163a3 Initial revision
kono
parents:
diff changeset
187 for (ps = procs; ps->p_name; ps++)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
188 if (uleq (ps -> p_name, str))
bce86c4163a3 Initial revision
kono
parents:
diff changeset
189 #ifdef JAPAN
bce86c4163a3 Initial revision
kono
parents:
diff changeset
190 return getcpy(*ps -> p_field);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
191 #else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
192 return (*ps -> p_field);
bce86c4163a3 Initial revision
kono
parents:
diff changeset
193 #endif
bce86c4163a3 Initial revision
kono
parents:
diff changeset
194
bce86c4163a3 Initial revision
kono
parents:
diff changeset
195 return NULL;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
196 }