1: # include <ingres.h>
2: # include <sccs.h>
3:
4: SCCSID(@(#)mcall.c 8.1 12/31/84)
5:
6:
7:
8: /*
9: ** MCALL -- call a macro
10: **
11: ** This takes care of springing a macro and processing it for
12: ** any side effects. Replacement text is saved away in a static
13: ** buffer and returned.
14: **
15: ** Parameters:
16: ** mac -- the macro to spring.
17: **
18: ** Returns:
19: ** replacement text.
20: **
21: ** Side Effects:
22: ** Any side effects of the macro.
23: **
24: ** Trace Flags:
25: ** 51
26: */
27:
28: char *
29: mcall(mac)
30: char *mac;
31: {
32: register char c;
33: register char *m;
34: register char *p;
35: static char buf[100];
36: extern char macsget();
37:
38: m = mac;
39:
40: # ifdef xMTR2
41: tTfp(51, -1, "mcall('%s')\n", m);
42: # endif
43:
44: /* set up to process the macro */
45: macinit(macsget, &mac, FALSE);
46:
47: /* process it -- throw away result */
48: for (p = buf; (c = macgetch()) > 0; )
49: {
50: # ifdef xMTR2
51: if (tTf(51, 1))
52: putchar(c);
53: # endif
54: if (p < &buf[sizeof buf])
55: *p++ = c;
56: }
57:
58: *p = 0;
59:
60: return (buf);
61: }
Defined functions
mcall
defined in line
4; used 3 times