Bug #497 » m4-2.patch
| usr.bin/m4/m4.1 28 Dec 2006 00:10:12 -0000 | ||
|---|---|---|
|
.Nm
|
||
|
.Op Fl d Ar flags
|
||
|
.Op Fl t Ar name
|
||
|
.Op Fl gs
|
||
|
.Op Fl Pgs
|
||
|
.Op Fl D Ar name Ns Op = Ns Ar value
|
||
|
.Op Fl U Ar name
|
||
|
.Op Fl I Ar dirname
|
||
| ... | ... | |
|
.It Fl U Ar name
|
||
|
Undefine the symbol
|
||
|
.Ar name .
|
||
|
.It Fl P
|
||
|
Prefixes all
|
||
|
.Nm
|
||
|
builtin macros with the string
|
||
|
.Li m4_ .
|
||
|
This changes the macro names
|
||
|
.Li dnl
|
||
|
to
|
||
|
.Li m4_dnl ,
|
||
|
.Li index
|
||
|
to
|
||
|
.Li m4_index ,
|
||
|
and so forth.
|
||
|
.It Fl I Ar dirname
|
||
|
Add directory
|
||
|
.Ar dirname
|
||
| usr.bin/m4/main.c 31 Dec 2006 07:34:19 -0000 | ||
|---|---|---|
|
int oindex = 0; /* diversion index.. */
|
||
|
char null[] = ""; /* as it says.. just a null.. */
|
||
|
const char *m4wraps = ""; /* m4wrap string default.. */
|
||
|
int m4prefix = 0; /* prefix keywords with m4_ */
|
||
|
char lquote[MAXCCHARS+1] = {LQUOTE}; /* left quote character (`) */
|
||
|
char rquote[MAXCCHARS+1] = {RQUOTE}; /* right quote character (') */
|
||
|
char scommt[MAXCCHARS+1] = {SCOMMT}; /* start character for comment */
|
||
| ... | ... | |
|
int c;
|
||
|
int n;
|
||
|
int rval;
|
||
|
const char *optstr = "D:I:PU:gd:o:st:";
|
||
|
char *p;
|
||
|
setlocale(LC_ALL, "");
|
||
| ... | ... | |
|
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
|
||
|
signal(SIGINT, onintr);
|
||
|
/*
|
||
|
* We need to know if -P is there before checking -D and -U.
|
||
|
*/
|
||
|
while ((c = getopt(argc, argv, optstr)) != -1)
|
||
|
if (c == 'P')
|
||
|
m4prefix = 1;
|
||
|
optind = optreset = 1;
|
||
|
initkwds();
|
||
|
initspaces();
|
||
|
STACKMAX = INITSTACKMAX;
|
||
| ... | ... | |
|
outfile = NULL;
|
||
|
resizedivs(MAXOUT);
|
||
|
while ((c = getopt(argc, argv, "gst:d:D:U:o:I:")) != -1)
|
||
|
while ((c = getopt(argc, argv, optstr)) != -1)
|
||
|
switch(c) {
|
||
|
case 'D': /* define something..*/
|
||
|
for (p = optarg; *p; p++)
|
||
| ... | ... | |
|
case 'I':
|
||
|
addtoincludepath(optarg);
|
||
|
break;
|
||
|
case 'P':
|
||
|
break;
|
||
|
case 'U': /* undefine... */
|
||
|
remhash(optarg, TOP);
|
||
|
break;
|
||
| ... | ... | |
|
size_t i;
|
||
|
unsigned int h;
|
||
|
ndptr p;
|
||
|
char *k;
|
||
|
for (i = 0; i < MAXKEYS; i++) {
|
||
|
h = hash(keywrds[i].knam);
|
||
|
k = (char *)keywrds[i].knam;
|
||
|
if (m4prefix) {
|
||
|
if (asprintf(&k, "m4_%s", k) == -1)
|
||
|
err(1, "asprintf");
|
||
|
keywrds[i].knam = k;
|
||
|
}
|
||
|
h = hash(k);
|
||
|
p = (ndptr) xalloc(sizeof(struct ndblock));
|
||
|
p->nxtptr = hashtab[h % HASHSIZE];
|
||
|
hashtab[h % HASHSIZE] = p;
|
||
- « Previous
- 1
- 2
- Next »