comparison src/coding.c @ 30578:705b94e152b1

(decode_coding_iso2022): More strict check for handling single shifting.
author Kenichi Handa <handa@m17n.org>
date Fri, 04 Aug 2000 02:05:39 +0000
parents 6165da9c89c6
children 6c7a9202a815
comparison
equal deleted inserted replaced
30577:c4e04757698b 30578:705b94e152b1
1469 if (! (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT) 1469 if (! (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT)
1470 || CODING_SPEC_ISO_DESIGNATION (coding, 2) < 0) 1470 || CODING_SPEC_ISO_DESIGNATION (coding, 2) < 0)
1471 goto label_invalid_code; 1471 goto label_invalid_code;
1472 charset = CODING_SPEC_ISO_DESIGNATION (coding, 2); 1472 charset = CODING_SPEC_ISO_DESIGNATION (coding, 2);
1473 ONE_MORE_BYTE (c1); 1473 ONE_MORE_BYTE (c1);
1474 if (c1 < 0x20 || (c1 >= 0x80 && c1 < 0xA0))
1475 goto label_invalid_code;
1474 break; 1476 break;
1475 1477
1476 case 'O': /* invocation of single-shift-3 */ 1478 case 'O': /* invocation of single-shift-3 */
1477 if (! (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT) 1479 if (! (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT)
1478 || CODING_SPEC_ISO_DESIGNATION (coding, 3) < 0) 1480 || CODING_SPEC_ISO_DESIGNATION (coding, 3) < 0)
1479 goto label_invalid_code; 1481 goto label_invalid_code;
1480 charset = CODING_SPEC_ISO_DESIGNATION (coding, 3); 1482 charset = CODING_SPEC_ISO_DESIGNATION (coding, 3);
1481 ONE_MORE_BYTE (c1); 1483 ONE_MORE_BYTE (c1);
1484 if (c1 < 0x20 || (c1 >= 0x80 && c1 < 0xA0))
1485 goto label_invalid_code;
1482 break; 1486 break;
1483 1487
1484 case '0': case '2': case '3': case '4': /* start composition */ 1488 case '0': case '2': case '3': case '4': /* start composition */
1485 DECODE_COMPOSITION_START (c1); 1489 DECODE_COMPOSITION_START (c1);
1486 continue; 1490 continue;