Mercurial > emacs
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; |