Mercurial > emacs
comparison src/coding.c @ 89404:3e1d187b52c3
(Qutf_16_be_nosig, Qutf_16_be, Qutf_16_le_nosig)
(Qutf_16_le): Remove these variables.
(syms_of_coding): Don't DEFSYM them.
(decode_coding_utf_16): Fix handling of BOM.
(encode_coding_utf_16): Fix handling of BOM.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 28 Mar 2003 04:09:32 +0000 |
parents | 6ffca50f25b9 |
children | a9c2b3712863 |
comparison
equal
deleted
inserted
replaced
89403:e7eb0fa7dce7 | 89404:3e1d187b52c3 |
---|---|
306 Lisp_Object Qbuffer_file_coding_system; | 306 Lisp_Object Qbuffer_file_coding_system; |
307 Lisp_Object Qpost_read_conversion, Qpre_write_conversion; | 307 Lisp_Object Qpost_read_conversion, Qpre_write_conversion; |
308 Lisp_Object Qdefault_char; | 308 Lisp_Object Qdefault_char; |
309 Lisp_Object Qno_conversion, Qundecided; | 309 Lisp_Object Qno_conversion, Qundecided; |
310 Lisp_Object Qcharset, Qiso_2022, Qutf_8, Qutf_16, Qshift_jis, Qbig5; | 310 Lisp_Object Qcharset, Qiso_2022, Qutf_8, Qutf_16, Qshift_jis, Qbig5; |
311 Lisp_Object Qutf_16_be_nosig, Qutf_16_be, Qutf_16_le_nosig, Qutf_16_le; | |
312 Lisp_Object Qsignature, Qendian, Qbig, Qlittle; | 311 Lisp_Object Qsignature, Qendian, Qbig, Qlittle; |
313 Lisp_Object Qcoding_system_history; | 312 Lisp_Object Qcoding_system_history; |
314 Lisp_Object Qvalid_codes; | 313 Lisp_Object Qvalid_codes; |
315 | 314 |
316 extern Lisp_Object Qinsert_file_contents, Qwrite_region; | 315 extern Lisp_Object Qinsert_file_contents, Qwrite_region; |
1403 ONE_MORE_BYTE (c2); | 1402 ONE_MORE_BYTE (c2); |
1404 c = (c1 << 8) | c2; | 1403 c = (c1 << 8) | c2; |
1405 if (bom == utf_16_with_bom) | 1404 if (bom == utf_16_with_bom) |
1406 { | 1405 { |
1407 if (endian == utf_16_big_endian | 1406 if (endian == utf_16_big_endian |
1408 ? c != 0xFFFE : c != 0xFEFF) | 1407 ? c != 0xFEFF : c != 0xFFFE) |
1409 { | 1408 { |
1410 /* We are sure that there's enouph room at CHARBUF. */ | 1409 /* We are sure that there's enouph room at CHARBUF. */ |
1411 *charbuf++ = c1; | 1410 *charbuf++ = c1; |
1412 *charbuf++ = c2; | 1411 *charbuf++ = c2; |
1413 coding->errors++; | 1412 coding->errors++; |
1414 } | 1413 } |
1415 } | 1414 } |
1416 else | 1415 else |
1417 { | 1416 { |
1418 if (c == 0xFFFE) | 1417 if (c == 0xFEFF) |
1419 CODING_UTF_16_ENDIAN (coding) | 1418 CODING_UTF_16_ENDIAN (coding) |
1420 = endian = utf_16_big_endian; | 1419 = endian = utf_16_big_endian; |
1421 else if (c == 0xFEFF) | 1420 else if (c == 0xFFFE) |
1422 CODING_UTF_16_ENDIAN (coding) | 1421 CODING_UTF_16_ENDIAN (coding) |
1423 = endian = utf_16_little_endian; | 1422 = endian = utf_16_little_endian; |
1424 else | 1423 else |
1425 { | 1424 { |
1426 CODING_UTF_16_ENDIAN (coding) | 1425 CODING_UTF_16_ENDIAN (coding) |
1503 | 1502 |
1504 if (bom == utf_16_with_bom) | 1503 if (bom == utf_16_with_bom) |
1505 { | 1504 { |
1506 ASSURE_DESTINATION (safe_room); | 1505 ASSURE_DESTINATION (safe_room); |
1507 if (big_endian) | 1506 if (big_endian) |
1507 EMIT_TWO_BYTES (0xFE, 0xFF); | |
1508 else | |
1508 EMIT_TWO_BYTES (0xFF, 0xFE); | 1509 EMIT_TWO_BYTES (0xFF, 0xFE); |
1509 else | |
1510 EMIT_TWO_BYTES (0xFE, 0xFF); | |
1511 CODING_UTF_16_BOM (coding) = utf_16_without_bom; | 1510 CODING_UTF_16_BOM (coding) = utf_16_without_bom; |
1512 } | 1511 } |
1513 | 1512 |
1514 while (charbuf < charbuf_end) | 1513 while (charbuf < charbuf_end) |
1515 { | 1514 { |
8411 DEFSYM (Qiso_2022, "iso-2022"); | 8410 DEFSYM (Qiso_2022, "iso-2022"); |
8412 | 8411 |
8413 DEFSYM (Qutf_8, "utf-8"); | 8412 DEFSYM (Qutf_8, "utf-8"); |
8414 | 8413 |
8415 DEFSYM (Qutf_16, "utf-16"); | 8414 DEFSYM (Qutf_16, "utf-16"); |
8416 DEFSYM (Qutf_16_be, "utf-16-be"); | |
8417 DEFSYM (Qutf_16_be_nosig, "utf-16-be-nosig"); | |
8418 DEFSYM (Qutf_16_le, "utf-16-l3"); | |
8419 DEFSYM (Qutf_16_le_nosig, "utf-16-le-nosig"); | |
8420 DEFSYM (Qsignature, "signature"); | 8415 DEFSYM (Qsignature, "signature"); |
8421 DEFSYM (Qendian, "endian"); | 8416 DEFSYM (Qendian, "endian"); |
8422 DEFSYM (Qbig, "big"); | 8417 DEFSYM (Qbig, "big"); |
8423 DEFSYM (Qlittle, "little"); | 8418 DEFSYM (Qlittle, "little"); |
8424 | 8419 |