version 1.239, 2014/11/19 01:20:25 |
version 1.241, 2014/12/16 01:22:59 |
|
|
static int |
static int |
roff_evalcond(struct roff *r, int ln, const char *v, int *pos) |
roff_evalcond(struct roff *r, int ln, const char *v, int *pos) |
{ |
{ |
int wanttrue, number; |
int number, savepos, wanttrue; |
|
|
if ('!' == v[*pos]) { |
if ('!' == v[*pos]) { |
wanttrue = 0; |
wanttrue = 0; |
Line 1258 roff_evalcond(struct roff *r, int ln, const char *v, i |
|
Line 1258 roff_evalcond(struct roff *r, int ln, const char *v, i |
|
wanttrue = 1; |
wanttrue = 1; |
|
|
switch (v[*pos]) { |
switch (v[*pos]) { |
|
case '\0': |
|
return(0); |
case 'n': |
case 'n': |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case 'o': |
case 'o': |
Line 1280 roff_evalcond(struct roff *r, int ln, const char *v, i |
|
Line 1282 roff_evalcond(struct roff *r, int ln, const char *v, i |
|
break; |
break; |
} |
} |
|
|
|
savepos = *pos; |
if (roff_evalnum(r, ln, v, pos, &number, 0)) |
if (roff_evalnum(r, ln, v, pos, &number, 0)) |
return((number > 0) == wanttrue); |
return((number > 0) == wanttrue); |
else |
else if (*pos == savepos) |
return(roff_evalstrcond(v, pos) == wanttrue); |
return(roff_evalstrcond(v, pos) == wanttrue); |
|
else |
|
return (0); |
} |
} |
|
|
static enum rofferr |
static enum rofferr |