version 1.136, 2018/12/14 06:33:14 |
version 1.137, 2018/12/21 17:15:18 |
Line 202 blk_close(MACRO_PROT_ARGS) |
|
Line 202 blk_close(MACRO_PROT_ARGS) |
|
{ |
{ |
enum roff_tok ctok, ntok; |
enum roff_tok ctok, ntok; |
const struct roff_node *nn; |
const struct roff_node *nn; |
char *p; |
char *p, *ep; |
int cline, cpos, nrew, target; |
int cline, cpos, la, nrew, target; |
|
|
nrew = 1; |
nrew = 1; |
switch (tok) { |
switch (tok) { |
case MAN_RE: |
case MAN_RE: |
ntok = MAN_RS; |
ntok = MAN_RS; |
|
la = *pos; |
if ( ! man_args(man, line, pos, buf, &p)) |
if ( ! man_args(man, line, pos, buf, &p)) |
break; |
break; |
for (nn = man->last->parent; nn; nn = nn->parent) |
for (nn = man->last->parent; nn; nn = nn->parent) |
if (nn->tok == ntok && nn->type == ROFFT_BLOCK) |
if (nn->tok == ntok && nn->type == ROFFT_BLOCK) |
nrew++; |
nrew++; |
target = strtol(p, &p, 10); |
target = strtol(p, &ep, 10); |
if (*p != '\0') |
if (*ep != '\0') |
mandoc_msg(MANDOCERR_ARG_EXCESS, line, |
mandoc_msg(MANDOCERR_ARG_EXCESS, line, |
(int)(p - buf), "RE ... %s", p); |
la + (buf[la] == '"') + (int)(ep - p), |
|
"RE ... %s", ep); |
|
free(p); |
if (target == 0) |
if (target == 0) |
target = 1; |
target = 1; |
nrew -= target; |
nrew -= target; |
Line 312 blk_exp(MACRO_PROT_ARGS) |
|
Line 315 blk_exp(MACRO_PROT_ARGS) |
|
roff_setreg(man->roff, "an-margin", |
roff_setreg(man->roff, "an-margin", |
head->aux, '+'); |
head->aux, '+'); |
} |
} |
|
free(p); |
} |
} |
|
|
if (buf[*pos] != '\0') |
if (buf[*pos] != '\0') |
Line 348 blk_imp(MACRO_PROT_ARGS) |
|
Line 352 blk_imp(MACRO_PROT_ARGS) |
|
if ( ! man_args(man, line, pos, buf, &p)) |
if ( ! man_args(man, line, pos, buf, &p)) |
break; |
break; |
roff_word_alloc(man, line, la, p); |
roff_word_alloc(man, line, la, p); |
|
free(p); |
} |
} |
|
|
/* |
/* |
Line 397 in_line_eoln(MACRO_PROT_ARGS) |
|
Line 402 in_line_eoln(MACRO_PROT_ARGS) |
|
roff_word_append(man, p); |
roff_word_append(man, p); |
else |
else |
roff_word_alloc(man, line, la, p); |
roff_word_alloc(man, line, la, p); |
|
free(p); |
} |
} |
|
|
/* |
/* |
Line 456 man_args(struct roff_man *man, int line, int *pos, cha |
|
Line 462 man_args(struct roff_man *man, int line, int *pos, cha |
|
if ('\0' == *start) |
if ('\0' == *start) |
return 0; |
return 0; |
|
|
*v = mandoc_getarg(v, line, pos); |
*v = roff_getarg(man->roff, v, line, pos); |
return 1; |
return 1; |
} |
} |