diff options
| author | Paul Eggert | 2011-04-10 09:44:27 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-04-10 09:44:27 -0700 |
| commit | b2ded58d7e0eb75f00071036d1c07bbd55313b60 (patch) | |
| tree | 5546bb6d7214033a83d13ce87a15f65595f6ae74 /src/coding.c | |
| parent | 37f1c9309eb0e6b3bc3dda1ffa7f99410c22355d (diff) | |
| parent | 12020a9e6dcfc2213e8bbb0fec259c1ed1202f30 (diff) | |
| download | emacs-b2ded58d7e0eb75f00071036d1c07bbd55313b60.tar.gz emacs-b2ded58d7e0eb75f00071036d1c07bbd55313b60.zip | |
Fix more problems found by GCC 4.6.0's static checks.
Diffstat (limited to 'src/coding.c')
| -rw-r--r-- | src/coding.c | 50 |
1 files changed, 31 insertions, 19 deletions
diff --git a/src/coding.c b/src/coding.c index a2e90e631d1..711ada59c85 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -9024,14 +9024,15 @@ Return the corresponding character. */) | |||
| 9024 | { | 9024 | { |
| 9025 | Lisp_Object spec, attrs, val; | 9025 | Lisp_Object spec, attrs, val; |
| 9026 | struct charset *charset_roman, *charset_kanji, *charset_kana, *charset; | 9026 | struct charset *charset_roman, *charset_kanji, *charset_kana, *charset; |
| 9027 | EMACS_INT ch; | ||
| 9027 | int c; | 9028 | int c; |
| 9028 | 9029 | ||
| 9029 | CHECK_NATNUM (code); | 9030 | CHECK_NATNUM (code); |
| 9030 | c = XFASTINT (code); | 9031 | ch = XFASTINT (code); |
| 9031 | CHECK_CODING_SYSTEM_GET_SPEC (Vsjis_coding_system, spec); | 9032 | CHECK_CODING_SYSTEM_GET_SPEC (Vsjis_coding_system, spec); |
| 9032 | attrs = AREF (spec, 0); | 9033 | attrs = AREF (spec, 0); |
| 9033 | 9034 | ||
| 9034 | if (ASCII_BYTE_P (c) | 9035 | if (ASCII_BYTE_P (ch) |
| 9035 | && ! NILP (CODING_ATTR_ASCII_COMPAT (attrs))) | 9036 | && ! NILP (CODING_ATTR_ASCII_COMPAT (attrs))) |
| 9036 | return code; | 9037 | return code; |
| 9037 | 9038 | ||
| @@ -9040,26 +9041,31 @@ Return the corresponding character. */) | |||
| 9040 | charset_kana = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val); | 9041 | charset_kana = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val); |
| 9041 | charset_kanji = CHARSET_FROM_ID (XINT (XCAR (val))); | 9042 | charset_kanji = CHARSET_FROM_ID (XINT (XCAR (val))); |
| 9042 | 9043 | ||
| 9043 | if (c <= 0x7F) | 9044 | if (ch <= 0x7F) |
| 9044 | charset = charset_roman; | ||
| 9045 | else if (c >= 0xA0 && c < 0xDF) | ||
| 9046 | { | 9045 | { |
| 9046 | c = ch; | ||
| 9047 | charset = charset_roman; | ||
| 9048 | } | ||
| 9049 | else if (ch >= 0xA0 && ch < 0xDF) | ||
| 9050 | { | ||
| 9051 | c = ch - 0x80; | ||
| 9047 | charset = charset_kana; | 9052 | charset = charset_kana; |
| 9048 | c -= 0x80; | ||
| 9049 | } | 9053 | } |
| 9050 | else | 9054 | else |
| 9051 | { | 9055 | { |
| 9052 | int c1 = c >> 8, c2 = c & 0xFF; | 9056 | EMACS_INT c1 = ch >> 8; |
| 9057 | int c2 = ch & 0xFF; | ||
| 9053 | 9058 | ||
| 9054 | if (c1 < 0x81 || (c1 > 0x9F && c1 < 0xE0) || c1 > 0xEF | 9059 | if (c1 < 0x81 || (c1 > 0x9F && c1 < 0xE0) || c1 > 0xEF |
| 9055 | || c2 < 0x40 || c2 == 0x7F || c2 > 0xFC) | 9060 | || c2 < 0x40 || c2 == 0x7F || c2 > 0xFC) |
| 9056 | error ("Invalid code: %d", code); | 9061 | error ("Invalid code: %"pEd, ch); |
| 9062 | c = ch; | ||
| 9057 | SJIS_TO_JIS (c); | 9063 | SJIS_TO_JIS (c); |
| 9058 | charset = charset_kanji; | 9064 | charset = charset_kanji; |
| 9059 | } | 9065 | } |
| 9060 | c = DECODE_CHAR (charset, c); | 9066 | c = DECODE_CHAR (charset, c); |
| 9061 | if (c < 0) | 9067 | if (c < 0) |
| 9062 | error ("Invalid code: %d", code); | 9068 | error ("Invalid code: %"pEd, ch); |
| 9063 | return make_number (c); | 9069 | return make_number (c); |
| 9064 | } | 9070 | } |
| 9065 | 9071 | ||
| @@ -9099,14 +9105,15 @@ Return the corresponding character. */) | |||
| 9099 | { | 9105 | { |
| 9100 | Lisp_Object spec, attrs, val; | 9106 | Lisp_Object spec, attrs, val; |
| 9101 | struct charset *charset_roman, *charset_big5, *charset; | 9107 | struct charset *charset_roman, *charset_big5, *charset; |
| 9108 | EMACS_INT ch; | ||
| 9102 | int c; | 9109 | int c; |
| 9103 | 9110 | ||
| 9104 | CHECK_NATNUM (code); | 9111 | CHECK_NATNUM (code); |
| 9105 | c = XFASTINT (code); | 9112 | ch = XFASTINT (code); |
| 9106 | CHECK_CODING_SYSTEM_GET_SPEC (Vbig5_coding_system, spec); | 9113 | CHECK_CODING_SYSTEM_GET_SPEC (Vbig5_coding_system, spec); |
| 9107 | attrs = AREF (spec, 0); | 9114 | attrs = AREF (spec, 0); |
| 9108 | 9115 | ||
| 9109 | if (ASCII_BYTE_P (c) | 9116 | if (ASCII_BYTE_P (ch) |
| 9110 | && ! NILP (CODING_ATTR_ASCII_COMPAT (attrs))) | 9117 | && ! NILP (CODING_ATTR_ASCII_COMPAT (attrs))) |
| 9111 | return code; | 9118 | return code; |
| 9112 | 9119 | ||
| @@ -9114,19 +9121,24 @@ Return the corresponding character. */) | |||
| 9114 | charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val); | 9121 | charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val); |
| 9115 | charset_big5 = CHARSET_FROM_ID (XINT (XCAR (val))); | 9122 | charset_big5 = CHARSET_FROM_ID (XINT (XCAR (val))); |
| 9116 | 9123 | ||
| 9117 | if (c <= 0x7F) | 9124 | if (ch <= 0x7F) |
| 9118 | charset = charset_roman; | 9125 | { |
| 9126 | c = ch; | ||
| 9127 | charset = charset_roman; | ||
| 9128 | } | ||
| 9119 | else | 9129 | else |
| 9120 | { | 9130 | { |
| 9121 | int b1 = c >> 8, b2 = c & 0x7F; | 9131 | EMACS_INT b1 = ch >> 8; |
| 9132 | int b2 = ch & 0x7F; | ||
| 9122 | if (b1 < 0xA1 || b1 > 0xFE | 9133 | if (b1 < 0xA1 || b1 > 0xFE |
| 9123 | || b2 < 0x40 || (b2 > 0x7E && b2 < 0xA1) || b2 > 0xFE) | 9134 | || b2 < 0x40 || (b2 > 0x7E && b2 < 0xA1) || b2 > 0xFE) |
| 9124 | error ("Invalid code: %d", code); | 9135 | error ("Invalid code: %"pEd, ch); |
| 9136 | c = ch; | ||
| 9125 | charset = charset_big5; | 9137 | charset = charset_big5; |
| 9126 | } | 9138 | } |
| 9127 | c = DECODE_CHAR (charset, (unsigned )c); | 9139 | c = DECODE_CHAR (charset, c); |
| 9128 | if (c < 0) | 9140 | if (c < 0) |
| 9129 | error ("Invalid code: %d", code); | 9141 | error ("Invalid code: %"pEd, ch); |
| 9130 | return make_number (c); | 9142 | return make_number (c); |
| 9131 | } | 9143 | } |
| 9132 | 9144 | ||
| @@ -9298,7 +9310,7 @@ usage: (find-operation-coding-system OPERATION ARGUMENTS...) */) | |||
| 9298 | || (EQ (operation, Qinsert_file_contents) && CONSP (target) | 9310 | || (EQ (operation, Qinsert_file_contents) && CONSP (target) |
| 9299 | && STRINGP (XCAR (target)) && BUFFERP (XCDR (target))) | 9311 | && STRINGP (XCAR (target)) && BUFFERP (XCDR (target))) |
| 9300 | || (EQ (operation, Qopen_network_stream) && INTEGERP (target)))) | 9312 | || (EQ (operation, Qopen_network_stream) && INTEGERP (target)))) |
| 9301 | error ("Invalid %dth argument", XFASTINT (target_idx) + 1); | 9313 | error ("Invalid %"pEd"th argument", XFASTINT (target_idx) + 1); |
| 9302 | if (CONSP (target)) | 9314 | if (CONSP (target)) |
| 9303 | target = XCAR (target); | 9315 | target = XCAR (target); |
| 9304 | 9316 | ||
| @@ -9774,7 +9786,7 @@ usage: (define-coding-system-internal ...) */) | |||
| 9774 | CHECK_CHARSET_GET_ID (tmp1, id); | 9786 | CHECK_CHARSET_GET_ID (tmp1, id); |
| 9775 | CHECK_NATNUM_CDR (val); | 9787 | CHECK_NATNUM_CDR (val); |
| 9776 | if (XINT (XCDR (val)) >= 4) | 9788 | if (XINT (XCDR (val)) >= 4) |
| 9777 | error ("Invalid graphic register number: %d", XINT (XCDR (val))); | 9789 | error ("Invalid graphic register number: %"pEd, XINT (XCDR (val))); |
| 9778 | XSETCAR (val, make_number (id)); | 9790 | XSETCAR (val, make_number (id)); |
| 9779 | } | 9791 | } |
| 9780 | 9792 | ||