| 282 |
"(?+ or (?- or (?(+ or (?(- must be followed by a non-zero number", |
"(?+ or (?- or (?(+ or (?(- must be followed by a non-zero number", |
| 283 |
"(*VERB) with an argument is not supported", |
"(*VERB) with an argument is not supported", |
| 284 |
/* 60 */ |
/* 60 */ |
| 285 |
"(*VERB) not recognized" |
"(*VERB) not recognized", |
| 286 |
|
"number is too big" |
| 287 |
}; |
}; |
| 288 |
|
|
| 289 |
|
|
| 440 |
|
|
| 441 |
Returns: zero or positive => a data character |
Returns: zero or positive => a data character |
| 442 |
negative => a special escape sequence |
negative => a special escape sequence |
| 443 |
on error, errorptr is set |
on error, errorcodeptr is set |
| 444 |
*/ |
*/ |
| 445 |
|
|
| 446 |
static int |
static int |
| 524 |
c = 0; |
c = 0; |
| 525 |
while ((digitab[ptr[1]] & ctype_digit) != 0) |
while ((digitab[ptr[1]] & ctype_digit) != 0) |
| 526 |
c = c * 10 + *(++ptr) - '0'; |
c = c * 10 + *(++ptr) - '0'; |
| 527 |
|
|
| 528 |
|
if (c < 0) |
| 529 |
|
{ |
| 530 |
|
*errorcodeptr = ERR61; |
| 531 |
|
break; |
| 532 |
|
} |
| 533 |
|
|
| 534 |
if (c == 0 || (braced && *(++ptr) != '}')) |
if (c == 0 || (braced && *(++ptr) != '}')) |
| 535 |
{ |
{ |
| 536 |
*errorcodeptr = ERR57; |
*errorcodeptr = ERR57; |
| 537 |
return 0; |
break; |
| 538 |
} |
} |
| 539 |
|
|
| 540 |
if (negated) |
if (negated) |
| 542 |
if (c > bracount) |
if (c > bracount) |
| 543 |
{ |
{ |
| 544 |
*errorcodeptr = ERR15; |
*errorcodeptr = ERR15; |
| 545 |
return 0; |
break; |
| 546 |
} |
} |
| 547 |
c = bracount - (c - 1); |
c = bracount - (c - 1); |
| 548 |
} |
} |
| 571 |
c -= '0'; |
c -= '0'; |
| 572 |
while ((digitab[ptr[1]] & ctype_digit) != 0) |
while ((digitab[ptr[1]] & ctype_digit) != 0) |
| 573 |
c = c * 10 + *(++ptr) - '0'; |
c = c * 10 + *(++ptr) - '0'; |
| 574 |
|
if (c < 0) |
| 575 |
|
{ |
| 576 |
|
*errorcodeptr = ERR61; |
| 577 |
|
break; |
| 578 |
|
} |
| 579 |
if (c < 10 || c <= bracount) |
if (c < 10 || c <= bracount) |
| 580 |
{ |
{ |
| 581 |
c = -(ESC_REF + c); |
c = -(ESC_REF + c); |
| 671 |
if (c == 0) |
if (c == 0) |
| 672 |
{ |
{ |
| 673 |
*errorcodeptr = ERR2; |
*errorcodeptr = ERR2; |
| 674 |
return 0; |
break; |
| 675 |
} |
} |
| 676 |
|
|
| 677 |
#ifndef EBCDIC /* ASCII coding */ |
#ifndef EBCDIC /* ASCII coding */ |