version 1.52, 2008/12/08 16:29:57 |
version 1.53, 2008/12/08 20:32:49 |
Line 84 static int rofffindcallable(const char *); |
|
Line 84 static int rofffindcallable(const char *); |
|
static int roffismsec(const char *); |
static int roffismsec(const char *); |
static int roffissec(const char **); |
static int roffissec(const char **); |
static int roffispunct(const char *); |
static int roffispunct(const char *); |
|
static int roffisatt(const char *); |
static int roffchecksec(struct rofftree *, |
static int roffchecksec(struct rofftree *, |
const char *, int); |
const char *, int); |
static int roffargs(const struct rofftree *, |
static int roffargs(const struct rofftree *, |
Line 680 roffismsec(const char *p) |
|
Line 681 roffismsec(const char *p) |
|
|
|
|
|
static int |
static int |
|
roffisatt(const char *p) |
|
{ |
|
|
|
assert(p); |
|
if (0 == strcmp(p, "v1")) |
|
return(1); |
|
else if (0 == strcmp(p, "v2")) |
|
return(1); |
|
else if (0 == strcmp(p, "v3")) |
|
return(1); |
|
else if (0 == strcmp(p, "v6")) |
|
return(1); |
|
else if (0 == strcmp(p, "v7")) |
|
return(1); |
|
else if (0 == strcmp(p, "32v")) |
|
return(1); |
|
else if (0 == strcmp(p, "V.1")) |
|
return(1); |
|
else if (0 == strcmp(p, "V.4")) |
|
return(1); |
|
|
|
return(0); |
|
} |
|
|
|
|
|
static int |
roffispunct(const char *p) |
roffispunct(const char *p) |
{ |
{ |
|
|
Line 788 roffspecial(struct rofftree *tree, int tok, const char |
|
Line 815 roffspecial(struct rofftree *tree, int tok, const char |
|
case (ROFF_At): |
case (ROFF_At): |
if (0 == sz) |
if (0 == sz) |
break; |
break; |
if (0 == strcmp(*ordp, "v1")) |
if (roffisatt(*ordp)) |
break; |
break; |
else if (0 == strcmp(*ordp, "v2")) |
|
break; |
|
else if (0 == strcmp(*ordp, "v3")) |
|
break; |
|
else if (0 == strcmp(*ordp, "v6")) |
|
break; |
|
else if (0 == strcmp(*ordp, "v7")) |
|
break; |
|
else if (0 == strcmp(*ordp, "32v")) |
|
break; |
|
else if (0 == strcmp(*ordp, "V.1")) |
|
break; |
|
else if (0 == strcmp(*ordp, "V.4")) |
|
break; |
|
roff_err(tree, *ordp, "invalid `At' arg"); |
roff_err(tree, *ordp, "invalid `At' arg"); |
return(0); |
return(0); |
|
|
|
|
roff_layout(ROFFCALL_ARGS) |
roff_layout(ROFFCALL_ARGS) |
{ |
{ |
int i, c, argcp[ROFF_MAXLINEARG]; |
int i, c, argcp[ROFF_MAXLINEARG]; |
char *argvp[ROFF_MAXLINEARG]; |
char *argvp[ROFF_MAXLINEARG], *p; |
|
|
/* |
/* |
* The roff_layout function is for multi-line macros. A layout |
* The roff_layout function is for multi-line macros. A layout |
Line 1320 roff_layout(ROFFCALL_ARGS) |
|
Line 1333 roff_layout(ROFFCALL_ARGS) |
|
|
|
assert( ! (ROFF_CALLABLE & tokens[tok].flags)); |
assert( ! (ROFF_CALLABLE & tokens[tok].flags)); |
|
|
++argv; |
p = *argv++; |
|
|
if ( ! roffparseopts(tree, tok, &argv, argcp, argvp)) |
if ( ! roffparseopts(tree, tok, &argv, argcp, argvp)) |
return(0); |
return(0); |