diff options
| author | Paul Eggert | 2011-04-06 16:02:23 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-04-06 16:02:23 -0700 |
| commit | 7e2cac200108a4626573c4a8de851560c1fee456 (patch) | |
| tree | 6f8c02414a87b9718a40b9538bb60413a004ecd1 /src/coding.c | |
| parent | ce4d90b550a2bfb66099784386910a81b31421ed (diff) | |
| download | emacs-7e2cac200108a4626573c4a8de851560c1fee456.tar.gz emacs-7e2cac200108a4626573c4a8de851560c1fee456.zip | |
* coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
Diffstat (limited to 'src/coding.c')
| -rw-r--r-- | src/coding.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/coding.c b/src/coding.c index 555c29cbdf3..798e5c533f6 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -9023,7 +9023,7 @@ Return the corresponding character. */) | |||
| 9023 | { | 9023 | { |
| 9024 | Lisp_Object spec, attrs, val; | 9024 | Lisp_Object spec, attrs, val; |
| 9025 | struct charset *charset_roman, *charset_kanji, *charset_kana, *charset; | 9025 | struct charset *charset_roman, *charset_kanji, *charset_kana, *charset; |
| 9026 | int c; | 9026 | EMACS_INT c; |
| 9027 | 9027 | ||
| 9028 | CHECK_NATNUM (code); | 9028 | CHECK_NATNUM (code); |
| 9029 | c = XFASTINT (code); | 9029 | c = XFASTINT (code); |
| @@ -9048,7 +9048,8 @@ Return the corresponding character. */) | |||
| 9048 | } | 9048 | } |
| 9049 | else | 9049 | else |
| 9050 | { | 9050 | { |
| 9051 | int c1 = c >> 8, c2 = c & 0xFF; | 9051 | EMACS_INT c1 = c >> 8; |
| 9052 | int c2 = c & 0xFF; | ||
| 9052 | 9053 | ||
| 9053 | if (c1 < 0x81 || (c1 > 0x9F && c1 < 0xE0) || c1 > 0xEF | 9054 | if (c1 < 0x81 || (c1 > 0x9F && c1 < 0xE0) || c1 > 0xEF |
| 9054 | || c2 < 0x40 || c2 == 0x7F || c2 > 0xFC) | 9055 | || c2 < 0x40 || c2 == 0x7F || c2 > 0xFC) |