2002-07-30 11:36:59 +00:00
|
|
|
|
/* Coding system handler (conversion, detection, etc).
|
2011-01-24 20:08:28 -08:00
|
|
|
|
Copyright (C) 2001-2011 Free Software Foundation, Inc.
|
2006-12-13 01:13:58 +00:00
|
|
|
|
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
2011-01-02 15:50:46 -08:00
|
|
|
|
2005, 2006, 2007, 2008, 2009, 2010, 2011
|
2005-12-19 07:04:44 +00:00
|
|
|
|
National Institute of Advanced Industrial Science and Technology (AIST)
|
|
|
|
|
Registration Number H14PRO021
|
2003-09-08 12:53:41 +00:00
|
|
|
|
Copyright (C) 2003
|
2002-03-01 01:17:24 +00:00
|
|
|
|
National Institute of Advanced Industrial Science and Technology (AIST)
|
|
|
|
|
Registration Number H13PRO009
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1997-02-23 09:20:52 +00:00
|
|
|
|
This file is part of GNU Emacs.
|
|
|
|
|
|
2008-05-14 07:50:26 +00:00
|
|
|
|
GNU Emacs is free software: you can redistribute it and/or modify
|
1997-02-23 09:20:52 +00:00
|
|
|
|
it under the terms of the GNU General Public License as published by
|
2008-05-14 07:50:26 +00:00
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
(at your option) any later version.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1997-02-23 09:20:52 +00:00
|
|
|
|
GNU Emacs is distributed in the hope that it will be useful,
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
GNU General Public License for more details.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1997-02-23 09:20:52 +00:00
|
|
|
|
You should have received a copy of the GNU General Public License
|
2008-05-14 07:50:26 +00:00
|
|
|
|
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
/*** TABLE OF CONTENTS ***
|
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
0. General comments
|
1997-02-20 07:02:49 +00:00
|
|
|
|
1. Preamble
|
2002-03-01 01:17:24 +00:00
|
|
|
|
2. Emacs' internal format (emacs-utf-8) handlers
|
|
|
|
|
3. UTF-8 handlers
|
|
|
|
|
4. UTF-16 handlers
|
|
|
|
|
5. Charset-base coding systems handlers
|
|
|
|
|
6. emacs-mule (old Emacs' internal format) handlers
|
|
|
|
|
7. ISO2022 handlers
|
|
|
|
|
8. Shift-JIS and BIG5 handlers
|
|
|
|
|
9. CCL handlers
|
|
|
|
|
10. C library functions
|
|
|
|
|
11. Emacs Lisp library functions
|
|
|
|
|
12. Postamble
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/*** 0. General comments ***
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING SYSTEM
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-05-13 17:50:19 +00:00
|
|
|
|
A coding system is an object for an encoding mechanism that contains
|
|
|
|
|
information about how to convert byte sequences to character
|
2002-03-08 00:19:39 +00:00
|
|
|
|
sequences and vice versa. When we say "decode", it means converting
|
|
|
|
|
a byte sequence of a specific coding system into a character
|
|
|
|
|
sequence that is represented by Emacs' internal coding system
|
|
|
|
|
`emacs-utf-8', and when we say "encode", it means converting a
|
|
|
|
|
character sequence of emacs-utf-8 to a byte sequence of a specific
|
1997-05-16 00:43:29 +00:00
|
|
|
|
coding system.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2011-05-30 00:09:52 +03:00
|
|
|
|
In Emacs Lisp, a coding system is represented by a Lisp symbol. On
|
|
|
|
|
the C level, a coding system is represented by a vector of attributes
|
2002-05-13 17:50:19 +00:00
|
|
|
|
stored in the hash table Vcharset_hash_table. The conversion from
|
2002-03-08 00:19:39 +00:00
|
|
|
|
coding system symbol to attributes vector is done by looking up
|
|
|
|
|
Vcharset_hash_table by the symbol.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-08 00:19:39 +00:00
|
|
|
|
Coding systems are classified into the following types depending on
|
2002-05-13 17:50:19 +00:00
|
|
|
|
the encoding mechanism. Here's a brief description of the types.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
o UTF-8
|
|
|
|
|
|
|
|
|
|
o UTF-16
|
|
|
|
|
|
|
|
|
|
o Charset-base coding system
|
|
|
|
|
|
|
|
|
|
A coding system defined by one or more (coded) character sets.
|
2002-05-13 17:50:19 +00:00
|
|
|
|
Decoding and encoding are done by a code converter defined for each
|
2002-03-01 01:17:24 +00:00
|
|
|
|
character set.
|
|
|
|
|
|
2002-05-13 17:50:19 +00:00
|
|
|
|
o Old Emacs internal format (emacs-mule)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2002-05-13 17:50:19 +00:00
|
|
|
|
The coding system adopted by old versions of Emacs (20 and 21).
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
o ISO2022-base coding system
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
The most famous coding system for multiple character sets. X's
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Compound Text, various EUCs (Extended Unix Code), and coding systems
|
|
|
|
|
used in the Internet communication such as ISO-2022-JP are all
|
|
|
|
|
variants of ISO2022.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
o SJIS (or Shift-JIS or MS-Kanji-Code)
|
2001-12-17 15:21:06 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
A coding system to encode character sets: ASCII, JISX0201, and
|
|
|
|
|
JISX0208. Widely used for PC's in Japan. Details are described in
|
2002-03-01 01:17:24 +00:00
|
|
|
|
section 8.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
o BIG5
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
A coding system to encode character sets: ASCII and Big5. Widely
|
2001-01-04 17:35:26 +00:00
|
|
|
|
used for Chinese (mainly in Taiwan and Hong Kong). Details are
|
2002-03-01 01:17:24 +00:00
|
|
|
|
described in section 8. In this file, when we write "big5" (all
|
|
|
|
|
lowercase), we mean the coding system, and when we write "Big5"
|
|
|
|
|
(capitalized), we mean the character set.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
o CCL
|
1997-08-28 10:51:12 +00:00
|
|
|
|
|
2002-05-13 17:50:19 +00:00
|
|
|
|
If a user wants to decode/encode text encoded in a coding system
|
2002-03-01 01:17:24 +00:00
|
|
|
|
not listed above, he can supply a decoder and an encoder for it in
|
|
|
|
|
CCL (Code Conversion Language) programs. Emacs executes the CCL
|
|
|
|
|
program while decoding/encoding.
|
1997-08-28 10:51:12 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
o Raw-text
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-06-16 19:57:54 +00:00
|
|
|
|
A coding system for text containing raw eight-bit data. Emacs
|
2002-05-13 17:50:19 +00:00
|
|
|
|
treats each byte of source text as a character (except for
|
2002-03-01 01:17:24 +00:00
|
|
|
|
end-of-line conversion).
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
o No-conversion
|
|
|
|
|
|
|
|
|
|
Like raw text, but don't do end-of-line conversion.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
END-OF-LINE FORMAT
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-05-13 17:50:19 +00:00
|
|
|
|
How text end-of-line is encoded depends on operating system. For
|
2002-03-01 01:17:24 +00:00
|
|
|
|
instance, Unix's format is just one byte of LF (line-feed) code,
|
1997-07-13 20:43:31 +00:00
|
|
|
|
whereas DOS's format is two-byte sequence of `carriage-return' and
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
`line-feed' codes. MacOS's format is usually one byte of
|
|
|
|
|
`carriage-return'.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2001-01-04 17:35:26 +00:00
|
|
|
|
Since text character encoding and end-of-line encoding are
|
2002-03-01 01:17:24 +00:00
|
|
|
|
independent, any coding system described above can take any format
|
|
|
|
|
of end-of-line (except for no-conversion).
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-08 00:19:39 +00:00
|
|
|
|
STRUCT CODING_SYSTEM
|
|
|
|
|
|
|
|
|
|
Before using a coding system for code conversion (i.e. decoding and
|
|
|
|
|
encoding), we setup a structure of type `struct coding_system'.
|
|
|
|
|
This structure keeps various information about a specific code
|
2002-05-13 17:50:19 +00:00
|
|
|
|
conversion (e.g. the location of source and destination data).
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* COMMON MACROS */
|
|
|
|
|
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/*** GENERAL NOTES on `detect_coding_XXX ()' functions ***
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
These functions check if a byte sequence specified as a source in
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
CODING conforms to the format of XXX, and update the members of
|
|
|
|
|
DETECT_INFO.
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
Return 1 if the byte sequence conforms to XXX, otherwise return 0.
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
Below is the template of these functions. */
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
#if 0
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_coding_XXX (struct coding_system *coding,
|
|
|
|
|
struct coding_detection_info *detect_info)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2005-01-02 09:13:19 +00:00
|
|
|
|
const unsigned char *src = coding->source;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int found = 0;
|
|
|
|
|
...;
|
|
|
|
|
|
|
|
|
|
while (1)
|
|
|
|
|
{
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* Get one byte from the source. If the source is exhausted, jump
|
2002-03-01 01:17:24 +00:00
|
|
|
|
to no_more_source:. */
|
|
|
|
|
ONE_MORE_BYTE (c);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
|
|
|
|
|
if (! __C_conforms_to_XXX___ (c))
|
|
|
|
|
break;
|
|
|
|
|
if (! __C_strongly_suggests_XXX__ (c))
|
|
|
|
|
found = CATEGORY_MASK_XXX;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/* The byte sequence is invalid for XXX. */
|
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_XXX;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return 0;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* The source exhausted successfully. */
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->found |= found;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return 1;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*** GENERAL NOTES on `decode_coding_XXX ()' functions ***
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
These functions decode a byte sequence specified as a source by
|
|
|
|
|
CODING. The resulting multibyte text goes to a place pointed to by
|
|
|
|
|
CODING->charbuf, the length of which should not exceed
|
|
|
|
|
CODING->charbuf_size;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
These functions set the information of original and decoded texts in
|
|
|
|
|
CODING->consumed, CODING->consumed_char, and CODING->charbuf_used.
|
|
|
|
|
They also set CODING->result to one of CODING_RESULT_XXX indicating
|
|
|
|
|
how the decoding is finished.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Below is the template of these functions. */
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
#if 0
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
static void
|
2010-07-07 11:38:03 +02:00
|
|
|
|
decode_coding_XXXX (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2005-01-02 09:13:19 +00:00
|
|
|
|
const unsigned char *src = coding->source + coding->consumed;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* SRC_BASE remembers the start position in source in each loop.
|
|
|
|
|
The loop will be exited when there's not enough source code, or
|
|
|
|
|
when there's no room in CHARBUF for a decoded character. */
|
2005-01-02 09:13:19 +00:00
|
|
|
|
const unsigned char *src_base;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* A buffer to produce decoded characters. */
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf = coding->charbuf + coding->charbuf_used;
|
|
|
|
|
int *charbuf_end = coding->charbuf + coding->charbuf_size;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
|
|
|
|
|
|
|
|
|
while (1)
|
|
|
|
|
{
|
|
|
|
|
src_base = src;
|
|
|
|
|
if (charbuf < charbuf_end)
|
|
|
|
|
/* No more room to produce a decoded character. */
|
|
|
|
|
break;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
/* Decode it. */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
no_more_source:
|
|
|
|
|
if (src_base < src_end
|
|
|
|
|
&& coding->mode & CODING_MODE_LAST_BLOCK)
|
|
|
|
|
/* If the source ends by partial bytes to construct a character,
|
|
|
|
|
treat them as eight-bit raw data. */
|
|
|
|
|
while (src_base < src_end && charbuf < charbuf_end)
|
|
|
|
|
*charbuf++ = *src_base++;
|
|
|
|
|
/* Remember how many bytes and characters we consumed. If the
|
|
|
|
|
source is multibyte, the bytes and chars are not identical. */
|
|
|
|
|
coding->consumed = coding->consumed_char = src_base - coding->source;
|
|
|
|
|
/* Remember how many characters we produced. */
|
|
|
|
|
coding->charbuf_used = charbuf - coding->charbuf;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*** GENERAL NOTES on `encode_coding_XXX ()' functions ***
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
These functions encode SRC_BYTES length text at SOURCE of Emacs'
|
|
|
|
|
internal multibyte format by CODING. The resulting byte sequence
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
goes to a place pointed to by DESTINATION, the length of which
|
|
|
|
|
should not exceed DST_BYTES.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
These functions set the information of original and encoded texts in
|
|
|
|
|
the members produced, produced_char, consumed, and consumed_char of
|
|
|
|
|
the structure *CODING. They also set the member result to one of
|
|
|
|
|
CODING_RESULT_XXX indicating how the encoding finished.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DST_BYTES zero means that source area and destination area are
|
|
|
|
|
overlapped, which means that we can produce a encoded text until it
|
|
|
|
|
reaches at the head of not-yet-encoded source text.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Below is a template of these functions. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
#if 0
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
static void
|
2010-07-07 11:38:03 +02:00
|
|
|
|
encode_coding_XXX (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = charbuf->charbuf + coding->charbuf_used;
|
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
|
|
|
|
unsigned char *adjusted_dst_end = dst_end - _MAX_BYTES_PRODUCED_IN_LOOP_;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
for (; charbuf < charbuf_end && dst < adjusted_dst_end; charbuf++)
|
|
|
|
|
{
|
|
|
|
|
int c = *charbuf;
|
|
|
|
|
/* Encode C into DST, and increment DST. */
|
|
|
|
|
}
|
|
|
|
|
label_no_more_destination:
|
|
|
|
|
/* How many chars and bytes we produced. */
|
|
|
|
|
coding->produced_char += produced_chars;
|
|
|
|
|
coding->produced = dst - coding->destination;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*** 1. Preamble ***/
|
|
|
|
|
|
Add support for large files, 64-bit Solaris, system locale codings.
* Makefile.in (emacs): Set the LC_ALL environment variable to "C"
when dumping, so that the dumped Emacs doesn't have stray locale info.
(dired.o): Depend on systime.h.
(editfns.o): Depend on coding.h.
* alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
Include <config.h> before any system include files.
* alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
xmenu.c, xterm.c:
Do not include <stdlib.h>, as <config.h> does this now.
* callproc.c (Fcall_process):
Synchronize messages locale before invoking strerror.
Decode resulting string with locale-coding-system.
* coding.c (Vlocale_coding_system): New var.
(syms_of_coding): Adjust to above change.
(emacs_strerror): New function.
* coding.h (emacs_strerror, Vlocale_coding_system): New decls.
* config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
HAVE_STRSIGNAL): New macros.
(BITS_PER_LONG): Default to 64 if _LP64 is defined.
<stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
* dired.c: Include "systime.h".
(Ffile_attributes): Do not cast s.st_size to int; this loses
information if int is 32 bits but st_size and EMACS_INT are larger.
Treat large device numbers like large inode numbers.
* dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
* editfns.c: Include coding.h.
(emacs_strftime): Remove decl.
(emacs_strftimeu): New decl.
(emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
Use emacs_strftimeu instead of emacs_strftime.
(Fformat_time_string): Convert format string using
Vlocale_coding_system, and convert result back. Synchronize time
locale before invoking lower level function. Invoke
emacs_memftimeu, passing ut, instead of emacs_memftime.
* emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
(Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
Vprevious_time_locale): New variables.
(main): Invoke setlocale early, so that initial error messages are
localized properly. But skip locale-setting if LC_ALL is "C".
Fix up locale when it's safe to do so.
(fixup_locale): Moved here from xterm.c.
(synchronize_locale, synchronize_time_locale,
synchronize_messages_locale): New functions.
(syms_of_emacs): Accommodate above changes.
* fileio.c (report_file_error): Convert strerror output according
to Vlocale_coding_system.
(Finsert_file_contents): Check for arithmetic overflow in
computations that depend on file size. Report IO errors
with emacs_strerror, not strerror.
* fns.c (Fgethash): Declare dflt parameter.
* gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
is defined; that's config.h's job.
* lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
default these values to long, BITS_PER_LONG, and unsigned long.
(VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
(PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
(code_convert_string_norecord, fixup_locale,
synchronize_messages_locale, synchronize_time_locale,
emacs_open, emacs_close, emacs_read, emacs_write): New decls.
All Emacs callers of open, close, read, write changed to use
emacs_open, emacs_close, emacs_read, emacs_write.
* lread.c (file_offset, file_tell): New macros. All uses of ftell
changed to file_tell.
(saved_doc_string_position, prev_saved_doc_string_position): Now
of type file_offset.
(init_lread): Do not fix locale here; fixup_locale now does this.
* m/amdahl.h, s/usg5-4.h:
(NSIG): Remove.
(NSIG_MINIMUM): New macro.
* m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
s/umips.h, s/usg5-4.h:
(SIGIO): Do not undef.
(BROKEN_SIGIO): New macro.
* m/ustation.h:
(SIGTSTP): Do not undef.
(BROKEN_SIGTSTP): New macro.
* s/gnu-linux.h:
(SIGPOLL, SIGURG): Do not undef.
(BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
* s/ptx4.h:
(SIGINFO): Do not undef.
(BROKEN_SIGINFO): New macros.
* m/delta.h, s/ptx.h, s/template.h: Doc fix.
* mktime.c, strftime.c: Update to glibc 2.1.2 version, with
some Emacs-related changes merged.
* print.c (float_to_string): Prepend "-" to representation of a
NaN if the NaN is negative.
* process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
(wait_reading_process_input): Use emacs_strerror, not strerror.
* process.c (status_message, sigchld_handler): Synchronize locale,
then use strsignal istead of sys_siglist.
* w32proc.c (sys_wait): Likewise.
* s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
s/usg5-2.h, s/usg5-3.h, s/xenix.h:
(open, close, read, write, INTERRUPTIBLE_OPEN,
INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
* s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
* sysdep.c (sys_read, sys_write, read, write, sys_close, close,
sys_open, open): Remove.
(emacs_open, emacs_close, emacs_read, emacs_write): Always define;
the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
macros are no longer used.
(emacs_open): Renamed from sys_open. Merge BSD4_1 version.
(emacs_close): Renamed from sys_close.
(emacs_read): Renamed from sys_read.
(emacs_write): Renamed from sys_write.
(sys_siglist): Do not declare if HAVE_STRSIGNAL.
(dup2): Do not print error on failure; the real dup2 doesn't.
(strsignal): New function, defined if !HAVE_STRSIGNAL.
* syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
is defined.
(SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
(NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
(strsignal): Declare if !HAVE_STRSIGNAL.
* unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
(ElfW): Define in terms of ElfExpandBitsW.
* w32proc.c (sys_siglist): Remove decl.
* xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
with ANSI C.
(display_string): Declare face_string_pos arg.
* xfns.c (Fx_show_tip): Declare timeout param.
* xterm.c: No need to include locale.h.
(x_alloc_lighter_color, x_setup_relief_color):
Pass arg as double, not float, for compatibility with ANSI C.
(fixup_locale): Move to emacs.c.
(x_term_init): Do not setlocale or fixup locale; the main program
does this now.
1999-10-19 07:25:11 +00:00
|
|
|
|
#include <config.h>
|
1997-02-20 07:02:49 +00:00
|
|
|
|
#include <stdio.h>
|
2009-10-19 04:27:09 +00:00
|
|
|
|
#include <setjmp.h>
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
#include "lisp.h"
|
|
|
|
|
#include "buffer.h"
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#include "character.h"
|
1997-02-20 07:02:49 +00:00
|
|
|
|
#include "charset.h"
|
|
|
|
|
#include "ccl.h"
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#include "composite.h"
|
1997-02-20 07:02:49 +00:00
|
|
|
|
#include "coding.h"
|
|
|
|
|
#include "window.h"
|
2004-05-23 01:53:23 +00:00
|
|
|
|
#include "frame.h"
|
|
|
|
|
#include "termhooks.h"
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object Vcoding_system_hash_table;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Declare Lisp_Object Q* variables to be 'static' if not exproted.
This makes it easier for human readers (and static analyzers)
to see whether these variables are used from other modules.
* alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
* ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
* data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
* font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
* lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
* sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
* xmenu.c, xselect.c:
Declare Q* vars static if they are not used in other modules.
* ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
* frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
Remove decls of unexported vars.
* keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
2011-04-10 20:39:45 -07:00
|
|
|
|
static Lisp_Object Qcoding_system, Qeol_type;
|
|
|
|
|
static Lisp_Object Qcoding_aliases;
|
2002-05-26 17:11:04 +00:00
|
|
|
|
Lisp_Object Qunix, Qdos;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
Lisp_Object Qbuffer_file_coding_system;
|
Declare Lisp_Object Q* variables to be 'static' if not exproted.
This makes it easier for human readers (and static analyzers)
to see whether these variables are used from other modules.
* alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
* ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
* data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
* font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
* lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
* sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
* xmenu.c, xselect.c:
Declare Q* vars static if they are not used in other modules.
* ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
* frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
Remove decls of unexported vars.
* keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
2011-04-10 20:39:45 -07:00
|
|
|
|
static Lisp_Object Qpost_read_conversion, Qpre_write_conversion;
|
|
|
|
|
static Lisp_Object Qdefault_char;
|
1997-08-28 10:51:12 +00:00
|
|
|
|
Lisp_Object Qno_conversion, Qundecided;
|
Declare Lisp_Object Q* variables to be 'static' if not exproted.
This makes it easier for human readers (and static analyzers)
to see whether these variables are used from other modules.
* alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
* ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
* data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
* font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
* lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
* sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
* xmenu.c, xselect.c:
Declare Q* vars static if they are not used in other modules.
* ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
* frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
Remove decls of unexported vars.
* keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
2011-04-10 20:39:45 -07:00
|
|
|
|
Lisp_Object Qcharset, Qutf_8;
|
|
|
|
|
static Lisp_Object Qiso_2022;
|
|
|
|
|
static Lisp_Object Qutf_16, Qshift_jis, Qbig5;
|
|
|
|
|
static Lisp_Object Qbig, Qlittle;
|
|
|
|
|
static Lisp_Object Qcoding_system_history;
|
|
|
|
|
static Lisp_Object Qvalid_codes;
|
|
|
|
|
static Lisp_Object QCcategory, QCmnemonic, QCdefault_char;
|
|
|
|
|
static Lisp_Object QCdecode_translation_table, QCencode_translation_table;
|
|
|
|
|
static Lisp_Object QCpost_read_conversion, QCpre_write_conversion;
|
|
|
|
|
static Lisp_Object QCascii_compatible_p;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2005-07-12 13:16:18 +00:00
|
|
|
|
Lisp_Object Qcall_process, Qcall_process_region;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
Lisp_Object Qstart_process, Qopen_network_stream;
|
Declare Lisp_Object Q* variables to be 'static' if not exproted.
This makes it easier for human readers (and static analyzers)
to see whether these variables are used from other modules.
* alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
* ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
* data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
* font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
* lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
* sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
* xmenu.c, xselect.c:
Declare Q* vars static if they are not used in other modules.
* ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
* frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
Remove decls of unexported vars.
* keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
2011-04-10 20:39:45 -07:00
|
|
|
|
static Lisp_Object Qtarget_idx;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Declare Lisp_Object Q* variables to be 'static' if not exproted.
This makes it easier for human readers (and static analyzers)
to see whether these variables are used from other modules.
* alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
* ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
* data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
* font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
* lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
* sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
* xmenu.c, xselect.c:
Declare Q* vars static if they are not used in other modules.
* ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
* frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
Remove decls of unexported vars.
* keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
2011-04-10 20:39:45 -07:00
|
|
|
|
static Lisp_Object Qinsufficient_source, Qinconsistent_eol, Qinvalid_source;
|
|
|
|
|
static Lisp_Object Qinterrupted, Qinsufficient_memory;
|
2003-12-29 07:52:49 +00:00
|
|
|
|
|
2006-01-19 07:20:52 +00:00
|
|
|
|
/* If a symbol has this property, evaluate the value to define the
|
|
|
|
|
symbol as a coding system. */
|
|
|
|
|
static Lisp_Object Qcoding_system_define_form;
|
|
|
|
|
|
2006-05-15 02:48:46 +00:00
|
|
|
|
/* Format of end-of-line decided by system. This is Qunix on
|
|
|
|
|
Unix and Mac, Qdos on DOS/Windows.
|
|
|
|
|
This has an effect only for external encoding (i.e. for output to
|
|
|
|
|
file and process), not for in-buffer or Lisp string encoding. */
|
|
|
|
|
static Lisp_Object system_eol_type;
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
#ifdef emacs
|
|
|
|
|
|
1997-10-21 10:43:40 +00:00
|
|
|
|
Lisp_Object Qcoding_system_p, Qcoding_system_error;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
/* Coding system emacs-mule and raw-text are for converting only
|
|
|
|
|
end-of-line format. */
|
|
|
|
|
Lisp_Object Qemacs_mule, Qraw_text;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
Lisp_Object Qutf_8_emacs;
|
2003-06-02 18:49:29 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* Coding-systems are handed between Emacs Lisp programs and C internal
|
|
|
|
|
routines by the following three variables. */
|
1997-08-10 04:13:19 +00:00
|
|
|
|
/* Coding system to be used to encode text for terminal display when
|
|
|
|
|
terminal coding system is nil. */
|
|
|
|
|
struct coding_system safe_terminal_coding;
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
#endif /* emacs */
|
|
|
|
|
|
1998-05-22 09:45:34 +00:00
|
|
|
|
Lisp_Object Qtranslation_table;
|
|
|
|
|
Lisp_Object Qtranslation_table_id;
|
Declare Lisp_Object Q* variables to be 'static' if not exproted.
This makes it easier for human readers (and static analyzers)
to see whether these variables are used from other modules.
* alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
* ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
* data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
* font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
* lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
* sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
* xmenu.c, xselect.c:
Declare Q* vars static if they are not used in other modules.
* ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
* frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
Remove decls of unexported vars.
* keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
2011-04-10 20:39:45 -07:00
|
|
|
|
static Lisp_Object Qtranslation_table_for_decode;
|
|
|
|
|
static Lisp_Object Qtranslation_table_for_encode;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Two special coding systems. */
|
2011-04-10 23:58:57 -07:00
|
|
|
|
static Lisp_Object Vsjis_coding_system;
|
|
|
|
|
static Lisp_Object Vbig5_coding_system;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
/* ISO2022 section */
|
|
|
|
|
|
|
|
|
|
#define CODING_ISO_INITIAL(coding, reg) \
|
|
|
|
|
(XINT (AREF (AREF (CODING_ID_ATTRS ((coding)->id), \
|
|
|
|
|
coding_attr_iso_initial), \
|
|
|
|
|
reg)))
|
|
|
|
|
|
|
|
|
|
|
2009-02-22 15:48:02 +00:00
|
|
|
|
#define CODING_ISO_REQUEST(coding, charset_id) \
|
|
|
|
|
(((charset_id) <= (coding)->max_charset_id \
|
|
|
|
|
? ((coding)->safe_charsets[charset_id] != 255 \
|
|
|
|
|
? (coding)->safe_charsets[charset_id] \
|
|
|
|
|
: -1) \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
: -1))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define CODING_ISO_FLAGS(coding) \
|
|
|
|
|
((coding)->spec.iso_2022.flags)
|
|
|
|
|
#define CODING_ISO_DESIGNATION(coding, reg) \
|
|
|
|
|
((coding)->spec.iso_2022.current_designation[reg])
|
|
|
|
|
#define CODING_ISO_INVOCATION(coding, plane) \
|
|
|
|
|
((coding)->spec.iso_2022.current_invocation[plane])
|
|
|
|
|
#define CODING_ISO_SINGLE_SHIFTING(coding) \
|
|
|
|
|
((coding)->spec.iso_2022.single_shifting)
|
|
|
|
|
#define CODING_ISO_BOL(coding) \
|
|
|
|
|
((coding)->spec.iso_2022.bol)
|
|
|
|
|
#define CODING_ISO_INVOKED_CHARSET(coding, plane) \
|
|
|
|
|
CODING_ISO_DESIGNATION ((coding), CODING_ISO_INVOCATION ((coding), (plane)))
|
2009-03-06 07:51:52 +00:00
|
|
|
|
#define CODING_ISO_CMP_STATUS(coding) \
|
|
|
|
|
(&(coding)->spec.iso_2022.cmp_status)
|
|
|
|
|
#define CODING_ISO_EXTSEGMENT_LEN(coding) \
|
|
|
|
|
((coding)->spec.iso_2022.ctext_extended_segment_len)
|
|
|
|
|
#define CODING_ISO_EMBEDDED_UTF_8(coding) \
|
|
|
|
|
((coding)->spec.iso_2022.embedded_utf_8)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
/* Control characters of ISO2022. */
|
|
|
|
|
/* code */ /* function */
|
|
|
|
|
#define ISO_CODE_SO 0x0E /* shift-out */
|
|
|
|
|
#define ISO_CODE_SI 0x0F /* shift-in */
|
|
|
|
|
#define ISO_CODE_SS2_7 0x19 /* single-shift-2 for 7-bit code */
|
|
|
|
|
#define ISO_CODE_ESC 0x1B /* escape */
|
|
|
|
|
#define ISO_CODE_SS2 0x8E /* single-shift-2 */
|
|
|
|
|
#define ISO_CODE_SS3 0x8F /* single-shift-3 */
|
|
|
|
|
#define ISO_CODE_CSI 0x9B /* control-sequence-introducer */
|
|
|
|
|
|
|
|
|
|
/* All code (1-byte) of ISO2022 is classified into one of the
|
|
|
|
|
followings. */
|
|
|
|
|
enum iso_code_class_type
|
|
|
|
|
{
|
|
|
|
|
ISO_control_0, /* Control codes in the range
|
|
|
|
|
0x00..0x1F and 0x7F, except for the
|
|
|
|
|
following 5 codes. */
|
|
|
|
|
ISO_shift_out, /* ISO_CODE_SO (0x0E) */
|
|
|
|
|
ISO_shift_in, /* ISO_CODE_SI (0x0F) */
|
|
|
|
|
ISO_single_shift_2_7, /* ISO_CODE_SS2_7 (0x19) */
|
|
|
|
|
ISO_escape, /* ISO_CODE_SO (0x1B) */
|
|
|
|
|
ISO_control_1, /* Control codes in the range
|
|
|
|
|
0x80..0x9F, except for the
|
|
|
|
|
following 3 codes. */
|
|
|
|
|
ISO_single_shift_2, /* ISO_CODE_SS2 (0x8E) */
|
|
|
|
|
ISO_single_shift_3, /* ISO_CODE_SS3 (0x8F) */
|
|
|
|
|
ISO_control_sequence_introducer, /* ISO_CODE_CSI (0x9B) */
|
|
|
|
|
ISO_0x20_or_0x7F, /* Codes of the values 0x20 or 0x7F. */
|
|
|
|
|
ISO_graphic_plane_0, /* Graphic codes in the range 0x21..0x7E. */
|
|
|
|
|
ISO_0xA0_or_0xFF, /* Codes of the values 0xA0 or 0xFF. */
|
|
|
|
|
ISO_graphic_plane_1 /* Graphic codes in the range 0xA1..0xFE. */
|
|
|
|
|
};
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/** The macros CODING_ISO_FLAG_XXX defines a flag bit of the
|
|
|
|
|
`iso-flags' attribute of an iso2022 coding system. */
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, produce long-form designation sequence (e.g. ESC $ ( A)
|
|
|
|
|
instead of the correct short-form sequence (e.g. ESC $ A). */
|
|
|
|
|
#define CODING_ISO_FLAG_LONG_FORM 0x0001
|
2001-12-17 15:21:06 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, reset graphic planes and registers at end-of-line to the
|
|
|
|
|
initial state. */
|
|
|
|
|
#define CODING_ISO_FLAG_RESET_AT_EOL 0x0002
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, reset graphic planes and registers before any control
|
|
|
|
|
characters to the initial state. */
|
|
|
|
|
#define CODING_ISO_FLAG_RESET_AT_CNTL 0x0004
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, encode by 7-bit environment. */
|
|
|
|
|
#define CODING_ISO_FLAG_SEVEN_BITS 0x0008
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, use locking-shift function. */
|
|
|
|
|
#define CODING_ISO_FLAG_LOCKING_SHIFT 0x0010
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, use single-shift function. Overwrite
|
|
|
|
|
CODING_ISO_FLAG_LOCKING_SHIFT. */
|
|
|
|
|
#define CODING_ISO_FLAG_SINGLE_SHIFT 0x0020
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, use designation escape sequence. */
|
|
|
|
|
#define CODING_ISO_FLAG_DESIGNATION 0x0040
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, produce revision number sequence. */
|
|
|
|
|
#define CODING_ISO_FLAG_REVISION 0x0080
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, produce ISO6429's direction specifying sequence. */
|
|
|
|
|
#define CODING_ISO_FLAG_DIRECTION 0x0100
|
1997-07-13 20:43:31 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, assume designation states are reset at beginning of line on
|
|
|
|
|
output. */
|
|
|
|
|
#define CODING_ISO_FLAG_INIT_AT_BOL 0x0200
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, designation sequence should be placed at beginning of line
|
|
|
|
|
on output. */
|
|
|
|
|
#define CODING_ISO_FLAG_DESIGNATE_AT_BOL 0x0400
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* If set, do not encode unsafe characters on output. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define CODING_ISO_FLAG_SAFE 0x0800
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If set, extra latin codes (128..159) are accepted as a valid code
|
|
|
|
|
on input. */
|
|
|
|
|
#define CODING_ISO_FLAG_LATIN_EXTRA 0x1000
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define CODING_ISO_FLAG_COMPOSITION 0x2000
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2011-03-07 23:23:55 -08:00
|
|
|
|
/* #define CODING_ISO_FLAG_EUC_TW_SHIFT 0x4000 */
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-05-30 11:02:01 +00:00
|
|
|
|
#define CODING_ISO_FLAG_USE_ROMAN 0x8000
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-05-30 11:02:01 +00:00
|
|
|
|
#define CODING_ISO_FLAG_USE_OLDJIS 0x10000
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-05-30 11:02:01 +00:00
|
|
|
|
#define CODING_ISO_FLAG_FULL_SUPPORT 0x100000
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* A character to be produced on output if encoding of the original
|
|
|
|
|
character is prohibited by CODING_ISO_FLAG_SAFE. */
|
|
|
|
|
#define CODING_INHIBIT_CHARACTER_SUBSTITUTION '?'
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
/* UTF-8 section */
|
|
|
|
|
#define CODING_UTF_8_BOM(coding) \
|
|
|
|
|
((coding)->spec.utf_8_bom)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* UTF-16 section */
|
|
|
|
|
#define CODING_UTF_16_BOM(coding) \
|
|
|
|
|
((coding)->spec.utf_16.bom)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define CODING_UTF_16_ENDIAN(coding) \
|
|
|
|
|
((coding)->spec.utf_16.endian)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define CODING_UTF_16_SURROGATE(coding) \
|
|
|
|
|
((coding)->spec.utf_16.surrogate)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* CCL section */
|
|
|
|
|
#define CODING_CCL_DECODER(coding) \
|
|
|
|
|
AREF (CODING_ID_ATTRS ((coding)->id), coding_attr_ccl_decoder)
|
|
|
|
|
#define CODING_CCL_ENCODER(coding) \
|
|
|
|
|
AREF (CODING_ID_ATTRS ((coding)->id), coding_attr_ccl_encoder)
|
|
|
|
|
#define CODING_CCL_VALIDS(coding) \
|
2003-09-08 12:53:41 +00:00
|
|
|
|
(SDATA (AREF (CODING_ID_ATTRS ((coding)->id), coding_attr_ccl_valids)))
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-06-16 19:57:54 +00:00
|
|
|
|
/* Index for each coding category in `coding_categories' */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
enum coding_category
|
|
|
|
|
{
|
|
|
|
|
coding_category_iso_7,
|
|
|
|
|
coding_category_iso_7_tight,
|
|
|
|
|
coding_category_iso_8_1,
|
|
|
|
|
coding_category_iso_8_2,
|
|
|
|
|
coding_category_iso_7_else,
|
|
|
|
|
coding_category_iso_8_else,
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
coding_category_utf_8_auto,
|
|
|
|
|
coding_category_utf_8_nosig,
|
|
|
|
|
coding_category_utf_8_sig,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding_category_utf_16_auto,
|
|
|
|
|
coding_category_utf_16_be,
|
|
|
|
|
coding_category_utf_16_le,
|
|
|
|
|
coding_category_utf_16_be_nosig,
|
|
|
|
|
coding_category_utf_16_le_nosig,
|
|
|
|
|
coding_category_charset,
|
|
|
|
|
coding_category_sjis,
|
|
|
|
|
coding_category_big5,
|
|
|
|
|
coding_category_ccl,
|
|
|
|
|
coding_category_emacs_mule,
|
|
|
|
|
/* All above are targets of code detection. */
|
|
|
|
|
coding_category_raw_text,
|
|
|
|
|
coding_category_undecided,
|
|
|
|
|
coding_category_max
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* Definitions of flag bits used in detect_coding_XXXX. */
|
|
|
|
|
#define CATEGORY_MASK_ISO_7 (1 << coding_category_iso_7)
|
|
|
|
|
#define CATEGORY_MASK_ISO_7_TIGHT (1 << coding_category_iso_7_tight)
|
|
|
|
|
#define CATEGORY_MASK_ISO_8_1 (1 << coding_category_iso_8_1)
|
|
|
|
|
#define CATEGORY_MASK_ISO_8_2 (1 << coding_category_iso_8_2)
|
|
|
|
|
#define CATEGORY_MASK_ISO_7_ELSE (1 << coding_category_iso_7_else)
|
|
|
|
|
#define CATEGORY_MASK_ISO_8_ELSE (1 << coding_category_iso_8_else)
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
#define CATEGORY_MASK_UTF_8_AUTO (1 << coding_category_utf_8_auto)
|
|
|
|
|
#define CATEGORY_MASK_UTF_8_NOSIG (1 << coding_category_utf_8_nosig)
|
|
|
|
|
#define CATEGORY_MASK_UTF_8_SIG (1 << coding_category_utf_8_sig)
|
2003-05-06 12:28:11 +00:00
|
|
|
|
#define CATEGORY_MASK_UTF_16_AUTO (1 << coding_category_utf_16_auto)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define CATEGORY_MASK_UTF_16_BE (1 << coding_category_utf_16_be)
|
|
|
|
|
#define CATEGORY_MASK_UTF_16_LE (1 << coding_category_utf_16_le)
|
|
|
|
|
#define CATEGORY_MASK_UTF_16_BE_NOSIG (1 << coding_category_utf_16_be_nosig)
|
|
|
|
|
#define CATEGORY_MASK_UTF_16_LE_NOSIG (1 << coding_category_utf_16_le_nosig)
|
|
|
|
|
#define CATEGORY_MASK_CHARSET (1 << coding_category_charset)
|
|
|
|
|
#define CATEGORY_MASK_SJIS (1 << coding_category_sjis)
|
|
|
|
|
#define CATEGORY_MASK_BIG5 (1 << coding_category_big5)
|
|
|
|
|
#define CATEGORY_MASK_CCL (1 << coding_category_ccl)
|
|
|
|
|
#define CATEGORY_MASK_EMACS_MULE (1 << coding_category_emacs_mule)
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
#define CATEGORY_MASK_RAW_TEXT (1 << coding_category_raw_text)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
/* This value is returned if detect_coding_mask () find nothing other
|
|
|
|
|
than ASCII characters. */
|
|
|
|
|
#define CATEGORY_MASK_ANY \
|
|
|
|
|
(CATEGORY_MASK_ISO_7 \
|
|
|
|
|
| CATEGORY_MASK_ISO_7_TIGHT \
|
|
|
|
|
| CATEGORY_MASK_ISO_8_1 \
|
|
|
|
|
| CATEGORY_MASK_ISO_8_2 \
|
|
|
|
|
| CATEGORY_MASK_ISO_7_ELSE \
|
|
|
|
|
| CATEGORY_MASK_ISO_8_ELSE \
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
| CATEGORY_MASK_UTF_8_AUTO \
|
|
|
|
|
| CATEGORY_MASK_UTF_8_NOSIG \
|
|
|
|
|
| CATEGORY_MASK_UTF_8_SIG \
|
2008-04-03 12:31:27 +00:00
|
|
|
|
| CATEGORY_MASK_UTF_16_AUTO \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
| CATEGORY_MASK_UTF_16_BE \
|
|
|
|
|
| CATEGORY_MASK_UTF_16_LE \
|
|
|
|
|
| CATEGORY_MASK_UTF_16_BE_NOSIG \
|
|
|
|
|
| CATEGORY_MASK_UTF_16_LE_NOSIG \
|
|
|
|
|
| CATEGORY_MASK_CHARSET \
|
|
|
|
|
| CATEGORY_MASK_SJIS \
|
|
|
|
|
| CATEGORY_MASK_BIG5 \
|
|
|
|
|
| CATEGORY_MASK_CCL \
|
|
|
|
|
| CATEGORY_MASK_EMACS_MULE)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define CATEGORY_MASK_ISO_7BIT \
|
|
|
|
|
(CATEGORY_MASK_ISO_7 | CATEGORY_MASK_ISO_7_TIGHT)
|
|
|
|
|
|
|
|
|
|
#define CATEGORY_MASK_ISO_8BIT \
|
|
|
|
|
(CATEGORY_MASK_ISO_8_1 | CATEGORY_MASK_ISO_8_2)
|
|
|
|
|
|
|
|
|
|
#define CATEGORY_MASK_ISO_ELSE \
|
|
|
|
|
(CATEGORY_MASK_ISO_7_ELSE | CATEGORY_MASK_ISO_8_ELSE)
|
|
|
|
|
|
|
|
|
|
#define CATEGORY_MASK_ISO_ESCAPE \
|
|
|
|
|
(CATEGORY_MASK_ISO_7 \
|
|
|
|
|
| CATEGORY_MASK_ISO_7_TIGHT \
|
|
|
|
|
| CATEGORY_MASK_ISO_7_ELSE \
|
|
|
|
|
| CATEGORY_MASK_ISO_8_ELSE)
|
|
|
|
|
|
|
|
|
|
#define CATEGORY_MASK_ISO \
|
|
|
|
|
( CATEGORY_MASK_ISO_7BIT \
|
|
|
|
|
| CATEGORY_MASK_ISO_8BIT \
|
|
|
|
|
| CATEGORY_MASK_ISO_ELSE)
|
|
|
|
|
|
|
|
|
|
#define CATEGORY_MASK_UTF_16 \
|
2008-04-03 12:31:27 +00:00
|
|
|
|
(CATEGORY_MASK_UTF_16_AUTO \
|
|
|
|
|
| CATEGORY_MASK_UTF_16_BE \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
| CATEGORY_MASK_UTF_16_LE \
|
|
|
|
|
| CATEGORY_MASK_UTF_16_BE_NOSIG \
|
|
|
|
|
| CATEGORY_MASK_UTF_16_LE_NOSIG)
|
|
|
|
|
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
#define CATEGORY_MASK_UTF_8 \
|
|
|
|
|
(CATEGORY_MASK_UTF_8_AUTO \
|
|
|
|
|
| CATEGORY_MASK_UTF_8_NOSIG \
|
|
|
|
|
| CATEGORY_MASK_UTF_8_SIG)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
/* Table of coding categories (Lisp symbols). This variable is for
|
2010-10-12 21:52:05 +09:00
|
|
|
|
internal use only. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static Lisp_Object Vcoding_category_table;
|
|
|
|
|
|
|
|
|
|
/* Table of coding-categories ordered by priority. */
|
|
|
|
|
static enum coding_category coding_priorities[coding_category_max];
|
|
|
|
|
|
|
|
|
|
/* Nth element is a coding context for the coding system bound to the
|
|
|
|
|
Nth coding category. */
|
|
|
|
|
static struct coding_system coding_categories[coding_category_max];
|
|
|
|
|
|
|
|
|
|
/*** Commonly used macros and functions ***/
|
|
|
|
|
|
|
|
|
|
#ifndef min
|
|
|
|
|
#define min(a, b) ((a) < (b) ? (a) : (b))
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef max
|
|
|
|
|
#define max(a, b) ((a) > (b) ? (a) : (b))
|
|
|
|
|
#endif
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
#define CODING_GET_INFO(coding, attrs, charset_list) \
|
|
|
|
|
do { \
|
|
|
|
|
(attrs) = CODING_ID_ATTRS ((coding)->id); \
|
|
|
|
|
(charset_list) = CODING_ATTR_CHARSET_LIST (attrs); \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
} while (0)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Safely get one byte from the source text pointed by SRC which ends
|
|
|
|
|
at SRC_END, and set C to that byte. If there are not enough bytes
|
2003-12-29 07:52:49 +00:00
|
|
|
|
in the source, it jumps to `no_more_source'. If multibytep is
|
|
|
|
|
nonzero, and a multibyte character is found at SRC, set C to the
|
|
|
|
|
negative value of the character code. The caller should declare
|
|
|
|
|
and set these variables appropriately in advance:
|
|
|
|
|
src, src_end, multibytep */
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2003-12-29 07:52:49 +00:00
|
|
|
|
#define ONE_MORE_BYTE(c) \
|
|
|
|
|
do { \
|
|
|
|
|
if (src == src_end) \
|
|
|
|
|
{ \
|
|
|
|
|
if (src_base < src) \
|
|
|
|
|
record_conversion_result \
|
|
|
|
|
(coding, CODING_RESULT_INSUFFICIENT_SRC); \
|
|
|
|
|
goto no_more_source; \
|
|
|
|
|
} \
|
|
|
|
|
c = *src++; \
|
|
|
|
|
if (multibytep && (c & 0x80)) \
|
|
|
|
|
{ \
|
|
|
|
|
if ((c & 0xFE) == 0xC0) \
|
|
|
|
|
c = ((c & 1) << 6) | *src++; \
|
|
|
|
|
else \
|
|
|
|
|
{ \
|
2005-07-29 06:20:30 +00:00
|
|
|
|
src--; \
|
|
|
|
|
c = - string_char (src, &src, NULL); \
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result \
|
|
|
|
|
(coding, CODING_RESULT_INVALID_SRC); \
|
|
|
|
|
} \
|
|
|
|
|
} \
|
|
|
|
|
consumed_chars++; \
|
2000-12-28 01:05:02 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2009-01-14 12:19:44 +00:00
|
|
|
|
/* Safely get two bytes from the source text pointed by SRC which ends
|
2009-01-14 12:51:06 +00:00
|
|
|
|
at SRC_END, and set C1 and C2 to those bytes while skipping the
|
|
|
|
|
heading multibyte characters. If there are not enough bytes in the
|
|
|
|
|
source, it jumps to `no_more_source'. If multibytep is nonzero and
|
|
|
|
|
a multibyte character is found for C2, set C2 to the negative value
|
|
|
|
|
of the character code. The caller should declare and set these
|
|
|
|
|
variables appropriately in advance:
|
2009-01-14 12:19:44 +00:00
|
|
|
|
src, src_end, multibytep
|
|
|
|
|
It is intended that this macro is used in detect_coding_utf_16. */
|
|
|
|
|
|
2009-01-14 12:51:06 +00:00
|
|
|
|
#define TWO_MORE_BYTES(c1, c2) \
|
|
|
|
|
do { \
|
|
|
|
|
do { \
|
|
|
|
|
if (src == src_end) \
|
|
|
|
|
goto no_more_source; \
|
|
|
|
|
c1 = *src++; \
|
|
|
|
|
if (multibytep && (c1 & 0x80)) \
|
|
|
|
|
{ \
|
|
|
|
|
if ((c1 & 0xFE) == 0xC0) \
|
|
|
|
|
c1 = ((c1 & 1) << 6) | *src++; \
|
|
|
|
|
else \
|
|
|
|
|
{ \
|
|
|
|
|
src += BYTES_BY_CHAR_HEAD (c1) - 1; \
|
|
|
|
|
c1 = -1; \
|
|
|
|
|
} \
|
|
|
|
|
} \
|
|
|
|
|
} while (c1 < 0); \
|
|
|
|
|
if (src == src_end) \
|
|
|
|
|
goto no_more_source; \
|
|
|
|
|
c2 = *src++; \
|
|
|
|
|
if (multibytep && (c2 & 0x80)) \
|
|
|
|
|
{ \
|
|
|
|
|
if ((c2 & 0xFE) == 0xC0) \
|
|
|
|
|
c2 = ((c2 & 1) << 6) | *src++; \
|
|
|
|
|
else \
|
|
|
|
|
c2 = -1; \
|
|
|
|
|
} \
|
2009-01-14 12:19:44 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Store a byte C in the place pointed by DST and increment DST to the
|
|
|
|
|
next free point, and increment PRODUCED_CHARS. The caller should
|
|
|
|
|
assure that C is 0..127, and declare and set the variable `dst'
|
|
|
|
|
appropriately in advance.
|
|
|
|
|
*/
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define EMIT_ONE_ASCII_BYTE(c) \
|
|
|
|
|
do { \
|
|
|
|
|
produced_chars++; \
|
|
|
|
|
*dst++ = (c); \
|
2003-03-07 02:18:35 +00:00
|
|
|
|
} while (0)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
|
|
|
|
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* Like EMIT_ONE_ASCII_BYTE but store two bytes; C1 and C2. */
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define EMIT_TWO_ASCII_BYTES(c1, c2) \
|
|
|
|
|
do { \
|
|
|
|
|
produced_chars += 2; \
|
|
|
|
|
*dst++ = (c1), *dst++ = (c2); \
|
|
|
|
|
} while (0)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Store a byte C in the place pointed by DST and increment DST to the
|
|
|
|
|
next free point, and increment PRODUCED_CHARS. If MULTIBYTEP is
|
|
|
|
|
nonzero, store in an appropriate multibyte from. The caller should
|
|
|
|
|
declare and set the variables `dst' and `multibytep' appropriately
|
|
|
|
|
in advance. */
|
|
|
|
|
|
|
|
|
|
#define EMIT_ONE_BYTE(c) \
|
|
|
|
|
do { \
|
|
|
|
|
produced_chars++; \
|
|
|
|
|
if (multibytep) \
|
|
|
|
|
{ \
|
2011-04-04 23:24:54 -07:00
|
|
|
|
unsigned ch = (c); \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (ch >= 0x80) \
|
|
|
|
|
ch = BYTE8_TO_CHAR (ch); \
|
|
|
|
|
CHAR_STRING_ADVANCE (ch, dst); \
|
|
|
|
|
} \
|
|
|
|
|
else \
|
|
|
|
|
*dst++ = (c); \
|
2000-12-28 01:05:02 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Like EMIT_ONE_BYTE, but emit two bytes; C1 and C2. */
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-08 00:19:39 +00:00
|
|
|
|
#define EMIT_TWO_BYTES(c1, c2) \
|
|
|
|
|
do { \
|
|
|
|
|
produced_chars += 2; \
|
|
|
|
|
if (multibytep) \
|
|
|
|
|
{ \
|
2011-04-04 23:24:54 -07:00
|
|
|
|
unsigned ch; \
|
2002-03-08 00:19:39 +00:00
|
|
|
|
\
|
|
|
|
|
ch = (c1); \
|
|
|
|
|
if (ch >= 0x80) \
|
|
|
|
|
ch = BYTE8_TO_CHAR (ch); \
|
|
|
|
|
CHAR_STRING_ADVANCE (ch, dst); \
|
|
|
|
|
ch = (c2); \
|
|
|
|
|
if (ch >= 0x80) \
|
|
|
|
|
ch = BYTE8_TO_CHAR (ch); \
|
|
|
|
|
CHAR_STRING_ADVANCE (ch, dst); \
|
|
|
|
|
} \
|
|
|
|
|
else \
|
|
|
|
|
{ \
|
|
|
|
|
*dst++ = (c1); \
|
|
|
|
|
*dst++ = (c2); \
|
|
|
|
|
} \
|
2000-12-28 01:05:02 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define EMIT_THREE_BYTES(c1, c2, c3) \
|
|
|
|
|
do { \
|
|
|
|
|
EMIT_ONE_BYTE (c1); \
|
|
|
|
|
EMIT_TWO_BYTES (c2, c3); \
|
|
|
|
|
} while (0)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define EMIT_FOUR_BYTES(c1, c2, c3, c4) \
|
|
|
|
|
do { \
|
|
|
|
|
EMIT_TWO_BYTES (c1, c2); \
|
|
|
|
|
EMIT_TWO_BYTES (c3, c4); \
|
|
|
|
|
} while (0)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
|
|
|
|
|
2004-03-11 11:21:39 +00:00
|
|
|
|
/* Prototypes for static functions. */
|
2010-07-02 14:19:53 +02:00
|
|
|
|
static void record_conversion_result (struct coding_system *coding,
|
|
|
|
|
enum coding_result_code result);
|
|
|
|
|
static int detect_coding_utf_8 (struct coding_system *,
|
|
|
|
|
struct coding_detection_info *info);
|
|
|
|
|
static void decode_coding_utf_8 (struct coding_system *);
|
|
|
|
|
static int encode_coding_utf_8 (struct coding_system *);
|
|
|
|
|
|
|
|
|
|
static int detect_coding_utf_16 (struct coding_system *,
|
|
|
|
|
struct coding_detection_info *info);
|
|
|
|
|
static void decode_coding_utf_16 (struct coding_system *);
|
|
|
|
|
static int encode_coding_utf_16 (struct coding_system *);
|
|
|
|
|
|
|
|
|
|
static int detect_coding_iso_2022 (struct coding_system *,
|
|
|
|
|
struct coding_detection_info *info);
|
|
|
|
|
static void decode_coding_iso_2022 (struct coding_system *);
|
|
|
|
|
static int encode_coding_iso_2022 (struct coding_system *);
|
|
|
|
|
|
|
|
|
|
static int detect_coding_emacs_mule (struct coding_system *,
|
|
|
|
|
struct coding_detection_info *info);
|
|
|
|
|
static void decode_coding_emacs_mule (struct coding_system *);
|
|
|
|
|
static int encode_coding_emacs_mule (struct coding_system *);
|
|
|
|
|
|
|
|
|
|
static int detect_coding_sjis (struct coding_system *,
|
|
|
|
|
struct coding_detection_info *info);
|
|
|
|
|
static void decode_coding_sjis (struct coding_system *);
|
|
|
|
|
static int encode_coding_sjis (struct coding_system *);
|
|
|
|
|
|
|
|
|
|
static int detect_coding_big5 (struct coding_system *,
|
|
|
|
|
struct coding_detection_info *info);
|
|
|
|
|
static void decode_coding_big5 (struct coding_system *);
|
|
|
|
|
static int encode_coding_big5 (struct coding_system *);
|
|
|
|
|
|
|
|
|
|
static int detect_coding_ccl (struct coding_system *,
|
|
|
|
|
struct coding_detection_info *info);
|
|
|
|
|
static void decode_coding_ccl (struct coding_system *);
|
|
|
|
|
static int encode_coding_ccl (struct coding_system *);
|
|
|
|
|
|
|
|
|
|
static void decode_coding_raw_text (struct coding_system *);
|
|
|
|
|
static int encode_coding_raw_text (struct coding_system *);
|
|
|
|
|
|
2011-12-05 15:39:26 +09:00
|
|
|
|
static EMACS_INT coding_set_source (struct coding_system *);
|
|
|
|
|
static EMACS_INT coding_set_destination (struct coding_system *);
|
2010-07-02 14:19:53 +02:00
|
|
|
|
static void coding_alloc_by_realloc (struct coding_system *, EMACS_INT);
|
|
|
|
|
static void coding_alloc_by_making_gap (struct coding_system *,
|
|
|
|
|
EMACS_INT, EMACS_INT);
|
|
|
|
|
static unsigned char *alloc_destination (struct coding_system *,
|
|
|
|
|
EMACS_INT, unsigned char *);
|
|
|
|
|
static void setup_iso_safe_charsets (Lisp_Object);
|
2011-12-05 15:39:26 +09:00
|
|
|
|
static int encode_designation_at_bol (struct coding_system *,
|
|
|
|
|
int *, int *, unsigned char *);
|
2010-07-02 14:19:53 +02:00
|
|
|
|
static int detect_eol (const unsigned char *,
|
|
|
|
|
EMACS_INT, enum coding_category);
|
|
|
|
|
static Lisp_Object adjust_coding_eol_type (struct coding_system *, int);
|
|
|
|
|
static void decode_eol (struct coding_system *);
|
|
|
|
|
static Lisp_Object get_translation_table (Lisp_Object, int, int *);
|
|
|
|
|
static Lisp_Object get_translation (Lisp_Object, int *, int *);
|
|
|
|
|
static int produce_chars (struct coding_system *, Lisp_Object, int);
|
[ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
2011-05-28 15:39:39 -07:00
|
|
|
|
static inline void produce_charset (struct coding_system *, int *,
|
2010-07-02 14:19:53 +02:00
|
|
|
|
EMACS_INT);
|
|
|
|
|
static void produce_annotation (struct coding_system *, EMACS_INT);
|
|
|
|
|
static int decode_coding (struct coding_system *);
|
[ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
2011-05-28 15:39:39 -07:00
|
|
|
|
static inline int *handle_composition_annotation (EMACS_INT, EMACS_INT,
|
2010-07-02 14:19:53 +02:00
|
|
|
|
struct coding_system *,
|
|
|
|
|
int *, EMACS_INT *);
|
[ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
2011-05-28 15:39:39 -07:00
|
|
|
|
static inline int *handle_charset_annotation (EMACS_INT, EMACS_INT,
|
2010-07-02 14:19:53 +02:00
|
|
|
|
struct coding_system *,
|
|
|
|
|
int *, EMACS_INT *);
|
|
|
|
|
static void consume_chars (struct coding_system *, Lisp_Object, int);
|
|
|
|
|
static int encode_coding (struct coding_system *);
|
|
|
|
|
static Lisp_Object make_conversion_work_buffer (int);
|
|
|
|
|
static Lisp_Object code_conversion_restore (Lisp_Object);
|
[ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
2011-05-28 15:39:39 -07:00
|
|
|
|
static inline int char_encodable_p (int, Lisp_Object);
|
2010-07-02 14:19:53 +02:00
|
|
|
|
static Lisp_Object make_subsidiaries (Lisp_Object);
|
2004-03-11 11:21:39 +00:00
|
|
|
|
|
2003-12-29 07:52:49 +00:00
|
|
|
|
static void
|
|
|
|
|
record_conversion_result (struct coding_system *coding,
|
|
|
|
|
enum coding_result_code result)
|
|
|
|
|
{
|
|
|
|
|
coding->result = result;
|
|
|
|
|
switch (result)
|
|
|
|
|
{
|
|
|
|
|
case CODING_RESULT_INSUFFICIENT_SRC:
|
|
|
|
|
Vlast_code_conversion_error = Qinsufficient_source;
|
|
|
|
|
break;
|
|
|
|
|
case CODING_RESULT_INCONSISTENT_EOL:
|
|
|
|
|
Vlast_code_conversion_error = Qinconsistent_eol;
|
|
|
|
|
break;
|
|
|
|
|
case CODING_RESULT_INVALID_SRC:
|
|
|
|
|
Vlast_code_conversion_error = Qinvalid_source;
|
|
|
|
|
break;
|
|
|
|
|
case CODING_RESULT_INTERRUPT:
|
|
|
|
|
Vlast_code_conversion_error = Qinterrupted;
|
|
|
|
|
break;
|
|
|
|
|
case CODING_RESULT_INSUFFICIENT_MEM:
|
|
|
|
|
Vlast_code_conversion_error = Qinsufficient_memory;
|
|
|
|
|
break;
|
2010-02-18 11:27:25 +09:00
|
|
|
|
case CODING_RESULT_INSUFFICIENT_DST:
|
|
|
|
|
/* Don't record this error in Vlast_code_conversion_error
|
|
|
|
|
because it happens just temporarily and is resolved when the
|
|
|
|
|
whole conversion is finished. */
|
|
|
|
|
break;
|
2009-05-02 11:32:42 +00:00
|
|
|
|
case CODING_RESULT_SUCCESS:
|
|
|
|
|
break;
|
2005-07-29 06:20:30 +00:00
|
|
|
|
default:
|
|
|
|
|
Vlast_code_conversion_error = intern ("Unknown error");
|
2003-12-29 07:52:49 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2011-12-05 15:39:26 +09:00
|
|
|
|
/* These wrapper macros are used to preserve validity of pointers into
|
|
|
|
|
buffer text across calls to decode_char, encode_char, etc, which
|
|
|
|
|
could cause relocation of buffers if it loads a charset map,
|
|
|
|
|
because loading a charset map allocates large structures. */
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define CODING_DECODE_CHAR(coding, src, src_base, src_end, charset, code, c) \
|
|
|
|
|
do { \
|
2011-12-05 15:39:26 +09:00
|
|
|
|
EMACS_INT offset; \
|
|
|
|
|
\
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charset_map_loaded = 0; \
|
|
|
|
|
c = DECODE_CHAR (charset, code); \
|
2011-12-05 15:39:26 +09:00
|
|
|
|
if (charset_map_loaded \
|
|
|
|
|
&& (offset = coding_set_source (coding))) \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{ \
|
|
|
|
|
src += offset; \
|
|
|
|
|
src_base += offset; \
|
|
|
|
|
src_end += offset; \
|
|
|
|
|
} \
|
2000-12-28 01:05:02 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2011-12-05 15:39:26 +09:00
|
|
|
|
#define CODING_ENCODE_CHAR(coding, dst, dst_end, charset, c, code) \
|
|
|
|
|
do { \
|
|
|
|
|
EMACS_INT offset; \
|
|
|
|
|
\
|
|
|
|
|
charset_map_loaded = 0; \
|
|
|
|
|
code = ENCODE_CHAR (charset, c); \
|
|
|
|
|
if (charset_map_loaded \
|
|
|
|
|
&& (offset = coding_set_destination (coding))) \
|
|
|
|
|
{ \
|
|
|
|
|
dst += offset; \
|
|
|
|
|
dst_end += offset; \
|
|
|
|
|
} \
|
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
#define CODING_CHAR_CHARSET(coding, dst, dst_end, c, charset_list, code_return, charset) \
|
|
|
|
|
do { \
|
|
|
|
|
EMACS_INT offset; \
|
|
|
|
|
\
|
|
|
|
|
charset_map_loaded = 0; \
|
|
|
|
|
charset = char_charset (c, charset_list, code_return); \
|
|
|
|
|
if (charset_map_loaded \
|
|
|
|
|
&& (offset = coding_set_destination (coding))) \
|
|
|
|
|
{ \
|
|
|
|
|
dst += offset; \
|
|
|
|
|
dst_end += offset; \
|
|
|
|
|
} \
|
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
#define CODING_CHAR_CHARSET_P(coding, dst, dst_end, c, charset, result) \
|
|
|
|
|
do { \
|
|
|
|
|
EMACS_INT offset; \
|
|
|
|
|
\
|
|
|
|
|
charset_map_loaded = 0; \
|
|
|
|
|
result = CHAR_CHARSET_P (c, charset); \
|
|
|
|
|
if (charset_map_loaded \
|
|
|
|
|
&& (offset = coding_set_destination (coding))) \
|
|
|
|
|
{ \
|
|
|
|
|
dst += offset; \
|
|
|
|
|
dst_end += offset; \
|
|
|
|
|
} \
|
|
|
|
|
} while (0)
|
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2008-03-02 08:05:14 +00:00
|
|
|
|
/* If there are at least BYTES length of room at dst, allocate memory
|
|
|
|
|
for coding->destination and update dst and dst_end. We don't have
|
|
|
|
|
to take care of coding->source which will be relocated. It is
|
|
|
|
|
handled by calling coding_set_source in encode_coding. */
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define ASSURE_DESTINATION(bytes) \
|
|
|
|
|
do { \
|
|
|
|
|
if (dst + (bytes) >= dst_end) \
|
|
|
|
|
{ \
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT more_bytes = charbuf_end - charbuf + (bytes); \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
\
|
|
|
|
|
dst = alloc_destination (coding, more_bytes, dst); \
|
|
|
|
|
dst_end = coding->destination + coding->dst_bytes; \
|
|
|
|
|
} \
|
|
|
|
|
} while (0)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
|
|
|
|
|
2008-03-16 01:24:55 +00:00
|
|
|
|
/* Store multibyte form of the character C in P, and advance P to the
|
|
|
|
|
end of the multibyte form. This is like CHAR_STRING_ADVANCE but it
|
|
|
|
|
never calls MAYBE_UNIFY_CHAR. */
|
|
|
|
|
|
|
|
|
|
#define CHAR_STRING_ADVANCE_NO_UNIFY(c, p) \
|
|
|
|
|
do { \
|
|
|
|
|
if ((c) <= MAX_1_BYTE_CHAR) \
|
|
|
|
|
*(p)++ = (c); \
|
|
|
|
|
else if ((c) <= MAX_2_BYTE_CHAR) \
|
|
|
|
|
*(p)++ = (0xC0 | ((c) >> 6)), \
|
|
|
|
|
*(p)++ = (0x80 | ((c) & 0x3F)); \
|
|
|
|
|
else if ((c) <= MAX_3_BYTE_CHAR) \
|
|
|
|
|
*(p)++ = (0xE0 | ((c) >> 12)), \
|
|
|
|
|
*(p)++ = (0x80 | (((c) >> 6) & 0x3F)), \
|
|
|
|
|
*(p)++ = (0x80 | ((c) & 0x3F)); \
|
|
|
|
|
else if ((c) <= MAX_4_BYTE_CHAR) \
|
|
|
|
|
*(p)++ = (0xF0 | (c >> 18)), \
|
|
|
|
|
*(p)++ = (0x80 | ((c >> 12) & 0x3F)), \
|
|
|
|
|
*(p)++ = (0x80 | ((c >> 6) & 0x3F)), \
|
|
|
|
|
*(p)++ = (0x80 | (c & 0x3F)); \
|
|
|
|
|
else if ((c) <= MAX_5_BYTE_CHAR) \
|
|
|
|
|
*(p)++ = 0xF8, \
|
|
|
|
|
*(p)++ = (0x80 | ((c >> 18) & 0x0F)), \
|
|
|
|
|
*(p)++ = (0x80 | ((c >> 12) & 0x3F)), \
|
|
|
|
|
*(p)++ = (0x80 | ((c >> 6) & 0x3F)), \
|
|
|
|
|
*(p)++ = (0x80 | (c & 0x3F)); \
|
|
|
|
|
else \
|
|
|
|
|
(p) += BYTE8_STRING ((c) - 0x3FFF80, p); \
|
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Return the character code of character whose multibyte form is at
|
|
|
|
|
P, and advance P to the end of the multibyte form. This is like
|
|
|
|
|
STRING_CHAR_ADVANCE, but it never calls MAYBE_UNIFY_CHAR. */
|
|
|
|
|
|
|
|
|
|
#define STRING_CHAR_ADVANCE_NO_UNIFY(p) \
|
|
|
|
|
(!((p)[0] & 0x80) \
|
|
|
|
|
? *(p)++ \
|
|
|
|
|
: ! ((p)[0] & 0x20) \
|
|
|
|
|
? ((p) += 2, \
|
|
|
|
|
((((p)[-2] & 0x1F) << 6) \
|
|
|
|
|
| ((p)[-1] & 0x3F) \
|
|
|
|
|
| ((unsigned char) ((p)[-2]) < 0xC2 ? 0x3FFF80 : 0))) \
|
|
|
|
|
: ! ((p)[0] & 0x10) \
|
|
|
|
|
? ((p) += 3, \
|
|
|
|
|
((((p)[-3] & 0x0F) << 12) \
|
|
|
|
|
| (((p)[-2] & 0x3F) << 6) \
|
|
|
|
|
| ((p)[-1] & 0x3F))) \
|
|
|
|
|
: ! ((p)[0] & 0x08) \
|
|
|
|
|
? ((p) += 4, \
|
|
|
|
|
((((p)[-4] & 0xF) << 18) \
|
|
|
|
|
| (((p)[-3] & 0x3F) << 12) \
|
|
|
|
|
| (((p)[-2] & 0x3F) << 6) \
|
|
|
|
|
| ((p)[-1] & 0x3F))) \
|
|
|
|
|
: ((p) += 5, \
|
|
|
|
|
((((p)[-4] & 0x3F) << 18) \
|
|
|
|
|
| (((p)[-3] & 0x3F) << 12) \
|
|
|
|
|
| (((p)[-2] & 0x3F) << 6) \
|
|
|
|
|
| ((p)[-1] & 0x3F))))
|
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2011-12-05 15:39:26 +09:00
|
|
|
|
/* Update coding->source from coding->src_object, and return how many
|
|
|
|
|
bytes coding->source was changed. */
|
|
|
|
|
|
|
|
|
|
static EMACS_INT
|
2010-07-04 00:50:25 -07:00
|
|
|
|
coding_set_source (struct coding_system *coding)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2011-12-05 15:39:26 +09:00
|
|
|
|
const unsigned char *orig = coding->source;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (BUFFERP (coding->src_object))
|
|
|
|
|
{
|
2003-05-06 08:16:37 +00:00
|
|
|
|
struct buffer *buf = XBUFFER (coding->src_object);
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (coding->src_pos < 0)
|
2003-05-06 08:16:37 +00:00
|
|
|
|
coding->source = BUF_GAP_END_ADDR (buf) + coding->src_pos_byte;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2003-05-06 08:16:37 +00:00
|
|
|
|
coding->source = BUF_BYTE_ADDRESS (buf, coding->src_pos_byte);
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (STRINGP (coding->src_object))
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
coding->source = SDATA (coding->src_object) + coding->src_pos_byte;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2011-03-07 17:41:19 -08:00
|
|
|
|
{
|
|
|
|
|
/* Otherwise, the source is C string and is never relocated
|
|
|
|
|
automatically. Thus we don't have to update anything. */
|
|
|
|
|
}
|
2011-12-05 15:39:26 +09:00
|
|
|
|
return coding->source - orig;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2011-12-05 15:39:26 +09:00
|
|
|
|
|
|
|
|
|
/* Update coding->destination from coding->dst_object, and return how
|
|
|
|
|
many bytes coding->destination was changed. */
|
|
|
|
|
|
|
|
|
|
static EMACS_INT
|
2010-07-04 00:50:25 -07:00
|
|
|
|
coding_set_destination (struct coding_system *coding)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2011-12-05 15:39:26 +09:00
|
|
|
|
const unsigned char *orig = coding->destination;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (BUFFERP (coding->dst_object))
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2011-11-07 10:57:07 +09:00
|
|
|
|
if (BUFFERP (coding->src_object) && coding->src_pos < 0)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2008-02-12 21:35:15 +00:00
|
|
|
|
coding->destination = BEG_ADDR + coding->dst_pos_byte - BEG_BYTE;
|
2002-08-21 12:53:56 +00:00
|
|
|
|
coding->dst_bytes = (GAP_END_ADDR
|
|
|
|
|
- (coding->src_bytes - coding->consumed)
|
|
|
|
|
- coding->destination);
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2002-08-21 12:53:56 +00:00
|
|
|
|
{
|
|
|
|
|
/* We are sure that coding->dst_pos_byte is before the gap
|
|
|
|
|
of the buffer. */
|
|
|
|
|
coding->destination = (BUF_BEG_ADDR (XBUFFER (coding->dst_object))
|
2008-02-12 21:35:15 +00:00
|
|
|
|
+ coding->dst_pos_byte - BEG_BYTE);
|
2002-08-21 12:53:56 +00:00
|
|
|
|
coding->dst_bytes = (BUF_GAP_END_ADDR (XBUFFER (coding->dst_object))
|
|
|
|
|
- coding->destination);
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
2011-03-07 17:41:19 -08:00
|
|
|
|
{
|
|
|
|
|
/* Otherwise, the destination is C string and is never relocated
|
|
|
|
|
automatically. Thus we don't have to update anything. */
|
|
|
|
|
}
|
2011-12-05 15:39:26 +09:00
|
|
|
|
return coding->destination - orig;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
coding_alloc_by_realloc (struct coding_system *coding, EMACS_INT bytes)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
* alloc.c: Catch some string size overflows that we were missing.
(XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
for convenience in STRING_BYTES_MAX.
(STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
The definition here is exact; the one in lisp.h was approximate.
(allocate_string_data): Check for string overflow. This catches
some instances we weren't catching before. Also, it catches
size_t overflow on (unusual) hosts where SIZE_MAX <= min
(PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
and ptrdiff_t and EMACS_INT are both 64 bits.
* character.c, coding.c, doprnt.c, editfns.c, eval.c:
All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
* lisp.h (STRING_BYTES_BOUND): Renamed from STRING_BYTES_MAX.
2011-06-08 10:22:24 -07:00
|
|
|
|
if (STRING_BYTES_BOUND - coding->dst_bytes < bytes)
|
2011-06-05 23:16:12 -07:00
|
|
|
|
string_overflow ();
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->destination = (unsigned char *) xrealloc (coding->destination,
|
|
|
|
|
coding->dst_bytes + bytes);
|
|
|
|
|
coding->dst_bytes += bytes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
2010-07-07 11:38:03 +02:00
|
|
|
|
coding_alloc_by_making_gap (struct coding_system *coding,
|
|
|
|
|
EMACS_INT gap_head_used, EMACS_INT bytes)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2008-03-16 01:24:55 +00:00
|
|
|
|
if (EQ (coding->src_object, coding->dst_object))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2008-03-16 01:24:55 +00:00
|
|
|
|
/* The gap may contain the produced data at the head and not-yet
|
|
|
|
|
consumed data at the tail. To preserve those data, we at
|
|
|
|
|
first make the gap size to zero, then increase the gap
|
|
|
|
|
size. */
|
|
|
|
|
EMACS_INT add = GAP_SIZE;
|
|
|
|
|
|
|
|
|
|
GPT += gap_head_used, GPT_BYTE += gap_head_used;
|
|
|
|
|
GAP_SIZE = 0; ZV += add; Z += add; ZV_BYTE += add; Z_BYTE += add;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
make_gap (bytes);
|
|
|
|
|
GAP_SIZE += add; ZV -= add; Z -= add; ZV_BYTE -= add; Z_BYTE -= add;
|
2008-03-16 01:24:55 +00:00
|
|
|
|
GPT -= gap_head_used, GPT_BYTE -= gap_head_used;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2006-02-05 02:45:48 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2002-05-07 04:50:48 +00:00
|
|
|
|
Lisp_Object this_buffer;
|
|
|
|
|
|
|
|
|
|
this_buffer = Fcurrent_buffer ();
|
2002-03-01 01:17:24 +00:00
|
|
|
|
set_buffer_internal (XBUFFER (coding->dst_object));
|
|
|
|
|
make_gap (bytes);
|
|
|
|
|
set_buffer_internal (XBUFFER (this_buffer));
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2003-09-08 12:53:41 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
static unsigned char *
|
2010-07-07 11:38:03 +02:00
|
|
|
|
alloc_destination (struct coding_system *coding, EMACS_INT nbytes,
|
|
|
|
|
unsigned char *dst)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
EMACS_INT offset = dst - coding->destination;
|
|
|
|
|
|
|
|
|
|
if (BUFFERP (coding->dst_object))
|
2008-03-16 01:24:55 +00:00
|
|
|
|
{
|
|
|
|
|
struct buffer *buf = XBUFFER (coding->dst_object);
|
|
|
|
|
|
|
|
|
|
coding_alloc_by_making_gap (coding, dst - BUF_GPT_ADDR (buf), nbytes);
|
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding_alloc_by_realloc (coding, nbytes);
|
|
|
|
|
coding_set_destination (coding);
|
|
|
|
|
dst = coding->destination + offset;
|
|
|
|
|
return dst;
|
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/** Macros for annotations. */
|
|
|
|
|
|
|
|
|
|
/* An annotation data is stored in the array coding->charbuf in this
|
|
|
|
|
format:
|
2004-03-10 23:11:18 +00:00
|
|
|
|
[ -LENGTH ANNOTATION_MASK NCHARS ... ]
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
LENGTH is the number of elements in the annotation.
|
|
|
|
|
ANNOTATION_MASK is one of CODING_ANNOTATE_XXX_MASK.
|
2004-03-10 23:11:18 +00:00
|
|
|
|
NCHARS is the number of characters in the text annotated.
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
|
|
|
|
|
The format of the following elements depend on ANNOTATION_MASK.
|
|
|
|
|
|
|
|
|
|
In the case of CODING_ANNOTATE_COMPOSITION_MASK, these elements
|
|
|
|
|
follows:
|
2009-03-06 07:51:52 +00:00
|
|
|
|
... NBYTES METHOD [ COMPOSITION-COMPONENTS ... ]
|
|
|
|
|
|
|
|
|
|
NBYTES is the number of bytes specified in the header part of
|
|
|
|
|
old-style emacs-mule encoding, or 0 for the other kind of
|
|
|
|
|
composition.
|
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
METHOD is one of enum composition_method.
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
2010-10-12 21:52:05 +09:00
|
|
|
|
Optional COMPOSITION-COMPONENTS are characters and composition
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
rules.
|
|
|
|
|
|
|
|
|
|
In the case of CODING_ANNOTATE_CHARSET_MASK, one element CHARSET-ID
|
2009-03-06 07:51:52 +00:00
|
|
|
|
follows.
|
|
|
|
|
|
|
|
|
|
If ANNOTATION_MASK is 0, this annotation is just a space holder to
|
|
|
|
|
recover from an invalid annotation, and should be skipped by
|
|
|
|
|
produce_annotation. */
|
|
|
|
|
|
|
|
|
|
/* Maximum length of the header of annotation data. */
|
|
|
|
|
#define MAX_ANNOTATION_LENGTH 5
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
|
2004-03-10 23:11:18 +00:00
|
|
|
|
#define ADD_ANNOTATION_DATA(buf, len, mask, nchars) \
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
do { \
|
|
|
|
|
*(buf)++ = -(len); \
|
|
|
|
|
*(buf)++ = (mask); \
|
2004-03-10 23:11:18 +00:00
|
|
|
|
*(buf)++ = (nchars); \
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
coding->annotated = 1; \
|
|
|
|
|
} while (0);
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
#define ADD_COMPOSITION_DATA(buf, nchars, nbytes, method) \
|
2004-03-10 23:11:18 +00:00
|
|
|
|
do { \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
ADD_ANNOTATION_DATA (buf, 5, CODING_ANNOTATE_COMPOSITION_MASK, nchars); \
|
|
|
|
|
*buf++ = nbytes; \
|
2004-03-10 23:11:18 +00:00
|
|
|
|
*buf++ = method; \
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
2004-03-10 23:11:18 +00:00
|
|
|
|
#define ADD_CHARSET_DATA(buf, nchars, id) \
|
|
|
|
|
do { \
|
|
|
|
|
ADD_ANNOTATION_DATA (buf, 4, CODING_ANNOTATE_CHARSET_MASK, nchars); \
|
|
|
|
|
*buf++ = id; \
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
/*** 2. Emacs' internal format (emacs-utf-8) ***/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*** 3. UTF-8 ***/
|
|
|
|
|
|
|
|
|
|
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
Check if a text is encoded in UTF-8. If it is, return 1, else
|
|
|
|
|
return 0. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
#define UTF_8_1_OCTET_P(c) ((c) < 0x80)
|
|
|
|
|
#define UTF_8_EXTRA_OCTET_P(c) (((c) & 0xC0) == 0x80)
|
|
|
|
|
#define UTF_8_2_OCTET_LEADING_P(c) (((c) & 0xE0) == 0xC0)
|
|
|
|
|
#define UTF_8_3_OCTET_LEADING_P(c) (((c) & 0xF0) == 0xE0)
|
|
|
|
|
#define UTF_8_4_OCTET_LEADING_P(c) (((c) & 0xF8) == 0xF0)
|
|
|
|
|
#define UTF_8_5_OCTET_LEADING_P(c) (((c) & 0xFC) == 0xF8)
|
|
|
|
|
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
#define UTF_8_BOM_1 0xEF
|
|
|
|
|
#define UTF_8_BOM_2 0xBB
|
|
|
|
|
#define UTF_8_BOM_3 0xBF
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_coding_utf_8 (struct coding_system *coding,
|
|
|
|
|
struct coding_detection_info *detect_info)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
const unsigned char *src = coding->source, *src_base;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0;
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
int bom_found = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int found = 0;
|
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->checked |= CATEGORY_MASK_UTF_8;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* A coding system of this category is always ASCII compatible. */
|
|
|
|
|
src += coding->head_ascii;
|
|
|
|
|
|
|
|
|
|
while (1)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c, c1, c2, c3, c4;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2003-12-29 07:52:49 +00:00
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c < 0 || UTF_8_1_OCTET_P (c))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
continue;
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c1 < 0 || ! UTF_8_EXTRA_OCTET_P (c1))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
if (UTF_8_2_OCTET_LEADING_P (c))
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
found = 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
continue;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c2);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c2 < 0 || ! UTF_8_EXTRA_OCTET_P (c2))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
if (UTF_8_3_OCTET_LEADING_P (c))
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
found = 1;
|
|
|
|
|
if (src_base == coding->source
|
|
|
|
|
&& c == UTF_8_BOM_1 && c1 == UTF_8_BOM_2 && c2 == UTF_8_BOM_3)
|
|
|
|
|
bom_found = 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
continue;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c3);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c3 < 0 || ! UTF_8_EXTRA_OCTET_P (c3))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
if (UTF_8_4_OCTET_LEADING_P (c))
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
found = 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
ONE_MORE_BYTE (c4);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c4 < 0 || ! UTF_8_EXTRA_OCTET_P (c4))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
if (UTF_8_5_OCTET_LEADING_P (c))
|
|
|
|
|
{
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
found = 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
break;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_UTF_8;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return 0;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (src_base < src && coding->mode & CODING_MODE_LAST_BLOCK)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_UTF_8;
|
2002-10-10 09:05:37 +00:00
|
|
|
|
return 0;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
if (bom_found)
|
|
|
|
|
{
|
|
|
|
|
/* The first character 0xFFFE doesn't necessarily mean a BOM. */
|
|
|
|
|
detect_info->found |= CATEGORY_MASK_UTF_8_SIG | CATEGORY_MASK_UTF_8_NOSIG;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_UTF_8_SIG;
|
2008-07-09 13:06:14 +00:00
|
|
|
|
if (found)
|
|
|
|
|
detect_info->found |= CATEGORY_MASK_UTF_8_NOSIG;
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
return 1;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_coding_utf_8 (struct coding_system *coding)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src = coding->source + coding->consumed;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
|
|
|
|
const unsigned char *src_base;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf = coding->charbuf + coding->charbuf_used;
|
|
|
|
|
int *charbuf_end = coding->charbuf + coding->charbuf_size;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0, consumed_chars_base = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
enum utf_bom_type bom = CODING_UTF_8_BOM (coding);
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int eol_dos =
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
!inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos);
|
2008-03-02 08:05:14 +00:00
|
|
|
|
int byte_after_cr = -1;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
if (bom != utf_without_bom)
|
|
|
|
|
{
|
|
|
|
|
int c1, c2, c3;
|
|
|
|
|
|
|
|
|
|
src_base = src;
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (! UTF_8_3_OCTET_LEADING_P (c1))
|
|
|
|
|
src = src_base;
|
|
|
|
|
else
|
|
|
|
|
{
|
2008-10-23 06:55:14 +00:00
|
|
|
|
ONE_MORE_BYTE (c2);
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
if (! UTF_8_EXTRA_OCTET_P (c2))
|
|
|
|
|
src = src_base;
|
|
|
|
|
else
|
|
|
|
|
{
|
2008-10-23 06:55:14 +00:00
|
|
|
|
ONE_MORE_BYTE (c3);
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
if (! UTF_8_EXTRA_OCTET_P (c3))
|
|
|
|
|
src = src_base;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if ((c1 != UTF_8_BOM_1)
|
|
|
|
|
|| (c2 != UTF_8_BOM_2) || (c3 != UTF_8_BOM_3))
|
|
|
|
|
src = src_base;
|
|
|
|
|
else
|
|
|
|
|
CODING_UTF_8_BOM (coding) = utf_without_bom;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
CODING_UTF_8_BOM (coding) = utf_without_bom;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (1)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c, c1, c2, c3, c4, c5;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
src_base = src;
|
|
|
|
|
consumed_chars_base = consumed_chars;
|
2000-10-24 09:04:35 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (charbuf >= charbuf_end)
|
2009-01-07 06:49:50 +00:00
|
|
|
|
{
|
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
src_base--;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2008-03-02 08:05:14 +00:00
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
c1 = byte_after_cr, byte_after_cr = -1;
|
|
|
|
|
else
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c1 < 0)
|
|
|
|
|
{
|
|
|
|
|
c = - c1;
|
|
|
|
|
}
|
2010-07-07 10:45:22 +02:00
|
|
|
|
else if (UTF_8_1_OCTET_P (c1))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (eol_dos && c1 == '\r')
|
2008-03-02 08:05:14 +00:00
|
|
|
|
ONE_MORE_BYTE (byte_after_cr);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
c = c1;
|
2000-10-24 09:04:35 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2000-10-24 09:04:35 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c2);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c2 < 0 || ! UTF_8_EXTRA_OCTET_P (c2))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
if (UTF_8_2_OCTET_LEADING_P (c1))
|
2000-10-24 09:04:35 +00:00
|
|
|
|
{
|
2002-05-27 22:19:17 +00:00
|
|
|
|
c = ((c1 & 0x1F) << 6) | (c2 & 0x3F);
|
|
|
|
|
/* Reject overlong sequences here and below. Encoders
|
|
|
|
|
producing them are incorrect, they can be misleading,
|
|
|
|
|
and they mess up read/write invariance. */
|
|
|
|
|
if (c < 128)
|
|
|
|
|
goto invalid_code;
|
2000-10-24 09:04:35 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c3);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c3 < 0 || ! UTF_8_EXTRA_OCTET_P (c3))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
if (UTF_8_3_OCTET_LEADING_P (c1))
|
2002-05-27 22:19:17 +00:00
|
|
|
|
{
|
|
|
|
|
c = (((c1 & 0xF) << 12)
|
|
|
|
|
| ((c2 & 0x3F) << 6) | (c3 & 0x3F));
|
2002-10-09 22:00:36 +00:00
|
|
|
|
if (c < 0x800
|
|
|
|
|
|| (c >= 0xd800 && c < 0xe000)) /* surrogates (invalid) */
|
2002-05-27 22:19:17 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ONE_MORE_BYTE (c4);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c4 < 0 || ! UTF_8_EXTRA_OCTET_P (c4))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
if (UTF_8_4_OCTET_LEADING_P (c1))
|
2002-05-27 22:19:17 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
c = (((c1 & 0x7) << 18) | ((c2 & 0x3F) << 12)
|
|
|
|
|
| ((c3 & 0x3F) << 6) | (c4 & 0x3F));
|
2002-05-27 22:19:17 +00:00
|
|
|
|
if (c < 0x10000)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ONE_MORE_BYTE (c5);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c5 < 0 || ! UTF_8_EXTRA_OCTET_P (c5))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
if (UTF_8_5_OCTET_LEADING_P (c1))
|
|
|
|
|
{
|
|
|
|
|
c = (((c1 & 0x3) << 24) | ((c2 & 0x3F) << 18)
|
|
|
|
|
| ((c3 & 0x3F) << 12) | ((c4 & 0x3F) << 6)
|
|
|
|
|
| (c5 & 0x3F));
|
2002-05-27 22:19:17 +00:00
|
|
|
|
if ((c > MAX_CHAR) || (c < 0x200000))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
}
|
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
*charbuf++ = c;
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
invalid_code:
|
|
|
|
|
src = src_base;
|
|
|
|
|
consumed_chars = consumed_chars_base;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
*charbuf++ = ASCII_BYTE_P (c) ? c : BYTE8_TO_CHAR (c);
|
|
|
|
|
coding->errors++;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
|
|
|
|
coding->consumed_char += consumed_chars_base;
|
|
|
|
|
coding->consumed = src_base - coding->source;
|
|
|
|
|
coding->charbuf_used = charbuf - coding->charbuf;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
encode_coding_utf_8 (struct coding_system *coding)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = charbuf + coding->charbuf_used;
|
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
|
|
|
|
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
if (CODING_UTF_8_BOM (coding) == utf_with_bom)
|
|
|
|
|
{
|
|
|
|
|
ASSURE_DESTINATION (3);
|
|
|
|
|
EMIT_THREE_BYTES (UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3);
|
|
|
|
|
CODING_UTF_8_BOM (coding) = utf_without_bom;
|
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (multibytep)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int safe_room = MAX_MULTIBYTE_LENGTH * 2;
|
|
|
|
|
|
|
|
|
|
while (charbuf < charbuf_end)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unsigned char str[MAX_MULTIBYTE_LENGTH], *p, *pend = str;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
c = *charbuf++;
|
2002-08-21 12:53:56 +00:00
|
|
|
|
if (CHAR_BYTE8_P (c))
|
|
|
|
|
{
|
|
|
|
|
c = CHAR_TO_BYTE8 (c);
|
|
|
|
|
EMIT_ONE_BYTE (c);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2008-03-16 01:24:55 +00:00
|
|
|
|
CHAR_STRING_ADVANCE_NO_UNIFY (c, pend);
|
2002-08-21 12:53:56 +00:00
|
|
|
|
for (p = str; p < pend; p++)
|
|
|
|
|
EMIT_ONE_BYTE (*p);
|
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
int safe_room = MAX_MULTIBYTE_LENGTH;
|
|
|
|
|
|
|
|
|
|
while (charbuf < charbuf_end)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
c = *charbuf++;
|
2004-04-20 02:46:38 +00:00
|
|
|
|
if (CHAR_BYTE8_P (c))
|
|
|
|
|
*dst++ = CHAR_TO_BYTE8 (c);
|
|
|
|
|
else
|
2008-03-16 01:24:55 +00:00
|
|
|
|
CHAR_STRING_ADVANCE_NO_UNIFY (c, dst);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
produced_chars++;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->produced_char += produced_chars;
|
|
|
|
|
coding->produced = dst - coding->destination;
|
|
|
|
|
return 0;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
Check if a text is encoded in one of UTF-16 based coding systems.
|
|
|
|
|
If it is, return 1, else return 0. */
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define UTF_16_HIGH_SURROGATE_P(val) \
|
|
|
|
|
(((val) & 0xFC00) == 0xD800)
|
|
|
|
|
|
|
|
|
|
#define UTF_16_LOW_SURROGATE_P(val) \
|
|
|
|
|
(((val) & 0xFC00) == 0xDC00)
|
2001-12-17 15:21:06 +00:00
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_coding_utf_16 (struct coding_system *coding,
|
|
|
|
|
struct coding_detection_info *detect_info)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2010-12-19 00:43:42 -05:00
|
|
|
|
const unsigned char *src = coding->source;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
|
|
|
|
int c1, c2;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->checked |= CATEGORY_MASK_UTF_16;
|
|
|
|
|
if (coding->mode & CODING_MODE_LAST_BLOCK
|
2003-12-02 01:40:27 +00:00
|
|
|
|
&& (coding->src_chars & 1))
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
{
|
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_UTF_16;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
|
2009-01-14 12:19:44 +00:00
|
|
|
|
TWO_MORE_BYTES (c1, c2);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if ((c1 == 0xFF) && (c2 == 0xFE))
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2003-05-06 12:28:11 +00:00
|
|
|
|
detect_info->found |= (CATEGORY_MASK_UTF_16_LE
|
|
|
|
|
| CATEGORY_MASK_UTF_16_AUTO);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
detect_info->rejected |= (CATEGORY_MASK_UTF_16_BE
|
|
|
|
|
| CATEGORY_MASK_UTF_16_BE_NOSIG
|
|
|
|
|
| CATEGORY_MASK_UTF_16_LE_NOSIG);
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if ((c1 == 0xFE) && (c2 == 0xFF))
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
{
|
2003-05-06 12:28:11 +00:00
|
|
|
|
detect_info->found |= (CATEGORY_MASK_UTF_16_BE
|
|
|
|
|
| CATEGORY_MASK_UTF_16_AUTO);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
detect_info->rejected |= (CATEGORY_MASK_UTF_16_LE
|
|
|
|
|
| CATEGORY_MASK_UTF_16_BE_NOSIG
|
|
|
|
|
| CATEGORY_MASK_UTF_16_LE_NOSIG);
|
|
|
|
|
}
|
2009-01-14 12:51:06 +00:00
|
|
|
|
else if (c2 < 0)
|
2009-01-14 12:19:44 +00:00
|
|
|
|
{
|
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_UTF_16;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
2008-04-03 12:31:27 +00:00
|
|
|
|
else
|
2003-12-02 01:40:27 +00:00
|
|
|
|
{
|
2008-04-03 12:31:27 +00:00
|
|
|
|
/* We check the dispersion of Eth and Oth bytes where E is even and
|
|
|
|
|
O is odd. If both are high, we assume binary data.*/
|
|
|
|
|
unsigned char e[256], o[256];
|
|
|
|
|
unsigned e_num = 1, o_num = 1;
|
|
|
|
|
|
|
|
|
|
memset (e, 0, 256);
|
|
|
|
|
memset (o, 0, 256);
|
|
|
|
|
e[c1] = 1;
|
|
|
|
|
o[c2] = 1;
|
|
|
|
|
|
2009-06-16 02:04:25 +00:00
|
|
|
|
detect_info->rejected |= (CATEGORY_MASK_UTF_16_AUTO
|
|
|
|
|
|CATEGORY_MASK_UTF_16_BE
|
|
|
|
|
| CATEGORY_MASK_UTF_16_LE);
|
2008-04-03 12:31:27 +00:00
|
|
|
|
|
2009-06-17 00:42:17 +00:00
|
|
|
|
while ((detect_info->rejected & CATEGORY_MASK_UTF_16)
|
|
|
|
|
!= CATEGORY_MASK_UTF_16)
|
2008-04-03 12:31:27 +00:00
|
|
|
|
{
|
2009-01-14 12:19:44 +00:00
|
|
|
|
TWO_MORE_BYTES (c1, c2);
|
2009-01-14 12:51:06 +00:00
|
|
|
|
if (c2 < 0)
|
2009-01-14 12:19:44 +00:00
|
|
|
|
break;
|
2008-04-03 12:31:27 +00:00
|
|
|
|
if (! e[c1])
|
|
|
|
|
{
|
|
|
|
|
e[c1] = 1;
|
|
|
|
|
e_num++;
|
2009-06-16 02:04:25 +00:00
|
|
|
|
if (e_num >= 128)
|
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_UTF_16_BE_NOSIG;
|
2008-04-03 12:31:27 +00:00
|
|
|
|
}
|
|
|
|
|
if (! o[c2])
|
|
|
|
|
{
|
2009-06-15 21:36:44 +00:00
|
|
|
|
o[c2] = 1;
|
2008-04-03 12:31:27 +00:00
|
|
|
|
o_num++;
|
2009-06-16 02:04:25 +00:00
|
|
|
|
if (o_num >= 128)
|
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_UTF_16_LE_NOSIG;
|
2008-04-03 12:31:27 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
}
|
2008-04-03 12:31:27 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
return 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_coding_utf_16 (struct coding_system *coding)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src = coding->source + coding->consumed;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
|
|
|
|
const unsigned char *src_base;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf = coding->charbuf + coding->charbuf_used;
|
2009-04-21 06:36:21 +00:00
|
|
|
|
/* We may produces at most 3 chars in one loop. */
|
|
|
|
|
int *charbuf_end = coding->charbuf + coding->charbuf_size - 2;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0, consumed_chars_base = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
enum utf_bom_type bom = CODING_UTF_16_BOM (coding);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
enum utf_16_endian_type endian = CODING_UTF_16_ENDIAN (coding);
|
|
|
|
|
int surrogate = CODING_UTF_16_SURROGATE (coding);
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int eol_dos =
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
!inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos);
|
2008-03-02 08:05:14 +00:00
|
|
|
|
int byte_after_cr1 = -1, byte_after_cr2 = -1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
if (bom == utf_with_bom)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c, c1, c2;
|
2000-10-24 09:04:35 +00:00
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
ONE_MORE_BYTE (c2);
|
2002-03-08 00:19:39 +00:00
|
|
|
|
c = (c1 << 8) | c2;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2003-05-06 12:28:11 +00:00
|
|
|
|
if (endian == utf_16_big_endian
|
|
|
|
|
? c != 0xFEFF : c != 0xFFFE)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2003-05-06 12:28:11 +00:00
|
|
|
|
/* The first two bytes are not BOM. Treat them as bytes
|
|
|
|
|
for a normal character. */
|
|
|
|
|
src = src_base;
|
|
|
|
|
coding->errors++;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
CODING_UTF_16_BOM (coding) = utf_without_bom;
|
2003-05-06 12:28:11 +00:00
|
|
|
|
}
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
else if (bom == utf_detect_bom)
|
2003-05-06 12:28:11 +00:00
|
|
|
|
{
|
|
|
|
|
/* We have already tried to detect BOM and failed in
|
|
|
|
|
detect_coding. */
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
CODING_UTF_16_BOM (coding) = utf_without_bom;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (1)
|
|
|
|
|
{
|
|
|
|
|
int c, c1, c2;
|
|
|
|
|
|
|
|
|
|
src_base = src;
|
|
|
|
|
consumed_chars_base = consumed_chars;
|
|
|
|
|
|
2009-04-21 06:36:21 +00:00
|
|
|
|
if (charbuf >= charbuf_end)
|
2009-01-07 06:49:50 +00:00
|
|
|
|
{
|
|
|
|
|
if (byte_after_cr1 >= 0)
|
|
|
|
|
src_base -= 2;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2008-03-02 08:05:14 +00:00
|
|
|
|
if (byte_after_cr1 >= 0)
|
|
|
|
|
c1 = byte_after_cr1, byte_after_cr1 = -1;
|
|
|
|
|
else
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c1 < 0)
|
|
|
|
|
{
|
|
|
|
|
*charbuf++ = -c1;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
2008-03-02 08:05:14 +00:00
|
|
|
|
if (byte_after_cr2 >= 0)
|
|
|
|
|
c2 = byte_after_cr2, byte_after_cr2 = -1;
|
|
|
|
|
else
|
|
|
|
|
ONE_MORE_BYTE (c2);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c2 < 0)
|
|
|
|
|
{
|
|
|
|
|
*charbuf++ = ASCII_BYTE_P (c1) ? c1 : BYTE8_TO_CHAR (c1);
|
|
|
|
|
*charbuf++ = -c2;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
c = (endian == utf_16_big_endian
|
2002-03-08 00:19:39 +00:00
|
|
|
|
? ((c1 << 8) | c2) : ((c2 << 8) | c1));
|
2008-03-02 08:05:14 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (surrogate)
|
2003-05-31 00:56:42 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! UTF_16_LOW_SURROGATE_P (c))
|
2003-05-31 00:56:42 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (endian == utf_16_big_endian)
|
|
|
|
|
c1 = surrogate >> 8, c2 = surrogate & 0xFF;
|
|
|
|
|
else
|
|
|
|
|
c1 = surrogate & 0xFF, c2 = surrogate >> 8;
|
|
|
|
|
*charbuf++ = c1;
|
|
|
|
|
*charbuf++ = c2;
|
|
|
|
|
coding->errors++;
|
|
|
|
|
if (UTF_16_HIGH_SURROGATE_P (c))
|
|
|
|
|
CODING_UTF_16_SURROGATE (coding) = surrogate = c;
|
2003-05-31 00:56:42 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
*charbuf++ = c;
|
2003-05-31 00:56:42 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
c = ((surrogate - 0xD800) << 10) | (c - 0xDC00);
|
|
|
|
|
CODING_UTF_16_SURROGATE (coding) = surrogate = 0;
|
2004-03-04 07:49:18 +00:00
|
|
|
|
*charbuf++ = 0x10000 + c;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2003-05-31 00:56:42 +00:00
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
if (UTF_16_HIGH_SURROGATE_P (c))
|
|
|
|
|
CODING_UTF_16_SURROGATE (coding) = surrogate = c;
|
|
|
|
|
else
|
2008-03-02 08:05:14 +00:00
|
|
|
|
{
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (eol_dos && c == '\r')
|
2008-03-02 08:05:14 +00:00
|
|
|
|
{
|
|
|
|
|
ONE_MORE_BYTE (byte_after_cr1);
|
|
|
|
|
ONE_MORE_BYTE (byte_after_cr2);
|
|
|
|
|
}
|
|
|
|
|
*charbuf++ = c;
|
|
|
|
|
}
|
2003-09-08 12:53:41 +00:00
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
no_more_source:
|
|
|
|
|
coding->consumed_char += consumed_chars_base;
|
|
|
|
|
coding->consumed = src_base - coding->source;
|
|
|
|
|
coding->charbuf_used = charbuf - coding->charbuf;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
encode_coding_utf_16 (struct coding_system *coding)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = charbuf + coding->charbuf_used;
|
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
|
|
|
|
int safe_room = 8;
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
enum utf_bom_type bom = CODING_UTF_16_BOM (coding);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int big_endian = CODING_UTF_16_ENDIAN (coding) == utf_16_big_endian;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
if (bom != utf_without_bom)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
if (big_endian)
|
|
|
|
|
EMIT_TWO_BYTES (0xFE, 0xFF);
|
2003-03-28 04:09:32 +00:00
|
|
|
|
else
|
|
|
|
|
EMIT_TWO_BYTES (0xFF, 0xFE);
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
CODING_UTF_16_BOM (coding) = utf_without_bom;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while (charbuf < charbuf_end)
|
|
|
|
|
{
|
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
c = *charbuf++;
|
2009-08-27 07:30:51 +00:00
|
|
|
|
if (c > MAX_UNICODE_CHAR)
|
2002-03-08 00:19:39 +00:00
|
|
|
|
c = coding->default_char;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
if (c < 0x10000)
|
|
|
|
|
{
|
|
|
|
|
if (big_endian)
|
|
|
|
|
EMIT_TWO_BYTES (c >> 8, c & 0xFF);
|
|
|
|
|
else
|
|
|
|
|
EMIT_TWO_BYTES (c & 0xFF, c >> 8);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
int c1, c2;
|
|
|
|
|
|
|
|
|
|
c -= 0x10000;
|
|
|
|
|
c1 = (c >> 10) + 0xD800;
|
|
|
|
|
c2 = (c & 0x3FF) + 0xDC00;
|
|
|
|
|
if (big_endian)
|
|
|
|
|
EMIT_FOUR_BYTES (c1 >> 8, c1 & 0xFF, c2 >> 8, c2 & 0xFF);
|
|
|
|
|
else
|
|
|
|
|
EMIT_FOUR_BYTES (c1 & 0xFF, c1 >> 8, c2 & 0xFF, c2 >> 8);
|
|
|
|
|
}
|
|
|
|
|
}
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->produced = dst - coding->destination;
|
|
|
|
|
coding->produced_char += produced_chars;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*** 6. Old Emacs' internal format (emacs-mule) ***/
|
|
|
|
|
|
|
|
|
|
/* Emacs' internal format for representation of multiple character
|
|
|
|
|
sets is a kind of multi-byte encoding, i.e. characters are
|
|
|
|
|
represented by variable-length sequences of one-byte codes.
|
|
|
|
|
|
|
|
|
|
ASCII characters and control characters (e.g. `tab', `newline') are
|
|
|
|
|
represented by one-byte sequences which are their ASCII codes, in
|
|
|
|
|
the range 0x00 through 0x7F.
|
|
|
|
|
|
|
|
|
|
8-bit characters of the range 0x80..0x9F are represented by
|
|
|
|
|
two-byte sequences of LEADING_CODE_8_BIT_CONTROL and (their 8-bit
|
|
|
|
|
code + 0x20).
|
|
|
|
|
|
|
|
|
|
8-bit characters of the range 0xA0..0xFF are represented by
|
|
|
|
|
one-byte sequences which are their 8-bit code.
|
|
|
|
|
|
|
|
|
|
The other characters are represented by a sequence of `base
|
|
|
|
|
leading-code', optional `extended leading-code', and one or two
|
|
|
|
|
`position-code's. The length of the sequence is determined by the
|
|
|
|
|
base leading-code. Leading-code takes the range 0x81 through 0x9D,
|
|
|
|
|
whereas extended leading-code and position-code take the range 0xA0
|
|
|
|
|
through 0xFF. See `charset.h' for more details about leading-code
|
|
|
|
|
and position-code.
|
|
|
|
|
|
|
|
|
|
--- CODE RANGE of Emacs' internal format ---
|
|
|
|
|
character set range
|
|
|
|
|
------------- -----
|
|
|
|
|
ascii 0x00..0x7F
|
|
|
|
|
eight-bit-control LEADING_CODE_8_BIT_CONTROL + 0xA0..0xBF
|
|
|
|
|
eight-bit-graphic 0xA0..0xBF
|
|
|
|
|
ELSE 0x81..0x9D + [0xA0..0xFF]+
|
|
|
|
|
---------------------------------------------
|
|
|
|
|
|
|
|
|
|
As this is the internal character representation, the format is
|
|
|
|
|
usually not used externally (i.e. in a file or in a data sent to a
|
|
|
|
|
process). But, it is possible to have a text externally in this
|
|
|
|
|
format (i.e. by encoding by the coding system `emacs-mule').
|
|
|
|
|
|
|
|
|
|
In that case, a sequence of one-byte codes has a slightly different
|
|
|
|
|
form.
|
|
|
|
|
|
|
|
|
|
At first, all characters in eight-bit-control are represented by
|
|
|
|
|
one-byte sequences which are their 8-bit code.
|
|
|
|
|
|
|
|
|
|
Next, character composition data are represented by the byte
|
|
|
|
|
sequence of the form: 0x80 METHOD BYTES CHARS COMPONENT ...,
|
|
|
|
|
where,
|
2009-03-06 07:51:52 +00:00
|
|
|
|
METHOD is 0xF2 plus one of composition method (enum
|
2002-03-01 01:17:24 +00:00
|
|
|
|
composition_method),
|
|
|
|
|
|
|
|
|
|
BYTES is 0xA0 plus a byte length of this composition data,
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
CHARS is 0xA0 plus a number of characters composed by this
|
2002-03-01 01:17:24 +00:00
|
|
|
|
data,
|
|
|
|
|
|
2010-10-12 21:52:05 +09:00
|
|
|
|
COMPONENTs are characters of multibyte form or composition
|
2002-03-01 01:17:24 +00:00
|
|
|
|
rules encoded by two-byte of ASCII codes.
|
|
|
|
|
|
|
|
|
|
In addition, for backward compatibility, the following formats are
|
|
|
|
|
also recognized as composition data on decoding.
|
|
|
|
|
|
|
|
|
|
0x80 MSEQ ...
|
|
|
|
|
0x80 0xFF MSEQ RULE MSEQ RULE ... MSEQ
|
|
|
|
|
|
|
|
|
|
Here,
|
|
|
|
|
MSEQ is a multibyte form but in these special format:
|
|
|
|
|
ASCII: 0xA0 ASCII_CODE+0x80,
|
|
|
|
|
other: LEADING_CODE+0x20 FOLLOWING-BYTE ...,
|
|
|
|
|
RULE is a one byte code of the range 0xA0..0xF0 that
|
|
|
|
|
represents a composition rule.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
char emacs_mule_bytes[256];
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
|
|
|
|
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
|
|
|
|
Check if a text is encoded in `emacs-mule'. If it is, return 1,
|
|
|
|
|
else return 0. */
|
|
|
|
|
|
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_coding_emacs_mule (struct coding_system *coding,
|
|
|
|
|
struct coding_detection_info *detect_info)
|
2009-03-06 07:51:52 +00:00
|
|
|
|
{
|
|
|
|
|
const unsigned char *src = coding->source, *src_base;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
|
|
|
|
int multibytep = coding->src_multibyte;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
int c;
|
|
|
|
|
int found = 0;
|
|
|
|
|
|
|
|
|
|
detect_info->checked |= CATEGORY_MASK_EMACS_MULE;
|
|
|
|
|
/* A coding system of this category is always ASCII compatible. */
|
|
|
|
|
src += coding->head_ascii;
|
|
|
|
|
|
|
|
|
|
while (1)
|
|
|
|
|
{
|
|
|
|
|
src_base = src;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
if (c < 0)
|
|
|
|
|
continue;
|
|
|
|
|
if (c == 0x80)
|
|
|
|
|
{
|
|
|
|
|
/* Perhaps the start of composite character. We simply skip
|
|
|
|
|
it because analyzing it is too heavy for detecting. But,
|
|
|
|
|
at least, we check that the composite character
|
|
|
|
|
constitutes of more than 4 bytes. */
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
const unsigned char *src_start;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
|
|
|
|
repeat:
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
src_start = src;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
}
|
|
|
|
|
while (c >= 0xA0);
|
|
|
|
|
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (src - src_start <= 4)
|
2009-03-06 07:51:52 +00:00
|
|
|
|
break;
|
|
|
|
|
found = CATEGORY_MASK_EMACS_MULE;
|
|
|
|
|
if (c == 0x80)
|
|
|
|
|
goto repeat;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (c < 0x80)
|
|
|
|
|
{
|
|
|
|
|
if (c < 0x20
|
|
|
|
|
&& (c == ISO_CODE_ESC || c == ISO_CODE_SI || c == ISO_CODE_SO))
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2010-09-07 20:08:46 +09:00
|
|
|
|
int more_bytes = emacs_mule_bytes[c] - 1;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
|
|
|
|
while (more_bytes > 0)
|
|
|
|
|
{
|
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
if (c < 0xA0)
|
|
|
|
|
{
|
|
|
|
|
src--; /* Unread the last byte. */
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
more_bytes--;
|
|
|
|
|
}
|
|
|
|
|
if (more_bytes != 0)
|
|
|
|
|
break;
|
|
|
|
|
found = CATEGORY_MASK_EMACS_MULE;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_EMACS_MULE;
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
no_more_source:
|
|
|
|
|
if (src_base < src && coding->mode & CODING_MODE_LAST_BLOCK)
|
|
|
|
|
{
|
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_EMACS_MULE;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
detect_info->found |= found;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Parse emacs-mule multibyte sequence at SRC and return the decoded
|
|
|
|
|
character. If CMP_STATUS indicates that we must expect MSEQ or
|
|
|
|
|
RULE described above, decode it and return the negative value of
|
2010-03-02 23:43:50 +02:00
|
|
|
|
the decoded character or rule. If an invalid byte is found, return
|
2009-03-06 07:51:52 +00:00
|
|
|
|
-1. If SRC is too short, return -2. */
|
|
|
|
|
|
2011-03-07 20:41:22 -08:00
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
emacs_mule_char (struct coding_system *coding, const unsigned char *src,
|
|
|
|
|
int *nbytes, int *nchars, int *id,
|
|
|
|
|
struct composition_status *cmp_status)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
|
|
|
|
const unsigned char *src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int charset_ID;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unsigned code;
|
|
|
|
|
int c;
|
|
|
|
|
int consumed_chars = 0;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
int mseq_found = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c < 0)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
c = -c;
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
charset_ID = emacs_mule_charset[0];
|
2003-12-29 07:52:49 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2006-03-07 08:15:33 +00:00
|
|
|
|
if (c >= 0xA0)
|
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->state != COMPOSING_NO
|
|
|
|
|
&& cmp_status->old_form)
|
2006-03-07 08:15:33 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->state == COMPOSING_CHAR)
|
|
|
|
|
{
|
|
|
|
|
if (c == 0xA0)
|
|
|
|
|
{
|
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
c -= 0x80;
|
|
|
|
|
if (c < 0)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
c -= 0x20;
|
|
|
|
|
mseq_found = 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
*nbytes = src - src_base;
|
|
|
|
|
*nchars = consumed_chars;
|
|
|
|
|
return -c;
|
|
|
|
|
}
|
2006-03-07 08:15:33 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
2009-03-06 07:51:52 +00:00
|
|
|
|
goto invalid_code;
|
2006-03-07 08:15:33 +00:00
|
|
|
|
}
|
|
|
|
|
|
2003-12-29 07:52:49 +00:00
|
|
|
|
switch (emacs_mule_bytes[c])
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
case 2:
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if ((charset_ID = emacs_mule_charset[c]) < 0)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2004-04-12 23:17:27 +00:00
|
|
|
|
if (c < 0xA0)
|
2003-12-29 07:52:49 +00:00
|
|
|
|
goto invalid_code;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
code = c & 0x7F;
|
2003-12-29 07:52:49 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
|
if (c == EMACS_MULE_LEADING_CODE_PRIVATE_11
|
|
|
|
|
|| c == EMACS_MULE_LEADING_CODE_PRIVATE_12)
|
|
|
|
|
{
|
|
|
|
|
ONE_MORE_BYTE (c);
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (c < 0xA0 || (charset_ID = emacs_mule_charset[c]) < 0)
|
2003-12-29 07:52:49 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2004-04-12 23:17:27 +00:00
|
|
|
|
if (c < 0xA0)
|
2003-12-29 07:52:49 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
code = c & 0x7F;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if ((charset_ID = emacs_mule_charset[c]) < 0)
|
2003-12-29 07:52:49 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2004-04-12 23:17:27 +00:00
|
|
|
|
if (c < 0xA0)
|
2003-12-29 07:52:49 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
code = (c & 0x7F) << 8;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2004-04-12 23:17:27 +00:00
|
|
|
|
if (c < 0xA0)
|
2003-12-29 07:52:49 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
code |= c & 0x7F;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 4:
|
|
|
|
|
ONE_MORE_BYTE (c);
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (c < 0 || (charset_ID = emacs_mule_charset[c]) < 0)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2004-04-12 23:17:27 +00:00
|
|
|
|
if (c < 0xA0)
|
2003-12-29 07:52:49 +00:00
|
|
|
|
goto invalid_code;
|
2002-05-21 04:23:15 +00:00
|
|
|
|
code = (c & 0x7F) << 8;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
2004-04-12 23:17:27 +00:00
|
|
|
|
if (c < 0xA0)
|
2003-12-29 07:52:49 +00:00
|
|
|
|
goto invalid_code;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
code |= c & 0x7F;
|
2003-12-29 07:52:49 +00:00
|
|
|
|
break;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2003-12-29 07:52:49 +00:00
|
|
|
|
case 1:
|
|
|
|
|
code = c;
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
charset_ID = ASCII_BYTE_P (code) ? charset_ascii : charset_eight_bit;
|
2003-12-29 07:52:49 +00:00
|
|
|
|
break;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2003-12-29 07:52:49 +00:00
|
|
|
|
default:
|
|
|
|
|
abort ();
|
|
|
|
|
}
|
2010-11-25 12:55:14 +09:00
|
|
|
|
CODING_DECODE_CHAR (coding, src, src_base, src_end,
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
CHARSET_FROM_ID (charset_ID), code, c);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c < 0)
|
|
|
|
|
goto invalid_code;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
*nbytes = src - src_base;
|
|
|
|
|
*nchars = consumed_chars;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (id)
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
*id = charset_ID;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
return (mseq_found ? -c : c);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
no_more_source:
|
|
|
|
|
return -2;
|
|
|
|
|
|
|
|
|
|
invalid_code:
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* See the above "GENERAL NOTES on `decode_coding_XXX ()' functions". */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Handle these composition sequence ('|': the end of header elements,
|
|
|
|
|
BYTES and CHARS >= 0xA0):
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
(1) relative composition: 0x80 0xF2 BYTES CHARS | CHAR ...
|
|
|
|
|
(2) altchar composition: 0x80 0xF4 BYTES CHARS | ALT ... ALT CHAR ...
|
|
|
|
|
(3) alt&rule composition: 0x80 0xF5 BYTES CHARS | ALT RULE ... ALT CHAR ...
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
and these old form:
|
2010-07-07 10:45:22 +02:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
(4) relative composition: 0x80 | MSEQ ... MSEQ
|
|
|
|
|
(5) rulebase composition: 0x80 0xFF | MSEQ MRULE ... MSEQ
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
When the starter 0x80 and the following header elements are found,
|
|
|
|
|
this annotation header is produced.
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
[ -LENGTH(==-5) CODING_ANNOTATE_COMPOSITION_MASK NCHARS NBYTES METHOD ]
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
NCHARS is CHARS - 0xA0 for (1), (2), (3), and 0 for (4), (5).
|
|
|
|
|
NBYTES is BYTES - 0xA0 for (1), (2), (3), and 0 for (4), (5).
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
Then, upon reading the following elements, these codes are produced
|
|
|
|
|
until the composition end is found:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
(1) CHAR ... CHAR
|
|
|
|
|
(2) ALT ... ALT CHAR ... CHAR
|
|
|
|
|
(3) ALT -2 DECODED-RULE ALT -2 DECODED-RULE ... ALT CHAR ... CHAR
|
|
|
|
|
(4) CHAR ... CHAR
|
|
|
|
|
(5) CHAR -2 DECODED-RULE CHAR -2 DECODED-RULE ... CHAR
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
When the composition end is found, LENGTH and NCHARS in the
|
|
|
|
|
annotation header is updated as below:
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
(1) LENGTH: unchanged, NCHARS: unchanged
|
|
|
|
|
(2) LENGTH: length of the whole sequence minus NCHARS, NCHARS: unchanged
|
|
|
|
|
(3) LENGTH: length of the whole sequence minus NCHARS, NCHARS: unchanged
|
|
|
|
|
(4) LENGTH: unchanged, NCHARS: number of CHARs
|
|
|
|
|
(5) LENGTH: unchanged, NCHARS: number of CHARs
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
If an error is found while composing, the annotation header is
|
|
|
|
|
changed to the original composition header (plus filler -1s) as
|
|
|
|
|
below:
|
|
|
|
|
|
|
|
|
|
(1),(2),(3) [ 0x80 0xF2+METHOD BYTES CHARS -1 ]
|
|
|
|
|
(5) [ 0x80 0xFF -1 -1- -1 ]
|
|
|
|
|
|
|
|
|
|
and the sequence [ -2 DECODED-RULE ] is changed to the original
|
|
|
|
|
byte sequence as below:
|
|
|
|
|
o the original byte sequence is B: [ B -1 ]
|
|
|
|
|
o the original byte sequence is B1 B2: [ B1 B2 ]
|
|
|
|
|
|
|
|
|
|
Most of the routines are implemented by macros because many
|
|
|
|
|
variables and labels in the caller decode_coding_emacs_mule must be
|
|
|
|
|
accessible, and they are usually called just once (thus doesn't
|
|
|
|
|
increase the size of compiled object). */
|
|
|
|
|
|
|
|
|
|
/* Decode a composition rule represented by C as a component of
|
|
|
|
|
composition sequence of Emacs 20 style. Set RULE to the decoded
|
|
|
|
|
rule. */
|
|
|
|
|
|
|
|
|
|
#define DECODE_EMACS_MULE_COMPOSITION_RULE_20(c, rule) \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
do { \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
int gref, nref; \
|
|
|
|
|
\
|
2006-03-07 08:15:33 +00:00
|
|
|
|
c -= 0xA0; \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (c < 0 || c >= 81) \
|
|
|
|
|
goto invalid_code; \
|
|
|
|
|
gref = c / 9, nref = c % 9; \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (gref == 4) gref = 10; \
|
|
|
|
|
if (nref == 4) nref = 10; \
|
|
|
|
|
rule = COMPOSITION_ENCODE_RULE (gref, nref); \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Decode a composition rule represented by C and the following byte
|
|
|
|
|
at SRC as a component of composition sequence of Emacs 21 style.
|
|
|
|
|
Set RULE to the decoded rule. */
|
2002-05-21 04:23:15 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
#define DECODE_EMACS_MULE_COMPOSITION_RULE_21(c, rule) \
|
2002-05-21 04:23:15 +00:00
|
|
|
|
do { \
|
|
|
|
|
int gref, nref; \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
\
|
|
|
|
|
gref = c - 0x20; \
|
|
|
|
|
if (gref < 0 || gref >= 81) \
|
2002-05-21 04:23:15 +00:00
|
|
|
|
goto invalid_code; \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
ONE_MORE_BYTE (c); \
|
|
|
|
|
nref = c - 0x20; \
|
|
|
|
|
if (nref < 0 || nref >= 81) \
|
2002-05-21 04:23:15 +00:00
|
|
|
|
goto invalid_code; \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
rule = COMPOSITION_ENCODE_RULE (gref, nref); \
|
2002-05-21 04:23:15 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Start of Emacs 21 style format. The first three bytes at SRC are
|
|
|
|
|
(METHOD - 0xF2), (BYTES - 0xA0), (CHARS - 0xA0), where BYTES is the
|
|
|
|
|
byte length of this composition information, CHARS is the number of
|
|
|
|
|
characters composed by this composition. */
|
|
|
|
|
|
|
|
|
|
#define DECODE_EMACS_MULE_21_COMPOSITION() \
|
2000-12-28 01:05:02 +00:00
|
|
|
|
do { \
|
2002-05-21 04:23:15 +00:00
|
|
|
|
enum composition_method method = c - 0xF2; \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int nbytes, nchars; \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
\
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c); \
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c < 0) \
|
|
|
|
|
goto invalid_code; \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
nbytes = c - 0xA0; \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (nbytes < 3 || (method == COMPOSITION_RELATIVE && nbytes != 4)) \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code; \
|
|
|
|
|
ONE_MORE_BYTE (c); \
|
|
|
|
|
nchars = c - 0xA0; \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (nchars <= 0 || nchars >= MAX_COMPOSITION_COMPONENTS) \
|
|
|
|
|
goto invalid_code; \
|
|
|
|
|
cmp_status->old_form = 0; \
|
|
|
|
|
cmp_status->method = method; \
|
|
|
|
|
if (method == COMPOSITION_RELATIVE) \
|
|
|
|
|
cmp_status->state = COMPOSING_CHAR; \
|
|
|
|
|
else \
|
|
|
|
|
cmp_status->state = COMPOSING_COMPONENT_CHAR; \
|
|
|
|
|
cmp_status->length = MAX_ANNOTATION_LENGTH; \
|
|
|
|
|
cmp_status->nchars = nchars; \
|
|
|
|
|
cmp_status->ncomps = nbytes - 4; \
|
|
|
|
|
ADD_COMPOSITION_DATA (charbuf, nchars, nbytes, method); \
|
2000-12-28 01:05:02 +00:00
|
|
|
|
} while (0)
|
2001-12-17 15:21:06 +00:00
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Start of Emacs 20 style format for relative composition. */
|
|
|
|
|
|
|
|
|
|
#define DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION() \
|
|
|
|
|
do { \
|
|
|
|
|
cmp_status->old_form = 1; \
|
|
|
|
|
cmp_status->method = COMPOSITION_RELATIVE; \
|
|
|
|
|
cmp_status->state = COMPOSING_CHAR; \
|
|
|
|
|
cmp_status->length = MAX_ANNOTATION_LENGTH; \
|
|
|
|
|
cmp_status->nchars = cmp_status->ncomps = 0; \
|
|
|
|
|
ADD_COMPOSITION_DATA (charbuf, 0, 0, cmp_status->method); \
|
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Start of Emacs 20 style format for rule-base composition. */
|
|
|
|
|
|
|
|
|
|
#define DECODE_EMACS_MULE_20_RULEBASE_COMPOSITION() \
|
|
|
|
|
do { \
|
|
|
|
|
cmp_status->old_form = 1; \
|
|
|
|
|
cmp_status->method = COMPOSITION_WITH_RULE; \
|
|
|
|
|
cmp_status->state = COMPOSING_CHAR; \
|
|
|
|
|
cmp_status->length = MAX_ANNOTATION_LENGTH; \
|
|
|
|
|
cmp_status->nchars = cmp_status->ncomps = 0; \
|
|
|
|
|
ADD_COMPOSITION_DATA (charbuf, 0, 0, cmp_status->method); \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
#define DECODE_EMACS_MULE_COMPOSITION_START() \
|
|
|
|
|
do { \
|
|
|
|
|
const unsigned char *current_src = src; \
|
|
|
|
|
\
|
|
|
|
|
ONE_MORE_BYTE (c); \
|
|
|
|
|
if (c < 0) \
|
|
|
|
|
goto invalid_code; \
|
|
|
|
|
if (c - 0xF2 >= COMPOSITION_RELATIVE \
|
|
|
|
|
&& c - 0xF2 <= COMPOSITION_WITH_RULE_ALTCHARS) \
|
|
|
|
|
DECODE_EMACS_MULE_21_COMPOSITION (); \
|
|
|
|
|
else if (c < 0xA0) \
|
|
|
|
|
goto invalid_code; \
|
|
|
|
|
else if (c < 0xC0) \
|
|
|
|
|
{ \
|
|
|
|
|
DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION (); \
|
|
|
|
|
/* Re-read C as a composition component. */ \
|
|
|
|
|
src = current_src; \
|
|
|
|
|
} \
|
|
|
|
|
else if (c == 0xFF) \
|
|
|
|
|
DECODE_EMACS_MULE_20_RULEBASE_COMPOSITION (); \
|
|
|
|
|
else \
|
|
|
|
|
goto invalid_code; \
|
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
#define EMACS_MULE_COMPOSITION_END() \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
do { \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
int idx = - cmp_status->length; \
|
2006-03-07 08:15:33 +00:00
|
|
|
|
\
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->old_form) \
|
|
|
|
|
charbuf[idx + 2] = cmp_status->nchars; \
|
|
|
|
|
else if (cmp_status->method > COMPOSITION_RELATIVE) \
|
|
|
|
|
charbuf[idx] = charbuf[idx + 2] - cmp_status->length; \
|
|
|
|
|
cmp_status->state = COMPOSING_NO; \
|
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
emacs_mule_finish_composition (int *charbuf,
|
|
|
|
|
struct composition_status *cmp_status)
|
2009-03-06 07:51:52 +00:00
|
|
|
|
{
|
|
|
|
|
int idx = - cmp_status->length;
|
|
|
|
|
int new_chars;
|
|
|
|
|
|
|
|
|
|
if (cmp_status->old_form && cmp_status->nchars > 0)
|
|
|
|
|
{
|
|
|
|
|
charbuf[idx + 2] = cmp_status->nchars;
|
|
|
|
|
new_chars = 0;
|
|
|
|
|
if (cmp_status->method == COMPOSITION_WITH_RULE
|
|
|
|
|
&& cmp_status->state == COMPOSING_CHAR)
|
|
|
|
|
{
|
|
|
|
|
/* The last rule was invalid. */
|
|
|
|
|
int rule = charbuf[-1] + 0xA0;
|
|
|
|
|
|
|
|
|
|
charbuf[-2] = BYTE8_TO_CHAR (rule);
|
|
|
|
|
charbuf[-1] = -1;
|
|
|
|
|
new_chars = 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
charbuf[idx++] = BYTE8_TO_CHAR (0x80);
|
|
|
|
|
|
|
|
|
|
if (cmp_status->method == COMPOSITION_WITH_RULE)
|
|
|
|
|
{
|
|
|
|
|
charbuf[idx++] = BYTE8_TO_CHAR (0xFF);
|
|
|
|
|
charbuf[idx++] = -3;
|
|
|
|
|
charbuf[idx++] = 0;
|
|
|
|
|
new_chars = 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
int nchars = charbuf[idx + 1] + 0xA0;
|
|
|
|
|
int nbytes = charbuf[idx + 2] + 0xA0;
|
|
|
|
|
|
|
|
|
|
charbuf[idx++] = BYTE8_TO_CHAR (0xF2 + cmp_status->method);
|
|
|
|
|
charbuf[idx++] = BYTE8_TO_CHAR (nbytes);
|
|
|
|
|
charbuf[idx++] = BYTE8_TO_CHAR (nchars);
|
|
|
|
|
charbuf[idx++] = -1;
|
|
|
|
|
new_chars = 4;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
cmp_status->state = COMPOSING_NO;
|
|
|
|
|
return new_chars;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#define EMACS_MULE_MAYBE_FINISH_COMPOSITION() \
|
|
|
|
|
do { \
|
|
|
|
|
if (cmp_status->state != COMPOSING_NO) \
|
|
|
|
|
char_offset += emacs_mule_finish_composition (charbuf, cmp_status); \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_coding_emacs_mule (struct coding_system *coding)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src = coding->source + coding->consumed;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
|
|
|
|
const unsigned char *src_base;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf = coding->charbuf + coding->charbuf_used;
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* We may produce two annotations (charset and composition) in one
|
|
|
|
|
loop and one more charset annotation at the end. */
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf_end
|
2011-04-29 22:47:29 +03:00
|
|
|
|
= coding->charbuf + coding->charbuf_size - (MAX_ANNOTATION_LENGTH * 3)
|
|
|
|
|
/* We can produce up to 2 characters in a loop. */
|
|
|
|
|
- 1;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0, consumed_chars_base;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT char_offset = coding->produced_char;
|
|
|
|
|
EMACS_INT last_offset = char_offset;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int last_id = charset_ascii;
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int eol_dos =
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
!inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos);
|
2008-03-02 08:05:14 +00:00
|
|
|
|
int byte_after_cr = -1;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
struct composition_status *cmp_status = &coding->spec.emacs_mule.cmp_status;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->state != COMPOSING_NO)
|
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
|
2011-04-29 22:47:29 +03:00
|
|
|
|
if (charbuf_end - charbuf < cmp_status->length)
|
|
|
|
|
abort ();
|
2009-03-06 07:51:52 +00:00
|
|
|
|
for (i = 0; i < cmp_status->length; i++)
|
|
|
|
|
*charbuf++ = cmp_status->carryover[i];
|
|
|
|
|
coding->annotated = 1;
|
|
|
|
|
}
|
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
while (1)
|
|
|
|
|
{
|
2011-03-07 23:34:38 -08:00
|
|
|
|
int c, id IF_LINT (= 0);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
consumed_chars_base = consumed_chars;
|
|
|
|
|
|
|
|
|
|
if (charbuf >= charbuf_end)
|
2009-01-07 06:49:50 +00:00
|
|
|
|
{
|
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
src_base--;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2008-03-02 08:05:14 +00:00
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
c = byte_after_cr, byte_after_cr = -1;
|
|
|
|
|
else
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
|
|
|
|
if (c < 0 || c == 0x80)
|
2003-12-29 07:52:49 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
EMACS_MULE_MAYBE_FINISH_COMPOSITION ();
|
|
|
|
|
if (c < 0)
|
|
|
|
|
{
|
|
|
|
|
*charbuf++ = -c;
|
|
|
|
|
char_offset++;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
DECODE_EMACS_MULE_COMPOSITION_START ();
|
|
|
|
|
continue;
|
2003-12-29 07:52:49 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
|
|
|
|
if (c < 0x80)
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (eol_dos && c == '\r')
|
2008-03-02 08:05:14 +00:00
|
|
|
|
ONE_MORE_BYTE (byte_after_cr);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
id = charset_ascii;
|
|
|
|
|
if (cmp_status->state != COMPOSING_NO)
|
|
|
|
|
{
|
|
|
|
|
if (cmp_status->old_form)
|
|
|
|
|
EMACS_MULE_MAYBE_FINISH_COMPOSITION ();
|
|
|
|
|
else if (cmp_status->state >= COMPOSING_COMPONENT_CHAR)
|
|
|
|
|
cmp_status->ncomps--;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2011-03-07 23:34:38 -08:00
|
|
|
|
int nchars IF_LINT (= 0), nbytes IF_LINT (= 0);
|
2010-03-02 22:35:44 +02:00
|
|
|
|
/* emacs_mule_char can load a charset map from a file, which
|
|
|
|
|
allocates a large structure and might cause buffer text
|
|
|
|
|
to be relocated as result. Thus, we need to remember the
|
2010-10-12 21:52:05 +09:00
|
|
|
|
original pointer to buffer text, and fix up all related
|
2010-03-02 22:35:44 +02:00
|
|
|
|
pointers after the call. */
|
|
|
|
|
const unsigned char *orig = coding->source;
|
|
|
|
|
EMACS_INT offset;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
|
|
|
|
c = emacs_mule_char (coding, src_base, &nbytes, &nchars, &id,
|
|
|
|
|
cmp_status);
|
2010-03-02 22:35:44 +02:00
|
|
|
|
offset = coding->source - orig;
|
|
|
|
|
if (offset)
|
|
|
|
|
{
|
|
|
|
|
src += offset;
|
|
|
|
|
src_base += offset;
|
|
|
|
|
src_end += offset;
|
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (c < 0)
|
|
|
|
|
{
|
|
|
|
|
if (c == -1)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
if (c == -2)
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
src = src_base + nbytes;
|
|
|
|
|
consumed_chars = consumed_chars_base + nchars;
|
|
|
|
|
if (cmp_status->state >= COMPOSING_COMPONENT_CHAR)
|
|
|
|
|
cmp_status->ncomps -= nchars;
|
|
|
|
|
}
|
|
|
|
|
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* Now if C >= 0, we found a normally encoded character, if C <
|
2009-03-06 07:51:52 +00:00
|
|
|
|
0, we found an old-style composition component character or
|
|
|
|
|
rule. */
|
|
|
|
|
|
|
|
|
|
if (cmp_status->state == COMPOSING_NO)
|
|
|
|
|
{
|
|
|
|
|
if (last_id != id)
|
|
|
|
|
{
|
|
|
|
|
if (last_id != charset_ascii)
|
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset - last_offset,
|
|
|
|
|
last_id);
|
|
|
|
|
last_id = id;
|
|
|
|
|
last_offset = char_offset;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
*charbuf++ = c;
|
|
|
|
|
char_offset++;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
else if (cmp_status->state == COMPOSING_CHAR)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->old_form)
|
|
|
|
|
{
|
|
|
|
|
if (c >= 0)
|
|
|
|
|
{
|
|
|
|
|
EMACS_MULE_MAYBE_FINISH_COMPOSITION ();
|
|
|
|
|
*charbuf++ = c;
|
|
|
|
|
char_offset++;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
*charbuf++ = -c;
|
|
|
|
|
cmp_status->nchars++;
|
|
|
|
|
cmp_status->length++;
|
|
|
|
|
if (cmp_status->nchars == MAX_COMPOSITION_COMPONENTS)
|
|
|
|
|
EMACS_MULE_COMPOSITION_END ();
|
|
|
|
|
else if (cmp_status->method == COMPOSITION_WITH_RULE)
|
|
|
|
|
cmp_status->state = COMPOSING_RULE;
|
|
|
|
|
}
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2009-03-06 07:51:52 +00:00
|
|
|
|
{
|
|
|
|
|
*charbuf++ = c;
|
|
|
|
|
cmp_status->length++;
|
|
|
|
|
cmp_status->nchars--;
|
|
|
|
|
if (cmp_status->nchars == 0)
|
|
|
|
|
EMACS_MULE_COMPOSITION_END ();
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
else if (cmp_status->state == COMPOSING_RULE)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
int rule;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (c >= 0)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
EMACS_MULE_COMPOSITION_END ();
|
|
|
|
|
*charbuf++ = c;
|
|
|
|
|
char_offset++;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
else
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
c = -c;
|
|
|
|
|
DECODE_EMACS_MULE_COMPOSITION_RULE_20 (c, rule);
|
|
|
|
|
if (rule < 0)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
*charbuf++ = -2;
|
|
|
|
|
*charbuf++ = rule;
|
|
|
|
|
cmp_status->length += 2;
|
|
|
|
|
cmp_status->state = COMPOSING_CHAR;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
}
|
|
|
|
|
else if (cmp_status->state == COMPOSING_COMPONENT_CHAR)
|
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
*charbuf++ = c;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
cmp_status->length++;
|
|
|
|
|
if (cmp_status->ncomps == 0)
|
|
|
|
|
cmp_status->state = COMPOSING_CHAR;
|
|
|
|
|
else if (cmp_status->ncomps > 0)
|
|
|
|
|
{
|
|
|
|
|
if (cmp_status->method == COMPOSITION_WITH_RULE_ALTCHARS)
|
|
|
|
|
cmp_status->state = COMPOSING_COMPONENT_RULE;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
EMACS_MULE_MAYBE_FINISH_COMPOSITION ();
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
else /* COMPOSING_COMPONENT_RULE */
|
|
|
|
|
{
|
|
|
|
|
int rule;
|
|
|
|
|
|
|
|
|
|
DECODE_EMACS_MULE_COMPOSITION_RULE_21 (c, rule);
|
|
|
|
|
if (rule < 0)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
*charbuf++ = -2;
|
|
|
|
|
*charbuf++ = rule;
|
|
|
|
|
cmp_status->length += 2;
|
|
|
|
|
cmp_status->ncomps--;
|
|
|
|
|
if (cmp_status->ncomps > 0)
|
|
|
|
|
cmp_status->state = COMPOSING_COMPONENT_CHAR;
|
|
|
|
|
else
|
|
|
|
|
EMACS_MULE_MAYBE_FINISH_COMPOSITION ();
|
|
|
|
|
}
|
|
|
|
|
continue;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
invalid_code:
|
2009-03-06 07:51:52 +00:00
|
|
|
|
EMACS_MULE_MAYBE_FINISH_COMPOSITION ();
|
2002-03-01 01:17:24 +00:00
|
|
|
|
src = src_base;
|
|
|
|
|
consumed_chars = consumed_chars_base;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
*charbuf++ = ASCII_BYTE_P (c) ? c : BYTE8_TO_CHAR (c);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
char_offset++;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->errors++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
no_more_source:
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->state != COMPOSING_NO)
|
|
|
|
|
{
|
|
|
|
|
if (coding->mode & CODING_MODE_LAST_BLOCK)
|
|
|
|
|
EMACS_MULE_MAYBE_FINISH_COMPOSITION ();
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
charbuf -= cmp_status->length;
|
|
|
|
|
for (i = 0; i < cmp_status->length; i++)
|
|
|
|
|
cmp_status->carryover[i] = charbuf[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (last_id != charset_ascii)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->consumed_char += consumed_chars_base;
|
|
|
|
|
coding->consumed = src_base - coding->source;
|
|
|
|
|
coding->charbuf_used = charbuf - coding->charbuf;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define EMACS_MULE_LEADING_CODES(id, codes) \
|
|
|
|
|
do { \
|
|
|
|
|
if (id < 0xA0) \
|
|
|
|
|
codes[0] = id, codes[1] = 0; \
|
|
|
|
|
else if (id < 0xE0) \
|
|
|
|
|
codes[0] = 0x9A, codes[1] = id; \
|
|
|
|
|
else if (id < 0xF0) \
|
|
|
|
|
codes[0] = 0x9B, codes[1] = id; \
|
|
|
|
|
else if (id < 0xF5) \
|
|
|
|
|
codes[0] = 0x9C, codes[1] = id; \
|
|
|
|
|
else \
|
|
|
|
|
codes[0] = 0x9D, codes[1] = id; \
|
|
|
|
|
} while (0);
|
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
encode_coding_emacs_mule (struct coding_system *coding)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = charbuf + coding->charbuf_used;
|
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
|
|
|
|
int safe_room = 8;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object attrs, charset_list;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int preferred_charset_id = -1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
2003-11-22 11:39:53 +00:00
|
|
|
|
if (! EQ (charset_list, Vemacs_mule_charset_list))
|
|
|
|
|
{
|
|
|
|
|
CODING_ATTR_CHARSET_LIST (attrs)
|
|
|
|
|
= charset_list = Vemacs_mule_charset_list;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
while (charbuf < charbuf_end)
|
|
|
|
|
{
|
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
c = *charbuf++;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
|
|
|
|
|
if (c < 0)
|
|
|
|
|
{
|
|
|
|
|
/* Handle an annotation. */
|
|
|
|
|
switch (*charbuf)
|
|
|
|
|
{
|
|
|
|
|
case CODING_ANNOTATE_COMPOSITION_MASK:
|
|
|
|
|
/* Not yet implemented. */
|
|
|
|
|
break;
|
|
|
|
|
case CODING_ANNOTATE_CHARSET_MASK:
|
|
|
|
|
preferred_charset_id = charbuf[3];
|
|
|
|
|
if (preferred_charset_id >= 0
|
|
|
|
|
&& NILP (Fmemq (make_number (preferred_charset_id),
|
|
|
|
|
charset_list)))
|
|
|
|
|
preferred_charset_id = -1;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
abort ();
|
|
|
|
|
}
|
|
|
|
|
charbuf += -c - 1;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (ASCII_CHAR_P (c))
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (c);
|
2002-05-31 01:03:50 +00:00
|
|
|
|
else if (CHAR_BYTE8_P (c))
|
|
|
|
|
{
|
|
|
|
|
c = CHAR_TO_BYTE8 (c);
|
|
|
|
|
EMIT_ONE_BYTE (c);
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2000-12-28 01:05:02 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
struct charset *charset;
|
|
|
|
|
unsigned code;
|
|
|
|
|
int dimension;
|
|
|
|
|
int emacs_mule_id;
|
|
|
|
|
unsigned char leading_codes[2];
|
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (preferred_charset_id >= 0)
|
|
|
|
|
{
|
2011-12-05 15:39:26 +09:00
|
|
|
|
int result;
|
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
charset = CHARSET_FROM_ID (preferred_charset_id);
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CODING_CHAR_CHARSET_P (coding, dst, dst_end, c, charset, result);
|
|
|
|
|
if (result)
|
2008-12-03 06:35:02 +00:00
|
|
|
|
code = ENCODE_CHAR (charset, c);
|
|
|
|
|
else
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c, charset_list,
|
|
|
|
|
&code, charset);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c, charset_list,
|
|
|
|
|
&code, charset);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! charset)
|
|
|
|
|
{
|
|
|
|
|
c = coding->default_char;
|
|
|
|
|
if (ASCII_CHAR_P (c))
|
|
|
|
|
{
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (c);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c, charset_list,
|
|
|
|
|
&code, charset);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
dimension = CHARSET_DIMENSION (charset);
|
|
|
|
|
emacs_mule_id = CHARSET_EMACS_MULE_ID (charset);
|
|
|
|
|
EMACS_MULE_LEADING_CODES (emacs_mule_id, leading_codes);
|
|
|
|
|
EMIT_ONE_BYTE (leading_codes[0]);
|
|
|
|
|
if (leading_codes[1])
|
|
|
|
|
EMIT_ONE_BYTE (leading_codes[1]);
|
|
|
|
|
if (dimension == 1)
|
2003-11-22 11:20:05 +00:00
|
|
|
|
EMIT_ONE_BYTE (code | 0x80);
|
2000-12-28 01:05:02 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2003-11-22 11:20:05 +00:00
|
|
|
|
code |= 0x8080;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_ONE_BYTE (code >> 8);
|
|
|
|
|
EMIT_ONE_BYTE (code & 0xFF);
|
|
|
|
|
}
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->produced_char += produced_chars;
|
|
|
|
|
coding->produced = dst - coding->destination;
|
|
|
|
|
return 0;
|
2000-12-28 01:05:02 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/*** 7. ISO2022 handlers ***/
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
/* The following note describes the coding system ISO2022 briefly.
|
1999-03-01 11:52:54 +00:00
|
|
|
|
Since the intention of this note is to help understand the
|
2002-06-16 19:57:54 +00:00
|
|
|
|
functions in this file, some parts are NOT ACCURATE or are OVERLY
|
1999-03-01 11:52:54 +00:00
|
|
|
|
SIMPLIFIED. For thorough understanding, please refer to the
|
2002-06-16 19:57:54 +00:00
|
|
|
|
original document of ISO2022. This is equivalent to the standard
|
2001-01-04 17:35:26 +00:00
|
|
|
|
ECMA-35, obtainable from <URL:http://www.ecma.ch/> (*).
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
ISO2022 provides many mechanisms to encode several character sets
|
2001-01-04 17:35:26 +00:00
|
|
|
|
in 7-bit and 8-bit environments. For 7-bit environments, all text
|
1999-03-01 11:52:54 +00:00
|
|
|
|
is encoded using bytes less than 128. This may make the encoded
|
|
|
|
|
text a little bit longer, but the text passes more easily through
|
2001-01-04 17:35:26 +00:00
|
|
|
|
several types of gateway, some of which strip off the MSB (Most
|
2001-02-14 23:50:05 +00:00
|
|
|
|
Significant Bit).
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2001-01-04 17:35:26 +00:00
|
|
|
|
There are two kinds of character sets: control character sets and
|
|
|
|
|
graphic character sets. The former contain control characters such
|
1997-02-20 07:02:49 +00:00
|
|
|
|
as `newline' and `escape' to provide control functions (control
|
1999-03-01 11:52:54 +00:00
|
|
|
|
functions are also provided by escape sequences). The latter
|
2001-01-04 17:35:26 +00:00
|
|
|
|
contain graphic characters such as 'A' and '-'. Emacs recognizes
|
1997-02-20 07:02:49 +00:00
|
|
|
|
two control character sets and many graphic character sets.
|
|
|
|
|
|
|
|
|
|
Graphic character sets are classified into one of the following
|
1999-03-01 11:52:54 +00:00
|
|
|
|
four classes, according to the number of bytes (DIMENSION) and
|
|
|
|
|
number of characters in one dimension (CHARS) of the set:
|
|
|
|
|
- DIMENSION1_CHARS94
|
|
|
|
|
- DIMENSION1_CHARS96
|
|
|
|
|
- DIMENSION2_CHARS94
|
|
|
|
|
- DIMENSION2_CHARS96
|
|
|
|
|
|
|
|
|
|
In addition, each character set is assigned an identification tag,
|
2001-01-04 17:35:26 +00:00
|
|
|
|
unique for each set, called the "final character" (denoted as <F>
|
1999-03-01 11:52:54 +00:00
|
|
|
|
hereafter). The <F> of each character set is decided by ECMA(*)
|
|
|
|
|
when it is registered in ISO. The code range of <F> is 0x30..0x7F
|
|
|
|
|
(0x30..0x3F are for private use only).
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
Note (*): ECMA = European Computer Manufacturers Association
|
|
|
|
|
|
2001-01-04 17:35:26 +00:00
|
|
|
|
Here are examples of graphic character sets [NAME(<F>)]:
|
1997-02-20 07:02:49 +00:00
|
|
|
|
o DIMENSION1_CHARS94 -- ASCII('B'), right-half-of-JISX0201('I'), ...
|
|
|
|
|
o DIMENSION1_CHARS96 -- right-half-of-ISO8859-1('A'), ...
|
|
|
|
|
o DIMENSION2_CHARS94 -- GB2312('A'), JISX0208('B'), ...
|
|
|
|
|
o DIMENSION2_CHARS96 -- none for the moment
|
|
|
|
|
|
1999-03-01 11:52:54 +00:00
|
|
|
|
A code area (1 byte=8 bits) is divided into 4 areas, C0, GL, C1, and GR.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
C0 [0x00..0x1F] -- control character plane 0
|
|
|
|
|
GL [0x20..0x7F] -- graphic character plane 0
|
|
|
|
|
C1 [0x80..0x9F] -- control character plane 1
|
|
|
|
|
GR [0xA0..0xFF] -- graphic character plane 1
|
|
|
|
|
|
|
|
|
|
A control character set is directly designated and invoked to C0 or
|
1999-03-01 11:52:54 +00:00
|
|
|
|
C1 by an escape sequence. The most common case is that:
|
|
|
|
|
- ISO646's control character set is designated/invoked to C0, and
|
|
|
|
|
- ISO6429's control character set is designated/invoked to C1,
|
|
|
|
|
and usually these designations/invocations are omitted in encoded
|
|
|
|
|
text. In a 7-bit environment, only C0 can be used, and a control
|
|
|
|
|
character for C1 is encoded by an appropriate escape sequence to
|
|
|
|
|
fit into the environment. All control characters for C1 are
|
|
|
|
|
defined to have corresponding escape sequences.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
A graphic character set is at first designated to one of four
|
|
|
|
|
graphic registers (G0 through G3), then these graphic registers are
|
|
|
|
|
invoked to GL or GR. These designations and invocations can be
|
|
|
|
|
done independently. The most common case is that G0 is invoked to
|
1999-03-01 11:52:54 +00:00
|
|
|
|
GL, G1 is invoked to GR, and ASCII is designated to G0. Usually
|
|
|
|
|
these invocations and designations are omitted in encoded text.
|
|
|
|
|
In a 7-bit environment, only GL can be used.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1999-03-01 11:52:54 +00:00
|
|
|
|
When a graphic character set of CHARS94 is invoked to GL, codes
|
|
|
|
|
0x20 and 0x7F of the GL area work as control characters SPACE and
|
|
|
|
|
DEL respectively, and codes 0xA0 and 0xFF of the GR area should not
|
|
|
|
|
be used.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
There are two ways of invocation: locking-shift and single-shift.
|
|
|
|
|
With locking-shift, the invocation lasts until the next different
|
1999-03-01 11:52:54 +00:00
|
|
|
|
invocation, whereas with single-shift, the invocation affects the
|
|
|
|
|
following character only and doesn't affect the locking-shift
|
|
|
|
|
state. Invocations are done by the following control characters or
|
|
|
|
|
escape sequences:
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
----------------------------------------------------------------------
|
1999-03-01 11:52:54 +00:00
|
|
|
|
abbrev function cntrl escape seq description
|
1997-02-20 07:02:49 +00:00
|
|
|
|
----------------------------------------------------------------------
|
1999-03-01 11:52:54 +00:00
|
|
|
|
SI/LS0 (shift-in) 0x0F none invoke G0 into GL
|
|
|
|
|
SO/LS1 (shift-out) 0x0E none invoke G1 into GL
|
|
|
|
|
LS2 (locking-shift-2) none ESC 'n' invoke G2 into GL
|
|
|
|
|
LS3 (locking-shift-3) none ESC 'o' invoke G3 into GL
|
|
|
|
|
LS1R (locking-shift-1 right) none ESC '~' invoke G1 into GR (*)
|
|
|
|
|
LS2R (locking-shift-2 right) none ESC '}' invoke G2 into GR (*)
|
|
|
|
|
LS3R (locking-shift 3 right) none ESC '|' invoke G3 into GR (*)
|
|
|
|
|
SS2 (single-shift-2) 0x8E ESC 'N' invoke G2 for one char
|
|
|
|
|
SS3 (single-shift-3) 0x8F ESC 'O' invoke G3 for one char
|
1997-02-20 07:02:49 +00:00
|
|
|
|
----------------------------------------------------------------------
|
1999-03-01 11:52:54 +00:00
|
|
|
|
(*) These are not used by any known coding system.
|
|
|
|
|
|
|
|
|
|
Control characters for these functions are defined by macros
|
|
|
|
|
ISO_CODE_XXX in `coding.h'.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1999-03-01 11:52:54 +00:00
|
|
|
|
Designations are done by the following escape sequences:
|
1997-02-20 07:02:49 +00:00
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
escape sequence description
|
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
ESC '(' <F> designate DIMENSION1_CHARS94<F> to G0
|
|
|
|
|
ESC ')' <F> designate DIMENSION1_CHARS94<F> to G1
|
|
|
|
|
ESC '*' <F> designate DIMENSION1_CHARS94<F> to G2
|
|
|
|
|
ESC '+' <F> designate DIMENSION1_CHARS94<F> to G3
|
|
|
|
|
ESC ',' <F> designate DIMENSION1_CHARS96<F> to G0 (*)
|
|
|
|
|
ESC '-' <F> designate DIMENSION1_CHARS96<F> to G1
|
|
|
|
|
ESC '.' <F> designate DIMENSION1_CHARS96<F> to G2
|
|
|
|
|
ESC '/' <F> designate DIMENSION1_CHARS96<F> to G3
|
|
|
|
|
ESC '$' '(' <F> designate DIMENSION2_CHARS94<F> to G0 (**)
|
|
|
|
|
ESC '$' ')' <F> designate DIMENSION2_CHARS94<F> to G1
|
|
|
|
|
ESC '$' '*' <F> designate DIMENSION2_CHARS94<F> to G2
|
|
|
|
|
ESC '$' '+' <F> designate DIMENSION2_CHARS94<F> to G3
|
|
|
|
|
ESC '$' ',' <F> designate DIMENSION2_CHARS96<F> to G0 (*)
|
|
|
|
|
ESC '$' '-' <F> designate DIMENSION2_CHARS96<F> to G1
|
|
|
|
|
ESC '$' '.' <F> designate DIMENSION2_CHARS96<F> to G2
|
|
|
|
|
ESC '$' '/' <F> designate DIMENSION2_CHARS96<F> to G3
|
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
In this list, "DIMENSION1_CHARS94<F>" means a graphic character set
|
1999-03-01 11:52:54 +00:00
|
|
|
|
of dimension 1, chars 94, and final character <F>, etc...
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
Note (*): Although these designations are not allowed in ISO2022,
|
|
|
|
|
Emacs accepts them on decoding, and produces them on encoding
|
1999-03-01 11:52:54 +00:00
|
|
|
|
CHARS96 character sets in a coding system which is characterized as
|
1997-02-20 07:02:49 +00:00
|
|
|
|
7-bit environment, non-locking-shift, and non-single-shift.
|
|
|
|
|
|
|
|
|
|
Note (**): If <F> is '@', 'A', or 'B', the intermediate character
|
2002-03-01 01:17:24 +00:00
|
|
|
|
'(' must be omitted. We refer to this as "short-form" hereafter.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2001-01-04 17:35:26 +00:00
|
|
|
|
Now you may notice that there are a lot of ways of encoding the
|
1999-03-01 11:52:54 +00:00
|
|
|
|
same multilingual text in ISO2022. Actually, there exist many
|
|
|
|
|
coding systems such as Compound Text (used in X11's inter client
|
2001-02-14 23:50:05 +00:00
|
|
|
|
communication, ISO-2022-JP (used in Japanese Internet), ISO-2022-KR
|
|
|
|
|
(used in Korean Internet), EUC (Extended UNIX Code, used in Asian
|
1997-02-20 07:02:49 +00:00
|
|
|
|
localized platforms), and all of these are variants of ISO2022.
|
|
|
|
|
|
|
|
|
|
In addition to the above, Emacs handles two more kinds of escape
|
|
|
|
|
sequences: ISO6429's direction specification and Emacs' private
|
|
|
|
|
sequence for specifying character composition.
|
|
|
|
|
|
1999-03-01 11:52:54 +00:00
|
|
|
|
ISO6429's direction specification takes the following form:
|
1997-02-20 07:02:49 +00:00
|
|
|
|
o CSI ']' -- end of the current direction
|
|
|
|
|
o CSI '0' ']' -- end of the current direction
|
|
|
|
|
o CSI '1' ']' -- start of left-to-right text
|
|
|
|
|
o CSI '2' ']' -- start of right-to-left text
|
|
|
|
|
The control character CSI (0x9B: control sequence introducer) is
|
1999-03-01 11:52:54 +00:00
|
|
|
|
abbreviated to the escape sequence ESC '[' in a 7-bit environment.
|
|
|
|
|
|
|
|
|
|
Character composition specification takes the following form:
|
1999-12-15 00:06:45 +00:00
|
|
|
|
o ESC '0' -- start relative composition
|
|
|
|
|
o ESC '1' -- end composition
|
|
|
|
|
o ESC '2' -- start rule-base composition (*)
|
|
|
|
|
o ESC '3' -- start relative composition with alternate chars (**)
|
|
|
|
|
o ESC '4' -- start rule-base composition with alternate chars (**)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
Since these are not standard escape sequences of any ISO standard,
|
2001-01-04 17:35:26 +00:00
|
|
|
|
the use of them with these meanings is restricted to Emacs only.
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-06-16 19:57:54 +00:00
|
|
|
|
(*) This form is used only in Emacs 20.7 and older versions,
|
|
|
|
|
but newer versions can safely decode it.
|
2001-01-04 17:35:26 +00:00
|
|
|
|
(**) This form is used only in Emacs 21.1 and newer versions,
|
2002-06-16 19:57:54 +00:00
|
|
|
|
and older versions can't decode it.
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2001-01-04 17:35:26 +00:00
|
|
|
|
Here's a list of example usages of these composition escape
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
sequences (categorized by `enum composition_method').
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
COMPOSITION_RELATIVE:
|
1999-12-15 00:06:45 +00:00
|
|
|
|
ESC 0 CHAR [ CHAR ] ESC 1
|
2001-02-14 23:50:05 +00:00
|
|
|
|
COMPOSITION_WITH_RULE:
|
1999-12-15 00:06:45 +00:00
|
|
|
|
ESC 2 CHAR [ RULE CHAR ] ESC 1
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
COMPOSITION_WITH_ALTCHARS:
|
1999-12-15 00:06:45 +00:00
|
|
|
|
ESC 3 ALTCHAR [ ALTCHAR ] ESC 0 CHAR [ CHAR ] ESC 1
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
COMPOSITION_WITH_RULE_ALTCHARS:
|
1999-12-15 00:06:45 +00:00
|
|
|
|
ESC 4 ALTCHAR [ RULE ALTCHAR ] ESC 0 CHAR [ CHAR ] ESC 1 */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2011-04-10 23:58:57 -07:00
|
|
|
|
static enum iso_code_class_type iso_code_class[256];
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define SAFE_CHARSET_P(coding, id) \
|
|
|
|
|
((id) <= (coding)->max_charset_id \
|
2009-02-22 15:48:02 +00:00
|
|
|
|
&& (coding)->safe_charsets[id] != 255)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
setup_iso_safe_charsets (Lisp_Object attrs)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
Lisp_Object charset_list, safe_charsets;
|
|
|
|
|
Lisp_Object request;
|
|
|
|
|
Lisp_Object reg_usage;
|
|
|
|
|
Lisp_Object tail;
|
|
|
|
|
int reg94, reg96;
|
|
|
|
|
int flags = XINT (AREF (attrs, coding_attr_iso_flags));
|
|
|
|
|
int max_charset_id;
|
|
|
|
|
|
|
|
|
|
charset_list = CODING_ATTR_CHARSET_LIST (attrs);
|
|
|
|
|
if ((flags & CODING_ISO_FLAG_FULL_SUPPORT)
|
|
|
|
|
&& ! EQ (charset_list, Viso_2022_charset_list))
|
|
|
|
|
{
|
|
|
|
|
CODING_ATTR_CHARSET_LIST (attrs)
|
|
|
|
|
= charset_list = Viso_2022_charset_list;
|
|
|
|
|
ASET (attrs, coding_attr_safe_charsets, Qnil);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (STRINGP (AREF (attrs, coding_attr_safe_charsets)))
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
max_charset_id = 0;
|
|
|
|
|
for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
|
|
|
|
|
{
|
|
|
|
|
int id = XINT (XCAR (tail));
|
|
|
|
|
if (max_charset_id < id)
|
|
|
|
|
max_charset_id = id;
|
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2009-02-22 15:48:02 +00:00
|
|
|
|
safe_charsets = make_uninit_string (max_charset_id + 1);
|
|
|
|
|
memset (SDATA (safe_charsets), 255, max_charset_id + 1);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
request = AREF (attrs, coding_attr_iso_request);
|
|
|
|
|
reg_usage = AREF (attrs, coding_attr_iso_usage);
|
|
|
|
|
reg94 = XINT (XCAR (reg_usage));
|
|
|
|
|
reg96 = XINT (XCDR (reg_usage));
|
|
|
|
|
|
|
|
|
|
for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
|
|
|
|
|
{
|
|
|
|
|
Lisp_Object id;
|
|
|
|
|
Lisp_Object reg;
|
|
|
|
|
struct charset *charset;
|
|
|
|
|
|
|
|
|
|
id = XCAR (tail);
|
|
|
|
|
charset = CHARSET_FROM_ID (XINT (id));
|
2002-05-30 11:02:01 +00:00
|
|
|
|
reg = Fcdr (Fassq (id, request));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! NILP (reg))
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SSET (safe_charsets, XINT (id), XINT (reg));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (charset->iso_chars_96)
|
|
|
|
|
{
|
|
|
|
|
if (reg96 < 4)
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SSET (safe_charsets, XINT (id), reg96);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (reg94 < 4)
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SSET (safe_charsets, XINT (id), reg94);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ASET (attrs, coding_attr_safe_charsets, safe_charsets);
|
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-03-07 02:18:35 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
2010-10-12 21:52:05 +09:00
|
|
|
|
Check if a text is encoded in one of ISO-2022 based coding systems.
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
If it is, return 1, else return 0. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2000-12-13 23:24:37 +00:00
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_coding_iso_2022 (struct coding_system *coding,
|
|
|
|
|
struct coding_detection_info *detect_info)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src = coding->source, *src_base = src;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int single_shifting = 0;
|
2011-03-15 19:38:57 +01:00
|
|
|
|
int id;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c, c1;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int i;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int rejected = 0;
|
|
|
|
|
int found = 0;
|
2008-11-21 02:24:40 +00:00
|
|
|
|
int composition_count = -1;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
|
|
|
|
|
detect_info->checked |= CATEGORY_MASK_ISO;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
for (i = coding_category_iso_7; i <= coding_category_iso_8_else; i++)
|
|
|
|
|
{
|
|
|
|
|
struct coding_system *this = &(coding_categories[i]);
|
|
|
|
|
Lisp_Object attrs, val;
|
|
|
|
|
|
2008-05-14 01:46:15 +00:00
|
|
|
|
if (this->id < 0)
|
|
|
|
|
continue;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
attrs = CODING_ID_ATTRS (this->id);
|
|
|
|
|
if (CODING_ISO_FLAGS (this) & CODING_ISO_FLAG_FULL_SUPPORT
|
2009-02-22 15:48:02 +00:00
|
|
|
|
&& ! EQ (CODING_ATTR_CHARSET_LIST (attrs), Viso_2022_charset_list))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
setup_iso_safe_charsets (attrs);
|
|
|
|
|
val = CODING_ATTR_SAFE_CHARSETS (attrs);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
this->max_charset_id = SCHARS (val) - 1;
|
2009-02-22 15:48:02 +00:00
|
|
|
|
this->safe_charsets = SDATA (val);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* A coding system of this category is always ASCII compatible. */
|
|
|
|
|
src += coding->head_ascii;
|
1997-08-16 01:54:37 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
while (rejected != CATEGORY_MASK_ISO)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
switch (c)
|
|
|
|
|
{
|
|
|
|
|
case ISO_CODE_ESC:
|
2000-07-14 01:56:14 +00:00
|
|
|
|
if (inhibit_iso_escape_detection)
|
|
|
|
|
break;
|
1998-08-24 06:42:56 +00:00
|
|
|
|
single_shifting = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
2011-03-15 19:38:57 +01:00
|
|
|
|
if (c == 'N' || c == 'O')
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
1998-08-27 07:47:15 +00:00
|
|
|
|
/* ESC <Fe> for SS2 or SS3. */
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
single_shifting = 1;
|
|
|
|
|
rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_8BIT;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2008-11-21 02:24:40 +00:00
|
|
|
|
else if (c == '1')
|
|
|
|
|
{
|
|
|
|
|
/* End of composition. */
|
|
|
|
|
if (composition_count < 0
|
|
|
|
|
|| composition_count > MAX_COMPOSITION_COMPONENTS)
|
|
|
|
|
/* Invalid */
|
|
|
|
|
break;
|
|
|
|
|
composition_count = -1;
|
|
|
|
|
found |= CATEGORY_MASK_ISO;
|
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
else if (c >= '0' && c <= '4')
|
|
|
|
|
{
|
|
|
|
|
/* ESC <Fp> for start/end composition. */
|
2008-11-21 02:24:40 +00:00
|
|
|
|
composition_count = 0;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
1997-08-04 06:59:57 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2011-03-15 19:38:57 +01:00
|
|
|
|
if (c >= '(' && c <= '/')
|
|
|
|
|
{
|
|
|
|
|
/* Designation sequence for a charset of dimension 1. */
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (c1 < ' ' || c1 >= 0x80
|
|
|
|
|
|| (id = iso_charset_table[0][c >= ','][c1]) < 0)
|
|
|
|
|
/* Invalid designation sequence. Just ignore. */
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else if (c == '$')
|
|
|
|
|
{
|
|
|
|
|
/* Designation sequence for a charset of dimension 2. */
|
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
if (c >= '@' && c <= 'B')
|
|
|
|
|
/* Designation for JISX0208.1978, GB2312, or JISX0208. */
|
|
|
|
|
id = iso_charset_table[1][0][c];
|
|
|
|
|
else if (c >= '(' && c <= '/')
|
|
|
|
|
{
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (c1 < ' ' || c1 >= 0x80
|
|
|
|
|
|| (id = iso_charset_table[1][c >= ','][c1]) < 0)
|
|
|
|
|
/* Invalid designation sequence. Just ignore. */
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
/* Invalid designation sequence. Just ignore it. */
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
/* Invalid escape sequence. Just ignore it. */
|
|
|
|
|
break;
|
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2011-03-15 19:38:57 +01:00
|
|
|
|
/* We found a valid designation sequence for CHARSET. */
|
|
|
|
|
rejected |= CATEGORY_MASK_ISO_8BIT;
|
|
|
|
|
if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7],
|
|
|
|
|
id))
|
|
|
|
|
found |= CATEGORY_MASK_ISO_7;
|
|
|
|
|
else
|
|
|
|
|
rejected |= CATEGORY_MASK_ISO_7;
|
|
|
|
|
if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7_tight],
|
|
|
|
|
id))
|
|
|
|
|
found |= CATEGORY_MASK_ISO_7_TIGHT;
|
|
|
|
|
else
|
|
|
|
|
rejected |= CATEGORY_MASK_ISO_7_TIGHT;
|
|
|
|
|
if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7_else],
|
|
|
|
|
id))
|
|
|
|
|
found |= CATEGORY_MASK_ISO_7_ELSE;
|
|
|
|
|
else
|
|
|
|
|
rejected |= CATEGORY_MASK_ISO_7_ELSE;
|
|
|
|
|
if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_8_else],
|
|
|
|
|
id))
|
|
|
|
|
found |= CATEGORY_MASK_ISO_8_ELSE;
|
|
|
|
|
else
|
|
|
|
|
rejected |= CATEGORY_MASK_ISO_8_ELSE;
|
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case ISO_CODE_SO:
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
case ISO_CODE_SI:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/* Locking shift out/in. */
|
2000-07-14 01:56:14 +00:00
|
|
|
|
if (inhibit_iso_escape_detection)
|
|
|
|
|
break;
|
1998-08-24 06:42:56 +00:00
|
|
|
|
single_shifting = 0;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_8BIT;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
break;
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
case ISO_CODE_CSI:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/* Control sequence introducer. */
|
1998-08-24 06:42:56 +00:00
|
|
|
|
single_shifting = 0;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_7_ELSE;
|
|
|
|
|
found |= CATEGORY_MASK_ISO_8_ELSE;
|
|
|
|
|
goto check_extra_latin;
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
case ISO_CODE_SS2:
|
|
|
|
|
case ISO_CODE_SS3:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/* Single shift. */
|
|
|
|
|
if (inhibit_iso_escape_detection)
|
|
|
|
|
break;
|
2004-01-29 01:25:50 +00:00
|
|
|
|
single_shifting = 0;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
rejected |= CATEGORY_MASK_ISO_7BIT;
|
|
|
|
|
if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1])
|
|
|
|
|
& CODING_ISO_FLAG_SINGLE_SHIFT)
|
2011-03-15 19:38:57 +01:00
|
|
|
|
{
|
|
|
|
|
found |= CATEGORY_MASK_ISO_8_1;
|
|
|
|
|
single_shifting = 1;
|
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_2])
|
|
|
|
|
& CODING_ISO_FLAG_SINGLE_SHIFT)
|
2011-03-15 19:38:57 +01:00
|
|
|
|
{
|
|
|
|
|
found |= CATEGORY_MASK_ISO_8_2;
|
|
|
|
|
single_shifting = 1;
|
|
|
|
|
}
|
2004-01-29 01:25:50 +00:00
|
|
|
|
if (single_shifting)
|
|
|
|
|
break;
|
2011-03-15 19:38:57 +01:00
|
|
|
|
check_extra_latin:
|
|
|
|
|
if (! VECTORP (Vlatin_extra_code_table)
|
|
|
|
|
|| NILP (XVECTOR (Vlatin_extra_code_table)->contents[c]))
|
|
|
|
|
{
|
|
|
|
|
rejected = CATEGORY_MASK_ISO;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1])
|
|
|
|
|
& CODING_ISO_FLAG_LATIN_EXTRA)
|
|
|
|
|
found |= CATEGORY_MASK_ISO_8_1;
|
|
|
|
|
else
|
|
|
|
|
rejected |= CATEGORY_MASK_ISO_8_1;
|
|
|
|
|
rejected |= CATEGORY_MASK_ISO_8_2;
|
|
|
|
|
break;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
default:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c < 0)
|
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
if (c < 0x80)
|
1998-08-24 06:42:56 +00:00
|
|
|
|
{
|
2008-11-21 02:24:40 +00:00
|
|
|
|
if (composition_count >= 0)
|
|
|
|
|
composition_count++;
|
1998-08-24 06:42:56 +00:00
|
|
|
|
single_shifting = 0;
|
|
|
|
|
break;
|
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (c >= 0xA0)
|
1997-08-10 04:13:19 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_7_ELSE;
|
|
|
|
|
found |= CATEGORY_MASK_ISO_8_1;
|
1998-08-24 06:42:56 +00:00
|
|
|
|
/* Check the length of succeeding codes of the range
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
0xA0..0FF. If the byte length is even, we include
|
|
|
|
|
CATEGORY_MASK_ISO_8_2 in `found'. We can check this
|
|
|
|
|
only when we are not single shifting. */
|
|
|
|
|
if (! single_shifting
|
|
|
|
|
&& ! (rejected & CATEGORY_MASK_ISO_8_2))
|
1998-08-24 06:42:56 +00:00
|
|
|
|
{
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int len = 1;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
while (src < src_end)
|
|
|
|
|
{
|
2010-01-14 20:31:16 +09:00
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
if (c < 0xA0)
|
2010-01-14 20:31:16 +09:00
|
|
|
|
{
|
|
|
|
|
src = src_base;
|
|
|
|
|
break;
|
|
|
|
|
}
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
len++;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
|
|
|
|
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (len & 1 && src < src_end)
|
2008-11-21 02:24:40 +00:00
|
|
|
|
{
|
|
|
|
|
rejected |= CATEGORY_MASK_ISO_8_2;
|
|
|
|
|
if (composition_count >= 0)
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
composition_count += len;
|
2008-11-21 02:24:40 +00:00
|
|
|
|
}
|
1998-08-24 06:42:56 +00:00
|
|
|
|
else
|
2008-11-21 02:24:40 +00:00
|
|
|
|
{
|
|
|
|
|
found |= CATEGORY_MASK_ISO_8_2;
|
|
|
|
|
if (composition_count >= 0)
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
composition_count += len / 2;
|
2008-11-21 02:24:40 +00:00
|
|
|
|
}
|
1998-08-24 06:42:56 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
break;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_ISO;
|
|
|
|
|
return 0;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->rejected |= rejected;
|
|
|
|
|
detect_info->found |= (found & ~rejected);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return 1;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2004-03-30 13:09:38 +00:00
|
|
|
|
/* Set designation state into CODING. Set CHARS_96 to -1 if the
|
|
|
|
|
escape sequence should be kept. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define DECODE_DESIGNATION(reg, dim, chars_96, final) \
|
|
|
|
|
do { \
|
|
|
|
|
int id, prev; \
|
|
|
|
|
\
|
|
|
|
|
if (final < '0' || final >= 128 \
|
|
|
|
|
|| ((id = ISO_CHARSET_TABLE (dim, chars_96, final)) < 0) \
|
|
|
|
|
|| !SAFE_CHARSET_P (coding, id)) \
|
|
|
|
|
{ \
|
|
|
|
|
CODING_ISO_DESIGNATION (coding, reg) = -2; \
|
2004-03-30 13:09:38 +00:00
|
|
|
|
chars_96 = -1; \
|
|
|
|
|
break; \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
} \
|
|
|
|
|
prev = CODING_ISO_DESIGNATION (coding, reg); \
|
2002-05-30 11:02:01 +00:00
|
|
|
|
if (id == charset_jisx0201_roman) \
|
|
|
|
|
{ \
|
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_USE_ROMAN) \
|
|
|
|
|
id = charset_ascii; \
|
|
|
|
|
} \
|
|
|
|
|
else if (id == charset_jisx0208_1978) \
|
|
|
|
|
{ \
|
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_USE_OLDJIS) \
|
|
|
|
|
id = charset_jisx0208; \
|
|
|
|
|
} \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING_ISO_DESIGNATION (coding, reg) = id; \
|
|
|
|
|
/* If there was an invalid designation to REG previously, and this \
|
|
|
|
|
designation is ASCII to REG, we should keep this designation \
|
|
|
|
|
sequence. */ \
|
|
|
|
|
if (prev == -2 && id == charset_ascii) \
|
2004-03-30 13:09:38 +00:00
|
|
|
|
chars_96 = -1; \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Handle these composition sequence (ALT: alternate char):
|
|
|
|
|
|
|
|
|
|
(1) relative composition: ESC 0 CHAR ... ESC 1
|
|
|
|
|
(2) rulebase composition: ESC 2 CHAR RULE CHAR RULE ... CHAR ESC 1
|
|
|
|
|
(3) altchar composition: ESC 3 ALT ... ALT ESC 0 CHAR ... ESC 1
|
|
|
|
|
(4) alt&rule composition: ESC 4 ALT RULE ... ALT ESC 0 CHAR ... ESC 1
|
|
|
|
|
|
|
|
|
|
When the start sequence (ESC 0/2/3/4) is found, this annotation
|
|
|
|
|
header is produced.
|
|
|
|
|
|
|
|
|
|
[ -LENGTH(==-5) CODING_ANNOTATE_COMPOSITION_MASK NCHARS(==0) 0 METHOD ]
|
|
|
|
|
|
|
|
|
|
Then, upon reading CHAR or RULE (one or two bytes), these codes are
|
|
|
|
|
produced until the end sequence (ESC 1) is found:
|
|
|
|
|
|
|
|
|
|
(1) CHAR ... CHAR
|
|
|
|
|
(2) CHAR -2 DECODED-RULE CHAR -2 DECODED-RULE ... CHAR
|
|
|
|
|
(3) ALT ... ALT -1 -1 CHAR ... CHAR
|
|
|
|
|
(4) ALT -2 DECODED-RULE ALT -2 DECODED-RULE ... ALT -1 -1 CHAR ... CHAR
|
|
|
|
|
|
|
|
|
|
When the end sequence (ESC 1) is found, LENGTH and NCHARS in the
|
|
|
|
|
annotation header is updated as below:
|
|
|
|
|
|
|
|
|
|
(1) LENGTH: unchanged, NCHARS: number of CHARs
|
|
|
|
|
(2) LENGTH: unchanged, NCHARS: number of CHARs
|
|
|
|
|
(3) LENGTH: += number of ALTs + 2, NCHARS: number of CHARs
|
|
|
|
|
(4) LENGTH: += number of ALTs * 3, NCHARS: number of CHARs
|
|
|
|
|
|
|
|
|
|
If an error is found while composing, the annotation header is
|
|
|
|
|
changed to:
|
|
|
|
|
|
|
|
|
|
[ ESC '0'/'2'/'3'/'4' -2 0 ]
|
|
|
|
|
|
|
|
|
|
and the sequence [ -2 DECODED-RULE ] is changed to the original
|
|
|
|
|
byte sequence as below:
|
|
|
|
|
o the original byte sequence is B: [ B -1 ]
|
|
|
|
|
o the original byte sequence is B1 B2: [ B1 B2 ]
|
|
|
|
|
and the sequence [ -1 -1 ] is changed to the original byte
|
|
|
|
|
sequence:
|
|
|
|
|
[ ESC '0' ]
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* Decode a composition rule C1 and maybe one more byte from the
|
2011-04-01 10:20:24 -07:00
|
|
|
|
source, and set RULE to the encoded composition rule. If the rule
|
2011-04-04 23:41:53 -07:00
|
|
|
|
is invalid, goto invalid_code. */
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
2011-04-01 10:20:24 -07:00
|
|
|
|
#define DECODE_COMPOSITION_RULE(rule) \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
do { \
|
|
|
|
|
rule = c1 - 32; \
|
|
|
|
|
if (rule < 0) \
|
2011-04-04 23:41:53 -07:00
|
|
|
|
goto invalid_code; \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (rule < 81) /* old format (before ver.21) */ \
|
|
|
|
|
{ \
|
|
|
|
|
int gref = (rule) / 9; \
|
|
|
|
|
int nref = (rule) % 9; \
|
|
|
|
|
if (gref == 4) gref = 10; \
|
|
|
|
|
if (nref == 4) nref = 10; \
|
|
|
|
|
rule = COMPOSITION_ENCODE_RULE (gref, nref); \
|
|
|
|
|
} \
|
|
|
|
|
else /* new format (after ver.21) */ \
|
|
|
|
|
{ \
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int b; \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
\
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
ONE_MORE_BYTE (b); \
|
2011-04-04 23:41:53 -07:00
|
|
|
|
if (! COMPOSITION_ENCODE_RULE_VALID (rule - 81, b - 32)) \
|
|
|
|
|
goto invalid_code; \
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
rule = COMPOSITION_ENCODE_RULE (rule - 81, b - 32); \
|
2011-04-04 23:41:53 -07:00
|
|
|
|
rule += 0x100; /* Distinguish it from the old format. */ \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
} \
|
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
#define ENCODE_COMPOSITION_RULE(rule) \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
do { \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
int gref = (rule % 0x100) / 12, nref = (rule % 0x100) % 12; \
|
|
|
|
|
\
|
|
|
|
|
if (rule < 0x100) /* old format */ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{ \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (gref == 10) gref = 4; \
|
|
|
|
|
if (nref == 10) nref = 4; \
|
|
|
|
|
charbuf[idx] = 32 + gref * 9 + nref; \
|
|
|
|
|
charbuf[idx + 1] = -1; \
|
|
|
|
|
new_chars++; \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
} \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
else /* new format */ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{ \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
charbuf[idx] = 32 + 81 + gref; \
|
|
|
|
|
charbuf[idx + 1] = 32 + nref; \
|
|
|
|
|
new_chars += 2; \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
} \
|
|
|
|
|
} while (0)
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Finish the current composition as invalid. */
|
|
|
|
|
|
2010-07-02 14:19:53 +02:00
|
|
|
|
static int finish_composition (int *, struct composition_status *);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
finish_composition (int *charbuf, struct composition_status *cmp_status)
|
2009-03-06 07:51:52 +00:00
|
|
|
|
{
|
|
|
|
|
int idx = - cmp_status->length;
|
|
|
|
|
int new_chars;
|
|
|
|
|
|
|
|
|
|
/* Recover the original ESC sequence */
|
|
|
|
|
charbuf[idx++] = ISO_CODE_ESC;
|
|
|
|
|
charbuf[idx++] = (cmp_status->method == COMPOSITION_RELATIVE ? '0'
|
|
|
|
|
: cmp_status->method == COMPOSITION_WITH_RULE ? '2'
|
|
|
|
|
: cmp_status->method == COMPOSITION_WITH_ALTCHARS ? '3'
|
|
|
|
|
/* cmp_status->method == COMPOSITION_WITH_RULE_ALTCHARS */
|
|
|
|
|
: '4');
|
|
|
|
|
charbuf[idx++] = -2;
|
|
|
|
|
charbuf[idx++] = 0;
|
|
|
|
|
charbuf[idx++] = -1;
|
|
|
|
|
new_chars = cmp_status->nchars;
|
|
|
|
|
if (cmp_status->method >= COMPOSITION_WITH_RULE)
|
|
|
|
|
for (; idx < 0; idx++)
|
|
|
|
|
{
|
|
|
|
|
int elt = charbuf[idx];
|
|
|
|
|
|
|
|
|
|
if (elt == -2)
|
|
|
|
|
{
|
|
|
|
|
ENCODE_COMPOSITION_RULE (charbuf[idx + 1]);
|
|
|
|
|
idx++;
|
|
|
|
|
}
|
|
|
|
|
else if (elt == -1)
|
|
|
|
|
{
|
|
|
|
|
charbuf[idx++] = ISO_CODE_ESC;
|
|
|
|
|
charbuf[idx] = '0';
|
|
|
|
|
new_chars += 2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
cmp_status->state = COMPOSING_NO;
|
|
|
|
|
return new_chars;
|
|
|
|
|
}
|
|
|
|
|
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* If characters are under composition, finish the composition. */
|
2009-03-06 07:51:52 +00:00
|
|
|
|
#define MAYBE_FINISH_COMPOSITION() \
|
|
|
|
|
do { \
|
|
|
|
|
if (cmp_status->state != COMPOSING_NO) \
|
|
|
|
|
char_offset += finish_composition (charbuf, cmp_status); \
|
|
|
|
|
} while (0)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
/* Handle composition start sequence ESC 0, ESC 2, ESC 3, or ESC 4.
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
2000-12-28 01:05:02 +00:00
|
|
|
|
ESC 0 : relative composition : ESC 0 CHAR ... ESC 1
|
|
|
|
|
ESC 2 : rulebase composition : ESC 2 CHAR RULE CHAR RULE ... CHAR ESC 1
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ESC 3 : altchar composition : ESC 3 CHAR ... ESC 0 CHAR ... ESC 1
|
|
|
|
|
ESC 4 : alt&rule composition : ESC 4 CHAR RULE ... CHAR ESC 0 CHAR ... ESC 1
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
Produce this annotation sequence now:
|
|
|
|
|
|
|
|
|
|
[ -LENGTH(==-4) CODING_ANNOTATE_COMPOSITION_MASK NCHARS(==0) METHOD ]
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#define DECODE_COMPOSITION_START(c1) \
|
|
|
|
|
do { \
|
|
|
|
|
if (c1 == '0' \
|
|
|
|
|
&& ((cmp_status->state == COMPOSING_COMPONENT_CHAR \
|
|
|
|
|
&& cmp_status->method == COMPOSITION_WITH_ALTCHARS) \
|
|
|
|
|
|| (cmp_status->state == COMPOSING_COMPONENT_RULE \
|
|
|
|
|
&& cmp_status->method == COMPOSITION_WITH_RULE_ALTCHARS))) \
|
|
|
|
|
{ \
|
|
|
|
|
*charbuf++ = -1; \
|
|
|
|
|
*charbuf++= -1; \
|
|
|
|
|
cmp_status->state = COMPOSING_CHAR; \
|
|
|
|
|
cmp_status->length += 2; \
|
|
|
|
|
} \
|
|
|
|
|
else \
|
|
|
|
|
{ \
|
|
|
|
|
MAYBE_FINISH_COMPOSITION (); \
|
|
|
|
|
cmp_status->method = (c1 == '0' ? COMPOSITION_RELATIVE \
|
|
|
|
|
: c1 == '2' ? COMPOSITION_WITH_RULE \
|
|
|
|
|
: c1 == '3' ? COMPOSITION_WITH_ALTCHARS \
|
|
|
|
|
: COMPOSITION_WITH_RULE_ALTCHARS); \
|
|
|
|
|
cmp_status->state \
|
|
|
|
|
= (c1 <= '2' ? COMPOSING_CHAR : COMPOSING_COMPONENT_CHAR); \
|
|
|
|
|
ADD_COMPOSITION_DATA (charbuf, 0, 0, cmp_status->method); \
|
|
|
|
|
cmp_status->length = MAX_ANNOTATION_LENGTH; \
|
|
|
|
|
cmp_status->nchars = cmp_status->ncomps = 0; \
|
|
|
|
|
coding->annotated = 1; \
|
|
|
|
|
} \
|
1999-12-15 00:06:45 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Handle composition end sequence ESC 1. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
#define DECODE_COMPOSITION_END() \
|
1999-12-15 00:06:45 +00:00
|
|
|
|
do { \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->nchars == 0 \
|
|
|
|
|
|| ((cmp_status->state == COMPOSING_CHAR) \
|
|
|
|
|
== (cmp_status->method == COMPOSITION_WITH_RULE))) \
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{ \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
MAYBE_FINISH_COMPOSITION (); \
|
|
|
|
|
goto invalid_code; \
|
1999-12-15 00:06:45 +00:00
|
|
|
|
} \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->method == COMPOSITION_WITH_ALTCHARS) \
|
|
|
|
|
charbuf[- cmp_status->length] -= cmp_status->ncomps + 2; \
|
|
|
|
|
else if (cmp_status->method == COMPOSITION_WITH_RULE_ALTCHARS) \
|
|
|
|
|
charbuf[- cmp_status->length] -= cmp_status->ncomps * 3; \
|
|
|
|
|
charbuf[- cmp_status->length + 2] = cmp_status->nchars; \
|
|
|
|
|
char_offset += cmp_status->nchars; \
|
|
|
|
|
cmp_status->state = COMPOSING_NO; \
|
1999-12-15 00:06:45 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Store a composition rule RULE in charbuf, and update cmp_status. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
#define STORE_COMPOSITION_RULE(rule) \
|
|
|
|
|
do { \
|
|
|
|
|
*charbuf++ = -2; \
|
|
|
|
|
*charbuf++ = rule; \
|
|
|
|
|
cmp_status->length += 2; \
|
|
|
|
|
cmp_status->state--; \
|
|
|
|
|
} while (0)
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Store a composed char or a component char C in charbuf, and update
|
|
|
|
|
cmp_status. */
|
|
|
|
|
|
|
|
|
|
#define STORE_COMPOSITION_CHAR(c) \
|
1999-12-15 00:06:45 +00:00
|
|
|
|
do { \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
*charbuf++ = (c); \
|
|
|
|
|
cmp_status->length++; \
|
|
|
|
|
if (cmp_status->state == COMPOSING_CHAR) \
|
|
|
|
|
cmp_status->nchars++; \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else \
|
2009-03-06 07:51:52 +00:00
|
|
|
|
cmp_status->ncomps++; \
|
|
|
|
|
if (cmp_status->method == COMPOSITION_WITH_RULE \
|
|
|
|
|
|| (cmp_status->method == COMPOSITION_WITH_RULE_ALTCHARS \
|
|
|
|
|
&& cmp_status->state == COMPOSING_COMPONENT_CHAR)) \
|
|
|
|
|
cmp_status->state++; \
|
1999-12-15 00:06:45 +00:00
|
|
|
|
} while (0)
|
1998-09-28 11:52:53 +00:00
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* See the above "GENERAL NOTES on `decode_coding_XXX ()' functions". */
|
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_coding_iso_2022 (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src = coding->source + coding->consumed;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
|
|
|
|
const unsigned char *src_base;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf = coding->charbuf + coding->charbuf_used;
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* We may produce two annotations (charset and composition) in one
|
|
|
|
|
loop and one more charset annotation at the end. */
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int *charbuf_end
|
2009-04-21 06:36:21 +00:00
|
|
|
|
= coding->charbuf + coding->charbuf_size - (MAX_ANNOTATION_LENGTH * 3);
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0, consumed_chars_base;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* Charsets invoked to graphic plane 0 and 1 respectively. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
|
|
|
|
|
int charset_id_1 = CODING_ISO_INVOKED_CHARSET (coding, 1);
|
2004-03-30 13:09:38 +00:00
|
|
|
|
int charset_id_2, charset_id_3;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
struct charset *charset;
|
|
|
|
|
int c;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
struct composition_status *cmp_status = CODING_ISO_CMP_STATUS (coding);
|
2011-04-01 10:20:24 -07:00
|
|
|
|
Lisp_Object attrs = CODING_ID_ATTRS (coding->id);
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT char_offset = coding->produced_char;
|
|
|
|
|
EMACS_INT last_offset = char_offset;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int last_id = charset_ascii;
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int eol_dos =
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
!inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos);
|
2008-03-02 08:05:14 +00:00
|
|
|
|
int byte_after_cr = -1;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
int i;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
setup_iso_safe_charsets (attrs);
|
2009-02-22 15:48:02 +00:00
|
|
|
|
coding->safe_charsets = SDATA (CODING_ATTR_SAFE_CHARSETS (attrs));
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->state != COMPOSING_NO)
|
|
|
|
|
{
|
2011-04-29 22:47:29 +03:00
|
|
|
|
if (charbuf_end - charbuf < cmp_status->length)
|
|
|
|
|
abort ();
|
2009-03-06 07:51:52 +00:00
|
|
|
|
for (i = 0; i < cmp_status->length; i++)
|
|
|
|
|
*charbuf++ = cmp_status->carryover[i];
|
|
|
|
|
coding->annotated = 1;
|
|
|
|
|
}
|
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
while (1)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2009-06-18 10:29:51 +00:00
|
|
|
|
int c1, c2, c3;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
consumed_chars_base = consumed_chars;
|
|
|
|
|
|
|
|
|
|
if (charbuf >= charbuf_end)
|
2009-01-07 06:49:50 +00:00
|
|
|
|
{
|
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
src_base--;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2008-03-02 08:05:14 +00:00
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
c1 = byte_after_cr, byte_after_cr = -1;
|
|
|
|
|
else
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c1 < 0)
|
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (CODING_ISO_EXTSEGMENT_LEN (coding) > 0)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
*charbuf++ = ASCII_BYTE_P (c1) ? c1 : BYTE8_TO_CHAR (c1);
|
|
|
|
|
char_offset++;
|
|
|
|
|
CODING_ISO_EXTSEGMENT_LEN (coding)--;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CODING_ISO_EMBEDDED_UTF_8 (coding))
|
|
|
|
|
{
|
|
|
|
|
if (c1 == ISO_CODE_ESC)
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (src + 1 >= src_end)
|
|
|
|
|
goto no_more_source;
|
|
|
|
|
*charbuf++ = ISO_CODE_ESC;
|
|
|
|
|
char_offset++;
|
|
|
|
|
if (src[0] == '%' && src[1] == '@')
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
src += 2;
|
|
|
|
|
consumed_chars += 2;
|
|
|
|
|
char_offset += 2;
|
|
|
|
|
/* We are sure charbuf can contain two more chars. */
|
|
|
|
|
*charbuf++ = '%';
|
|
|
|
|
*charbuf++ = '@';
|
|
|
|
|
CODING_ISO_EMBEDDED_UTF_8 (coding) = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
*charbuf++ = ASCII_BYTE_P (c1) ? c1 : BYTE8_TO_CHAR (c1);
|
|
|
|
|
char_offset++;
|
|
|
|
|
}
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ((cmp_status->state == COMPOSING_RULE
|
|
|
|
|
|| cmp_status->state == COMPOSING_COMPONENT_RULE)
|
|
|
|
|
&& c1 != ISO_CODE_ESC)
|
|
|
|
|
{
|
2011-04-01 10:20:24 -07:00
|
|
|
|
int rule;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
2011-04-01 10:20:24 -07:00
|
|
|
|
DECODE_COMPOSITION_RULE (rule);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
STORE_COMPOSITION_RULE (rule);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* We produce at most one character. */
|
|
|
|
|
switch (iso_code_class [c1])
|
|
|
|
|
{
|
|
|
|
|
case ISO_0x20_or_0x7F:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (charset_id_0 < 0
|
|
|
|
|
|| ! CHARSET_ISO_CHARS_96 (CHARSET_FROM_ID (charset_id_0)))
|
2002-05-21 04:23:15 +00:00
|
|
|
|
/* This is SPACE or DEL. */
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_ascii);
|
|
|
|
|
else
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_id_0);
|
|
|
|
|
break;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
case ISO_graphic_plane_0:
|
2004-03-30 13:09:38 +00:00
|
|
|
|
if (charset_id_0 < 0)
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_ascii);
|
|
|
|
|
else
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_id_0);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case ISO_0xA0_or_0xFF:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (charset_id_1 < 0
|
|
|
|
|
|| ! CHARSET_ISO_CHARS_96 (CHARSET_FROM_ID (charset_id_1))
|
|
|
|
|
|| CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS)
|
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* This is a graphic character, we fall down ... */
|
|
|
|
|
|
|
|
|
|
case ISO_graphic_plane_1:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (charset_id_1 < 0)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_id_1);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
break;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
case ISO_control_0:
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (eol_dos && c1 == '\r')
|
2008-03-02 08:05:14 +00:00
|
|
|
|
ONE_MORE_BYTE (byte_after_cr);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
MAYBE_FINISH_COMPOSITION ();
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_ascii);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
break;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
case ISO_control_1:
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
case ISO_shift_out:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_LOCKING_SHIFT)
|
|
|
|
|
|| CODING_ISO_DESIGNATION (coding, 1) < 0)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
CODING_ISO_INVOCATION (coding, 0) = 1;
|
|
|
|
|
charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
case ISO_shift_in:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_LOCKING_SHIFT))
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
CODING_ISO_INVOCATION (coding, 0) = 0;
|
|
|
|
|
charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
case ISO_single_shift_2_7:
|
2009-12-14 01:20:29 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS))
|
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
case ISO_single_shift_2:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT))
|
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* SS2 is handled as an escape sequence of ESC 'N' */
|
|
|
|
|
c1 = 'N';
|
|
|
|
|
goto label_escape_sequence;
|
|
|
|
|
|
|
|
|
|
case ISO_single_shift_3:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT))
|
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* SS2 is handled as an escape sequence of ESC 'O' */
|
|
|
|
|
c1 = 'O';
|
|
|
|
|
goto label_escape_sequence;
|
|
|
|
|
|
|
|
|
|
case ISO_control_sequence_introducer:
|
|
|
|
|
/* CSI is handled as an escape sequence of ESC '[' ... */
|
|
|
|
|
c1 = '[';
|
|
|
|
|
goto label_escape_sequence;
|
|
|
|
|
|
|
|
|
|
case ISO_escape:
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
label_escape_sequence:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Escape sequences handled here are invocation,
|
1997-02-20 07:02:49 +00:00
|
|
|
|
designation, direction specification, and character
|
|
|
|
|
composition specification. */
|
|
|
|
|
switch (c1)
|
|
|
|
|
{
|
|
|
|
|
case '&': /* revision of following character set */
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (!(c1 >= '@' && c1 <= '~'))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (c1 != ISO_CODE_ESC)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
goto label_escape_sequence;
|
|
|
|
|
|
|
|
|
|
case '$': /* designation of 2-byte character set */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_DESIGNATION))
|
|
|
|
|
goto invalid_code;
|
2004-03-30 13:09:38 +00:00
|
|
|
|
{
|
|
|
|
|
int reg, chars96;
|
|
|
|
|
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (c1 >= '@' && c1 <= 'B')
|
|
|
|
|
{ /* designation of JISX0208.1978, GB2312.1980,
|
1998-09-28 11:52:53 +00:00
|
|
|
|
or JISX0208.1980 */
|
2004-03-30 13:09:38 +00:00
|
|
|
|
reg = 0, chars96 = 0;
|
|
|
|
|
}
|
|
|
|
|
else if (c1 >= 0x28 && c1 <= 0x2B)
|
|
|
|
|
{ /* designation of DIMENSION2_CHARS94 character set */
|
|
|
|
|
reg = c1 - 0x28, chars96 = 0;
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
}
|
|
|
|
|
else if (c1 >= 0x2C && c1 <= 0x2F)
|
|
|
|
|
{ /* designation of DIMENSION2_CHARS96 character set */
|
|
|
|
|
reg = c1 - 0x2C, chars96 = 1;
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
DECODE_DESIGNATION (reg, 2, chars96, c1);
|
|
|
|
|
/* We must update these variables now. */
|
|
|
|
|
if (reg == 0)
|
|
|
|
|
charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
|
|
|
|
|
else if (reg == 1)
|
|
|
|
|
charset_id_1 = CODING_ISO_INVOKED_CHARSET (coding, 1);
|
|
|
|
|
if (chars96 < 0)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
case 'n': /* invocation of locking-shift-2 */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_LOCKING_SHIFT)
|
|
|
|
|
|| CODING_ISO_DESIGNATION (coding, 2) < 0)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
CODING_ISO_INVOCATION (coding, 0) = 2;
|
|
|
|
|
charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
case 'o': /* invocation of locking-shift-3 */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_LOCKING_SHIFT)
|
|
|
|
|
|| CODING_ISO_DESIGNATION (coding, 3) < 0)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
CODING_ISO_INVOCATION (coding, 0) = 3;
|
|
|
|
|
charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
case 'N': /* invocation of single-shift-2 */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT)
|
|
|
|
|
|| CODING_ISO_DESIGNATION (coding, 2) < 0)
|
|
|
|
|
goto invalid_code;
|
2004-03-30 13:09:38 +00:00
|
|
|
|
charset_id_2 = CODING_ISO_DESIGNATION (coding, 2);
|
|
|
|
|
if (charset_id_2 < 0)
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_ascii);
|
|
|
|
|
else
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_id_2);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
ONE_MORE_BYTE (c1);
|
2000-08-04 02:05:39 +00:00
|
|
|
|
if (c1 < 0x20 || (c1 >= 0x80 && c1 < 0xA0))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'O': /* invocation of single-shift-3 */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT)
|
|
|
|
|
|| CODING_ISO_DESIGNATION (coding, 3) < 0)
|
|
|
|
|
goto invalid_code;
|
2004-03-30 13:09:38 +00:00
|
|
|
|
charset_id_3 = CODING_ISO_DESIGNATION (coding, 3);
|
|
|
|
|
if (charset_id_3 < 0)
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_ascii);
|
|
|
|
|
else
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_id_3);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
ONE_MORE_BYTE (c1);
|
2000-08-04 02:05:39 +00:00
|
|
|
|
if (c1 < 0x20 || (c1 >= 0x80 && c1 < 0xA0))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
break;
|
|
|
|
|
|
1999-12-15 00:06:45 +00:00
|
|
|
|
case '0': case '2': case '3': case '4': /* start composition */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (coding->common_flags & CODING_ANNOTATE_COMPOSITION_MASK))
|
|
|
|
|
goto invalid_code;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (last_id != charset_ascii)
|
|
|
|
|
{
|
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset- last_offset, last_id);
|
|
|
|
|
last_id = charset_ascii;
|
|
|
|
|
last_offset = char_offset;
|
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
DECODE_COMPOSITION_START (c1);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1999-12-15 00:06:45 +00:00
|
|
|
|
case '1': /* end composition */
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->state == COMPOSING_NO)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
DECODE_COMPOSITION_END ();
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
case '[': /* specification of direction */
|
2009-09-24 08:18:40 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_DIRECTION))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* For the moment, nested direction is not supported.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
So, `coding->mode & CODING_MODE_DIRECTION' zero means
|
2010-10-12 21:52:05 +09:00
|
|
|
|
left-to-right, and nonzero means right-to-left. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
switch (c1)
|
|
|
|
|
{
|
|
|
|
|
case ']': /* end of the current direction */
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
coding->mode &= ~CODING_MODE_DIRECTION;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
case '0': /* end of the current direction */
|
|
|
|
|
case '1': /* start of left-to-right direction */
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (c1 == ']')
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
coding->mode &= ~CODING_MODE_DIRECTION;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case '2': /* start of right-to-left direction */
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (c1 == ']')
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
coding->mode |= CODING_MODE_DIRECTION;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2003-05-28 23:27:28 +00:00
|
|
|
|
case '%':
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (c1 == '/')
|
|
|
|
|
{
|
|
|
|
|
/* CTEXT extended segment:
|
|
|
|
|
ESC % / [0-4] M L --ENCODING-NAME-- \002 --BYTES--
|
|
|
|
|
We keep these bytes as is for the moment.
|
|
|
|
|
They may be decoded by post-read-conversion. */
|
|
|
|
|
int dim, M, L;
|
2003-05-28 11:37:09 +00:00
|
|
|
|
int size;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
|
2003-05-28 23:27:28 +00:00
|
|
|
|
ONE_MORE_BYTE (dim);
|
2010-08-06 17:11:19 +09:00
|
|
|
|
if (dim < '0' || dim > '4')
|
2009-03-06 07:51:52 +00:00
|
|
|
|
goto invalid_code;
|
2003-05-28 23:27:28 +00:00
|
|
|
|
ONE_MORE_BYTE (M);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (M < 128)
|
|
|
|
|
goto invalid_code;
|
2003-05-28 23:27:28 +00:00
|
|
|
|
ONE_MORE_BYTE (L);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (L < 128)
|
|
|
|
|
goto invalid_code;
|
2003-05-28 23:27:28 +00:00
|
|
|
|
size = ((M - 128) * 128) + (L - 128);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (charbuf + 6 > charbuf_end)
|
2003-05-28 11:37:09 +00:00
|
|
|
|
goto break_loop;
|
|
|
|
|
*charbuf++ = ISO_CODE_ESC;
|
|
|
|
|
*charbuf++ = '%';
|
|
|
|
|
*charbuf++ = '/';
|
|
|
|
|
*charbuf++ = dim;
|
|
|
|
|
*charbuf++ = BYTE8_TO_CHAR (M);
|
|
|
|
|
*charbuf++ = BYTE8_TO_CHAR (L);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
CODING_ISO_EXTSEGMENT_LEN (coding) = size;
|
2003-05-28 23:27:28 +00:00
|
|
|
|
}
|
|
|
|
|
else if (c1 == 'G')
|
|
|
|
|
{
|
|
|
|
|
/* XFree86 extension for embedding UTF-8 in CTEXT:
|
|
|
|
|
ESC % G --UTF-8-BYTES-- ESC % @
|
|
|
|
|
We keep these bytes as is for the moment.
|
|
|
|
|
They may be decoded by post-read-conversion. */
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (charbuf + 3 > charbuf_end)
|
2003-05-28 11:37:09 +00:00
|
|
|
|
goto break_loop;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
*charbuf++ = ISO_CODE_ESC;
|
|
|
|
|
*charbuf++ = '%';
|
|
|
|
|
*charbuf++ = 'G';
|
|
|
|
|
CODING_ISO_EMBEDDED_UTF_8 (coding) = 1;
|
2003-05-28 23:27:28 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
2003-05-28 11:37:09 +00:00
|
|
|
|
goto invalid_code;
|
2003-05-28 23:27:28 +00:00
|
|
|
|
continue;
|
2003-05-28 11:37:09 +00:00
|
|
|
|
break;
|
2003-05-28 23:27:28 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
default:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_DESIGNATION))
|
|
|
|
|
goto invalid_code;
|
2004-03-30 13:09:38 +00:00
|
|
|
|
{
|
|
|
|
|
int reg, chars96;
|
|
|
|
|
|
|
|
|
|
if (c1 >= 0x28 && c1 <= 0x2B)
|
|
|
|
|
{ /* designation of DIMENSION1_CHARS94 character set */
|
|
|
|
|
reg = c1 - 0x28, chars96 = 0;
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
}
|
|
|
|
|
else if (c1 >= 0x2C && c1 <= 0x2F)
|
|
|
|
|
{ /* designation of DIMENSION1_CHARS96 character set */
|
|
|
|
|
reg = c1 - 0x2C, chars96 = 1;
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
DECODE_DESIGNATION (reg, 1, chars96, c1);
|
|
|
|
|
/* We must update these variables now. */
|
|
|
|
|
if (reg == 0)
|
|
|
|
|
charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
|
|
|
|
|
else if (reg == 1)
|
|
|
|
|
charset_id_1 = CODING_ISO_INVOKED_CHARSET (coding, 1);
|
|
|
|
|
if (chars96 < 0)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2011-03-07 21:28:41 -08:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
abort ();
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->state == COMPOSING_NO
|
|
|
|
|
&& charset->id != charset_ascii
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
&& last_id != charset->id)
|
|
|
|
|
{
|
|
|
|
|
if (last_id != charset_ascii)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
last_id = charset->id;
|
|
|
|
|
last_offset = char_offset;
|
|
|
|
|
}
|
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
/* Now we know CHARSET and 1st position code C1 of a character.
|
2009-06-18 10:29:51 +00:00
|
|
|
|
Produce a decoded character while getting 2nd and 3rd
|
|
|
|
|
position codes C2, C3 if necessary. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CHARSET_DIMENSION (charset) > 1)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
|
|
|
|
ONE_MORE_BYTE (c2);
|
2009-06-18 10:29:51 +00:00
|
|
|
|
if (c2 < 0x20 || (c2 >= 0x80 && c2 < 0xA0)
|
|
|
|
|
|| ((c1 & 0x80) != (c2 & 0x80)))
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
/* C2 is not in a valid range. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
2009-06-18 10:29:51 +00:00
|
|
|
|
if (CHARSET_DIMENSION (charset) == 2)
|
|
|
|
|
c1 = (c1 << 8) | c2;
|
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2009-06-18 10:29:51 +00:00
|
|
|
|
ONE_MORE_BYTE (c3);
|
|
|
|
|
if (c3 < 0x20 || (c3 >= 0x80 && c3 < 0xA0)
|
|
|
|
|
|| ((c1 & 0x80) != (c3 & 0x80)))
|
|
|
|
|
/* C3 is not in a valid range. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
goto invalid_code;
|
2009-06-18 10:29:51 +00:00
|
|
|
|
c1 = (c1 << 16) | (c2 << 8) | c2;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2009-06-18 10:29:51 +00:00
|
|
|
|
c1 &= 0x7F7F7F;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING_DECODE_CHAR (coding, src, src_base, src_end, charset, c1, c);
|
|
|
|
|
if (c < 0)
|
|
|
|
|
{
|
|
|
|
|
MAYBE_FINISH_COMPOSITION ();
|
|
|
|
|
for (; src_base < src; src_base++, char_offset++)
|
|
|
|
|
{
|
|
|
|
|
if (ASCII_BYTE_P (*src_base))
|
|
|
|
|
*charbuf++ = *src_base;
|
|
|
|
|
else
|
|
|
|
|
*charbuf++ = BYTE8_TO_CHAR (*src_base);
|
|
|
|
|
}
|
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
else if (cmp_status->state == COMPOSING_NO)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
*charbuf++ = c;
|
|
|
|
|
char_offset++;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
else if ((cmp_status->state == COMPOSING_CHAR
|
|
|
|
|
? cmp_status->nchars
|
|
|
|
|
: cmp_status->ncomps)
|
|
|
|
|
>= MAX_COMPOSITION_COMPONENTS)
|
2002-05-21 04:23:15 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Too long composition. */
|
|
|
|
|
MAYBE_FINISH_COMPOSITION ();
|
|
|
|
|
*charbuf++ = c;
|
|
|
|
|
char_offset++;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
else
|
|
|
|
|
STORE_COMPOSITION_CHAR (c);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
continue;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
invalid_code:
|
|
|
|
|
MAYBE_FINISH_COMPOSITION ();
|
1997-02-20 07:02:49 +00:00
|
|
|
|
src = src_base;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
consumed_chars = consumed_chars_base;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
*charbuf++ = c < 0 ? -c : ASCII_BYTE_P (c) ? c : BYTE8_TO_CHAR (c);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
char_offset++;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->errors++;
|
2003-05-28 11:37:09 +00:00
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
break_loop:
|
|
|
|
|
break;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
1998-02-20 01:40:47 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (cmp_status->state != COMPOSING_NO)
|
|
|
|
|
{
|
|
|
|
|
if (coding->mode & CODING_MODE_LAST_BLOCK)
|
|
|
|
|
MAYBE_FINISH_COMPOSITION ();
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
charbuf -= cmp_status->length;
|
|
|
|
|
for (i = 0; i < cmp_status->length; i++)
|
|
|
|
|
cmp_status->carryover[i] = charbuf[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (last_id != charset_ascii)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->consumed_char += consumed_chars_base;
|
|
|
|
|
coding->consumed = src_base - coding->source;
|
|
|
|
|
coding->charbuf_used = charbuf - coding->charbuf;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
1997-07-13 20:43:31 +00:00
|
|
|
|
/* ISO2022 encoding stuff. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
/*
|
1997-07-13 20:43:31 +00:00
|
|
|
|
It is not enough to say just "ISO2022" on encoding, we have to
|
2002-03-01 01:17:24 +00:00
|
|
|
|
specify more details. In Emacs, each coding system of ISO2022
|
1997-02-20 07:02:49 +00:00
|
|
|
|
variant has the following specifications:
|
2002-03-01 01:17:24 +00:00
|
|
|
|
1. Initial designation to G0 thru G3.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
2. Allows short-form designation?
|
|
|
|
|
3. ASCII should be designated to G0 before control characters?
|
|
|
|
|
4. ASCII should be designated to G0 at end of line?
|
|
|
|
|
5. 7-bit environment or 8-bit environment?
|
|
|
|
|
6. Use locking-shift?
|
|
|
|
|
7. Use Single-shift?
|
|
|
|
|
And the following two are only for Japanese:
|
|
|
|
|
8. Use ASCII in place of JIS0201-1976-Roman?
|
|
|
|
|
9. Use JISX0208-1983 in place of JISX0208-1978?
|
2002-03-01 01:17:24 +00:00
|
|
|
|
These specifications are encoded in CODING_ISO_FLAGS (coding) as flag bits
|
|
|
|
|
defined by macros CODING_ISO_FLAG_XXX. See `coding.h' for more
|
1997-07-13 20:43:31 +00:00
|
|
|
|
details.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* Produce codes (escape sequence) for designating CHARSET to graphic
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
register REG at DST, and increment DST. If <final-char> of CHARSET is
|
|
|
|
|
'@', 'A', or 'B' and the coding system CODING allows, produce
|
|
|
|
|
designation sequence of short-form. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
#define ENCODE_DESIGNATION(charset, reg, coding) \
|
|
|
|
|
do { \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unsigned char final_char = CHARSET_ISO_FINAL (charset); \
|
Use const char* instead of char*.
* src/xterm.c (x_create_toolkit_scroll_bar):
* src/xfont.c (xfont_list_pattern):
* src/xfns.c (x_default_scroll_bar_color_parameter)
(xic_create_fontsetname, x_default_font_parameter)
(x_screen_planes):
* src/xdisp.c (c_string_pos, number_of_chars, reseat_to_string)
(store_mode_line_string, decode_mode_spec, display_string):
* src/menu.c (digest_single_submenu):
* src/keymap.h (initial_define_key, initial_define_lispy_key):
* src/keymap.c (initial_define_key, initial_define_lispy_key):
* src/image.c (image_error, image_keyword):
* src/gtkutil.h (xg_create_widget, xg_create_scroll_bar):
* src/gtkutil.c (xg_create_widget, xg_create_scroll_bar):
* src/ftfont.c (struct fc_charset_table, ftfont_spec_pattern)
(ftfont_list, ftfont_match):
* src/frame.c (frame_parm_table):
* src/font.h (font_intern_prop, font_parse_xlfd, font_parse_fcname)
(font_unparse_fcname, font_unparse_fcname, font_open_by_name)
(font_add_log, font_deferred_log):
* src/font.c (font_intern_prop, font_parse_xlfd, font_parse_fcname)
(font_unparse_fcname, font_unparse_fcname, font_open_by_name)
(font_add_log, font_deferred_log):
* src/emacs.c (argmatch):
* src/dispextern.h (struct it):
* src/coding.c (ENCODE_DESIGNATION):
* src/charset.c (define_charset_internal): Use const.
2010-08-08 14:03:45 -07:00
|
|
|
|
const char *intermediate_char_94 = "()*+"; \
|
|
|
|
|
const char *intermediate_char_96 = ",-./"; \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int revision = -1; \
|
|
|
|
|
\
|
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_REVISION) \
|
2002-07-16 15:10:13 +00:00
|
|
|
|
revision = CHARSET_ISO_REVISION (charset); \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
\
|
|
|
|
|
if (revision >= 0) \
|
1997-10-23 12:01:50 +00:00
|
|
|
|
{ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, '&'); \
|
|
|
|
|
EMIT_ONE_BYTE ('@' + revision); \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_ONE_ASCII_BYTE (ISO_CODE_ESC); \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
if (CHARSET_DIMENSION (charset) == 1) \
|
|
|
|
|
{ \
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int b; \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! CHARSET_ISO_CHARS_96 (charset)) \
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
b = intermediate_char_94[reg]; \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
else \
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
b = intermediate_char_96[reg]; \
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (b); \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} \
|
|
|
|
|
else \
|
|
|
|
|
{ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_ONE_ASCII_BYTE ('$'); \
|
|
|
|
|
if (! CHARSET_ISO_CHARS_96 (charset)) \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_LONG_FORM \
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|| reg != 0 \
|
|
|
|
|
|| final_char < '@' || final_char > 'B') \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_ONE_ASCII_BYTE (intermediate_char_94[reg]); \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} \
|
|
|
|
|
else \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_ONE_ASCII_BYTE (intermediate_char_96[reg]); \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_ONE_ASCII_BYTE (final_char); \
|
|
|
|
|
\
|
|
|
|
|
CODING_ISO_DESIGNATION (coding, reg) = CHARSET_ID (charset); \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* The following two macros produce codes (control character or escape
|
|
|
|
|
sequence) for ISO2022 single-shift functions (single-shift-2 and
|
|
|
|
|
single-shift-3). */
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define ENCODE_SINGLE_SHIFT_2 \
|
|
|
|
|
do { \
|
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS) \
|
|
|
|
|
EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, 'N'); \
|
|
|
|
|
else \
|
|
|
|
|
EMIT_ONE_BYTE (ISO_CODE_SS2); \
|
|
|
|
|
CODING_ISO_SINGLE_SHIFTING (coding) = 1; \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
#define ENCODE_SINGLE_SHIFT_3 \
|
|
|
|
|
do { \
|
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS) \
|
|
|
|
|
EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, 'O'); \
|
|
|
|
|
else \
|
|
|
|
|
EMIT_ONE_BYTE (ISO_CODE_SS3); \
|
|
|
|
|
CODING_ISO_SINGLE_SHIFTING (coding) = 1; \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* The following four macros produce codes (control character or
|
|
|
|
|
escape sequence) for ISO2022 locking-shift functions (shift-in,
|
|
|
|
|
shift-out, locking-shift-2, and locking-shift-3). */
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define ENCODE_SHIFT_IN \
|
|
|
|
|
do { \
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (ISO_CODE_SI); \
|
|
|
|
|
CODING_ISO_INVOCATION (coding, 0) = 0; \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
#define ENCODE_SHIFT_OUT \
|
|
|
|
|
do { \
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (ISO_CODE_SO); \
|
|
|
|
|
CODING_ISO_INVOCATION (coding, 0) = 1; \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
#define ENCODE_LOCKING_SHIFT_2 \
|
|
|
|
|
do { \
|
|
|
|
|
EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, 'n'); \
|
|
|
|
|
CODING_ISO_INVOCATION (coding, 0) = 2; \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
#define ENCODE_LOCKING_SHIFT_3 \
|
|
|
|
|
do { \
|
|
|
|
|
EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, 'n'); \
|
|
|
|
|
CODING_ISO_INVOCATION (coding, 0) = 3; \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
1997-07-13 20:43:31 +00:00
|
|
|
|
/* Produce codes for a DIMENSION1 character whose character set is
|
|
|
|
|
CHARSET and whose position-code is C1. Designation and invocation
|
1997-02-20 07:02:49 +00:00
|
|
|
|
sequences are also produced in advance if necessary. */
|
|
|
|
|
|
1997-08-10 05:54:48 +00:00
|
|
|
|
#define ENCODE_ISO_CHARACTER_DIMENSION1(charset, c1) \
|
|
|
|
|
do { \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int id = CHARSET_ID (charset); \
|
2002-05-30 11:02:01 +00:00
|
|
|
|
\
|
|
|
|
|
if ((CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_USE_ROMAN) \
|
|
|
|
|
&& id == charset_ascii) \
|
|
|
|
|
{ \
|
|
|
|
|
id = charset_jisx0201_roman; \
|
|
|
|
|
charset = CHARSET_FROM_ID (id); \
|
|
|
|
|
} \
|
|
|
|
|
\
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_ISO_SINGLE_SHIFTING (coding)) \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
{ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS) \
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (c1 & 0x7F); \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
else \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_ONE_BYTE (c1 | 0x80); \
|
|
|
|
|
CODING_ISO_SINGLE_SHIFTING (coding) = 0; \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
break; \
|
|
|
|
|
} \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (id == CODING_ISO_INVOKED_CHARSET (coding, 0)) \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
{ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_ONE_ASCII_BYTE (c1 & 0x7F); \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
break; \
|
|
|
|
|
} \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (id == CODING_ISO_INVOKED_CHARSET (coding, 1)) \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
{ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_ONE_BYTE (c1 | 0x80); \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
break; \
|
|
|
|
|
} \
|
|
|
|
|
else \
|
|
|
|
|
/* Since CHARSET is not yet invoked to any graphic planes, we \
|
|
|
|
|
must invoke it, or, at first, designate it to some graphic \
|
|
|
|
|
register. Then repeat the loop to actually produce the \
|
|
|
|
|
character. */ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
dst = encode_invocation_designation (charset, coding, dst, \
|
|
|
|
|
&produced_chars); \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (1)
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
1997-07-13 20:43:31 +00:00
|
|
|
|
/* Produce codes for a DIMENSION2 character whose character set is
|
|
|
|
|
CHARSET and whose position-codes are C1 and C2. Designation and
|
1997-02-20 07:02:49 +00:00
|
|
|
|
invocation codes are also produced in advance if necessary. */
|
|
|
|
|
|
1997-08-10 05:54:48 +00:00
|
|
|
|
#define ENCODE_ISO_CHARACTER_DIMENSION2(charset, c1, c2) \
|
|
|
|
|
do { \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int id = CHARSET_ID (charset); \
|
2002-05-30 11:02:01 +00:00
|
|
|
|
\
|
|
|
|
|
if ((CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_USE_OLDJIS) \
|
|
|
|
|
&& id == charset_jisx0208) \
|
|
|
|
|
{ \
|
|
|
|
|
id = charset_jisx0208_1978; \
|
|
|
|
|
charset = CHARSET_FROM_ID (id); \
|
|
|
|
|
} \
|
|
|
|
|
\
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_ISO_SINGLE_SHIFTING (coding)) \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
{ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS) \
|
|
|
|
|
EMIT_TWO_ASCII_BYTES ((c1) & 0x7F, (c2) & 0x7F); \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
else \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_TWO_BYTES ((c1) | 0x80, (c2) | 0x80); \
|
|
|
|
|
CODING_ISO_SINGLE_SHIFTING (coding) = 0; \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
break; \
|
|
|
|
|
} \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (id == CODING_ISO_INVOKED_CHARSET (coding, 0)) \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
{ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_TWO_ASCII_BYTES ((c1) & 0x7F, (c2) & 0x7F); \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
break; \
|
|
|
|
|
} \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (id == CODING_ISO_INVOKED_CHARSET (coding, 1)) \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
{ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMIT_TWO_BYTES ((c1) | 0x80, (c2) | 0x80); \
|
1997-08-10 05:54:48 +00:00
|
|
|
|
break; \
|
|
|
|
|
} \
|
|
|
|
|
else \
|
|
|
|
|
/* Since CHARSET is not yet invoked to any graphic planes, we \
|
|
|
|
|
must invoke it, or, at first, designate it to some graphic \
|
|
|
|
|
register. Then repeat the loop to actually produce the \
|
|
|
|
|
character. */ \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
dst = encode_invocation_designation (charset, coding, dst, \
|
|
|
|
|
&produced_chars); \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (1)
|
|
|
|
|
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define ENCODE_ISO_CHARACTER(charset, c) \
|
|
|
|
|
do { \
|
2011-12-05 15:39:26 +09:00
|
|
|
|
int code; \
|
|
|
|
|
CODING_ENCODE_CHAR (coding, dst, dst_end, (charset), (c), code); \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
\
|
|
|
|
|
if (CHARSET_DIMENSION (charset) == 1) \
|
|
|
|
|
ENCODE_ISO_CHARACTER_DIMENSION1 ((charset), code); \
|
|
|
|
|
else \
|
|
|
|
|
ENCODE_ISO_CHARACTER_DIMENSION2 ((charset), code >> 8, code & 0xFF); \
|
1998-05-18 00:59:38 +00:00
|
|
|
|
} while (0)
|
1997-05-10 03:37:01 +00:00
|
|
|
|
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* Produce designation and invocation codes at a place pointed by DST
|
2002-03-01 01:17:24 +00:00
|
|
|
|
to use CHARSET. The element `spec.iso_2022' of *CODING is updated.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
Return new DST. */
|
|
|
|
|
|
2011-03-07 20:41:22 -08:00
|
|
|
|
static unsigned char *
|
2010-07-07 11:38:03 +02:00
|
|
|
|
encode_invocation_designation (struct charset *charset,
|
|
|
|
|
struct coding_system *coding,
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
unsigned char *dst, EMACS_INT *p_nchars)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->dst_multibyte;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = *p_nchars;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
int reg; /* graphic register number */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int id = CHARSET_ID (charset);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
/* At first, check designations. */
|
|
|
|
|
for (reg = 0; reg < 4; reg++)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (id == CODING_ISO_DESIGNATION (coding, reg))
|
1997-02-20 07:02:49 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
if (reg >= 4)
|
|
|
|
|
{
|
|
|
|
|
/* CHARSET is not yet designated to any graphic registers. */
|
|
|
|
|
/* At first check the requested designation. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
reg = CODING_ISO_REQUEST (coding, id);
|
|
|
|
|
if (reg < 0)
|
1997-05-28 04:36:27 +00:00
|
|
|
|
/* Since CHARSET requests no special designation, designate it
|
|
|
|
|
to graphic register 0. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
reg = 0;
|
|
|
|
|
|
|
|
|
|
ENCODE_DESIGNATION (charset, reg, coding);
|
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_ISO_INVOCATION (coding, 0) != reg
|
|
|
|
|
&& CODING_ISO_INVOCATION (coding, 1) != reg)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
|
|
|
|
/* Since the graphic register REG is not invoked to any graphic
|
|
|
|
|
planes, invoke it to graphic plane 0. */
|
|
|
|
|
switch (reg)
|
|
|
|
|
{
|
|
|
|
|
case 0: /* graphic register 0 */
|
|
|
|
|
ENCODE_SHIFT_IN;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 1: /* graphic register 1 */
|
|
|
|
|
ENCODE_SHIFT_OUT;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 2: /* graphic register 2 */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
ENCODE_SINGLE_SHIFT_2;
|
|
|
|
|
else
|
|
|
|
|
ENCODE_LOCKING_SHIFT_2;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 3: /* graphic register 3 */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
ENCODE_SINGLE_SHIFT_3;
|
|
|
|
|
else
|
|
|
|
|
ENCODE_LOCKING_SHIFT_3;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
*p_nchars = produced_chars;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
return dst;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Produce codes for designation and invocation to reset the graphic
|
|
|
|
|
planes and registers to initial state. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define ENCODE_RESET_PLANE_AND_REGISTER() \
|
|
|
|
|
do { \
|
|
|
|
|
int reg; \
|
|
|
|
|
struct charset *charset; \
|
|
|
|
|
\
|
|
|
|
|
if (CODING_ISO_INVOCATION (coding, 0) != 0) \
|
|
|
|
|
ENCODE_SHIFT_IN; \
|
|
|
|
|
for (reg = 0; reg < 4; reg++) \
|
|
|
|
|
if (CODING_ISO_INITIAL (coding, reg) >= 0 \
|
|
|
|
|
&& (CODING_ISO_DESIGNATION (coding, reg) \
|
|
|
|
|
!= CODING_ISO_INITIAL (coding, reg))) \
|
|
|
|
|
{ \
|
|
|
|
|
charset = CHARSET_FROM_ID (CODING_ISO_INITIAL (coding, reg)); \
|
|
|
|
|
ENCODE_DESIGNATION (charset, reg, coding); \
|
|
|
|
|
} \
|
1997-02-20 07:02:49 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
1997-05-10 03:37:01 +00:00
|
|
|
|
/* Produce designation sequences of charsets in the line started from
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CHARBUF to a place pointed by DST, and return the number of
|
|
|
|
|
produced bytes. DST should not directly point a buffer text area
|
|
|
|
|
which may be relocated by char_charset call.
|
1997-05-10 03:37:01 +00:00
|
|
|
|
|
|
|
|
|
If the current block ends before any end-of-line, we may fail to
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
find all the necessary designations. */
|
|
|
|
|
|
2011-12-05 15:39:26 +09:00
|
|
|
|
static int
|
|
|
|
|
encode_designation_at_bol (struct coding_system *coding,
|
|
|
|
|
int *charbuf, int *charbuf_end,
|
2011-03-29 00:41:01 +02:00
|
|
|
|
unsigned char *dst)
|
1997-02-27 11:10:42 +00:00
|
|
|
|
{
|
2011-12-05 15:39:26 +09:00
|
|
|
|
unsigned char *orig;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
struct charset *charset;
|
1997-05-10 03:37:01 +00:00
|
|
|
|
/* Table of charsets to be designated to each graphic register. */
|
|
|
|
|
int r[4];
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c, found = 0, reg;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
Lisp_Object attrs;
|
|
|
|
|
Lisp_Object charset_list;
|
|
|
|
|
|
|
|
|
|
attrs = CODING_ID_ATTRS (coding->id);
|
|
|
|
|
charset_list = CODING_ATTR_CHARSET_LIST (attrs);
|
|
|
|
|
if (EQ (charset_list, Qiso_2022))
|
|
|
|
|
charset_list = Viso_2022_charset_list;
|
1997-05-10 03:37:01 +00:00
|
|
|
|
|
|
|
|
|
for (reg = 0; reg < 4; reg++)
|
|
|
|
|
r[reg] = -1;
|
|
|
|
|
|
2011-12-05 15:39:26 +09:00
|
|
|
|
while (charbuf < charbuf_end && found < 4)
|
1997-02-27 11:10:42 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int id;
|
|
|
|
|
|
|
|
|
|
c = *charbuf++;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
if (c == '\n')
|
|
|
|
|
break;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charset = char_charset (c, charset_list, NULL);
|
|
|
|
|
id = CHARSET_ID (charset);
|
|
|
|
|
reg = CODING_ISO_REQUEST (coding, id);
|
|
|
|
|
if (reg >= 0 && r[reg] < 0)
|
1997-05-10 03:37:01 +00:00
|
|
|
|
{
|
|
|
|
|
found++;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
r[reg] = id;
|
1997-05-10 03:37:01 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (found)
|
|
|
|
|
{
|
|
|
|
|
for (reg = 0; reg < 4; reg++)
|
|
|
|
|
if (r[reg] >= 0
|
2002-03-01 01:17:24 +00:00
|
|
|
|
&& CODING_ISO_DESIGNATION (coding, reg) != r[reg])
|
|
|
|
|
ENCODE_DESIGNATION (CHARSET_FROM_ID (r[reg]), reg, coding);
|
1997-02-27 11:10:42 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2011-12-05 15:39:26 +09:00
|
|
|
|
return dst - orig;
|
1997-02-27 11:10:42 +00:00
|
|
|
|
}
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* See the above "GENERAL NOTES on `encode_coding_XXX ()' functions". */
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
encode_coding_iso_2022 (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = charbuf + coding->charbuf_used;
|
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
|
|
|
|
int safe_room = 16;
|
|
|
|
|
int bol_designation
|
|
|
|
|
= (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_DESIGNATE_AT_BOL
|
|
|
|
|
&& CODING_ISO_BOL (coding));
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object attrs, eol_type, charset_list;
|
|
|
|
|
int ascii_compatible;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
int c;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int preferred_charset_id = -1;
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
eol_type = inhibit_eol_conversion ? Qunix : CODING_ID_EOL_TYPE (coding->id);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (VECTORP (eol_type))
|
|
|
|
|
eol_type = Qunix;
|
|
|
|
|
|
2002-05-14 08:00:53 +00:00
|
|
|
|
setup_iso_safe_charsets (attrs);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/* Charset list may have been changed. */
|
2007-02-23 06:02:23 +00:00
|
|
|
|
charset_list = CODING_ATTR_CHARSET_LIST (attrs);
|
2009-02-22 15:48:02 +00:00
|
|
|
|
coding->safe_charsets = SDATA (CODING_ATTR_SAFE_CHARSETS (attrs));
|
2003-05-22 05:53:23 +00:00
|
|
|
|
|
2010-09-08 11:21:03 +09:00
|
|
|
|
ascii_compatible
|
|
|
|
|
= (! NILP (CODING_ATTR_ASCII_COMPAT (attrs))
|
|
|
|
|
&& ! (CODING_ISO_FLAGS (coding) & (CODING_ISO_FLAG_DESIGNATION
|
|
|
|
|
| CODING_ISO_FLAG_LOCKING_SHIFT)));
|
1997-05-10 03:37:01 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (charbuf < charbuf_end)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (bol_designation)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
1997-05-10 03:37:01 +00:00
|
|
|
|
/* We have to produce designation sequences if any now. */
|
2011-12-05 15:39:26 +09:00
|
|
|
|
unsigned char desig_buf[16];
|
|
|
|
|
int nbytes;
|
|
|
|
|
EMACS_INT offset;
|
|
|
|
|
|
|
|
|
|
charset_map_loaded = 0;
|
|
|
|
|
nbytes = encode_designation_at_bol (coding, charbuf, charbuf_end,
|
|
|
|
|
desig_buf);
|
|
|
|
|
if (charset_map_loaded
|
|
|
|
|
&& (offset = coding_set_destination (coding)))
|
|
|
|
|
{
|
|
|
|
|
dst += offset;
|
|
|
|
|
dst_end += offset;
|
|
|
|
|
}
|
|
|
|
|
memcpy (dst, desig_buf, nbytes);
|
|
|
|
|
dst += nbytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* We are sure that designation sequences are all ASCII bytes. */
|
2011-12-05 15:39:26 +09:00
|
|
|
|
produced_chars += nbytes;
|
|
|
|
|
bol_designation = 0;
|
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
1997-02-27 11:10:42 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
c = *charbuf++;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (c < 0)
|
|
|
|
|
{
|
|
|
|
|
/* Handle an annotation. */
|
|
|
|
|
switch (*charbuf)
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
case CODING_ANNOTATE_COMPOSITION_MASK:
|
|
|
|
|
/* Not yet implemented. */
|
|
|
|
|
break;
|
|
|
|
|
case CODING_ANNOTATE_CHARSET_MASK:
|
2004-10-13 02:40:30 +00:00
|
|
|
|
preferred_charset_id = charbuf[2];
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (preferred_charset_id >= 0
|
|
|
|
|
&& NILP (Fmemq (make_number (preferred_charset_id),
|
|
|
|
|
charset_list)))
|
|
|
|
|
preferred_charset_id = -1;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
abort ();
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
charbuf += -c - 1;
|
|
|
|
|
continue;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
/* Now encode the character C. */
|
|
|
|
|
if (c < 0x20 || c == 0x7F)
|
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (c == '\n'
|
|
|
|
|
|| (c == '\r' && EQ (eol_type, Qmac)))
|
1997-07-31 05:55:12 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_RESET_AT_EOL)
|
|
|
|
|
ENCODE_RESET_PLANE_AND_REGISTER ();
|
|
|
|
|
if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_INIT_AT_BOL)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < 4; i++)
|
|
|
|
|
CODING_ISO_DESIGNATION (coding, i)
|
|
|
|
|
= CODING_ISO_INITIAL (coding, i);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
bol_designation
|
|
|
|
|
= CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_DESIGNATE_AT_BOL;
|
1997-07-31 05:55:12 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_RESET_AT_CNTL)
|
|
|
|
|
ENCODE_RESET_PLANE_AND_REGISTER ();
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (c);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (ASCII_CHAR_P (c))
|
1998-09-28 11:52:53 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (ascii_compatible)
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (c);
|
2001-12-17 15:21:06 +00:00
|
|
|
|
else
|
1997-07-31 05:55:12 +00:00
|
|
|
|
{
|
2002-05-30 11:02:01 +00:00
|
|
|
|
struct charset *charset = CHARSET_FROM_ID (charset_ascii);
|
|
|
|
|
ENCODE_ISO_CHARACTER (charset, c);
|
1997-07-31 05:55:12 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2002-05-31 01:03:50 +00:00
|
|
|
|
else if (CHAR_BYTE8_P (c))
|
1998-09-28 11:52:53 +00:00
|
|
|
|
{
|
2002-05-31 01:03:50 +00:00
|
|
|
|
c = CHAR_TO_BYTE8 (c);
|
|
|
|
|
EMIT_ONE_BYTE (c);
|
1998-09-28 11:52:53 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
struct charset *charset;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (preferred_charset_id >= 0)
|
|
|
|
|
{
|
2011-12-05 15:39:26 +09:00
|
|
|
|
int result;
|
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
charset = CHARSET_FROM_ID (preferred_charset_id);
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CODING_CHAR_CHARSET_P (coding, dst, dst_end, c, charset, result);
|
|
|
|
|
if (! result)
|
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c, charset_list,
|
|
|
|
|
NULL, charset);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c, charset_list,
|
|
|
|
|
NULL, charset);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (!charset)
|
|
|
|
|
{
|
2002-05-20 12:10:04 +00:00
|
|
|
|
if (coding->mode & CODING_MODE_SAFE_ENCODING)
|
|
|
|
|
{
|
|
|
|
|
c = CODING_INHIBIT_CHARACTER_SUBSTITUTION;
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_ascii);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
c = coding->default_char;
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c,
|
|
|
|
|
charset_list, NULL, charset);
|
2002-05-20 12:10:04 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
ENCODE_ISO_CHARACTER (charset, c);
|
|
|
|
|
}
|
1998-05-18 00:59:38 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (coding->mode & CODING_MODE_LAST_BLOCK
|
|
|
|
|
&& CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_RESET_AT_EOL)
|
|
|
|
|
{
|
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
ENCODE_RESET_PLANE_AND_REGISTER ();
|
|
|
|
|
}
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING_ISO_BOL (coding) = bol_designation;
|
|
|
|
|
coding->produced_char += produced_chars;
|
|
|
|
|
coding->produced = dst - coding->destination;
|
|
|
|
|
return 0;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/*** 8,9. SJIS and BIG5 handlers ***/
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Although SJIS and BIG5 are not ISO's coding system, they are used
|
1997-02-20 07:02:49 +00:00
|
|
|
|
quite widely. So, for the moment, Emacs supports them in the bare
|
|
|
|
|
C code. But, in the future, they may be supported only by CCL. */
|
|
|
|
|
|
|
|
|
|
/* SJIS is a coding system encoding three character sets: ASCII, right
|
|
|
|
|
half of JISX0201-Kana, and JISX0208. An ASCII character is encoded
|
|
|
|
|
as is. A character of charset katakana-jisx0201 is encoded by
|
|
|
|
|
"position-code + 0x80". A character of charset japanese-jisx0208
|
|
|
|
|
is encoded in 2-byte but two position-codes are divided and shifted
|
2002-03-01 01:17:24 +00:00
|
|
|
|
so that it fit in the range below.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
--- CODE RANGE of SJIS ---
|
|
|
|
|
(character set) (range)
|
|
|
|
|
ASCII 0x00 .. 0x7F
|
2002-03-01 01:17:24 +00:00
|
|
|
|
KATAKANA-JISX0201 0xA0 .. 0xDF
|
1999-02-16 01:38:01 +00:00
|
|
|
|
JISX0208 (1st byte) 0x81 .. 0x9F and 0xE0 .. 0xEF
|
1998-10-28 07:52:13 +00:00
|
|
|
|
(2nd byte) 0x40 .. 0x7E and 0x80 .. 0xFC
|
1997-02-20 07:02:49 +00:00
|
|
|
|
-------------------------------
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* BIG5 is a coding system encoding two character sets: ASCII and
|
|
|
|
|
Big5. An ASCII character is encoded as is. Big5 is a two-byte
|
2002-03-01 01:17:24 +00:00
|
|
|
|
character set and is encoded in two-byte.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
--- CODE RANGE of BIG5 ---
|
|
|
|
|
(character set) (range)
|
|
|
|
|
ASCII 0x00 .. 0x7F
|
|
|
|
|
Big5 (1st byte) 0xA1 .. 0xFE
|
|
|
|
|
(2nd byte) 0x40 .. 0x7E and 0xA1 .. 0xFE
|
|
|
|
|
--------------------------
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
*/
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
|
|
|
|
Check if a text is encoded in SJIS. If it is, return
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CATEGORY_MASK_SJIS, else return 0. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2000-12-13 23:24:37 +00:00
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_coding_sjis (struct coding_system *coding,
|
|
|
|
|
struct coding_detection_info *detect_info)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
const unsigned char *src = coding->source, *src_base;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int found = 0;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
int c;
|
2009-07-08 02:22:05 +00:00
|
|
|
|
Lisp_Object attrs, charset_list;
|
|
|
|
|
int max_first_byte_of_2_byte_code;
|
|
|
|
|
|
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
|
|
|
|
max_first_byte_of_2_byte_code
|
|
|
|
|
= (XINT (Flength (charset_list)) > 3 ? 0xFC : 0xEF);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->checked |= CATEGORY_MASK_SJIS;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* A coding system of this category is always ASCII compatible. */
|
|
|
|
|
src += coding->head_ascii;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
while (1)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
2001-03-08 02:01:00 +00:00
|
|
|
|
if (c < 0x80)
|
|
|
|
|
continue;
|
2009-07-08 02:22:05 +00:00
|
|
|
|
if ((c >= 0x81 && c <= 0x9F)
|
|
|
|
|
|| (c >= 0xE0 && c <= max_first_byte_of_2_byte_code))
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
2001-03-08 02:01:00 +00:00
|
|
|
|
if (c < 0x40 || c == 0x7F || c > 0xFC)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
found = CATEGORY_MASK_SJIS;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (c >= 0xA0 && c < 0xE0)
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
found = CATEGORY_MASK_SJIS;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
break;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_SJIS;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
no_more_source:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (src_base < src && coding->mode & CODING_MODE_LAST_BLOCK)
|
2002-10-10 09:05:37 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_SJIS;
|
2002-10-10 09:05:37 +00:00
|
|
|
|
return 0;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->found |= found;
|
|
|
|
|
return 1;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
|
|
|
|
Check if a text is encoded in BIG5. If it is, return
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CATEGORY_MASK_BIG5, else return 0. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2000-12-13 23:24:37 +00:00
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_coding_big5 (struct coding_system *coding,
|
|
|
|
|
struct coding_detection_info *detect_info)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
const unsigned char *src = coding->source, *src_base;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int found = 0;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
int c;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->checked |= CATEGORY_MASK_BIG5;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* A coding system of this category is always ASCII compatible. */
|
|
|
|
|
src += coding->head_ascii;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
while (1)
|
2000-03-07 06:17:54 +00:00
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
if (c < 0x80)
|
2000-03-07 06:17:54 +00:00
|
|
|
|
continue;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (c >= 0xA1)
|
2000-03-07 06:17:54 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
if (c < 0x40 || (c >= 0x7F && c <= 0xA0))
|
2000-03-07 06:17:54 +00:00
|
|
|
|
return 0;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
found = CATEGORY_MASK_BIG5;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
break;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_BIG5;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
return 0;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (src_base < src && coding->mode & CODING_MODE_LAST_BLOCK)
|
2002-10-10 09:05:37 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_BIG5;
|
2002-10-10 09:05:37 +00:00
|
|
|
|
return 0;
|
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->found |= found;
|
|
|
|
|
return 1;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* See the above "GENERAL NOTES on `decode_coding_XXX ()' functions".
|
|
|
|
|
If SJIS_P is 1, decode SJIS text, else decode BIG5 test. */
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_coding_sjis (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src = coding->source + coding->consumed;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
|
|
|
|
const unsigned char *src_base;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf = coding->charbuf + coding->charbuf_used;
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* We may produce one charset annotation in one loop and one more at
|
2009-04-21 06:36:21 +00:00
|
|
|
|
the end. */
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf_end
|
2009-04-21 06:36:21 +00:00
|
|
|
|
= coding->charbuf + coding->charbuf_size - (MAX_ANNOTATION_LENGTH * 2);
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0, consumed_chars_base;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
|
|
|
|
struct charset *charset_roman, *charset_kanji, *charset_kana;
|
2004-01-27 12:11:41 +00:00
|
|
|
|
struct charset *charset_kanji2;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object attrs, charset_list, val;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT char_offset = coding->produced_char;
|
|
|
|
|
EMACS_INT last_offset = char_offset;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int last_id = charset_ascii;
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int eol_dos =
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
!inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos);
|
2008-03-02 08:05:14 +00:00
|
|
|
|
int byte_after_cr = -1;
|
1997-07-02 12:53:53 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
val = charset_list;
|
|
|
|
|
charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
|
2002-10-10 09:05:37 +00:00
|
|
|
|
charset_kana = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
|
2004-01-27 12:11:41 +00:00
|
|
|
|
charset_kanji = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
|
|
|
|
|
charset_kanji2 = NILP (val) ? NULL : CHARSET_FROM_ID (XINT (XCAR (val)));
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
while (1)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c, c1;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
struct charset *charset;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
consumed_chars_base = consumed_chars;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (charbuf >= charbuf_end)
|
2009-01-07 06:49:50 +00:00
|
|
|
|
{
|
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
src_base--;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2008-03-02 08:05:14 +00:00
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
c = byte_after_cr, byte_after_cr = -1;
|
|
|
|
|
else
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c < 0)
|
|
|
|
|
goto invalid_code;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (c < 0x80)
|
2008-03-02 08:05:14 +00:00
|
|
|
|
{
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (eol_dos && c == '\r')
|
2008-03-02 08:05:14 +00:00
|
|
|
|
ONE_MORE_BYTE (byte_after_cr);
|
|
|
|
|
charset = charset_roman;
|
|
|
|
|
}
|
2004-01-27 12:11:41 +00:00
|
|
|
|
else if (c == 0x80 || c == 0xA0)
|
2004-01-24 09:13:19 +00:00
|
|
|
|
goto invalid_code;
|
2004-01-27 12:11:41 +00:00
|
|
|
|
else if (c >= 0xA1 && c <= 0xDF)
|
|
|
|
|
{
|
|
|
|
|
/* SJIS -> JISX0201-Kana */
|
|
|
|
|
c &= 0x7F;
|
|
|
|
|
charset = charset_kana;
|
|
|
|
|
}
|
|
|
|
|
else if (c <= 0xEF)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2004-01-27 12:11:41 +00:00
|
|
|
|
/* SJIS -> JISX0208 */
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (c1 < 0x40 || c1 == 0x7F || c1 > 0xFC)
|
2003-12-02 01:40:27 +00:00
|
|
|
|
goto invalid_code;
|
2004-01-27 12:11:41 +00:00
|
|
|
|
c = (c << 8) | c1;
|
|
|
|
|
SJIS_TO_JIS (c);
|
|
|
|
|
charset = charset_kanji;
|
|
|
|
|
}
|
|
|
|
|
else if (c <= 0xFC && charset_kanji2)
|
|
|
|
|
{
|
2004-01-28 11:03:31 +00:00
|
|
|
|
/* SJIS -> JISX0213-2 */
|
2004-01-27 12:11:41 +00:00
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (c1 < 0x40 || c1 == 0x7F || c1 > 0xFC)
|
2003-12-02 01:40:27 +00:00
|
|
|
|
goto invalid_code;
|
2004-01-27 12:11:41 +00:00
|
|
|
|
c = (c << 8) | c1;
|
|
|
|
|
SJIS_TO_JIS2 (c);
|
|
|
|
|
charset = charset_kanji2;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2004-01-27 12:11:41 +00:00
|
|
|
|
else
|
|
|
|
|
goto invalid_code;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (charset->id != charset_ascii
|
|
|
|
|
&& last_id != charset->id)
|
|
|
|
|
{
|
|
|
|
|
if (last_id != charset_ascii)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
last_id = charset->id;
|
|
|
|
|
last_offset = char_offset;
|
|
|
|
|
}
|
|
|
|
|
CODING_DECODE_CHAR (coding, src, src_base, src_end, charset, c, c);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
*charbuf++ = c;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
char_offset++;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
continue;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
invalid_code:
|
|
|
|
|
src = src_base;
|
|
|
|
|
consumed_chars = consumed_chars_base;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
*charbuf++ = c < 0 ? -c : BYTE8_TO_CHAR (c);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
char_offset++;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->errors++;
|
|
|
|
|
}
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (last_id != charset_ascii)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->consumed_char += consumed_chars_base;
|
|
|
|
|
coding->consumed = src_base - coding->source;
|
|
|
|
|
coding->charbuf_used = charbuf - coding->charbuf;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_coding_big5 (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src = coding->source + coding->consumed;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
|
|
|
|
const unsigned char *src_base;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf = coding->charbuf + coding->charbuf_used;
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* We may produce one charset annotation in one loop and one more at
|
2009-04-21 06:36:21 +00:00
|
|
|
|
the end. */
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf_end
|
2009-04-21 06:36:21 +00:00
|
|
|
|
= coding->charbuf + coding->charbuf_size - (MAX_ANNOTATION_LENGTH * 2);
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0, consumed_chars_base;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
|
|
|
|
struct charset *charset_roman, *charset_big5;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object attrs, charset_list, val;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT char_offset = coding->produced_char;
|
|
|
|
|
EMACS_INT last_offset = char_offset;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int last_id = charset_ascii;
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int eol_dos =
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
!inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos);
|
2008-03-02 08:05:14 +00:00
|
|
|
|
int byte_after_cr = -1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = charset_list;
|
|
|
|
|
charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
|
|
|
|
|
charset_big5 = CHARSET_FROM_ID (XINT (XCAR (val)));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
while (1)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c, c1;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
struct charset *charset;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
consumed_chars_base = consumed_chars;
|
|
|
|
|
|
|
|
|
|
if (charbuf >= charbuf_end)
|
2009-01-07 06:49:50 +00:00
|
|
|
|
{
|
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
src_base--;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2008-03-02 08:05:14 +00:00
|
|
|
|
if (byte_after_cr >= 0)
|
2008-03-02 19:56:45 +00:00
|
|
|
|
c = byte_after_cr, byte_after_cr = -1;
|
2008-03-02 08:05:14 +00:00
|
|
|
|
else
|
|
|
|
|
ONE_MORE_BYTE (c);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c < 0)
|
|
|
|
|
goto invalid_code;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (c < 0x80)
|
2008-03-02 08:05:14 +00:00
|
|
|
|
{
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (eol_dos && c == '\r')
|
2008-03-02 08:05:14 +00:00
|
|
|
|
ONE_MORE_BYTE (byte_after_cr);
|
|
|
|
|
charset = charset_roman;
|
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
else
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
/* BIG5 -> Big5 */
|
|
|
|
|
if (c < 0xA1 || c > 0xFE)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
ONE_MORE_BYTE (c1);
|
|
|
|
|
if (c1 < 0x40 || (c1 > 0x7E && c1 < 0xA1) || c1 > 0xFE)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
c = c << 8 | c1;
|
|
|
|
|
charset = charset_big5;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (charset->id != charset_ascii
|
|
|
|
|
&& last_id != charset->id)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (last_id != charset_ascii)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
last_id = charset->id;
|
|
|
|
|
last_offset = char_offset;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_DECODE_CHAR (coding, src, src_base, src_end, charset, c, c);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
*charbuf++ = c;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
char_offset++;
|
1998-02-20 01:40:47 +00:00
|
|
|
|
continue;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
invalid_code:
|
1997-02-20 07:02:49 +00:00
|
|
|
|
src = src_base;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
consumed_chars = consumed_chars_base;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
*charbuf++ = c < 0 ? -c : BYTE8_TO_CHAR (c);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
char_offset++;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->errors++;
|
1998-02-20 01:40:47 +00:00
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (last_id != charset_ascii)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->consumed_char += consumed_chars_base;
|
|
|
|
|
coding->consumed = src_base - coding->source;
|
|
|
|
|
coding->charbuf_used = charbuf - coding->charbuf;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* See the above "GENERAL NOTES on `encode_coding_XXX ()' functions".
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
This function can encode charsets `ascii', `katakana-jisx0201',
|
|
|
|
|
`japanese-jisx0208', `chinese-big5-1', and `chinese-big5-2'. We
|
|
|
|
|
are sure that all these charsets are registered as official charset
|
1997-02-20 07:02:49 +00:00
|
|
|
|
(i.e. do not have extended leading-codes). Characters of other
|
|
|
|
|
charsets are produced without any encoding. If SJIS_P is 1, encode
|
|
|
|
|
SJIS text, else encode BIG5 text. */
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
encode_coding_sjis (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = charbuf + coding->charbuf_used;
|
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
|
|
|
|
int safe_room = 4;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object attrs, charset_list, val;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int ascii_compatible;
|
2011-04-01 10:20:24 -07:00
|
|
|
|
struct charset *charset_kanji, *charset_kana;
|
2004-01-27 12:11:41 +00:00
|
|
|
|
struct charset *charset_kanji2;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
1997-07-02 12:53:53 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
2011-04-01 10:20:24 -07:00
|
|
|
|
val = XCDR (charset_list);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charset_kana = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
|
2004-01-27 12:11:41 +00:00
|
|
|
|
charset_kanji = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
|
|
|
|
|
charset_kanji2 = NILP (val) ? NULL : CHARSET_FROM_ID (XINT (XCAR (val)));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ascii_compatible = ! NILP (CODING_ATTR_ASCII_COMPAT (attrs));
|
2001-12-17 15:21:06 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (charbuf < charbuf_end)
|
|
|
|
|
{
|
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
c = *charbuf++;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
/* Now encode the character C. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (ASCII_CHAR_P (c) && ascii_compatible)
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (c);
|
2002-05-31 01:03:50 +00:00
|
|
|
|
else if (CHAR_BYTE8_P (c))
|
|
|
|
|
{
|
|
|
|
|
c = CHAR_TO_BYTE8 (c);
|
|
|
|
|
EMIT_ONE_BYTE (c);
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unsigned code;
|
2011-12-05 15:39:26 +09:00
|
|
|
|
struct charset *charset;
|
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c, charset_list,
|
|
|
|
|
&code, charset);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
if (!charset)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-05-20 12:10:04 +00:00
|
|
|
|
if (coding->mode & CODING_MODE_SAFE_ENCODING)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-05-20 12:10:04 +00:00
|
|
|
|
code = CODING_INHIBIT_CHARACTER_SUBSTITUTION;
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_ascii);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
2002-05-20 12:10:04 +00:00
|
|
|
|
else
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-05-20 12:10:04 +00:00
|
|
|
|
c = coding->default_char;
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c,
|
|
|
|
|
charset_list, &code, charset);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (code == CHARSET_INVALID_CODE (charset))
|
|
|
|
|
abort ();
|
|
|
|
|
if (charset == charset_kanji)
|
|
|
|
|
{
|
|
|
|
|
int c1, c2;
|
|
|
|
|
JIS_TO_SJIS (code);
|
|
|
|
|
c1 = code >> 8, c2 = code & 0xFF;
|
|
|
|
|
EMIT_TWO_BYTES (c1, c2);
|
|
|
|
|
}
|
|
|
|
|
else if (charset == charset_kana)
|
|
|
|
|
EMIT_ONE_BYTE (code | 0x80);
|
2004-01-27 12:11:41 +00:00
|
|
|
|
else if (charset_kanji2 && charset == charset_kanji2)
|
|
|
|
|
{
|
|
|
|
|
int c1, c2;
|
|
|
|
|
|
|
|
|
|
c1 = code >> 8;
|
2009-07-08 02:22:05 +00:00
|
|
|
|
if (c1 == 0x21 || (c1 >= 0x23 && c1 <= 0x25)
|
|
|
|
|
|| c1 == 0x28
|
2004-01-27 12:11:41 +00:00
|
|
|
|
|| (c1 >= 0x2C && c1 <= 0x2F) || c1 >= 0x6E)
|
|
|
|
|
{
|
|
|
|
|
JIS_TO_SJIS2 (code);
|
|
|
|
|
c1 = code >> 8, c2 = code & 0xFF;
|
|
|
|
|
EMIT_TWO_BYTES (c1, c2);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (code & 0x7F);
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (code & 0x7F);
|
|
|
|
|
}
|
|
|
|
|
}
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->produced_char += produced_chars;
|
|
|
|
|
coding->produced = dst - coding->destination;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
encode_coding_big5 (struct coding_system *coding)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = charbuf + coding->charbuf_used;
|
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
|
|
|
|
int safe_room = 4;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object attrs, charset_list, val;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int ascii_compatible;
|
2011-04-01 10:20:24 -07:00
|
|
|
|
struct charset *charset_big5;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
2011-04-01 10:20:24 -07:00
|
|
|
|
val = XCDR (charset_list);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charset_big5 = CHARSET_FROM_ID (XINT (XCAR (val)));
|
|
|
|
|
ascii_compatible = ! NILP (CODING_ATTR_ASCII_COMPAT (attrs));
|
|
|
|
|
|
|
|
|
|
while (charbuf < charbuf_end)
|
|
|
|
|
{
|
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
c = *charbuf++;
|
|
|
|
|
/* Now encode the character C. */
|
|
|
|
|
if (ASCII_CHAR_P (c) && ascii_compatible)
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (c);
|
2002-05-31 01:03:50 +00:00
|
|
|
|
else if (CHAR_BYTE8_P (c))
|
|
|
|
|
{
|
|
|
|
|
c = CHAR_TO_BYTE8 (c);
|
|
|
|
|
EMIT_ONE_BYTE (c);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unsigned code;
|
2011-12-05 15:39:26 +09:00
|
|
|
|
struct charset *charset;
|
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c, charset_list,
|
|
|
|
|
&code, charset);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
if (! charset)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-05-20 12:10:04 +00:00
|
|
|
|
if (coding->mode & CODING_MODE_SAFE_ENCODING)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-05-20 12:10:04 +00:00
|
|
|
|
code = CODING_INHIBIT_CHARACTER_SUBSTITUTION;
|
|
|
|
|
charset = CHARSET_FROM_ID (charset_ascii);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
2002-05-20 12:10:04 +00:00
|
|
|
|
else
|
2003-05-22 05:53:23 +00:00
|
|
|
|
{
|
2002-05-20 12:10:04 +00:00
|
|
|
|
c = coding->default_char;
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c,
|
|
|
|
|
charset_list, &code, charset);
|
2003-05-22 05:53:23 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (code == CHARSET_INVALID_CODE (charset))
|
|
|
|
|
abort ();
|
|
|
|
|
if (charset == charset_big5)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c1, c2;
|
|
|
|
|
|
|
|
|
|
c1 = code >> 8, c2 = code & 0xFF;
|
|
|
|
|
EMIT_TWO_BYTES (c1, c2);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (code & 0x7F);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->produced_char += produced_chars;
|
|
|
|
|
coding->produced = dst - coding->destination;
|
|
|
|
|
return 0;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/*** 10. CCL handlers ***/
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
|
|
|
|
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
|
|
|
|
Check if a text is encoded in a coding system of which
|
|
|
|
|
encoder/decoder are written in CCL program. If it is, return
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CATEGORY_MASK_CCL, else return 0. */
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
2000-12-13 23:24:37 +00:00
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_coding_ccl (struct coding_system *coding,
|
|
|
|
|
struct coding_detection_info *detect_info)
|
1998-08-02 01:06:57 +00:00
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
const unsigned char *src = coding->source, *src_base;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int found = 0;
|
2004-03-08 23:15:42 +00:00
|
|
|
|
unsigned char *valids;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT head_ascii = coding->head_ascii;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object attrs;
|
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->checked |= CATEGORY_MASK_CCL;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding = &coding_categories[coding_category_ccl];
|
2004-03-08 23:15:42 +00:00
|
|
|
|
valids = CODING_CCL_VALIDS (coding);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
attrs = CODING_ID_ATTRS (coding->id);
|
|
|
|
|
if (! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
|
|
|
|
|
src += head_ascii;
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
while (1)
|
1998-08-02 01:06:57 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
2003-12-29 07:52:49 +00:00
|
|
|
|
|
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c < 0 || ! valids[c])
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if ((valids[c] > 1))
|
|
|
|
|
found = CATEGORY_MASK_CCL;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_CCL;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
no_more_source:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->found |= found;
|
|
|
|
|
return 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_coding_ccl (struct coding_system *coding)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2002-07-22 06:40:36 +00:00
|
|
|
|
const unsigned char *src = coding->source + coding->consumed;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf = coding->charbuf + coding->charbuf_used;
|
|
|
|
|
int *charbuf_end = coding->charbuf + coding->charbuf_size;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
2010-02-17 15:47:32 +09:00
|
|
|
|
struct ccl_program *ccl = &coding->spec.ccl->ccl;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int source_charbuf[1024];
|
2010-03-16 11:14:40 +09:00
|
|
|
|
int source_byteidx[1025];
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object attrs, charset_list;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2010-02-17 15:47:32 +09:00
|
|
|
|
while (1)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2002-07-22 06:40:36 +00:00
|
|
|
|
const unsigned char *p = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int i = 0;
|
|
|
|
|
|
|
|
|
|
if (multibytep)
|
2010-03-16 11:14:40 +09:00
|
|
|
|
{
|
|
|
|
|
while (i < 1024 && p < src_end)
|
|
|
|
|
{
|
|
|
|
|
source_byteidx[i] = p - src;
|
|
|
|
|
source_charbuf[i++] = STRING_CHAR_ADVANCE (p);
|
|
|
|
|
}
|
|
|
|
|
source_byteidx[i] = p - src;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
while (i < 1024 && p < src_end)
|
|
|
|
|
source_charbuf[i++] = *p++;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (p == src_end && coding->mode & CODING_MODE_LAST_BLOCK)
|
2010-02-17 15:47:32 +09:00
|
|
|
|
ccl->last_block = 1;
|
|
|
|
|
ccl_driver (ccl, source_charbuf, charbuf, i, charbuf_end - charbuf,
|
|
|
|
|
charset_list);
|
|
|
|
|
charbuf += ccl->produced;
|
2010-03-16 11:14:40 +09:00
|
|
|
|
if (multibytep)
|
2010-02-17 15:47:32 +09:00
|
|
|
|
src += source_byteidx[ccl->consumed];
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2010-02-17 15:47:32 +09:00
|
|
|
|
src += ccl->consumed;
|
|
|
|
|
consumed_chars += ccl->consumed;
|
|
|
|
|
if (p == src_end || ccl->status != CCL_STAT_SUSPEND_BY_SRC)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
2010-02-17 15:47:32 +09:00
|
|
|
|
switch (ccl->status)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
case CCL_STAT_SUSPEND_BY_SRC:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_SRC);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
case CCL_STAT_SUSPEND_BY_DST:
|
2010-02-17 15:47:32 +09:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_DST);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
case CCL_STAT_QUIT:
|
|
|
|
|
case CCL_STAT_INVALID_CMD:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_INTERRUPT);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
default:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
coding->consumed_char += consumed_chars;
|
|
|
|
|
coding->consumed = src - coding->source;
|
|
|
|
|
coding->charbuf_used = charbuf - coding->charbuf;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
encode_coding_ccl (struct coding_system *coding)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2010-03-16 14:48:41 +09:00
|
|
|
|
struct ccl_program *ccl = &coding->spec.ccl->ccl;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = charbuf + coding->charbuf_used;
|
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
|
|
|
|
int destination_charbuf[1024];
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
|
|
|
|
int i;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object attrs, charset_list;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
2010-03-16 14:48:41 +09:00
|
|
|
|
if (coding->consumed_char == coding->src_chars
|
|
|
|
|
&& coding->mode & CODING_MODE_LAST_BLOCK)
|
|
|
|
|
ccl->last_block = 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2006-03-04 02:59:04 +00:00
|
|
|
|
while (charbuf < charbuf_end)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2010-03-16 14:48:41 +09:00
|
|
|
|
ccl_driver (ccl, charbuf, destination_charbuf,
|
2006-03-04 02:59:04 +00:00
|
|
|
|
charbuf_end - charbuf, 1024, charset_list);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (multibytep)
|
2006-03-04 02:59:04 +00:00
|
|
|
|
{
|
2010-03-16 14:48:41 +09:00
|
|
|
|
ASSURE_DESTINATION (ccl->produced * 2);
|
|
|
|
|
for (i = 0; i < ccl->produced; i++)
|
2006-03-04 02:59:04 +00:00
|
|
|
|
EMIT_ONE_BYTE (destination_charbuf[i] & 0xFF);
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
2010-03-16 14:48:41 +09:00
|
|
|
|
ASSURE_DESTINATION (ccl->produced);
|
|
|
|
|
for (i = 0; i < ccl->produced; i++)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
*dst++ = destination_charbuf[i] & 0xFF;
|
2010-03-16 14:48:41 +09:00
|
|
|
|
produced_chars += ccl->produced;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2010-03-16 14:48:41 +09:00
|
|
|
|
charbuf += ccl->consumed;
|
|
|
|
|
if (ccl->status == CCL_STAT_QUIT
|
|
|
|
|
|| ccl->status == CCL_STAT_INVALID_CMD)
|
2006-03-04 02:59:04 +00:00
|
|
|
|
break;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
|
2010-03-16 14:48:41 +09:00
|
|
|
|
switch (ccl->status)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
case CCL_STAT_SUSPEND_BY_SRC:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_SRC);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
case CCL_STAT_SUSPEND_BY_DST:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_DST);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
case CCL_STAT_QUIT:
|
|
|
|
|
case CCL_STAT_INVALID_CMD:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_INTERRUPT);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
|
|
|
|
default:
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
1998-08-02 01:06:57 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
coding->produced_char += produced_chars;
|
|
|
|
|
coding->produced = dst - coding->destination;
|
|
|
|
|
return 0;
|
1998-08-02 01:06:57 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/*** 10, 11. no-conversion handlers ***/
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
/* See the above "GENERAL NOTES on `decode_coding_XXX ()' functions". */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_coding_raw_text (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int eol_dos =
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
!inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos);
|
2008-03-02 08:05:14 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->chars_at_source = 1;
|
2008-03-02 08:05:14 +00:00
|
|
|
|
coding->consumed_char = coding->src_chars;
|
|
|
|
|
coding->consumed = coding->src_bytes;
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (eol_dos && coding->source[coding->src_bytes - 1] == '\r')
|
2008-03-02 08:05:14 +00:00
|
|
|
|
{
|
|
|
|
|
coding->consumed_char--;
|
|
|
|
|
coding->consumed--;
|
|
|
|
|
record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_SRC);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
encode_coding_raw_text (struct coding_system *coding)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = coding->charbuf + coding->charbuf_used;
|
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
int c;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (multibytep)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int safe_room = MAX_MULTIBYTE_LENGTH * 2;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (coding->src_multibyte)
|
|
|
|
|
while (charbuf < charbuf_end)
|
|
|
|
|
{
|
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
c = *charbuf++;
|
|
|
|
|
if (ASCII_CHAR_P (c))
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (c);
|
|
|
|
|
else if (CHAR_BYTE8_P (c))
|
|
|
|
|
{
|
|
|
|
|
c = CHAR_TO_BYTE8 (c);
|
|
|
|
|
EMIT_ONE_BYTE (c);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
unsigned char str[MAX_MULTIBYTE_LENGTH], *p0 = str, *p1 = str;
|
2001-12-17 15:21:06 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHAR_STRING_ADVANCE (c, p1);
|
2011-03-22 09:20:45 -07:00
|
|
|
|
do
|
2002-07-31 07:09:00 +00:00
|
|
|
|
{
|
|
|
|
|
EMIT_ONE_BYTE (*p0);
|
|
|
|
|
p0++;
|
|
|
|
|
}
|
2011-03-22 09:20:45 -07:00
|
|
|
|
while (p0 < p1);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (charbuf < charbuf_end)
|
|
|
|
|
{
|
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
c = *charbuf++;
|
|
|
|
|
EMIT_ONE_BYTE (c);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (coding->src_multibyte)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int safe_room = MAX_MULTIBYTE_LENGTH;
|
|
|
|
|
|
|
|
|
|
while (charbuf < charbuf_end)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
c = *charbuf++;
|
|
|
|
|
if (ASCII_CHAR_P (c))
|
|
|
|
|
*dst++ = c;
|
|
|
|
|
else if (CHAR_BYTE8_P (c))
|
|
|
|
|
*dst++ = CHAR_TO_BYTE8 (c);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHAR_STRING_ADVANCE (c, dst);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ASSURE_DESTINATION (charbuf_end - charbuf);
|
|
|
|
|
while (charbuf < charbuf_end && dst < dst_end)
|
|
|
|
|
*dst++ = *charbuf++;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
}
|
2008-05-28 06:38:47 +00:00
|
|
|
|
produced_chars = dst - (coding->destination + coding->produced);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2008-05-27 15:56:59 +00:00
|
|
|
|
coding->produced_char += produced_chars;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->produced = dst - coding->destination;
|
|
|
|
|
return 0;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
|
|
|
|
|
Check if a text is encoded in a charset-based coding system. If it
|
|
|
|
|
is, return 1, else return 0. */
|
|
|
|
|
|
2000-12-13 23:24:37 +00:00
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_coding_charset (struct coding_system *coding,
|
|
|
|
|
struct coding_detection_info *detect_info)
|
1998-08-02 01:06:57 +00:00
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
const unsigned char *src = coding->source, *src_base;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0;
|
2008-10-21 02:28:20 +00:00
|
|
|
|
Lisp_Object attrs, valids, name;
|
2002-10-16 05:04:10 +00:00
|
|
|
|
int found = 0;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT head_ascii = coding->head_ascii;
|
2008-10-21 02:28:20 +00:00
|
|
|
|
int check_latin_extra = 0;
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->checked |= CATEGORY_MASK_CHARSET;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding = &coding_categories[coding_category_charset];
|
|
|
|
|
attrs = CODING_ID_ATTRS (coding->id);
|
|
|
|
|
valids = AREF (attrs, coding_attr_charset_valids);
|
2008-10-21 02:28:20 +00:00
|
|
|
|
name = CODING_ID_NAME (coding->id);
|
2011-01-22 18:56:06 -08:00
|
|
|
|
if (strncmp (SSDATA (SYMBOL_NAME (name)),
|
2009-02-28 13:52:03 +00:00
|
|
|
|
"iso-8859-", sizeof ("iso-8859-") - 1) == 0
|
2011-01-22 18:56:06 -08:00
|
|
|
|
|| strncmp (SSDATA (SYMBOL_NAME (name)),
|
2009-02-28 13:52:03 +00:00
|
|
|
|
"iso-latin-", sizeof ("iso-latin-") - 1) == 0)
|
2008-10-21 02:28:20 +00:00
|
|
|
|
check_latin_extra = 1;
|
2009-02-28 13:52:03 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
|
2006-11-08 04:28:29 +00:00
|
|
|
|
src += head_ascii;
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
while (1)
|
1998-08-02 01:06:57 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
2006-11-08 04:28:29 +00:00
|
|
|
|
Lisp_Object val;
|
|
|
|
|
struct charset *charset;
|
|
|
|
|
int dim, idx;
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
2003-12-29 07:52:49 +00:00
|
|
|
|
src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c < 0)
|
|
|
|
|
continue;
|
2006-11-08 04:28:29 +00:00
|
|
|
|
val = AREF (valids, c);
|
|
|
|
|
if (NILP (val))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
break;
|
2002-10-16 05:04:10 +00:00
|
|
|
|
if (c >= 0x80)
|
2008-10-21 02:28:20 +00:00
|
|
|
|
{
|
|
|
|
|
if (c < 0xA0
|
2009-02-28 13:52:03 +00:00
|
|
|
|
&& check_latin_extra
|
|
|
|
|
&& (!VECTORP (Vlatin_extra_code_table)
|
2009-02-28 13:37:33 +00:00
|
|
|
|
|| NILP (XVECTOR (Vlatin_extra_code_table)->contents[c])))
|
2008-10-21 02:28:20 +00:00
|
|
|
|
break;
|
|
|
|
|
found = CATEGORY_MASK_CHARSET;
|
|
|
|
|
}
|
2006-11-08 04:28:29 +00:00
|
|
|
|
if (INTEGERP (val))
|
|
|
|
|
{
|
|
|
|
|
charset = CHARSET_FROM_ID (XFASTINT (val));
|
|
|
|
|
dim = CHARSET_DIMENSION (charset);
|
|
|
|
|
for (idx = 1; idx < dim; idx++)
|
|
|
|
|
{
|
|
|
|
|
if (src == src_end)
|
|
|
|
|
goto too_short;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2011-05-01 16:37:08 -07:00
|
|
|
|
if (c < charset->code_space[(dim - 1 - idx) * 4]
|
|
|
|
|
|| c > charset->code_space[(dim - 1 - idx) * 4 + 1])
|
2006-11-08 04:28:29 +00:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (idx < dim)
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
idx = 1;
|
|
|
|
|
for (; CONSP (val); val = XCDR (val))
|
|
|
|
|
{
|
|
|
|
|
charset = CHARSET_FROM_ID (XFASTINT (XCAR (val)));
|
|
|
|
|
dim = CHARSET_DIMENSION (charset);
|
|
|
|
|
while (idx < dim)
|
|
|
|
|
{
|
|
|
|
|
if (src == src_end)
|
|
|
|
|
goto too_short;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
if (c < charset->code_space[(dim - 1 - idx) * 4]
|
|
|
|
|
|| c > charset->code_space[(dim - 1 - idx) * 4 + 1])
|
|
|
|
|
break;
|
|
|
|
|
idx++;
|
|
|
|
|
}
|
|
|
|
|
if (idx == dim)
|
|
|
|
|
{
|
|
|
|
|
val = Qnil;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (CONSP (val))
|
|
|
|
|
break;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2006-11-08 04:28:29 +00:00
|
|
|
|
too_short:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->rejected |= CATEGORY_MASK_CHARSET;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return 0;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info->found |= found;
|
|
|
|
|
return 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_coding_charset (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src = coding->source + coding->consumed;
|
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
|
|
|
|
const unsigned char *src_base;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf = coding->charbuf + coding->charbuf_used;
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* We may produce one charset annotation in one loop and one more at
|
2009-04-21 06:36:21 +00:00
|
|
|
|
the end. */
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int *charbuf_end
|
2009-04-21 06:36:21 +00:00
|
|
|
|
= coding->charbuf + coding->charbuf_size - (MAX_ANNOTATION_LENGTH * 2);
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT consumed_chars = 0, consumed_chars_base;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
2011-04-01 10:20:24 -07:00
|
|
|
|
Lisp_Object attrs = CODING_ID_ATTRS (coding->id);
|
|
|
|
|
Lisp_Object valids;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT char_offset = coding->produced_char;
|
|
|
|
|
EMACS_INT last_offset = char_offset;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int last_id = charset_ascii;
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
int eol_dos =
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
!inhibit_eol_conversion && EQ (CODING_ID_EOL_TYPE (coding->id), Qdos);
|
2008-03-02 08:05:14 +00:00
|
|
|
|
int byte_after_cr = -1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2002-05-08 04:19:41 +00:00
|
|
|
|
valids = AREF (attrs, coding_attr_charset_valids);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (1)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-05-08 04:19:41 +00:00
|
|
|
|
int c;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object val;
|
|
|
|
|
struct charset *charset;
|
|
|
|
|
int dim;
|
|
|
|
|
int len = 1;
|
|
|
|
|
unsigned code;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
src_base = src;
|
|
|
|
|
consumed_chars_base = consumed_chars;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (charbuf >= charbuf_end)
|
2009-01-07 06:49:50 +00:00
|
|
|
|
{
|
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
src_base--;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2008-03-02 08:05:14 +00:00
|
|
|
|
if (byte_after_cr >= 0)
|
|
|
|
|
{
|
|
|
|
|
c = byte_after_cr;
|
|
|
|
|
byte_after_cr = -1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ONE_MORE_BYTE (c);
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (eol_dos && c == '\r')
|
2008-03-02 08:05:14 +00:00
|
|
|
|
ONE_MORE_BYTE (byte_after_cr);
|
|
|
|
|
}
|
2003-12-29 07:52:49 +00:00
|
|
|
|
if (c < 0)
|
|
|
|
|
goto invalid_code;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
code = c;
|
|
|
|
|
|
|
|
|
|
val = AREF (valids, c);
|
2008-12-03 05:48:11 +00:00
|
|
|
|
if (! INTEGERP (val) && ! CONSP (val))
|
2003-12-02 01:40:27 +00:00
|
|
|
|
goto invalid_code;
|
|
|
|
|
if (INTEGERP (val))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
charset = CHARSET_FROM_ID (XFASTINT (val));
|
|
|
|
|
dim = CHARSET_DIMENSION (charset);
|
|
|
|
|
while (len < dim)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
code = (code << 8) | c;
|
|
|
|
|
len++;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_DECODE_CHAR (coding, src, src_base, src_end,
|
|
|
|
|
charset, code, c);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
/* VAL is a list of charset IDs. It is assured that the
|
|
|
|
|
list is sorted by charset dimensions (smaller one
|
|
|
|
|
comes first). */
|
|
|
|
|
while (CONSP (val))
|
2002-05-08 04:19:41 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
charset = CHARSET_FROM_ID (XFASTINT (XCAR (val)));
|
2002-05-22 11:14:45 +00:00
|
|
|
|
dim = CHARSET_DIMENSION (charset);
|
2002-05-23 10:56:58 +00:00
|
|
|
|
while (len < dim)
|
2002-05-08 04:19:41 +00:00
|
|
|
|
{
|
2002-05-22 11:30:00 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
|
|
|
|
code = (code << 8) | c;
|
2002-05-23 10:56:58 +00:00
|
|
|
|
len++;
|
2002-05-08 04:19:41 +00:00
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_DECODE_CHAR (coding, src, src_base,
|
|
|
|
|
src_end, charset, code, c);
|
|
|
|
|
if (c >= 0)
|
|
|
|
|
break;
|
|
|
|
|
val = XCDR (val);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (c < 0)
|
|
|
|
|
goto invalid_code;
|
|
|
|
|
if (charset->id != charset_ascii
|
|
|
|
|
&& last_id != charset->id)
|
|
|
|
|
{
|
|
|
|
|
if (last_id != charset_ascii)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
last_id = charset->id;
|
|
|
|
|
last_offset = char_offset;
|
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
*charbuf++ = c;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
char_offset++;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
invalid_code:
|
|
|
|
|
src = src_base;
|
|
|
|
|
consumed_chars = consumed_chars_base;
|
|
|
|
|
ONE_MORE_BYTE (c);
|
2003-12-29 07:52:49 +00:00
|
|
|
|
*charbuf++ = c < 0 ? -c : ASCII_BYTE_P (c) ? c : BYTE8_TO_CHAR (c);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
char_offset++;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->errors++;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
no_more_source:
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (last_id != charset_ascii)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->consumed_char += consumed_chars_base;
|
|
|
|
|
coding->consumed = src_base - coding->source;
|
|
|
|
|
coding->charbuf_used = charbuf - coding->charbuf;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
encode_coding_charset (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->dst_multibyte;
|
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = charbuf + coding->charbuf_used;
|
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
|
|
|
|
int safe_room = MAX_MULTIBYTE_LENGTH;
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT produced_chars = 0;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object attrs, charset_list;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int ascii_compatible;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
int c;
|
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ascii_compatible = ! NILP (CODING_ATTR_ASCII_COMPAT (attrs));
|
1998-02-20 01:40:47 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (charbuf < charbuf_end)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-05-08 04:19:41 +00:00
|
|
|
|
struct charset *charset;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unsigned code;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASSURE_DESTINATION (safe_room);
|
|
|
|
|
c = *charbuf++;
|
|
|
|
|
if (ascii_compatible && ASCII_CHAR_P (c))
|
|
|
|
|
EMIT_ONE_ASCII_BYTE (c);
|
2002-05-31 01:03:50 +00:00
|
|
|
|
else if (CHAR_BYTE8_P (c))
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-05-31 01:03:50 +00:00
|
|
|
|
c = CHAR_TO_BYTE8 (c);
|
|
|
|
|
EMIT_ONE_BYTE (c);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2011-12-05 15:39:26 +09:00
|
|
|
|
CODING_CHAR_CHARSET (coding, dst, dst_end, c, charset_list,
|
|
|
|
|
&code, charset);
|
|
|
|
|
|
2002-05-08 04:19:41 +00:00
|
|
|
|
if (charset)
|
|
|
|
|
{
|
|
|
|
|
if (CHARSET_DIMENSION (charset) == 1)
|
|
|
|
|
EMIT_ONE_BYTE (code);
|
|
|
|
|
else if (CHARSET_DIMENSION (charset) == 2)
|
|
|
|
|
EMIT_TWO_BYTES (code >> 8, code & 0xFF);
|
|
|
|
|
else if (CHARSET_DIMENSION (charset) == 3)
|
|
|
|
|
EMIT_THREE_BYTES (code >> 16, (code >> 8) & 0xFF, code & 0xFF);
|
|
|
|
|
else
|
|
|
|
|
EMIT_FOUR_BYTES (code >> 24, (code >> 16) & 0xFF,
|
|
|
|
|
(code >> 8) & 0xFF, code & 0xFF);
|
|
|
|
|
}
|
|
|
|
|
else
|
2002-05-20 12:10:04 +00:00
|
|
|
|
{
|
|
|
|
|
if (coding->mode & CODING_MODE_SAFE_ENCODING)
|
|
|
|
|
c = CODING_INHIBIT_CHARACTER_SUBSTITUTION;
|
|
|
|
|
else
|
|
|
|
|
c = coding->default_char;
|
|
|
|
|
EMIT_ONE_BYTE (c);
|
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->produced_char += produced_chars;
|
|
|
|
|
coding->produced = dst - coding->destination;
|
|
|
|
|
return 0;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
1998-08-02 01:06:57 +00:00
|
|
|
|
/*** 7. C library functions ***/
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Setup coding context CODING from information about CODING_SYSTEM.
|
|
|
|
|
If CODING_SYSTEM is nil, `no-conversion' is assumed. If
|
|
|
|
|
CODING_SYSTEM is invalid, signal an error. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1999-12-15 00:06:45 +00:00
|
|
|
|
void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
setup_coding_system (Lisp_Object coding_system, struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object attrs;
|
|
|
|
|
Lisp_Object eol_type;
|
|
|
|
|
Lisp_Object coding_type;
|
1997-10-21 10:43:40 +00:00
|
|
|
|
Lisp_Object val;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (NILP (coding_system))
|
2004-10-12 02:40:21 +00:00
|
|
|
|
coding_system = Qundecided;
|
2000-12-15 04:45:53 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHECK_CODING_SYSTEM_GET_ID (coding_system, coding->id);
|
1999-03-09 11:55:12 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
attrs = CODING_ID_ATTRS (coding->id);
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
eol_type = inhibit_eol_conversion ? Qunix : CODING_ID_EOL_TYPE (coding->id);
|
1999-03-09 11:55:12 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->mode = 0;
|
|
|
|
|
coding->head_ascii = -1;
|
2006-08-21 12:48:22 +00:00
|
|
|
|
if (VECTORP (eol_type))
|
|
|
|
|
coding->common_flags = (CODING_REQUIRE_DECODING_MASK
|
|
|
|
|
| CODING_REQUIRE_DETECTION_MASK);
|
|
|
|
|
else if (! EQ (eol_type, Qunix))
|
|
|
|
|
coding->common_flags = (CODING_REQUIRE_DECODING_MASK
|
|
|
|
|
| CODING_REQUIRE_ENCODING_MASK);
|
|
|
|
|
else
|
|
|
|
|
coding->common_flags = 0;
|
2003-05-29 13:17:04 +00:00
|
|
|
|
if (! NILP (CODING_ATTR_POST_READ (attrs)))
|
|
|
|
|
coding->common_flags |= CODING_REQUIRE_DECODING_MASK;
|
|
|
|
|
if (! NILP (CODING_ATTR_PRE_WRITE (attrs)))
|
|
|
|
|
coding->common_flags |= CODING_REQUIRE_ENCODING_MASK;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
if (! NILP (CODING_ATTR_FOR_UNIBYTE (attrs)))
|
|
|
|
|
coding->common_flags |= CODING_FOR_UNIBYTE_MASK;
|
1999-03-09 11:55:12 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = CODING_ATTR_SAFE_CHARSETS (attrs);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
coding->max_charset_id = SCHARS (val) - 1;
|
2009-02-22 15:48:02 +00:00
|
|
|
|
coding->safe_charsets = SDATA (val);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->default_char = XINT (CODING_ATTR_DEFAULT_CHAR (attrs));
|
2009-07-01 11:35:07 +00:00
|
|
|
|
coding->carryover_bytes = 0;
|
1997-10-21 10:43:40 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding_type = CODING_ATTR_TYPE (attrs);
|
|
|
|
|
if (EQ (coding_type, Qundecided))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->detector = NULL;
|
|
|
|
|
coding->decoder = decode_coding_raw_text;
|
|
|
|
|
coding->encoder = encode_coding_raw_text;
|
|
|
|
|
coding->common_flags |= CODING_REQUIRE_DETECTION_MASK;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (EQ (coding_type, Qiso_2022))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int i;
|
|
|
|
|
int flags = XINT (AREF (attrs, coding_attr_iso_flags));
|
|
|
|
|
|
|
|
|
|
/* Invoke graphic register 0 to plane 0. */
|
|
|
|
|
CODING_ISO_INVOCATION (coding, 0) = 0;
|
|
|
|
|
/* Invoke graphic register 1 to plane 1 if we can use 8-bit. */
|
|
|
|
|
CODING_ISO_INVOCATION (coding, 1)
|
|
|
|
|
= (flags & CODING_ISO_FLAG_SEVEN_BITS ? -1 : 1);
|
|
|
|
|
/* Setup the initial status of designation. */
|
|
|
|
|
for (i = 0; i < 4; i++)
|
|
|
|
|
CODING_ISO_DESIGNATION (coding, i) = CODING_ISO_INITIAL (coding, i);
|
|
|
|
|
/* Not single shifting initially. */
|
|
|
|
|
CODING_ISO_SINGLE_SHIFTING (coding) = 0;
|
|
|
|
|
/* Beginning of buffer should also be regarded as bol. */
|
|
|
|
|
CODING_ISO_BOL (coding) = 1;
|
|
|
|
|
coding->detector = detect_coding_iso_2022;
|
|
|
|
|
coding->decoder = decode_coding_iso_2022;
|
|
|
|
|
coding->encoder = encode_coding_iso_2022;
|
|
|
|
|
if (flags & CODING_ISO_FLAG_SAFE)
|
|
|
|
|
coding->mode |= CODING_MODE_SAFE_ENCODING;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
coding->common_flags
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK
|
|
|
|
|
| CODING_REQUIRE_FLUSHING_MASK);
|
|
|
|
|
if (flags & CODING_ISO_FLAG_COMPOSITION)
|
|
|
|
|
coding->common_flags |= CODING_ANNOTATE_COMPOSITION_MASK;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (flags & CODING_ISO_FLAG_DESIGNATION)
|
|
|
|
|
coding->common_flags |= CODING_ANNOTATE_CHARSET_MASK;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (flags & CODING_ISO_FLAG_FULL_SUPPORT)
|
|
|
|
|
{
|
|
|
|
|
setup_iso_safe_charsets (attrs);
|
|
|
|
|
val = CODING_ATTR_SAFE_CHARSETS (attrs);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
coding->max_charset_id = SCHARS (val) - 1;
|
2009-02-22 15:48:02 +00:00
|
|
|
|
coding->safe_charsets = SDATA (val);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
CODING_ISO_FLAGS (coding) = flags;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
CODING_ISO_CMP_STATUS (coding)->state = COMPOSING_NO;
|
|
|
|
|
CODING_ISO_CMP_STATUS (coding)->method = COMPOSITION_NO;
|
|
|
|
|
CODING_ISO_EXTSEGMENT_LEN (coding) = 0;
|
|
|
|
|
CODING_ISO_EMBEDDED_UTF_8 (coding) = 0;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (EQ (coding_type, Qcharset))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->detector = detect_coding_charset;
|
|
|
|
|
coding->decoder = decode_coding_charset;
|
|
|
|
|
coding->encoder = encode_coding_charset;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
coding->common_flags
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (EQ (coding_type, Qutf_8))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
val = AREF (attrs, coding_attr_utf_bom);
|
|
|
|
|
CODING_UTF_8_BOM (coding) = (CONSP (val) ? utf_detect_bom
|
|
|
|
|
: EQ (val, Qt) ? utf_with_bom
|
|
|
|
|
: utf_without_bom);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->detector = detect_coding_utf_8;
|
|
|
|
|
coding->decoder = decode_coding_utf_8;
|
|
|
|
|
coding->encoder = encode_coding_utf_8;
|
|
|
|
|
coding->common_flags
|
|
|
|
|
|= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
if (CODING_UTF_8_BOM (coding) == utf_detect_bom)
|
|
|
|
|
coding->common_flags |= CODING_REQUIRE_DETECTION_MASK;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
else if (EQ (coding_type, Qutf_16))
|
|
|
|
|
{
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
val = AREF (attrs, coding_attr_utf_bom);
|
|
|
|
|
CODING_UTF_16_BOM (coding) = (CONSP (val) ? utf_detect_bom
|
|
|
|
|
: EQ (val, Qt) ? utf_with_bom
|
|
|
|
|
: utf_without_bom);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = AREF (attrs, coding_attr_utf_16_endian);
|
2003-05-06 12:28:11 +00:00
|
|
|
|
CODING_UTF_16_ENDIAN (coding) = (EQ (val, Qbig) ? utf_16_big_endian
|
2002-03-01 01:17:24 +00:00
|
|
|
|
: utf_16_little_endian);
|
2002-03-08 00:19:39 +00:00
|
|
|
|
CODING_UTF_16_SURROGATE (coding) = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->detector = detect_coding_utf_16;
|
|
|
|
|
coding->decoder = decode_coding_utf_16;
|
|
|
|
|
coding->encoder = encode_coding_utf_16;
|
|
|
|
|
coding->common_flags
|
|
|
|
|
|= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
if (CODING_UTF_16_BOM (coding) == utf_detect_bom)
|
2003-05-06 12:28:11 +00:00
|
|
|
|
coding->common_flags |= CODING_REQUIRE_DETECTION_MASK;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (EQ (coding_type, Qccl))
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->detector = detect_coding_ccl;
|
|
|
|
|
coding->decoder = decode_coding_ccl;
|
|
|
|
|
coding->encoder = encode_coding_ccl;
|
1997-11-08 03:05:44 +00:00
|
|
|
|
coding->common_flags
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK
|
|
|
|
|
| CODING_REQUIRE_FLUSHING_MASK);
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (coding_type, Qemacs_mule))
|
|
|
|
|
{
|
|
|
|
|
coding->detector = detect_coding_emacs_mule;
|
|
|
|
|
coding->decoder = decode_coding_emacs_mule;
|
|
|
|
|
coding->encoder = encode_coding_emacs_mule;
|
1997-11-08 03:05:44 +00:00
|
|
|
|
coding->common_flags
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
coding->spec.emacs_mule.full_support = 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! NILP (AREF (attrs, coding_attr_emacs_mule_full))
|
|
|
|
|
&& ! EQ (CODING_ATTR_CHARSET_LIST (attrs), Vemacs_mule_charset_list))
|
|
|
|
|
{
|
|
|
|
|
Lisp_Object tail, safe_charsets;
|
|
|
|
|
int max_charset_id = 0;
|
|
|
|
|
|
|
|
|
|
for (tail = Vemacs_mule_charset_list; CONSP (tail);
|
|
|
|
|
tail = XCDR (tail))
|
|
|
|
|
if (max_charset_id < XFASTINT (XCAR (tail)))
|
|
|
|
|
max_charset_id = XFASTINT (XCAR (tail));
|
2009-02-22 15:48:02 +00:00
|
|
|
|
safe_charsets = make_uninit_string (max_charset_id + 1);
|
|
|
|
|
memset (SDATA (safe_charsets), 255, max_charset_id + 1);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (tail = Vemacs_mule_charset_list; CONSP (tail);
|
|
|
|
|
tail = XCDR (tail))
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SSET (safe_charsets, XFASTINT (XCAR (tail)), 0);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->max_charset_id = max_charset_id;
|
2009-02-22 15:48:02 +00:00
|
|
|
|
coding->safe_charsets = SDATA (safe_charsets);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
coding->spec.emacs_mule.full_support = 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
coding->spec.emacs_mule.cmp_status.state = COMPOSING_NO;
|
|
|
|
|
coding->spec.emacs_mule.cmp_status.method = COMPOSITION_NO;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
else if (EQ (coding_type, Qshift_jis))
|
|
|
|
|
{
|
|
|
|
|
coding->detector = detect_coding_sjis;
|
|
|
|
|
coding->decoder = decode_coding_sjis;
|
|
|
|
|
coding->encoder = encode_coding_sjis;
|
1997-11-08 03:05:44 +00:00
|
|
|
|
coding->common_flags
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (coding_type, Qbig5))
|
|
|
|
|
{
|
|
|
|
|
coding->detector = detect_coding_big5;
|
|
|
|
|
coding->decoder = decode_coding_big5;
|
|
|
|
|
coding->encoder = encode_coding_big5;
|
1997-11-08 03:05:44 +00:00
|
|
|
|
coding->common_flags
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
|
|
|
|
|
}
|
|
|
|
|
else /* EQ (coding_type, Qraw_text) */
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->detector = NULL;
|
|
|
|
|
coding->decoder = decode_coding_raw_text;
|
|
|
|
|
coding->encoder = encode_coding_raw_text;
|
2004-04-28 12:52:51 +00:00
|
|
|
|
if (! EQ (eol_type, Qunix))
|
|
|
|
|
{
|
|
|
|
|
coding->common_flags |= CODING_REQUIRE_DECODING_MASK;
|
|
|
|
|
if (! VECTORP (eol_type))
|
|
|
|
|
coding->common_flags |= CODING_REQUIRE_ENCODING_MASK;
|
|
|
|
|
}
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2004-12-11 02:12:49 +00:00
|
|
|
|
/* Return a list of charsets supported by CODING. */
|
|
|
|
|
|
|
|
|
|
Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
coding_charset_list (struct coding_system *coding)
|
2004-12-11 02:12:49 +00:00
|
|
|
|
{
|
2005-07-29 06:20:30 +00:00
|
|
|
|
Lisp_Object attrs, charset_list;
|
2004-12-11 02:12:49 +00:00
|
|
|
|
|
|
|
|
|
CODING_GET_INFO (coding, attrs, charset_list);
|
|
|
|
|
if (EQ (CODING_ATTR_TYPE (attrs), Qiso_2022))
|
|
|
|
|
{
|
|
|
|
|
int flags = XINT (AREF (attrs, coding_attr_iso_flags));
|
|
|
|
|
|
|
|
|
|
if (flags & CODING_ISO_FLAG_FULL_SUPPORT)
|
|
|
|
|
charset_list = Viso_2022_charset_list;
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (CODING_ATTR_TYPE (attrs), Qemacs_mule))
|
|
|
|
|
{
|
|
|
|
|
charset_list = Vemacs_mule_charset_list;
|
|
|
|
|
}
|
|
|
|
|
return charset_list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2009-02-04 01:52:39 +00:00
|
|
|
|
/* Return a list of charsets supported by CODING-SYSTEM. */
|
|
|
|
|
|
|
|
|
|
Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
coding_system_charset_list (Lisp_Object coding_system)
|
2009-02-04 01:52:39 +00:00
|
|
|
|
{
|
Use ptrdiff_t for hash table indexes.
* category.c (hash_get_category_set):
* ccl.c (ccl_driver):
* charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
* coding.c (coding_system_charset_list, detect_coding_system):
* coding.h (struct coding_system.id):
* composite.c (get_composition_id, gstring_lookup_cache):
* fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
* image.c (xpm_get_color_table_h):
* lisp.h (hash_lookup, hash_put):
* minibuf.c (Ftest_completion):
Use ptrdiff_t for hash table indexes, not int (which is too
narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
32-bit --with-wide-int hosts).
2011-07-18 23:07:07 -07:00
|
|
|
|
ptrdiff_t id;
|
2009-02-04 01:52:39 +00:00
|
|
|
|
Lisp_Object attrs, charset_list;
|
|
|
|
|
|
|
|
|
|
CHECK_CODING_SYSTEM_GET_ID (coding_system, id);
|
|
|
|
|
attrs = CODING_ID_ATTRS (id);
|
|
|
|
|
|
|
|
|
|
if (EQ (CODING_ATTR_TYPE (attrs), Qiso_2022))
|
|
|
|
|
{
|
|
|
|
|
int flags = XINT (AREF (attrs, coding_attr_iso_flags));
|
|
|
|
|
|
|
|
|
|
if (flags & CODING_ISO_FLAG_FULL_SUPPORT)
|
|
|
|
|
charset_list = Viso_2022_charset_list;
|
|
|
|
|
else
|
|
|
|
|
charset_list = CODING_ATTR_CHARSET_LIST (attrs);
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (CODING_ATTR_TYPE (attrs), Qemacs_mule))
|
|
|
|
|
{
|
|
|
|
|
charset_list = Vemacs_mule_charset_list;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
charset_list = CODING_ATTR_CHARSET_LIST (attrs);
|
|
|
|
|
}
|
|
|
|
|
return charset_list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Return raw-text or one of its subsidiaries that has the same
|
|
|
|
|
eol_type as CODING-SYSTEM. */
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
raw_text_coding_system (Lisp_Object coding_system)
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
2002-03-05 00:08:50 +00:00
|
|
|
|
Lisp_Object spec, attrs;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object eol_type, raw_text_eol_type;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2003-06-05 12:34:31 +00:00
|
|
|
|
if (NILP (coding_system))
|
|
|
|
|
return Qraw_text;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
spec = CODING_SYSTEM_SPEC (coding_system);
|
|
|
|
|
attrs = AREF (spec, 0);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (EQ (CODING_ATTR_TYPE (attrs), Qraw_text))
|
|
|
|
|
return coding_system;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
eol_type = AREF (spec, 2);
|
|
|
|
|
if (VECTORP (eol_type))
|
|
|
|
|
return Qraw_text;
|
|
|
|
|
spec = CODING_SYSTEM_SPEC (Qraw_text);
|
|
|
|
|
raw_text_eol_type = AREF (spec, 2);
|
|
|
|
|
return (EQ (eol_type, Qunix) ? AREF (raw_text_eol_type, 0)
|
|
|
|
|
: EQ (eol_type, Qdos) ? AREF (raw_text_eol_type, 1)
|
|
|
|
|
: AREF (raw_text_eol_type, 2));
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
1998-06-26 03:29:15 +00:00
|
|
|
|
|
2010-10-02 10:44:50 +09:00
|
|
|
|
/* If CODING_SYSTEM doesn't specify end-of-line format, return one of
|
|
|
|
|
the subsidiary that has the same eol-spec as PARENT (if it is not
|
|
|
|
|
nil and specifies end-of-line format) or the system's setting
|
2006-05-15 02:48:46 +00:00
|
|
|
|
(system_eol_type). */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
coding_inherit_eol_type (Lisp_Object coding_system, Lisp_Object parent)
|
1998-06-26 03:29:15 +00:00
|
|
|
|
{
|
2003-09-29 17:59:52 +00:00
|
|
|
|
Lisp_Object spec, eol_type;
|
1998-06-26 03:29:15 +00:00
|
|
|
|
|
2003-06-05 12:34:31 +00:00
|
|
|
|
if (NILP (coding_system))
|
|
|
|
|
coding_system = Qraw_text;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
spec = CODING_SYSTEM_SPEC (coding_system);
|
|
|
|
|
eol_type = AREF (spec, 2);
|
2006-05-15 02:48:46 +00:00
|
|
|
|
if (VECTORP (eol_type))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
Lisp_Object parent_eol_type;
|
|
|
|
|
|
2006-05-15 02:48:46 +00:00
|
|
|
|
if (! NILP (parent))
|
|
|
|
|
{
|
|
|
|
|
Lisp_Object parent_spec;
|
|
|
|
|
|
2006-08-21 12:48:22 +00:00
|
|
|
|
parent_spec = CODING_SYSTEM_SPEC (parent);
|
2006-05-15 02:48:46 +00:00
|
|
|
|
parent_eol_type = AREF (parent_spec, 2);
|
2010-10-02 10:44:50 +09:00
|
|
|
|
if (VECTORP (parent_eol_type))
|
2010-10-08 12:14:47 +02:00
|
|
|
|
parent_eol_type = system_eol_type;
|
2006-05-15 02:48:46 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
parent_eol_type = system_eol_type;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (EQ (parent_eol_type, Qunix))
|
|
|
|
|
coding_system = AREF (eol_type, 0);
|
|
|
|
|
else if (EQ (parent_eol_type, Qdos))
|
|
|
|
|
coding_system = AREF (eol_type, 1);
|
|
|
|
|
else if (EQ (parent_eol_type, Qmac))
|
|
|
|
|
coding_system = AREF (eol_type, 2);
|
1998-06-26 03:29:15 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return coding_system;
|
1998-06-26 03:29:15 +00:00
|
|
|
|
}
|
|
|
|
|
|
2010-09-30 13:28:34 +09:00
|
|
|
|
|
|
|
|
|
/* Check if text-conversion and eol-conversion of CODING_SYSTEM are
|
|
|
|
|
decided for writing to a process. If not, complement them, and
|
|
|
|
|
return a new coding system. */
|
|
|
|
|
|
|
|
|
|
Lisp_Object
|
2010-10-08 12:14:47 +02:00
|
|
|
|
complement_process_encoding_system (Lisp_Object coding_system)
|
2010-09-30 13:28:34 +09:00
|
|
|
|
{
|
2010-10-04 10:47:51 +09:00
|
|
|
|
Lisp_Object coding_base = Qnil, eol_base = Qnil;
|
|
|
|
|
Lisp_Object spec, attrs;
|
2010-10-08 09:43:16 +09:00
|
|
|
|
int i;
|
2010-09-30 13:28:34 +09:00
|
|
|
|
|
2010-10-08 09:43:16 +09:00
|
|
|
|
for (i = 0; i < 3; i++)
|
2010-09-30 13:28:34 +09:00
|
|
|
|
{
|
2010-10-08 09:43:16 +09:00
|
|
|
|
if (i == 1)
|
|
|
|
|
coding_system = CDR_SAFE (Vdefault_process_coding_system);
|
|
|
|
|
else if (i == 2)
|
|
|
|
|
coding_system = preferred_coding_system ();
|
|
|
|
|
spec = CODING_SYSTEM_SPEC (coding_system);
|
|
|
|
|
if (NILP (spec))
|
|
|
|
|
continue;
|
|
|
|
|
attrs = AREF (spec, 0);
|
|
|
|
|
if (NILP (coding_base) && ! EQ (CODING_ATTR_TYPE (attrs), Qundecided))
|
|
|
|
|
coding_base = CODING_ATTR_BASE_NAME (attrs);
|
|
|
|
|
if (NILP (eol_base) && ! VECTORP (AREF (spec, 2)))
|
|
|
|
|
eol_base = coding_system;
|
|
|
|
|
if (! NILP (coding_base) && ! NILP (eol_base))
|
|
|
|
|
break;
|
2010-09-30 13:28:34 +09:00
|
|
|
|
}
|
|
|
|
|
|
2010-10-08 09:43:16 +09:00
|
|
|
|
if (i > 0)
|
|
|
|
|
/* The original CODING_SYSTEM didn't specify text-conversion or
|
|
|
|
|
eol-conversion. Be sure that we return a fully complemented
|
|
|
|
|
coding system. */
|
|
|
|
|
coding_system = coding_inherit_eol_type (coding_base, eol_base);
|
|
|
|
|
return coding_system;
|
2010-09-30 13:28:34 +09:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
/* Emacs has a mechanism to automatically detect a coding system if it
|
|
|
|
|
is one of Emacs' internal format, ISO2022, SJIS, and BIG5. But,
|
|
|
|
|
it's impossible to distinguish some coding systems accurately
|
|
|
|
|
because they use the same range of codes. So, at first, coding
|
|
|
|
|
systems are categorized into 7, those are:
|
|
|
|
|
|
1997-05-16 00:43:29 +00:00
|
|
|
|
o coding-category-emacs-mule
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
The category for a coding system which has the same code range
|
|
|
|
|
as Emacs' internal format. Assigned the coding-system (Lisp
|
1997-05-16 00:43:29 +00:00
|
|
|
|
symbol) `emacs-mule' by default.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
o coding-category-sjis
|
|
|
|
|
|
|
|
|
|
The category for a coding system which has the same code range
|
|
|
|
|
as SJIS. Assigned the coding-system (Lisp
|
1997-07-15 08:21:17 +00:00
|
|
|
|
symbol) `japanese-shift-jis' by default.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
o coding-category-iso-7
|
|
|
|
|
|
|
|
|
|
The category for a coding system which has the same code range
|
1997-07-15 08:21:17 +00:00
|
|
|
|
as ISO2022 of 7-bit environment. This doesn't use any locking
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
shift and single shift functions. This can encode/decode all
|
|
|
|
|
charsets. Assigned the coding-system (Lisp symbol)
|
|
|
|
|
`iso-2022-7bit' by default.
|
|
|
|
|
|
|
|
|
|
o coding-category-iso-7-tight
|
|
|
|
|
|
|
|
|
|
Same as coding-category-iso-7 except that this can
|
|
|
|
|
encode/decode only the specified charsets.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
o coding-category-iso-8-1
|
|
|
|
|
|
|
|
|
|
The category for a coding system which has the same code range
|
|
|
|
|
as ISO2022 of 8-bit environment and graphic plane 1 used only
|
1997-07-15 08:21:17 +00:00
|
|
|
|
for DIMENSION1 charset. This doesn't use any locking shift
|
|
|
|
|
and single shift functions. Assigned the coding-system (Lisp
|
|
|
|
|
symbol) `iso-latin-1' by default.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
o coding-category-iso-8-2
|
|
|
|
|
|
|
|
|
|
The category for a coding system which has the same code range
|
|
|
|
|
as ISO2022 of 8-bit environment and graphic plane 1 used only
|
1997-07-15 08:21:17 +00:00
|
|
|
|
for DIMENSION2 charset. This doesn't use any locking shift
|
|
|
|
|
and single shift functions. Assigned the coding-system (Lisp
|
|
|
|
|
symbol) `japanese-iso-8bit' by default.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1997-07-15 08:21:17 +00:00
|
|
|
|
o coding-category-iso-7-else
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
The category for a coding system which has the same code range
|
2010-10-12 21:52:05 +09:00
|
|
|
|
as ISO2022 of 7-bit environment but uses locking shift or
|
1997-07-15 08:21:17 +00:00
|
|
|
|
single shift functions. Assigned the coding-system (Lisp
|
|
|
|
|
symbol) `iso-2022-7bit-lock' by default.
|
|
|
|
|
|
|
|
|
|
o coding-category-iso-8-else
|
|
|
|
|
|
|
|
|
|
The category for a coding system which has the same code range
|
2010-10-12 21:52:05 +09:00
|
|
|
|
as ISO2022 of 8-bit environment but uses locking shift or
|
1997-07-15 08:21:17 +00:00
|
|
|
|
single shift functions. Assigned the coding-system (Lisp
|
|
|
|
|
symbol) `iso-2022-8bit-ss2' by default.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
o coding-category-big5
|
|
|
|
|
|
|
|
|
|
The category for a coding system which has the same code range
|
|
|
|
|
as BIG5. Assigned the coding-system (Lisp symbol)
|
1997-02-27 11:10:42 +00:00
|
|
|
|
`cn-big5' by default.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2000-03-07 06:17:54 +00:00
|
|
|
|
o coding-category-utf-8
|
|
|
|
|
|
|
|
|
|
The category for a coding system which has the same code range
|
2004-03-09 02:30:13 +00:00
|
|
|
|
as UTF-8 (cf. RFC3629). Assigned the coding-system (Lisp
|
2000-03-07 06:17:54 +00:00
|
|
|
|
symbol) `utf-8' by default.
|
|
|
|
|
|
|
|
|
|
o coding-category-utf-16-be
|
|
|
|
|
|
|
|
|
|
The category for a coding system in which a text has an
|
|
|
|
|
Unicode signature (cf. Unicode Standard) in the order of BIG
|
|
|
|
|
endian at the head. Assigned the coding-system (Lisp symbol)
|
|
|
|
|
`utf-16-be' by default.
|
|
|
|
|
|
|
|
|
|
o coding-category-utf-16-le
|
|
|
|
|
|
|
|
|
|
The category for a coding system in which a text has an
|
|
|
|
|
Unicode signature (cf. Unicode Standard) in the order of
|
|
|
|
|
LITTLE endian at the head. Assigned the coding-system (Lisp
|
|
|
|
|
symbol) `utf-16-le' by default.
|
|
|
|
|
|
1998-08-02 01:06:57 +00:00
|
|
|
|
o coding-category-ccl
|
|
|
|
|
|
|
|
|
|
The category for a coding system of which encoder/decoder is
|
|
|
|
|
written in CCL programs. The default value is nil, i.e., no
|
|
|
|
|
coding system is assigned.
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
o coding-category-binary
|
|
|
|
|
|
|
|
|
|
The category for a coding system not categorized in any of the
|
|
|
|
|
above. Assigned the coding-system (Lisp symbol)
|
1997-02-27 11:10:42 +00:00
|
|
|
|
`no-conversion' by default.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
Each of them is a Lisp symbol and the value is an actual
|
2002-03-01 01:17:24 +00:00
|
|
|
|
`coding-system's (this is also a Lisp symbol) assigned by a user.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
What Emacs does actually is to detect a category of coding system.
|
|
|
|
|
Then, it uses a `coding-system' assigned to it. If Emacs can't
|
2002-03-01 01:17:24 +00:00
|
|
|
|
decide only one possible category, it selects a category of the
|
1997-02-20 07:02:49 +00:00
|
|
|
|
highest priority. Priorities of categories are also specified by a
|
|
|
|
|
user in a Lisp variable `coding-category-list'.
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define EOL_SEEN_NONE 0
|
|
|
|
|
#define EOL_SEEN_LF 1
|
|
|
|
|
#define EOL_SEEN_CR 2
|
|
|
|
|
#define EOL_SEEN_CRLF 4
|
1998-05-25 08:08:07 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/* Detect how end-of-line of a text of length SRC_BYTES pointed by
|
|
|
|
|
SOURCE is encoded. If CATEGORY is one of
|
|
|
|
|
coding_category_utf_16_XXXX, assume that CR and LF are encoded by
|
|
|
|
|
two-byte, else they are encoded by one-byte.
|
|
|
|
|
|
|
|
|
|
Return one of EOL_SEEN_XXX. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1997-08-05 18:19:33 +00:00
|
|
|
|
#define MAX_EOL_CHECK_COUNT 3
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_eol (const unsigned char *source, EMACS_INT src_bytes,
|
|
|
|
|
enum coding_category category)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2004-03-11 11:21:39 +00:00
|
|
|
|
const unsigned char *src = source, *src_end = src + src_bytes;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
unsigned char c;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int total = 0;
|
|
|
|
|
int eol_seen = EOL_SEEN_NONE;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-10-10 09:05:37 +00:00
|
|
|
|
if ((1 << category) & CATEGORY_MASK_UTF_16)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int msb, lsb;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
2002-10-10 09:05:37 +00:00
|
|
|
|
msb = category == (coding_category_utf_16_le
|
|
|
|
|
| coding_category_utf_16_le_nosig);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
lsb = 1 - msb;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (src + 1 < src_end)
|
2000-03-07 06:17:54 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
c = src[lsb];
|
|
|
|
|
if (src[msb] == 0 && (c == '\n' || c == '\r'))
|
2000-03-07 06:17:54 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int this_eol;
|
|
|
|
|
|
|
|
|
|
if (c == '\n')
|
|
|
|
|
this_eol = EOL_SEEN_LF;
|
|
|
|
|
else if (src + 3 >= src_end
|
|
|
|
|
|| src[msb + 2] != 0
|
|
|
|
|
|| src[lsb + 2] != '\n')
|
|
|
|
|
this_eol = EOL_SEEN_CR;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
else
|
2009-01-30 15:46:03 +00:00
|
|
|
|
{
|
|
|
|
|
this_eol = EOL_SEEN_CRLF;
|
|
|
|
|
src += 2;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
if (eol_seen == EOL_SEEN_NONE)
|
|
|
|
|
/* This is the first end-of-line. */
|
|
|
|
|
eol_seen = this_eol;
|
|
|
|
|
else if (eol_seen != this_eol)
|
2000-03-07 06:17:54 +00:00
|
|
|
|
{
|
2009-01-30 15:46:03 +00:00
|
|
|
|
/* The found type is different from what found before.
|
|
|
|
|
Allow for stray ^M characters in DOS EOL files. */
|
2010-12-19 00:43:42 -05:00
|
|
|
|
if ((eol_seen == EOL_SEEN_CR && this_eol == EOL_SEEN_CRLF)
|
|
|
|
|
|| (eol_seen == EOL_SEEN_CRLF
|
|
|
|
|
&& this_eol == EOL_SEEN_CR))
|
2009-01-30 15:46:03 +00:00
|
|
|
|
eol_seen = EOL_SEEN_CRLF;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
eol_seen = EOL_SEEN_LF;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (++total == MAX_EOL_CHECK_COUNT)
|
|
|
|
|
break;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
src += 2;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
1997-04-07 07:12:13 +00:00
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
else
|
2010-12-19 00:43:42 -05:00
|
|
|
|
while (src < src_end)
|
|
|
|
|
{
|
|
|
|
|
c = *src++;
|
|
|
|
|
if (c == '\n' || c == '\r')
|
|
|
|
|
{
|
|
|
|
|
int this_eol;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2010-12-19 00:43:42 -05:00
|
|
|
|
if (c == '\n')
|
|
|
|
|
this_eol = EOL_SEEN_LF;
|
|
|
|
|
else if (src >= src_end || *src != '\n')
|
|
|
|
|
this_eol = EOL_SEEN_CR;
|
|
|
|
|
else
|
|
|
|
|
this_eol = EOL_SEEN_CRLF, src++;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2010-12-19 00:43:42 -05:00
|
|
|
|
if (eol_seen == EOL_SEEN_NONE)
|
|
|
|
|
/* This is the first end-of-line. */
|
|
|
|
|
eol_seen = this_eol;
|
|
|
|
|
else if (eol_seen != this_eol)
|
|
|
|
|
{
|
|
|
|
|
/* The found type is different from what found before.
|
|
|
|
|
Allow for stray ^M characters in DOS EOL files. */
|
|
|
|
|
if ((eol_seen == EOL_SEEN_CR && this_eol == EOL_SEEN_CRLF)
|
|
|
|
|
|| (eol_seen == EOL_SEEN_CRLF && this_eol == EOL_SEEN_CR))
|
|
|
|
|
eol_seen = EOL_SEEN_CRLF;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
eol_seen = EOL_SEEN_LF;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (++total == MAX_EOL_CHECK_COUNT)
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return eol_seen;
|
2000-08-16 01:37:20 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
static Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
adjust_coding_eol_type (struct coding_system *coding, int eol_seen)
|
2000-08-16 01:37:20 +00:00
|
|
|
|
{
|
2002-03-05 00:08:50 +00:00
|
|
|
|
Lisp_Object eol_type;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
eol_type = CODING_ID_EOL_TYPE (coding->id);
|
|
|
|
|
if (eol_seen & EOL_SEEN_LF)
|
2003-12-02 01:40:27 +00:00
|
|
|
|
{
|
|
|
|
|
coding->id = CODING_SYSTEM_ID (AREF (eol_type, 0));
|
|
|
|
|
eol_type = Qunix;
|
|
|
|
|
}
|
2002-07-17 10:21:01 +00:00
|
|
|
|
else if (eol_seen & EOL_SEEN_CRLF)
|
2003-12-02 01:40:27 +00:00
|
|
|
|
{
|
|
|
|
|
coding->id = CODING_SYSTEM_ID (AREF (eol_type, 1));
|
|
|
|
|
eol_type = Qdos;
|
|
|
|
|
}
|
2002-07-17 10:21:01 +00:00
|
|
|
|
else if (eol_seen & EOL_SEEN_CR)
|
2003-12-02 01:40:27 +00:00
|
|
|
|
{
|
|
|
|
|
coding->id = CODING_SYSTEM_ID (AREF (eol_type, 2));
|
|
|
|
|
eol_type = Qmac;
|
|
|
|
|
}
|
|
|
|
|
return eol_type;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Detect how a text specified in CODING is encoded. If a coding
|
|
|
|
|
system is detected, update fields of CODING by the detected coding
|
|
|
|
|
system. */
|
2000-12-13 23:24:37 +00:00
|
|
|
|
|
2011-04-10 23:58:57 -07:00
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
detect_coding (struct coding_system *coding)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src, *src_end;
|
2009-02-19 02:43:38 +00:00
|
|
|
|
int saved_mode = coding->mode;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->consumed = coding->consumed_char = 0;
|
|
|
|
|
coding->produced = coding->produced_char = 0;
|
|
|
|
|
coding_set_source (coding);
|
2000-12-28 07:03:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
src_end = coding->source + coding->src_bytes;
|
2008-06-04 07:53:59 +00:00
|
|
|
|
coding->head_ascii = 0;
|
2000-12-28 07:03:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* If we have not yet decided the text encoding type, detect it
|
|
|
|
|
now. */
|
|
|
|
|
if (EQ (CODING_ATTR_TYPE (CODING_ID_ATTRS (coding->id)), Qundecided))
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c, i;
|
2004-09-13 00:41:15 +00:00
|
|
|
|
struct coding_detection_info detect_info;
|
2008-04-03 12:31:27 +00:00
|
|
|
|
int null_byte_found = 0, eight_bit_found = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2004-09-13 00:41:15 +00:00
|
|
|
|
detect_info.checked = detect_info.found = detect_info.rejected = 0;
|
2008-04-03 12:31:27 +00:00
|
|
|
|
for (src = coding->source; src < src_end; src++)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
c = *src;
|
2004-09-13 00:41:15 +00:00
|
|
|
|
if (c & 0x80)
|
|
|
|
|
{
|
2008-04-03 12:31:27 +00:00
|
|
|
|
eight_bit_found = 1;
|
|
|
|
|
if (null_byte_found)
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else if (c < 0x20)
|
|
|
|
|
{
|
|
|
|
|
if ((c == ISO_CODE_ESC || c == ISO_CODE_SI || c == ISO_CODE_SO)
|
|
|
|
|
&& ! inhibit_iso_escape_detection
|
|
|
|
|
&& ! detect_info.checked)
|
2004-09-13 00:41:15 +00:00
|
|
|
|
{
|
2008-04-03 12:31:27 +00:00
|
|
|
|
if (detect_coding_iso_2022 (coding, &detect_info))
|
|
|
|
|
{
|
|
|
|
|
/* We have scanned the whole data. */
|
|
|
|
|
if (! (detect_info.rejected & CATEGORY_MASK_ISO_7_ELSE))
|
2008-06-04 07:53:59 +00:00
|
|
|
|
{
|
|
|
|
|
/* We didn't find an 8-bit code. We may
|
|
|
|
|
have found a null-byte, but it's very
|
Make variable forwarding explicit rather the using special values.
Basically, this makes the structure of buffer-local values and object
forwarding explicit in the type of Lisp_Symbols rather than use
special Lisp_Objects for that. This tends to lead to slightly more
verbose code, but is more C-like, simpler, and makes it easier to make
sure we handled all cases, among other things by letting the compiler
help us check it.
* lisp.h (enum Lisp_Misc_Type, union Lisp_Misc):
Removing forwarding objects.
(enum Lisp_Fwd_Type, enum symbol_redirect, union Lisp_Fwd): New types.
(struct Lisp_Symbol): Make the various forms of variable-forwarding
explicit rather than hiding them inside Lisp_Object "values".
(XFWDTYPE): New macro.
(XINTFWD, XBOOLFWD, XOBJFWD, XKBOARD_OBJFWD): Redefine.
(XBUFFER_LOCAL_VALUE): Remove.
(SYMBOL_VAL, SYMBOL_ALIAS, SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL)
(SET_SYMBOL_ALIAS, SET_SYMBOL_BLV, SET_SYMBOL_FWD): New macros.
(SYMBOL_VALUE, SET_SYMBOL_VALUE): Remove.
(struct Lisp_Intfwd, struct Lisp_Boolfwd, struct Lisp_Objfwd)
(struct Lisp_Buffer_Objfwd, struct Lisp_Kboard_Objfwd):
Remove the Lisp_Misc_* header.
(struct Lisp_Buffer_Local_Value): Redefine.
(BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): New macros.
(struct Lisp_Misc_Any): Add filler to get the right size.
(struct Lisp_Free): Use struct Lisp_Misc_Any rather than struct
Lisp_Intfwd.
(DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
(DEFVAR_KBOARD): Allocate a forwarding object.
* data.c (do_blv_forwarding, store_blv_forwarding): New macros.
(let_shadows_global_binding_p): New function.
(union Lisp_Val_Fwd): New type.
(make_blv): New function.
(swap_in_symval_forwarding, indirect_variable, do_symval_forwarding)
(store_symval_forwarding, swap_in_global_binding, Fboundp)
(swap_in_symval_forwarding, find_symbol_value, Fset)
(let_shadows_buffer_binding_p, set_internal, default_value)
(Fset_default, Fmake_variable_buffer_local, Fmake_local_variable)
(Fkill_local_variable, Fmake_variable_frame_local)
(Flocal_variable_p, Flocal_variable_if_set_p)
(Fvariable_binding_locus):
* xdisp.c (select_frame_for_redisplay):
* lread.c (Fintern, Funintern, init_obarray, defvar_int)
(defvar_bool, defvar_lisp_nopro, defvar_lisp, defvar_kboard):
* frame.c (store_frame_param):
* eval.c (Fdefvaralias, Fuser_variable_p, specbind, unbind_to):
* bytecode.c (Fbyte_code) <varref, varset>: Adapt to the new symbol
value structure.
* buffer.c (PER_BUFFER_SYMBOL): Move from buffer.h.
(clone_per_buffer_values): Only adjust markers into the current buffer.
(reset_buffer_local_variables): PER_BUFFER_IDX is never -2.
(Fbuffer_local_value, set_buffer_internal_1)
(swap_out_buffer_local_variables):
Adapt to the new symbol value structure.
(DEFVAR_PER_BUFFER): Allocate a Lisp_Buffer_Objfwd object.
(defvar_per_buffer): Take a new arg for the fwd object.
(buffer_lisp_local_variables): Return a proper alist (different fix
for bug#4138).
* alloc.c (Fmake_symbol): Use SET_SYMBOL_VAL.
(Fgarbage_collect): Don't handle buffer_defaults specially.
(mark_object): Handle new symbol value structure rather than the old
special Lisp_Misc_* objects.
(gc_sweep) <symbols>: Free also the buffer-local-value objects.
* term.c (set_tty_color_mode):
* bidi.c (bidi_initialize): Don't access the ->value field directly.
* buffer.h (PER_BUFFER_VAR_OFFSET): Don't bother with
a buffer_local_flags.
* print.c (print_object): Get rid of impossible forwarding objects.
2010-04-19 21:50:52 -04:00
|
|
|
|
rare that a binary file conforms to
|
2008-06-04 07:53:59 +00:00
|
|
|
|
ISO-2022. */
|
|
|
|
|
src = src_end;
|
|
|
|
|
coding->head_ascii = src - coding->source;
|
|
|
|
|
}
|
|
|
|
|
detect_info.rejected |= ~CATEGORY_MASK_ISO_ESCAPE;
|
2008-04-03 12:31:27 +00:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2009-01-10 10:41:23 +00:00
|
|
|
|
else if (! c && !inhibit_null_byte_detection)
|
2008-04-03 12:31:27 +00:00
|
|
|
|
{
|
|
|
|
|
null_byte_found = 1;
|
|
|
|
|
if (eight_bit_found)
|
|
|
|
|
break;
|
2004-09-13 00:41:15 +00:00
|
|
|
|
}
|
2008-06-05 11:35:10 +00:00
|
|
|
|
if (! eight_bit_found)
|
|
|
|
|
coding->head_ascii++;
|
2004-09-13 00:41:15 +00:00
|
|
|
|
}
|
2008-06-05 11:35:10 +00:00
|
|
|
|
else if (! eight_bit_found)
|
2008-06-04 07:53:59 +00:00
|
|
|
|
coding->head_ascii++;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2008-04-03 12:31:27 +00:00
|
|
|
|
if (null_byte_found || eight_bit_found
|
|
|
|
|
|| coding->head_ascii < coding->src_bytes
|
2004-09-13 00:41:15 +00:00
|
|
|
|
|| detect_info.found)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
enum coding_category category;
|
|
|
|
|
struct coding_system *this;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2004-09-13 00:41:15 +00:00
|
|
|
|
if (coding->head_ascii == coding->src_bytes)
|
|
|
|
|
/* As all bytes are 7-bit, we can ignore non-ISO-2022 codings. */
|
|
|
|
|
for (i = 0; i < coding_category_raw_text; i++)
|
|
|
|
|
{
|
|
|
|
|
category = coding_priorities[i];
|
|
|
|
|
this = coding_categories + category;
|
|
|
|
|
if (detect_info.found & (1 << category))
|
2003-12-02 01:40:27 +00:00
|
|
|
|
break;
|
2004-09-13 00:41:15 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
2008-04-03 12:31:27 +00:00
|
|
|
|
{
|
|
|
|
|
if (null_byte_found)
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
{
|
2008-04-03 12:31:27 +00:00
|
|
|
|
detect_info.checked |= ~CATEGORY_MASK_UTF_16;
|
|
|
|
|
detect_info.rejected |= ~CATEGORY_MASK_UTF_16;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
}
|
2008-04-03 12:31:27 +00:00
|
|
|
|
for (i = 0; i < coding_category_raw_text; i++)
|
|
|
|
|
{
|
|
|
|
|
category = coding_priorities[i];
|
|
|
|
|
this = coding_categories + category;
|
|
|
|
|
if (this->id < 0)
|
|
|
|
|
{
|
|
|
|
|
/* No coding system of this category is defined. */
|
|
|
|
|
detect_info.rejected |= (1 << category);
|
|
|
|
|
}
|
|
|
|
|
else if (category >= coding_category_raw_text)
|
|
|
|
|
continue;
|
|
|
|
|
else if (detect_info.checked & (1 << category))
|
|
|
|
|
{
|
|
|
|
|
if (detect_info.found & (1 << category))
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else if ((*(this->detector)) (coding, &detect_info)
|
|
|
|
|
&& detect_info.found & (1 << category))
|
|
|
|
|
{
|
|
|
|
|
if (category == coding_category_utf_16_auto)
|
|
|
|
|
{
|
|
|
|
|
if (detect_info.found & CATEGORY_MASK_UTF_16_LE)
|
|
|
|
|
category = coding_category_utf_16_le;
|
|
|
|
|
else
|
|
|
|
|
category = coding_category_utf_16_be;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2008-06-04 07:53:59 +00:00
|
|
|
|
|
|
|
|
|
if (i < coding_category_raw_text)
|
|
|
|
|
setup_coding_system (CODING_ID_NAME (this->id), coding);
|
|
|
|
|
else if (null_byte_found)
|
|
|
|
|
setup_coding_system (Qno_conversion, coding);
|
|
|
|
|
else if ((detect_info.rejected & CATEGORY_MASK_ANY)
|
|
|
|
|
== CATEGORY_MASK_ANY)
|
|
|
|
|
setup_coding_system (Qraw_text, coding);
|
|
|
|
|
else if (detect_info.rejected)
|
|
|
|
|
for (i = 0; i < coding_category_raw_text; i++)
|
|
|
|
|
if (! (detect_info.rejected & (1 << coding_priorities[i])))
|
|
|
|
|
{
|
|
|
|
|
this = coding_categories + coding_priorities[i];
|
|
|
|
|
setup_coding_system (CODING_ID_NAME (this->id), coding);
|
|
|
|
|
break;
|
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
else if (XINT (CODING_ATTR_CATEGORY (CODING_ID_ATTRS (coding->id)))
|
|
|
|
|
== coding_category_utf_8_auto)
|
|
|
|
|
{
|
|
|
|
|
Lisp_Object coding_systems;
|
|
|
|
|
struct coding_detection_info detect_info;
|
|
|
|
|
|
|
|
|
|
coding_systems
|
|
|
|
|
= AREF (CODING_ID_ATTRS (coding->id), coding_attr_utf_bom);
|
|
|
|
|
detect_info.found = detect_info.rejected = 0;
|
|
|
|
|
coding->head_ascii = 0;
|
|
|
|
|
if (CONSP (coding_systems)
|
|
|
|
|
&& detect_coding_utf_8 (coding, &detect_info))
|
|
|
|
|
{
|
|
|
|
|
if (detect_info.found & CATEGORY_MASK_UTF_8_SIG)
|
|
|
|
|
setup_coding_system (XCAR (coding_systems), coding);
|
|
|
|
|
else
|
|
|
|
|
setup_coding_system (XCDR (coding_systems), coding);
|
|
|
|
|
}
|
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
else if (XINT (CODING_ATTR_CATEGORY (CODING_ID_ATTRS (coding->id)))
|
|
|
|
|
== coding_category_utf_16_auto)
|
2003-05-06 12:28:11 +00:00
|
|
|
|
{
|
|
|
|
|
Lisp_Object coding_systems;
|
|
|
|
|
struct coding_detection_info detect_info;
|
|
|
|
|
|
|
|
|
|
coding_systems
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
= AREF (CODING_ID_ATTRS (coding->id), coding_attr_utf_bom);
|
2003-05-06 12:28:11 +00:00
|
|
|
|
detect_info.found = detect_info.rejected = 0;
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
coding->head_ascii = 0;
|
2003-05-06 12:28:11 +00:00
|
|
|
|
if (CONSP (coding_systems)
|
2003-12-02 01:40:27 +00:00
|
|
|
|
&& detect_coding_utf_16 (coding, &detect_info))
|
2003-05-06 12:28:11 +00:00
|
|
|
|
{
|
|
|
|
|
if (detect_info.found & CATEGORY_MASK_UTF_16_LE)
|
|
|
|
|
setup_coding_system (XCAR (coding_systems), coding);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
else if (detect_info.found & CATEGORY_MASK_UTF_16_BE)
|
2003-05-06 12:28:11 +00:00
|
|
|
|
setup_coding_system (XCDR (coding_systems), coding);
|
|
|
|
|
}
|
|
|
|
|
}
|
2009-02-19 02:43:38 +00:00
|
|
|
|
coding->mode = saved_mode;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2000-06-19 05:18:09 +00:00
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_eol (struct coding_system *coding)
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object eol_type;
|
|
|
|
|
unsigned char *p, *pbeg, *pend;
|
2008-04-08 20:18:14 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
eol_type = CODING_ID_EOL_TYPE (coding->id);
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
if (EQ (eol_type, Qunix) || inhibit_eol_conversion)
|
2003-12-02 01:40:27 +00:00
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (NILP (coding->dst_object))
|
|
|
|
|
pbeg = coding->destination;
|
|
|
|
|
else
|
|
|
|
|
pbeg = BYTE_POS_ADDR (coding->dst_pos_byte);
|
|
|
|
|
pend = pbeg + coding->produced;
|
|
|
|
|
|
|
|
|
|
if (VECTORP (eol_type))
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int eol_seen = EOL_SEEN_NONE;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
for (p = pbeg; p < pend; p++)
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (*p == '\n')
|
|
|
|
|
eol_seen |= EOL_SEEN_LF;
|
|
|
|
|
else if (*p == '\r')
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (p + 1 < pend && *(p + 1) == '\n')
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
eol_seen |= EOL_SEEN_CRLF;
|
|
|
|
|
p++;
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
eol_seen |= EOL_SEEN_CR;
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2009-01-30 15:46:03 +00:00
|
|
|
|
/* Handle DOS-style EOLs in a file with stray ^M characters. */
|
|
|
|
|
if ((eol_seen & EOL_SEEN_CRLF) != 0
|
|
|
|
|
&& (eol_seen & EOL_SEEN_CR) != 0
|
|
|
|
|
&& (eol_seen & EOL_SEEN_LF) == 0)
|
|
|
|
|
eol_seen = EOL_SEEN_CRLF;
|
|
|
|
|
else if (eol_seen != EOL_SEEN_NONE
|
2003-12-02 01:40:27 +00:00
|
|
|
|
&& eol_seen != EOL_SEEN_LF
|
|
|
|
|
&& eol_seen != EOL_SEEN_CRLF
|
|
|
|
|
&& eol_seen != EOL_SEEN_CR)
|
|
|
|
|
eol_seen = EOL_SEEN_LF;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (eol_seen != EOL_SEEN_NONE)
|
2003-12-02 01:40:27 +00:00
|
|
|
|
eol_type = adjust_coding_eol_type (coding, eol_seen);
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (EQ (eol_type, Qmac))
|
1997-08-28 10:51:12 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
for (p = pbeg; p < pend; p++)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (*p == '\r')
|
|
|
|
|
*p = '\n';
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
else if (EQ (eol_type, Qdos))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT n = 0;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (NILP (coding->dst_object))
|
|
|
|
|
{
|
2006-04-07 05:26:46 +00:00
|
|
|
|
/* Start deleting '\r' from the tail to minimize the memory
|
|
|
|
|
movement. */
|
2003-12-02 01:40:27 +00:00
|
|
|
|
for (p = pend - 2; p >= pbeg; p--)
|
|
|
|
|
if (*p == '\r')
|
|
|
|
|
{
|
Replace bcopy, bzero, bcmp by memcpy, memmove, memset, memcmp
* alloc.c (overrun_check_malloc, overrun_check_realloc)
(overrun_check_free, xstrdup, allocate_string)
(allocate_string_data, compact_small_strings, Fmake_string)
(make_unibyte_string, make_multibyte_string)
(make_string_from_bytes, make_specified_string, make_float)
(Fcons, allocate_terminal, allocate_frame, make_pure_string)
(Fgarbage_collect): Replace bcopy, safe_bcopy, bzero, bcmp by
memcpy, memmove, memset, memcmp.
* atimer.c (start_atimer, set_alarm): Likewise.
* buffer.c (clone_per_buffer_values, report_overlay_modification)
(mmap_realloc, init_buffer_once): Likewise.
* callint.c (Fcall_interactively): Likewise.
* callproc.c (Fcall_process, Fcall_process_region, child_setup)
(getenv_internal_1): Likewise.
* casefiddle.c (casify_object): Likewise.
* ccl.c (ccl_driver): Likewise.
* character.c (str_as_multibyte, str_to_multibyte): Likewise.
* charset.c (load_charset_map_from_file)
(load_charset_map_from_file, load_charset_map_from_vector)
(Fdefine_charset_internal): Likewise.
* cm.c (Wcm_clear): Likewise.
* coding.c (decode_eol, decode_coding_object)
(Fset_coding_system_priority, make_subsidiaries): Likewise.
* data.c (Faset): Likewise.
* dired.c (directory_files_internal, file_name_completion_stat):
Likewise.
* dispnew.c (new_glyph_matrix, adjust_glyph_matrix)
(clear_glyph_row, copy_row_except_pointers)
(copy_glyph_row_contents, new_glyph_pool, realloc_glyph_pool)
(save_current_matrix, restore_current_matrix)
(build_frame_matrix_from_leaf_window, mirrored_line_dance)
(mirror_line_dance, scrolling_window): Likewise.
* doc.c (Fsnarf_documentation, Fsubstitute_command_keys):
Likewise.
* doprnt.c (doprnt): Likewise.
* editfns.c (Fuser_full_name, make_buffer_string_both)
(Fmessage_box, Fformat, Ftranspose_regions): Likewise.
* emacs.c (sort_args): Likewise.
* eval.c (Fapply, Ffuncall): Likewise.
* fileio.c (Ffile_name_directory, make_temp_name)
(Fexpand_file_name, search_embedded_absfilename)
(Fsubstitute_in_file_name, Ffile_symlink_p, Finsert_file_contents)
(auto_save_error): Likewise.
* fns.c (Fstring_equal, Fcopy_sequence, concat)
(string_to_multibyte, Fstring_as_unibyte, Fstring_as_multibyte)
(internal_equal, Fclear_string, larger_vector, copy_hash_table)
(Fmake_hash_table): Likewise.
* fringe.c (Fdefine_fringe_bitmap): Likewise.
* ftfont.c (ftfont_text_extents): Likewise.
* getloadavg.c (getloadavg): Likewise.
* image.c (define_image_type, make_image, make_image_cache)
(x_create_x_image_and_pixmap, xbm_image_p)
(w32_create_pixmap_from_bitmap_data, xbm_load, xpm_lookup_color)
(xpm_image_p, x_create_bitmap_from_xpm_data, xpm_load)
(init_color_table, x_build_heuristic_mask, pbm_image_p, pbm_load)
(png_image_p, png_read_from_memory, png_load, jpeg_image_p)
(tiff_image_p, tiff_read_from_memory, gif_image_p)
(gif_read_from_memory, gif_load, svg_image_p, gs_image_p):
Likewise.
* indent.c (scan_for_column, compute_motion): Likewise.
* insdel.c (gap_left, gap_right, make_gap_smaller, copy_text)
(insert_1_both, insert_from_gap, replace_range_2): Likewise.
* intervals.c (reproduce_tree, reproduce_tree_obj): Likewise.
* keyboard.c (echo_char, save_getcjmp, restore_getcjmp)
(kbd_buffer_store_event_hold, apply_modifiers_uncached)
(store_user_signal_events, menu_bar_items, tool_bar_items)
(process_tool_bar_item, append_tool_bar_item)
(read_char_minibuf_menu_prompt, read_key_sequence)
(Fread_key_sequence, Fread_key_sequence_vector, Frecent_keys):
Likewise.
* keymap.c (current_minor_maps, Fdescribe_buffer_bindings):
Likewise.
* lisp.h (STRING_COPYIN): Likewise.
* lread.c (Fload, read1, oblookup): Likewise.
* msdos.c (Frecent_doskeys): Likewise.
* nsfns.m (Fx_create_frame): Likewise.
* nsfont.m (nsfont_open, nsfont_text_extents, ns_glyph_metrics):
Likewise.
* nsimage.m (EmacsImage-initFromSkipXBM:width:height:)
(EmacsImage-initForXPMWithDepth:width:height:flip:length:):
Likewise.
* nsmenu.m (ns_update_menubar): Likewise.
* nsterm.m (ns_draw_fringe_bitmap, ns_term_init): Likewise.
* print.c (print_unwind, printchar, strout, print_string)
(print_error_message): Likewise.
* process.c (conv_lisp_to_sockaddr, set_socket_option)
(Fmake_network_process, Fnetwork_interface_list)
(Fnetwork_interface_info, read_process_output, Fprocess_send_eof)
(init_process): Likewise.
* ralloc.c (resize_bloc, r_alloc_sbrk, r_alloc_init): Likewise.
* regex.c (init_syntax_once, regex_compile, re_compile_fastmap):
Likewise.
* scroll.c (do_scrolling, do_direct_scrolling)
(scrolling_max_lines_saved): Likewise.
* search.c (search_buffer, wordify, Freplace_match): Likewise.
* sound.c (wav_init, au_init, Fplay_sound_internal): Likewise.
* syntax.c (skip_chars, skip_syntaxes): Likewise.
* sysdep.c (child_setup_tty, sys_subshell, emacs_get_tty)
(emacs_set_tty): Likewise.
* term.c (encode_terminal_code, calculate_costs)
(produce_special_glyphs, create_tty_output, init_tty, delete_tty):
Likewise.
* termcap.c (tgetst1, gobble_line): Likewise.
* termhooks.h (EVENT_INIT): Likewise.
* tparam.c (tparam1): Likewise.
* unexalpha.c (unexec): Likewise.
* unexec.c (write_segment): Likewise.
* unexmacosx.c (unexec_write_zero): Likewise.
* w32fns.c (w32_wnd_proc, Fx_create_frame, x_create_tip_frame)
(Fx_file_dialog, Fsystem_move_file_to_trash): Likewise.
* w32font.c (w32font_list_family, w32font_text_extents)
(w32font_list_internal, w32font_match_internal)
(w32font_open_internal, compute_metrics, Fx_select_font):
Likewise.
* w32menu.c (set_frame_menubar, add_menu_item)
(w32_menu_display_help, w32_free_submenu_strings): Likewise.
* w32term.c (XCreateGC, w32_initialize_display_info): Likewise.
* w32uniscribe.c (uniscribe_list_family): Likewise.
* w32xfns.c (get_next_msg, post_msg, prepend_msg): Likewise.
* window.c (make_window, replace_window, set_window_buffer)
(Fsplit_window): Likewise.
* xdisp.c (init_iterator, RECORD_OVERLAY_STRING, reseat_to_string)
(add_to_log, message3, x_consider_frame_title)
(append_space_for_newline, extend_face_to_end_of_line)
(decode_mode_spec_coding, init_glyph_string): Likewise.
* xfaces.c (x_create_gc, get_lface_attributes_no_remap)
(Finternal_copy_lisp_face, Finternal_merge_in_global_face)
(face_attr_equal_p, make_realized_face, make_face_cache)
(free_realized_faces, lookup_named_face, smaller_face)
(face_with_height, lookup_derived_face)
(x_supports_face_attributes_p, Finternal_set_font_selection_order)
(Finternal_set_font_selection_order, realize_default_face)
(compute_char_face, face_at_buffer_position)
(face_for_overlay_string, face_at_string_position, merge_faces):
Likewise.
* xfns.c (xic_create_fontsetname, Fx_create_frame)
(Fx_window_property, x_create_tip_frame)
(Fx_backspace_delete_keys_p): Likewise.
* xfont.c (xfont_list, xfont_match, xfont_list_family)
(xfont_text_extents): Likewise.
* xmenu.c (set_frame_menubar, xmenu_show): Likewise.
* xrdb.c (magic_file_p, x_get_resource): Likewise.
* xselect.c (x_queue_event, x_get_window_property)
(receive_incremental_selection): Likewise.
* xsmfns.c (x_session_check_input): Likewise.
* xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT)
(handle_one_xevent, x_check_errors, xim_initialize, x_term_init):
Likewise.
* character.h (BCOPY_SHORT): Removed.
* config.in: Regenerate.
* dispnew.c (safe_bcopy): Only define as dummy if PROFILING.
* emacs.c (main) [PROFILING]: Don't declare
dump_opcode_frequencies.
* lisp.h (safe_bcopy): Remove declaration.
(memset) [!HAVE_MEMSET]: Declare.
(memcpy) [!HAVE_MEMCPY]: Likewise.
(memmove) [!HAVE_MEMMOVE]: Likewise.
(memcmp) [!HAVE_MEMCMP]: Likewise.
* s/ms-w32.h (bzero, bcopy, bcmp, GAP_USE_BCOPY)
(BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE, HAVE_BCOPY, HAVE_BCMP):
Don't define.
(HAVE_MEMCMP, HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET): Define.
* s/msdos.h (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE)
(BCOPY_DOWNWARD_SAFE): Don't define.
* sysdep.c (memset) [!HAVE_MEMSET]: Define.
(memcpy) [!HAVE_MEMCPY]: Define.
(memmove) [!HAVE_MEMMOVE]: Define.
(memcmp) [!HAVE_MEMCMP]: Define.
* config.nt (HAVE_BCOPY, HAVE_BCMP): Remove undefs.
(HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET, HAVE_MEMCMP): Add undefs.
* sed2v2.inp (HAVE_MEMCPY, HAVE_MEMSET): Edit to 1.
(HAVE_BZERO): Don't edit.
* lwlib.c (lwlib_memset, lwlib_bcopy): Remove.
(malloc_widget_value, free_widget_info, allocate_widget_instance)
(lw_separator_p): Replace lwlib_memset, lwlib_bcopy, bzero, bcmp by
memset, memcpy, memcmp.
* lwlib-utils.c (XtApplyToWidgets): Likewise.
* xlwmenu.c (XlwMenuInitialize): Likewise.
* lwlib.h (lwlib_bcopy): Remove declaration.
* ebrowse.c (add_sym, make_namespace): Replace bcopy, bzero by
memcpy, memmove, memset.
* pop.c (pop_retrieve, socket_connection, pop_getline): Likewise.
* CPP-DEFINES (BCOPY_DOWNWARD_SAFE, BCOPY_UPWARD_SAFE)
(GAP_USE_BCOPY, HAVE_BCMP, HAVE_BCOPY, bcmp, bcopy, bzero):
Remove.
* configure.in: Don't check for bcopy, bcmp, bzero. Don't include
<strings.h> and don't define bcopy, bzero, BCMP in config.h.
2010-07-08 00:18:28 +02:00
|
|
|
|
memmove (p, p + 1, pend-- - p - 1);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
n++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT pos_byte = coding->dst_pos_byte;
|
|
|
|
|
EMACS_INT pos = coding->dst_pos;
|
|
|
|
|
EMACS_INT pos_end = pos + coding->produced_char - 1;
|
2006-04-07 05:26:46 +00:00
|
|
|
|
|
|
|
|
|
while (pos < pos_end)
|
|
|
|
|
{
|
|
|
|
|
p = BYTE_POS_ADDR (pos_byte);
|
|
|
|
|
if (*p == '\r' && p[1] == '\n')
|
|
|
|
|
{
|
|
|
|
|
del_range_2 (pos, pos_byte, pos + 1, pos_byte + 1, 0);
|
|
|
|
|
n++;
|
|
|
|
|
pos_end--;
|
|
|
|
|
}
|
|
|
|
|
pos++;
|
2008-02-05 04:12:52 +00:00
|
|
|
|
if (coding->dst_multibyte)
|
|
|
|
|
pos_byte += BYTES_BY_CHAR_HEAD (*p);
|
|
|
|
|
else
|
|
|
|
|
pos_byte++;
|
2006-04-07 05:26:46 +00:00
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
}
|
|
|
|
|
coding->produced -= n;
|
|
|
|
|
coding->produced_char -= n;
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2004-01-25 07:30:47 +00:00
|
|
|
|
|
2004-01-27 02:21:37 +00:00
|
|
|
|
/* Return a translation table (or list of them) from coding system
|
|
|
|
|
attribute vector ATTRS for encoding (ENCODEP is nonzero) or
|
|
|
|
|
decoding (ENCODEP is zero). */
|
2004-01-25 07:30:47 +00:00
|
|
|
|
|
2004-03-11 05:54:58 +00:00
|
|
|
|
static Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
get_translation_table (Lisp_Object attrs, int encodep, int *max_lookup)
|
2004-01-25 07:30:47 +00:00
|
|
|
|
{
|
|
|
|
|
Lisp_Object standard, translation_table;
|
2004-03-11 07:07:41 +00:00
|
|
|
|
Lisp_Object val;
|
2004-01-25 07:30:47 +00:00
|
|
|
|
|
2009-06-04 01:06:04 +00:00
|
|
|
|
if (NILP (Venable_character_translation))
|
|
|
|
|
{
|
|
|
|
|
if (max_lookup)
|
|
|
|
|
*max_lookup = 0;
|
|
|
|
|
return Qnil;
|
|
|
|
|
}
|
2004-01-25 07:30:47 +00:00
|
|
|
|
if (encodep)
|
|
|
|
|
translation_table = CODING_ATTR_ENCODE_TBL (attrs),
|
|
|
|
|
standard = Vstandard_translation_table_for_encode;
|
|
|
|
|
else
|
|
|
|
|
translation_table = CODING_ATTR_DECODE_TBL (attrs),
|
|
|
|
|
standard = Vstandard_translation_table_for_decode;
|
|
|
|
|
if (NILP (translation_table))
|
2004-03-11 07:07:41 +00:00
|
|
|
|
translation_table = standard;
|
|
|
|
|
else
|
2004-01-27 02:21:37 +00:00
|
|
|
|
{
|
2004-03-11 07:07:41 +00:00
|
|
|
|
if (SYMBOLP (translation_table))
|
|
|
|
|
translation_table = Fget (translation_table, Qtranslation_table);
|
|
|
|
|
else if (CONSP (translation_table))
|
|
|
|
|
{
|
|
|
|
|
translation_table = Fcopy_sequence (translation_table);
|
|
|
|
|
for (val = translation_table; CONSP (val); val = XCDR (val))
|
|
|
|
|
if (SYMBOLP (XCAR (val)))
|
|
|
|
|
XSETCAR (val, Fget (XCAR (val), Qtranslation_table));
|
|
|
|
|
}
|
|
|
|
|
if (CHAR_TABLE_P (standard))
|
|
|
|
|
{
|
|
|
|
|
if (CONSP (translation_table))
|
|
|
|
|
translation_table = nconc2 (translation_table,
|
|
|
|
|
Fcons (standard, Qnil));
|
|
|
|
|
else
|
|
|
|
|
translation_table = Fcons (translation_table,
|
|
|
|
|
Fcons (standard, Qnil));
|
|
|
|
|
}
|
2004-01-27 02:21:37 +00:00
|
|
|
|
}
|
2004-03-11 08:46:07 +00:00
|
|
|
|
|
|
|
|
|
if (max_lookup)
|
2004-03-11 07:07:41 +00:00
|
|
|
|
{
|
2004-03-11 08:46:07 +00:00
|
|
|
|
*max_lookup = 1;
|
|
|
|
|
if (CHAR_TABLE_P (translation_table)
|
|
|
|
|
&& CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (translation_table)) > 1)
|
|
|
|
|
{
|
|
|
|
|
val = XCHAR_TABLE (translation_table)->extras[1];
|
|
|
|
|
if (NATNUMP (val) && *max_lookup < XFASTINT (val))
|
|
|
|
|
*max_lookup = XFASTINT (val);
|
|
|
|
|
}
|
|
|
|
|
else if (CONSP (translation_table))
|
|
|
|
|
{
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
Lisp_Object tail;
|
2004-03-11 07:07:41 +00:00
|
|
|
|
|
2004-03-11 08:46:07 +00:00
|
|
|
|
for (tail = translation_table; CONSP (tail); tail = XCDR (tail))
|
|
|
|
|
if (CHAR_TABLE_P (XCAR (tail))
|
|
|
|
|
&& CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (XCAR (tail))) > 1)
|
|
|
|
|
{
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
Lisp_Object tailval = XCHAR_TABLE (XCAR (tail))->extras[1];
|
|
|
|
|
if (NATNUMP (tailval) && *max_lookup < XFASTINT (tailval))
|
|
|
|
|
*max_lookup = XFASTINT (tailval);
|
2004-03-11 08:46:07 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2004-01-27 02:21:37 +00:00
|
|
|
|
}
|
2004-01-25 07:30:47 +00:00
|
|
|
|
return translation_table;
|
|
|
|
|
}
|
|
|
|
|
|
2004-03-11 07:07:41 +00:00
|
|
|
|
#define LOOKUP_TRANSLATION_TABLE(table, c, trans) \
|
|
|
|
|
do { \
|
|
|
|
|
trans = Qnil; \
|
|
|
|
|
if (CHAR_TABLE_P (table)) \
|
|
|
|
|
{ \
|
|
|
|
|
trans = CHAR_TABLE_REF (table, c); \
|
|
|
|
|
if (CHARACTERP (trans)) \
|
|
|
|
|
c = XFASTINT (trans), trans = Qnil; \
|
|
|
|
|
} \
|
|
|
|
|
else if (CONSP (table)) \
|
|
|
|
|
{ \
|
|
|
|
|
Lisp_Object tail; \
|
|
|
|
|
\
|
|
|
|
|
for (tail = table; CONSP (tail); tail = XCDR (tail)) \
|
|
|
|
|
if (CHAR_TABLE_P (XCAR (tail))) \
|
|
|
|
|
{ \
|
|
|
|
|
trans = CHAR_TABLE_REF (XCAR (tail), c); \
|
|
|
|
|
if (CHARACTERP (trans)) \
|
|
|
|
|
c = XFASTINT (trans), trans = Qnil; \
|
|
|
|
|
else if (! NILP (trans)) \
|
|
|
|
|
break; \
|
|
|
|
|
} \
|
|
|
|
|
} \
|
2004-03-11 05:54:58 +00:00
|
|
|
|
} while (0)
|
|
|
|
|
|
2004-01-25 07:30:47 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
/* Return a translation of character(s) at BUF according to TRANS.
|
|
|
|
|
TRANS is TO-CHAR or ((FROM . TO) ...) where
|
|
|
|
|
FROM = [FROM-CHAR ...], TO is TO-CHAR or [TO-CHAR ...].
|
|
|
|
|
The return value is TO-CHAR or ([FROM-CHAR ...] . TO) if a
|
|
|
|
|
translation is found, and Qnil if not found..
|
|
|
|
|
If BUF is too short to lookup characters in FROM, return Qt. */
|
|
|
|
|
|
2004-03-10 23:11:18 +00:00
|
|
|
|
static Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
get_translation (Lisp_Object trans, int *buf, int *buf_end)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
|
|
|
|
if (INTEGERP (trans))
|
|
|
|
|
return trans;
|
|
|
|
|
for (; CONSP (trans); trans = XCDR (trans))
|
2004-03-10 23:11:18 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
Lisp_Object val = XCAR (trans);
|
|
|
|
|
Lisp_Object from = XCAR (val);
|
|
|
|
|
int len = ASIZE (from);
|
|
|
|
|
int i;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
for (i = 0; i < len; i++)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (buf + i == buf_end)
|
|
|
|
|
return Qt;
|
|
|
|
|
if (XINT (AREF (from, i)) != buf[i])
|
|
|
|
|
break;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (i == len)
|
|
|
|
|
return val;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
return Qnil;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
static int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
produce_chars (struct coding_system *coding, Lisp_Object translation_table,
|
|
|
|
|
int last_block)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unsigned char *dst = coding->destination + coding->produced;
|
|
|
|
|
unsigned char *dst_end = coding->destination + coding->dst_bytes;
|
2008-03-02 08:05:14 +00:00
|
|
|
|
EMACS_INT produced;
|
|
|
|
|
EMACS_INT produced_chars = 0;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int carryover = 0;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! coding->chars_at_source)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2008-03-02 08:05:14 +00:00
|
|
|
|
/* Source characters are in coding->charbuf. */
|
2003-10-06 22:30:26 +00:00
|
|
|
|
int *buf = coding->charbuf;
|
|
|
|
|
int *buf_end = buf + coding->charbuf_used;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2008-03-16 01:24:55 +00:00
|
|
|
|
if (EQ (coding->src_object, coding->dst_object))
|
|
|
|
|
{
|
|
|
|
|
coding_set_source (coding);
|
|
|
|
|
dst_end = ((unsigned char *) coding->source) + coding->consumed;
|
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (buf < buf_end)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int c = *buf, i;
|
1997-08-05 18:19:33 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (c >= 0)
|
|
|
|
|
{
|
Replace some uses of `int' with EMACS_INT.
src/search.c (string_match_1, fast_string_match)
(fast_c_string_match_ignore_case, fast_string_match_ignore_case)
(scan_buffer, find_next_newline_no_quit)
(find_before_next_newline, search_command, Freplace_match)
(Fmatch_data): Make some `int' variables be EMACS_INT.
src/xdisp.c (display_count_lines): 3rd argument and return value now
EMACS_INT. All callers changed.
(pint2hrstr): Last argument is now EMACS_INT.
src/coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
(detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
(decode_coding_utf_16, decode_coding_emacs_mule)
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
(decode_coding_ccl, decode_coding_charset)
<consumed_chars, consumed_chars_base>: Declare EMACS_INT.
(decode_coding_iso_2022, decode_coding_emacs_mule)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset)
<char_offset, last_offset>: Declare EMACS_INT.
(encode_coding_utf_8, encode_coding_utf_16)
(encode_coding_emacs_mule, encode_invocation_designation)
(encode_designation_at_bol, encode_coding_iso_2022)
(encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
(encode_coding_raw_text, encode_coding_charset) <produced_chars>:
Declare EMACS_INT.
(ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
(encode_invocation_designation): Last argument P_NCHARS is now
EMACS_INT.
(decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
(produce_chars): from_nchars and to_nchars are now EMACS_INT.
src/coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
All users changed.
src/ccl.c (Fccl_execute_on_string): Declare some variables
EMACS_INT.
2011-04-09 19:35:19 +03:00
|
|
|
|
EMACS_INT from_nchars = 1, to_nchars = 1;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
Lisp_Object trans = Qnil;
|
|
|
|
|
|
2004-03-11 07:07:41 +00:00
|
|
|
|
LOOKUP_TRANSLATION_TABLE (translation_table, c, trans);
|
2004-03-11 05:54:58 +00:00
|
|
|
|
if (! NILP (trans))
|
2004-03-10 23:11:18 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
trans = get_translation (trans, buf, buf_end);
|
|
|
|
|
if (INTEGERP (trans))
|
|
|
|
|
c = XINT (trans);
|
|
|
|
|
else if (CONSP (trans))
|
|
|
|
|
{
|
|
|
|
|
from_nchars = ASIZE (XCAR (trans));
|
|
|
|
|
trans = XCDR (trans);
|
|
|
|
|
if (INTEGERP (trans))
|
|
|
|
|
c = XINT (trans);
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
to_nchars = ASIZE (trans);
|
|
|
|
|
c = XINT (AREF (trans, 0));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (trans, Qt) && ! last_block)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
2011-07-28 13:31:29 -07:00
|
|
|
|
if ((dst_end - dst) / MAX_MULTIBYTE_LENGTH < to_nchars)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
{
|
2011-07-28 13:31:29 -07:00
|
|
|
|
if (((min (PTRDIFF_MAX, SIZE_MAX) - (buf_end - buf))
|
|
|
|
|
/ MAX_MULTIBYTE_LENGTH)
|
|
|
|
|
< to_nchars)
|
|
|
|
|
memory_full (SIZE_MAX);
|
2004-03-10 23:11:18 +00:00
|
|
|
|
dst = alloc_destination (coding,
|
|
|
|
|
buf_end - buf
|
|
|
|
|
+ MAX_MULTIBYTE_LENGTH * to_nchars,
|
|
|
|
|
dst);
|
2008-03-16 01:24:55 +00:00
|
|
|
|
if (EQ (coding->src_object, coding->dst_object))
|
|
|
|
|
{
|
|
|
|
|
coding_set_source (coding);
|
2009-03-06 07:51:52 +00:00
|
|
|
|
dst_end = (((unsigned char *) coding->source)
|
|
|
|
|
+ coding->consumed);
|
2008-03-16 01:24:55 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
dst_end = coding->destination + coding->dst_bytes;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
}
|
|
|
|
|
|
2004-03-11 02:18:12 +00:00
|
|
|
|
for (i = 0; i < to_nchars; i++)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
{
|
2004-03-11 02:18:12 +00:00
|
|
|
|
if (i > 0)
|
|
|
|
|
c = XINT (AREF (trans, i));
|
2004-03-10 23:11:18 +00:00
|
|
|
|
if (coding->dst_multibyte
|
|
|
|
|
|| ! CHAR_BYTE8_P (c))
|
2008-03-16 01:24:55 +00:00
|
|
|
|
CHAR_STRING_ADVANCE_NO_UNIFY (c, dst);
|
2004-03-10 23:11:18 +00:00
|
|
|
|
else
|
|
|
|
|
*dst++ = CHAR_TO_BYTE8 (c);
|
|
|
|
|
}
|
|
|
|
|
produced_chars += to_nchars;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
buf += from_nchars;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2004-03-10 23:11:18 +00:00
|
|
|
|
/* This is an annotation datum. (-C) is the length. */
|
|
|
|
|
buf += -c;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2004-03-10 23:11:18 +00:00
|
|
|
|
carryover = buf_end - buf;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2000-03-07 06:17:54 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
2008-03-02 08:05:14 +00:00
|
|
|
|
/* Source characters are at coding->source. */
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src = coding->source;
|
2008-03-02 08:05:14 +00:00
|
|
|
|
const unsigned char *src_end = src + coding->consumed;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2008-03-16 01:24:55 +00:00
|
|
|
|
if (EQ (coding->dst_object, coding->src_object))
|
|
|
|
|
dst_end = (unsigned char *) src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (coding->src_multibyte != coding->dst_multibyte)
|
2000-03-07 06:17:54 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (coding->src_multibyte)
|
2000-03-07 06:17:54 +00:00
|
|
|
|
{
|
2002-03-11 11:28:41 +00:00
|
|
|
|
int multibytep = 1;
|
2008-12-03 02:27:26 +00:00
|
|
|
|
EMACS_INT consumed_chars = 0;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (1)
|
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src_base = src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ONE_MORE_BYTE (c);
|
2008-03-02 08:05:14 +00:00
|
|
|
|
if (dst == dst_end)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2008-03-02 08:05:14 +00:00
|
|
|
|
if (EQ (coding->src_object, coding->dst_object))
|
|
|
|
|
dst_end = (unsigned char *) src;
|
|
|
|
|
if (dst == dst_end)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2008-03-02 08:05:14 +00:00
|
|
|
|
EMACS_INT offset = src - coding->source;
|
|
|
|
|
|
|
|
|
|
dst = alloc_destination (coding, src_end - src + 1,
|
|
|
|
|
dst);
|
|
|
|
|
dst_end = coding->destination + coding->dst_bytes;
|
|
|
|
|
coding_set_source (coding);
|
|
|
|
|
src = coding->source + offset;
|
|
|
|
|
src_end = coding->source + coding->src_bytes;
|
2008-03-16 01:24:55 +00:00
|
|
|
|
if (EQ (coding->src_object, coding->dst_object))
|
|
|
|
|
dst_end = (unsigned char *) src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*dst++ = c;
|
|
|
|
|
produced_chars++;
|
|
|
|
|
}
|
|
|
|
|
no_more_source:
|
|
|
|
|
;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (src < src_end)
|
|
|
|
|
{
|
2002-03-11 11:28:41 +00:00
|
|
|
|
int multibytep = 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c = *src++;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (dst >= dst_end - 1)
|
|
|
|
|
{
|
2002-05-07 04:50:48 +00:00
|
|
|
|
if (EQ (coding->src_object, coding->dst_object))
|
2003-09-08 12:53:41 +00:00
|
|
|
|
dst_end = (unsigned char *) src;
|
2002-05-07 04:50:48 +00:00
|
|
|
|
if (dst >= dst_end - 1)
|
|
|
|
|
{
|
2008-03-02 08:05:14 +00:00
|
|
|
|
EMACS_INT offset = src - coding->source;
|
2008-03-16 01:24:55 +00:00
|
|
|
|
EMACS_INT more_bytes;
|
2008-03-02 08:05:14 +00:00
|
|
|
|
|
2008-03-16 01:24:55 +00:00
|
|
|
|
if (EQ (coding->src_object, coding->dst_object))
|
|
|
|
|
more_bytes = ((src_end - src) / 2) + 2;
|
|
|
|
|
else
|
|
|
|
|
more_bytes = src_end - src + 2;
|
|
|
|
|
dst = alloc_destination (coding, more_bytes, dst);
|
2002-05-07 04:50:48 +00:00
|
|
|
|
dst_end = coding->destination + coding->dst_bytes;
|
|
|
|
|
coding_set_source (coding);
|
2008-03-02 08:05:14 +00:00
|
|
|
|
src = coding->source + offset;
|
2002-05-07 04:50:48 +00:00
|
|
|
|
src_end = coding->source + coding->src_bytes;
|
2008-03-16 01:24:55 +00:00
|
|
|
|
if (EQ (coding->src_object, coding->dst_object))
|
|
|
|
|
dst_end = (unsigned char *) src;
|
2002-05-07 04:50:48 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
EMIT_ONE_BYTE (c);
|
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (!EQ (coding->src_object, coding->dst_object))
|
2000-03-07 06:17:54 +00:00
|
|
|
|
{
|
2008-03-02 08:05:14 +00:00
|
|
|
|
EMACS_INT require = coding->src_bytes - coding->dst_bytes;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (require > 0)
|
2000-03-07 06:17:54 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMACS_INT offset = src - coding->source;
|
|
|
|
|
|
|
|
|
|
dst = alloc_destination (coding, require, dst);
|
|
|
|
|
coding_set_source (coding);
|
|
|
|
|
src = coding->source + offset;
|
|
|
|
|
src_end = coding->source + coding->src_bytes;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2008-03-02 08:05:14 +00:00
|
|
|
|
produced_chars = coding->consumed_char;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (src < src_end)
|
2008-03-02 19:56:45 +00:00
|
|
|
|
*dst++ = *src++;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
produced = dst - (coding->destination + coding->produced);
|
2007-04-24 08:13:48 +00:00
|
|
|
|
if (BUFFERP (coding->dst_object) && produced_chars > 0)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
insert_from_gap (produced_chars, produced);
|
|
|
|
|
coding->produced += produced;
|
|
|
|
|
coding->produced_char += produced_chars;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
return carryover;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/* Compose text in CODING->object according to the annotation data at
|
|
|
|
|
CHARBUF. CHARBUF is an array:
|
2009-03-06 07:51:52 +00:00
|
|
|
|
[ -LENGTH ANNOTATION_MASK NCHARS NBYTES METHOD [ COMPONENTS... ] ]
|
2002-03-01 01:17:24 +00:00
|
|
|
|
*/
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
[ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
2011-05-28 15:39:39 -07:00
|
|
|
|
static inline void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
produce_composition (struct coding_system *coding, int *charbuf, EMACS_INT pos)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int len;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
EMACS_INT to;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
enum composition_method method;
|
|
|
|
|
Lisp_Object components;
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
len = -charbuf[0] - MAX_ANNOTATION_LENGTH;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
to = pos + charbuf[2];
|
2009-03-06 07:51:52 +00:00
|
|
|
|
method = (enum composition_method) (charbuf[4]);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (method == COMPOSITION_RELATIVE)
|
|
|
|
|
components = Qnil;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
else
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object args[MAX_COMPOSITION_COMPONENTS * 2 - 1];
|
2009-03-06 07:51:52 +00:00
|
|
|
|
int i, j;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (method == COMPOSITION_WITH_RULE)
|
|
|
|
|
len = charbuf[2] * 3 - 2;
|
|
|
|
|
charbuf += MAX_ANNOTATION_LENGTH;
|
|
|
|
|
/* charbuf = [ CHRA ... CHAR] or [ CHAR -2 RULE ... CHAR ] */
|
|
|
|
|
for (i = j = 0; i < len && charbuf[i] != -1; i++, j++)
|
2004-04-12 23:17:27 +00:00
|
|
|
|
{
|
2009-03-06 07:51:52 +00:00
|
|
|
|
if (charbuf[i] >= 0)
|
|
|
|
|
args[j] = make_number (charbuf[i]);
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
i++;
|
|
|
|
|
args[j] = make_number (charbuf[i] % 0x100);
|
|
|
|
|
}
|
2004-04-12 23:17:27 +00:00
|
|
|
|
}
|
2009-03-06 07:51:52 +00:00
|
|
|
|
components = (i == j ? Fstring (j, args) : Fvector (j, args));
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2004-03-10 23:11:18 +00:00
|
|
|
|
compose_text (pos, to, components, Qnil, coding->dst_object);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/* Put `charset' property on text in CODING->object according to
|
|
|
|
|
the annotation data at CHARBUF. CHARBUF is an array:
|
2004-03-10 23:11:18 +00:00
|
|
|
|
[ -LENGTH ANNOTATION_MASK NCHARS CHARSET-ID ]
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
*/
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
[ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
2011-05-28 15:39:39 -07:00
|
|
|
|
static inline void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
produce_charset (struct coding_system *coding, int *charbuf, EMACS_INT pos)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2004-03-10 23:11:18 +00:00
|
|
|
|
EMACS_INT from = pos - charbuf[2];
|
|
|
|
|
struct charset *charset = CHARSET_FROM_ID (charbuf[3]);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2004-03-10 23:11:18 +00:00
|
|
|
|
Fput_text_property (make_number (from), make_number (pos),
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
Qcharset, CHARSET_NAME (charset),
|
|
|
|
|
coding->dst_object);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
#define CHARBUF_SIZE 0x4000
|
|
|
|
|
|
|
|
|
|
#define ALLOC_CONVERSION_WORK_AREA(coding) \
|
|
|
|
|
do { \
|
2009-02-11 09:45:12 +00:00
|
|
|
|
int size = CHARBUF_SIZE; \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
\
|
|
|
|
|
coding->charbuf = NULL; \
|
|
|
|
|
while (size > 1024) \
|
|
|
|
|
{ \
|
|
|
|
|
coding->charbuf = (int *) alloca (sizeof (int) * size); \
|
|
|
|
|
if (coding->charbuf) \
|
|
|
|
|
break; \
|
|
|
|
|
size >>= 1; \
|
|
|
|
|
} \
|
|
|
|
|
if (! coding->charbuf) \
|
|
|
|
|
{ \
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_MEM); \
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return coding->result; \
|
|
|
|
|
} \
|
|
|
|
|
coding->charbuf_size = size; \
|
|
|
|
|
} while (0)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
|
|
|
|
static void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
produce_annotation (struct coding_system *coding, EMACS_INT pos)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int *charbuf = coding->charbuf;
|
|
|
|
|
int *charbuf_end = charbuf + coding->charbuf_used;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (NILP (coding->dst_object))
|
|
|
|
|
return;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (charbuf < charbuf_end)
|
2003-06-04 12:43:09 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (*charbuf >= 0)
|
2009-03-06 07:51:52 +00:00
|
|
|
|
pos++, charbuf++;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int len = -*charbuf;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
|
|
|
|
|
if (len > 2)
|
|
|
|
|
switch (charbuf[1])
|
|
|
|
|
{
|
|
|
|
|
case CODING_ANNOTATE_COMPOSITION_MASK:
|
|
|
|
|
produce_composition (coding, charbuf, pos);
|
|
|
|
|
break;
|
|
|
|
|
case CODING_ANNOTATE_CHARSET_MASK:
|
|
|
|
|
produce_charset (coding, charbuf, pos);
|
|
|
|
|
break;
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charbuf += len;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2003-06-04 12:43:09 +00:00
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Decode the data at CODING->src_object into CODING->dst_object.
|
|
|
|
|
CODING->src_object is a buffer, a string, or nil.
|
|
|
|
|
CODING->dst_object is a buffer.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
If CODING->src_object is a buffer, it must be the current buffer.
|
|
|
|
|
In this case, if CODING->src_pos is positive, it is a position of
|
|
|
|
|
the source text in the buffer, otherwise, the source text is in the
|
|
|
|
|
gap area of the buffer, and CODING->src_pos specifies the offset of
|
|
|
|
|
the text from GPT (which must be the same as PT). If this is the
|
|
|
|
|
same buffer as CODING->dst_object, CODING->src_pos must be
|
|
|
|
|
negative.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2006-04-07 12:02:40 +00:00
|
|
|
|
If CODING->src_object is a string, CODING->src_pos is an index to
|
2002-03-01 01:17:24 +00:00
|
|
|
|
that string.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
If CODING->src_object is nil, CODING->source must already point to
|
|
|
|
|
the non-relocatable memory area. In this case, CODING->src_pos is
|
|
|
|
|
an offset from CODING->source.
|
2000-08-16 01:37:20 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
The decoded data is inserted at the current point of the buffer
|
|
|
|
|
CODING->dst_object.
|
|
|
|
|
*/
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
decode_coding (struct coding_system *coding)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object attrs;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object undo_list;
|
2004-01-25 07:30:47 +00:00
|
|
|
|
Lisp_Object translation_table;
|
2010-02-17 15:47:32 +09:00
|
|
|
|
struct ccl_spec cclspec;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
int carryover;
|
|
|
|
|
int i;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (BUFFERP (coding->src_object)
|
|
|
|
|
&& coding->src_pos > 0
|
|
|
|
|
&& coding->src_pos < GPT
|
|
|
|
|
&& coding->src_pos + coding->src_chars > GPT)
|
|
|
|
|
move_gap_both (coding->src_pos, coding->src_pos_byte);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
undo_list = Qt;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (BUFFERP (coding->dst_object))
|
2000-12-28 07:03:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (current_buffer != XBUFFER (coding->dst_object))
|
|
|
|
|
set_buffer_internal (XBUFFER (coding->dst_object));
|
|
|
|
|
if (GPT != PT)
|
|
|
|
|
move_gap_both (PT, PT_BYTE);
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
undo_list = BVAR (current_buffer, undo_list);
|
|
|
|
|
BVAR (current_buffer, undo_list) = Qt;
|
2000-12-28 07:03:56 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->consumed = coding->consumed_char = 0;
|
|
|
|
|
coding->produced = coding->produced_char = 0;
|
|
|
|
|
coding->chars_at_source = 0;
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->errors = 0;
|
2000-12-28 07:03:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ALLOC_CONVERSION_WORK_AREA (coding);
|
|
|
|
|
|
|
|
|
|
attrs = CODING_ID_ATTRS (coding->id);
|
2004-03-11 08:46:07 +00:00
|
|
|
|
translation_table = get_translation_table (attrs, 0, NULL);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2004-03-10 23:11:18 +00:00
|
|
|
|
carryover = 0;
|
2010-02-17 15:47:32 +09:00
|
|
|
|
if (coding->decoder == decode_coding_ccl)
|
|
|
|
|
{
|
|
|
|
|
coding->spec.ccl = &cclspec;
|
|
|
|
|
setup_ccl_program (&cclspec.ccl, CODING_CCL_DECODER (coding));
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
do
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2004-03-10 23:11:18 +00:00
|
|
|
|
EMACS_INT pos = coding->dst_pos + coding->produced_char;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding_set_source (coding);
|
|
|
|
|
coding->annotated = 0;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
coding->charbuf_used = carryover;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
(*(coding->decoder)) (coding);
|
|
|
|
|
coding_set_destination (coding);
|
2004-03-10 23:11:18 +00:00
|
|
|
|
carryover = produce_chars (coding, translation_table, 0);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (coding->annotated)
|
2004-03-10 23:11:18 +00:00
|
|
|
|
produce_annotation (coding, pos);
|
|
|
|
|
for (i = 0; i < carryover; i++)
|
|
|
|
|
coding->charbuf[i]
|
|
|
|
|
= coding->charbuf[coding->charbuf_used - carryover + i];
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2010-02-17 15:47:32 +09:00
|
|
|
|
while (coding->result == CODING_RESULT_INSUFFICIENT_DST
|
|
|
|
|
|| (coding->consumed < coding->src_bytes
|
|
|
|
|
&& (coding->result == CODING_RESULT_SUCCESS
|
|
|
|
|
|| coding->result == CODING_RESULT_INVALID_SRC)));
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2004-03-10 23:11:18 +00:00
|
|
|
|
if (carryover > 0)
|
|
|
|
|
{
|
|
|
|
|
coding_set_destination (coding);
|
|
|
|
|
coding->charbuf_used = carryover;
|
|
|
|
|
produce_chars (coding, translation_table, 1);
|
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->carryover_bytes = 0;
|
|
|
|
|
if (coding->consumed < coding->src_bytes)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int nbytes = coding->src_bytes - coding->consumed;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
coding_set_source (coding);
|
|
|
|
|
coding_set_destination (coding);
|
|
|
|
|
src = coding->source + coding->consumed;
|
|
|
|
|
|
|
|
|
|
if (coding->mode & CODING_MODE_LAST_BLOCK)
|
2000-12-28 07:03:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Flush out unprocessed data as binary chars. We are sure
|
|
|
|
|
that the number of data is less than the size of
|
|
|
|
|
coding->charbuf. */
|
2003-12-29 07:52:49 +00:00
|
|
|
|
coding->charbuf_used = 0;
|
2008-12-20 08:01:12 +00:00
|
|
|
|
coding->chars_at_source = 0;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (nbytes-- > 0)
|
2000-12-28 07:03:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c = *src++;
|
2002-11-06 00:10:42 +00:00
|
|
|
|
|
2005-10-15 02:09:14 +00:00
|
|
|
|
if (c & 0x80)
|
|
|
|
|
c = BYTE8_TO_CHAR (c);
|
|
|
|
|
coding->charbuf[coding->charbuf_used++] = c;
|
2000-12-28 07:03:56 +00:00
|
|
|
|
}
|
2004-03-11 11:21:39 +00:00
|
|
|
|
produce_chars (coding, Qnil, 1);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
/* Record unprocessed bytes in coding->carryover. We are
|
|
|
|
|
sure that the number of data is less than the size of
|
|
|
|
|
coding->carryover. */
|
|
|
|
|
unsigned char *p = coding->carryover;
|
|
|
|
|
|
2009-02-19 04:24:54 +00:00
|
|
|
|
if (nbytes > sizeof coding->carryover)
|
|
|
|
|
nbytes = sizeof coding->carryover;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->carryover_bytes = nbytes;
|
|
|
|
|
while (nbytes-- > 0)
|
|
|
|
|
*p++ = *src++;
|
2000-12-28 07:03:56 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->consumed = coding->src_bytes;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
1998-09-07 13:39:15 +00:00
|
|
|
|
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
if (! EQ (CODING_ID_EOL_TYPE (coding->id), Qunix)
|
|
|
|
|
&& !inhibit_eol_conversion)
|
2006-04-07 05:26:46 +00:00
|
|
|
|
decode_eol (coding);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (BUFFERP (coding->dst_object))
|
|
|
|
|
{
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
BVAR (current_buffer, undo_list) = undo_list;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
record_insert (coding->dst_pos, coding->produced_char);
|
|
|
|
|
}
|
2000-08-16 01:37:20 +00:00
|
|
|
|
return coding->result;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2000-06-19 05:18:09 +00:00
|
|
|
|
|
2003-02-13 22:23:01 +00:00
|
|
|
|
/* Extract an annotation datum from a composition starting at POS and
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
ending before LIMIT of CODING->src_object (buffer or string), store
|
|
|
|
|
the data in BUF, set *STOP to a starting position of the next
|
|
|
|
|
composition (if any) or to LIMIT, and return the address of the
|
|
|
|
|
next element of BUF.
|
|
|
|
|
|
|
|
|
|
If such an annotation is not found, set *STOP to a starting
|
|
|
|
|
position of a composition after POS (if any) or to LIMIT, and
|
|
|
|
|
return BUF. */
|
|
|
|
|
|
[ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
2011-05-28 15:39:39 -07:00
|
|
|
|
static inline int *
|
2010-07-07 11:38:03 +02:00
|
|
|
|
handle_composition_annotation (EMACS_INT pos, EMACS_INT limit,
|
|
|
|
|
struct coding_system *coding, int *buf,
|
|
|
|
|
EMACS_INT *stop)
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
EMACS_INT start, end;
|
|
|
|
|
Lisp_Object prop;
|
2000-06-19 05:18:09 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (! find_composition (pos, limit, &start, &end, &prop, coding->src_object)
|
|
|
|
|
|| end > limit)
|
|
|
|
|
*stop = limit;
|
|
|
|
|
else if (start > pos)
|
|
|
|
|
*stop = start;
|
|
|
|
|
else
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (start == pos)
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
/* We found a composition. Store the corresponding
|
|
|
|
|
annotation data in BUF. */
|
|
|
|
|
int *head = buf;
|
|
|
|
|
enum composition_method method = COMPOSITION_METHOD (prop);
|
|
|
|
|
int nchars = COMPOSITION_LENGTH (prop);
|
|
|
|
|
|
2009-03-06 07:51:52 +00:00
|
|
|
|
ADD_COMPOSITION_DATA (buf, nchars, 0, method);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (method != COMPOSITION_RELATIVE)
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
Lisp_Object components;
|
|
|
|
|
int len, i, i_byte;
|
|
|
|
|
|
|
|
|
|
components = COMPOSITION_COMPONENTS (prop);
|
|
|
|
|
if (VECTORP (components))
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
2011-04-25 14:34:39 -07:00
|
|
|
|
len = ASIZE (components);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
for (i = 0; i < len; i++)
|
|
|
|
|
*buf++ = XINT (AREF (components, i));
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
else if (STRINGP (components))
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
len = SCHARS (components);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
i = i_byte = 0;
|
|
|
|
|
while (i < len)
|
|
|
|
|
{
|
|
|
|
|
FETCH_STRING_CHAR_ADVANCE (*buf, components, i, i_byte);
|
|
|
|
|
buf++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (INTEGERP (components))
|
|
|
|
|
{
|
|
|
|
|
len = 1;
|
|
|
|
|
*buf++ = XINT (components);
|
|
|
|
|
}
|
|
|
|
|
else if (CONSP (components))
|
|
|
|
|
{
|
|
|
|
|
for (len = 0; CONSP (components);
|
|
|
|
|
len++, components = XCDR (components))
|
|
|
|
|
*buf++ = XINT (XCAR (components));
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
abort ();
|
|
|
|
|
*head -= len;
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
|
|
|
|
|
if (find_composition (end, limit, &start, &end, &prop,
|
|
|
|
|
coding->src_object)
|
|
|
|
|
&& end <= limit)
|
|
|
|
|
*stop = start;
|
|
|
|
|
else
|
|
|
|
|
*stop = limit;
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
return buf;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2003-02-13 22:23:01 +00:00
|
|
|
|
/* Extract an annotation datum from a text property `charset' at POS of
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
CODING->src_object (buffer of string), store the data in BUF, set
|
|
|
|
|
*STOP to the position where the value of `charset' property changes
|
|
|
|
|
(limiting by LIMIT), and return the address of the next element of
|
|
|
|
|
BUF.
|
|
|
|
|
|
|
|
|
|
If the property value is nil, set *STOP to the position where the
|
|
|
|
|
property value is non-nil (limiting by LIMIT), and return BUF. */
|
|
|
|
|
|
[ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
2011-05-28 15:39:39 -07:00
|
|
|
|
static inline int *
|
2010-07-07 11:38:03 +02:00
|
|
|
|
handle_charset_annotation (EMACS_INT pos, EMACS_INT limit,
|
|
|
|
|
struct coding_system *coding, int *buf,
|
|
|
|
|
EMACS_INT *stop)
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
{
|
|
|
|
|
Lisp_Object val, next;
|
|
|
|
|
int id;
|
|
|
|
|
|
|
|
|
|
val = Fget_text_property (make_number (pos), Qcharset, coding->src_object);
|
|
|
|
|
if (! NILP (val) && CHARSETP (val))
|
|
|
|
|
id = XINT (CHARSET_SYMBOL_ID (val));
|
|
|
|
|
else
|
|
|
|
|
id = -1;
|
2004-03-10 23:11:18 +00:00
|
|
|
|
ADD_CHARSET_DATA (buf, 0, id);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
next = Fnext_single_property_change (make_number (pos), Qcharset,
|
|
|
|
|
coding->src_object,
|
|
|
|
|
make_number (limit));
|
|
|
|
|
*stop = XINT (next);
|
|
|
|
|
return buf;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
static void
|
2010-07-07 11:38:03 +02:00
|
|
|
|
consume_chars (struct coding_system *coding, Lisp_Object translation_table,
|
|
|
|
|
int max_lookup)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
int *buf = coding->charbuf;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int *buf_end = coding->charbuf + coding->charbuf_size;
|
2002-07-22 06:40:36 +00:00
|
|
|
|
const unsigned char *src = coding->source + coding->consumed;
|
2003-05-28 11:37:09 +00:00
|
|
|
|
const unsigned char *src_end = coding->source + coding->src_bytes;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
EMACS_INT pos = coding->src_pos + coding->consumed_char;
|
|
|
|
|
EMACS_INT end_pos = coding->src_pos + coding->src_chars;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int multibytep = coding->src_multibyte;
|
|
|
|
|
Lisp_Object eol_type;
|
|
|
|
|
int c;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
EMACS_INT stop, stop_composition, stop_charset;
|
2004-03-11 07:07:41 +00:00
|
|
|
|
int *lookup_buf = NULL;
|
2004-03-11 02:18:12 +00:00
|
|
|
|
|
|
|
|
|
if (! NILP (translation_table))
|
2004-03-11 07:07:41 +00:00
|
|
|
|
lookup_buf = alloca (sizeof (int) * max_lookup);
|
1998-09-28 11:52:53 +00:00
|
|
|
|
|
(decode_coding_utf_8, decode_coding_utf_16, decode_coding_emacs_mule,
decode_coding_iso_2022, encode_coding_iso_2022, decode_coding_sjis,
decode_coding_big5, decode_coding_raw_text, decode_coding_charset,
setup_coding_system, decode_eol, decode_coding, consume_chars): Honor
inhibit-eol-conversion. (Bug #2186)
2009-02-28 15:53:11 +00:00
|
|
|
|
eol_type = inhibit_eol_conversion ? Qunix : CODING_ID_EOL_TYPE (coding->id);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (VECTORP (eol_type))
|
|
|
|
|
eol_type = Qunix;
|
1998-09-28 11:52:53 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Note: composition handling is not yet implemented. */
|
|
|
|
|
coding->common_flags &= ~CODING_ANNOTATE_COMPOSITION_MASK;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2003-10-01 04:40:19 +00:00
|
|
|
|
if (NILP (coding->src_object))
|
|
|
|
|
stop = stop_composition = stop_charset = end_pos;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
else
|
2003-10-01 04:40:19 +00:00
|
|
|
|
{
|
|
|
|
|
if (coding->common_flags & CODING_ANNOTATE_COMPOSITION_MASK)
|
|
|
|
|
stop = stop_composition = pos;
|
|
|
|
|
else
|
|
|
|
|
stop = stop_composition = end_pos;
|
|
|
|
|
if (coding->common_flags & CODING_ANNOTATE_CHARSET_MASK)
|
|
|
|
|
stop = stop_charset = pos;
|
|
|
|
|
else
|
|
|
|
|
stop_charset = end_pos;
|
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
/* Compensate for CRLF and conversion. */
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
buf_end -= 1 + MAX_ANNOTATION_LENGTH;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (buf < buf_end)
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
2004-03-11 02:18:12 +00:00
|
|
|
|
Lisp_Object trans;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (pos == stop)
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (pos == end_pos)
|
|
|
|
|
break;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (pos == stop_composition)
|
|
|
|
|
buf = handle_composition_annotation (pos, end_pos, coding,
|
|
|
|
|
buf, &stop_composition);
|
|
|
|
|
if (pos == stop_charset)
|
|
|
|
|
buf = handle_charset_annotation (pos, end_pos, coding,
|
|
|
|
|
buf, &stop_charset);
|
|
|
|
|
stop = (stop_composition < stop_charset
|
|
|
|
|
? stop_composition : stop_charset);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (! multibytep)
|
2003-05-28 11:37:09 +00:00
|
|
|
|
{
|
2003-06-05 12:34:31 +00:00
|
|
|
|
EMACS_INT bytes;
|
2000-06-19 05:18:09 +00:00
|
|
|
|
|
2010-01-20 11:33:52 +09:00
|
|
|
|
if (coding->encoder == encode_coding_raw_text
|
|
|
|
|
|| coding->encoder == encode_coding_ccl)
|
2004-04-28 12:52:51 +00:00
|
|
|
|
c = *src++, pos++;
|
|
|
|
|
else if ((bytes = MULTIBYTE_LENGTH (src, src_end)) > 0)
|
2008-03-16 01:24:55 +00:00
|
|
|
|
c = STRING_CHAR_ADVANCE_NO_UNIFY (src), pos += bytes;
|
2003-05-28 11:37:09 +00:00
|
|
|
|
else
|
2004-04-20 02:46:38 +00:00
|
|
|
|
c = BYTE8_TO_CHAR (*src), src++, pos++;
|
2003-05-28 11:37:09 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2008-03-16 01:24:55 +00:00
|
|
|
|
c = STRING_CHAR_ADVANCE_NO_UNIFY (src), pos++;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if ((c == '\r') && (coding->mode & CODING_MODE_SELECTIVE_DISPLAY))
|
|
|
|
|
c = '\n';
|
|
|
|
|
if (! EQ (eol_type, Qunix))
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (c == '\n')
|
2000-06-19 05:18:09 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (EQ (eol_type, Qdos))
|
|
|
|
|
*buf++ = '\r';
|
|
|
|
|
else
|
|
|
|
|
c = '\r';
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2004-03-11 02:18:12 +00:00
|
|
|
|
|
2004-03-11 05:54:58 +00:00
|
|
|
|
trans = Qnil;
|
2004-03-11 07:07:41 +00:00
|
|
|
|
LOOKUP_TRANSLATION_TABLE (translation_table, c, trans);
|
2004-03-11 05:54:58 +00:00
|
|
|
|
if (NILP (trans))
|
2004-03-11 02:18:12 +00:00
|
|
|
|
*buf++ = c;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
int from_nchars = 1, to_nchars = 1;
|
|
|
|
|
int *lookup_buf_end;
|
|
|
|
|
const unsigned char *p = src;
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
lookup_buf[0] = c;
|
|
|
|
|
for (i = 1; i < max_lookup && p < src_end; i++)
|
|
|
|
|
lookup_buf[i] = STRING_CHAR_ADVANCE (p);
|
|
|
|
|
lookup_buf_end = lookup_buf + i;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
trans = get_translation (trans, lookup_buf, lookup_buf_end);
|
|
|
|
|
if (INTEGERP (trans))
|
|
|
|
|
c = XINT (trans);
|
|
|
|
|
else if (CONSP (trans))
|
|
|
|
|
{
|
|
|
|
|
from_nchars = ASIZE (XCAR (trans));
|
|
|
|
|
trans = XCDR (trans);
|
|
|
|
|
if (INTEGERP (trans))
|
|
|
|
|
c = XINT (trans);
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
to_nchars = ASIZE (trans);
|
|
|
|
|
if (buf + to_nchars > buf_end)
|
|
|
|
|
break;
|
|
|
|
|
c = XINT (AREF (trans, 0));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
2004-03-11 02:18:12 +00:00
|
|
|
|
break;
|
2009-03-06 07:51:52 +00:00
|
|
|
|
*buf++ = c;
|
2004-03-11 02:18:12 +00:00
|
|
|
|
for (i = 1; i < to_nchars; i++)
|
|
|
|
|
*buf++ = XINT (AREF (trans, i));
|
|
|
|
|
for (i = 1; i < from_nchars; i++, pos++)
|
|
|
|
|
src += MULTIBYTE_LENGTH_NO_CHECK (src);
|
|
|
|
|
}
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->consumed = src - coding->source;
|
|
|
|
|
coding->consumed_char = pos - coding->src_pos;
|
|
|
|
|
coding->charbuf_used = buf - coding->charbuf;
|
|
|
|
|
coding->chars_at_source = 0;
|
2000-06-19 05:18:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Encode the text at CODING->src_object into CODING->dst_object.
|
|
|
|
|
CODING->src_object is a buffer or a string.
|
|
|
|
|
CODING->dst_object is a buffer or nil.
|
|
|
|
|
|
|
|
|
|
If CODING->src_object is a buffer, it must be the current buffer.
|
|
|
|
|
In this case, if CODING->src_pos is positive, it is a position of
|
|
|
|
|
the source text in the buffer, otherwise. the source text is in the
|
|
|
|
|
gap area of the buffer, and coding->src_pos specifies the offset of
|
|
|
|
|
the text from GPT (which must be the same as PT). If this is the
|
|
|
|
|
same buffer as CODING->dst_object, CODING->src_pos must be
|
|
|
|
|
negative and CODING should not have `pre-write-conversion'.
|
|
|
|
|
|
|
|
|
|
If CODING->src_object is a string, CODING should not have
|
|
|
|
|
`pre-write-conversion'.
|
|
|
|
|
|
|
|
|
|
If CODING->dst_object is a buffer, the encoded data is inserted at
|
|
|
|
|
the current point of that buffer.
|
|
|
|
|
|
|
|
|
|
If CODING->dst_object is nil, the encoded data is placed at the
|
|
|
|
|
memory area specified by CODING->destination. */
|
|
|
|
|
|
|
|
|
|
static int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
encode_coding (struct coding_system *coding)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object attrs;
|
2004-01-25 07:30:47 +00:00
|
|
|
|
Lisp_Object translation_table;
|
2004-03-11 07:07:41 +00:00
|
|
|
|
int max_lookup;
|
2010-03-16 14:48:41 +09:00
|
|
|
|
struct ccl_spec cclspec;
|
2002-05-11 21:33:13 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
attrs = CODING_ID_ATTRS (coding->id);
|
2004-04-28 12:52:51 +00:00
|
|
|
|
if (coding->encoder == encode_coding_raw_text)
|
|
|
|
|
translation_table = Qnil, max_lookup = 0;
|
|
|
|
|
else
|
|
|
|
|
translation_table = get_translation_table (attrs, 1, &max_lookup);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (BUFFERP (coding->dst_object))
|
2001-01-26 06:10:21 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
set_buffer_internal (XBUFFER (coding->dst_object));
|
|
|
|
|
coding->dst_multibyte
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
= ! NILP (BVAR (current_buffer, enable_multibyte_characters));
|
2001-01-26 06:10:21 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
coding->consumed = coding->consumed_char = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->produced = coding->produced_char = 0;
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding, CODING_RESULT_SUCCESS);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
coding->errors = 0;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ALLOC_CONVERSION_WORK_AREA (coding);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2010-03-16 14:48:41 +09:00
|
|
|
|
if (coding->encoder == encode_coding_ccl)
|
|
|
|
|
{
|
|
|
|
|
coding->spec.ccl = &cclspec;
|
|
|
|
|
setup_ccl_program (&cclspec.ccl, CODING_CCL_ENCODER (coding));
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
do {
|
|
|
|
|
coding_set_source (coding);
|
2004-03-11 07:07:41 +00:00
|
|
|
|
consume_chars (coding, translation_table, max_lookup);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding_set_destination (coding);
|
|
|
|
|
(*(coding->encoder)) (coding);
|
|
|
|
|
} while (coding->consumed_char < coding->src_chars);
|
|
|
|
|
|
2007-04-24 08:13:48 +00:00
|
|
|
|
if (BUFFERP (coding->dst_object) && coding->produced_char > 0)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
insert_from_gap (coding->produced_char, coding->produced);
|
|
|
|
|
|
|
|
|
|
return (coding->result);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
1998-02-20 01:40:47 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
/* Name (or base name) of work buffer for code conversion. */
|
|
|
|
|
static Lisp_Object Vcode_conversion_workbuf_name;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
/* A working buffer used by the top level conversion. Once it is
|
|
|
|
|
created, it is never destroyed. It has the name
|
|
|
|
|
Vcode_conversion_workbuf_name. The other working buffers are
|
|
|
|
|
destroyed after the use is finished, and their names are modified
|
|
|
|
|
versions of Vcode_conversion_workbuf_name. */
|
|
|
|
|
static Lisp_Object Vcode_conversion_reused_workbuf;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
/* 1 iff Vcode_conversion_reused_workbuf is already in use. */
|
|
|
|
|
static int reused_workbuf_in_use;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* Return a working buffer of code conversion. MULTIBYTE specifies the
|
2003-12-02 01:40:27 +00:00
|
|
|
|
multibyteness of returning buffer. */
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2004-03-11 11:21:39 +00:00
|
|
|
|
static Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
make_conversion_work_buffer (int multibyte)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object name, workbuf;
|
|
|
|
|
struct buffer *current;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
if (reused_workbuf_in_use++)
|
2003-12-29 07:52:49 +00:00
|
|
|
|
{
|
|
|
|
|
name = Fgenerate_new_buffer_name (Vcode_conversion_workbuf_name, Qnil);
|
|
|
|
|
workbuf = Fget_buffer_create (name);
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2003-12-29 07:52:49 +00:00
|
|
|
|
{
|
2008-10-23 06:55:14 +00:00
|
|
|
|
if (NILP (Fbuffer_live_p (Vcode_conversion_reused_workbuf)))
|
2008-09-16 01:16:58 +00:00
|
|
|
|
Vcode_conversion_reused_workbuf
|
|
|
|
|
= Fget_buffer_create (Vcode_conversion_workbuf_name);
|
|
|
|
|
workbuf = Vcode_conversion_reused_workbuf;
|
2003-12-29 07:52:49 +00:00
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
current = current_buffer;
|
|
|
|
|
set_buffer_internal (XBUFFER (workbuf));
|
2008-12-07 00:58:47 +00:00
|
|
|
|
/* We can't allow modification hooks to run in the work buffer. For
|
|
|
|
|
instance, directory_files_internal assumes that file decoding
|
|
|
|
|
doesn't compile new regexps. */
|
|
|
|
|
Fset (Fmake_local_variable (Qinhibit_modification_hooks), Qt);
|
2008-04-08 20:18:14 +00:00
|
|
|
|
Ferase_buffer ();
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
BVAR (current_buffer, undo_list) = Qt;
|
|
|
|
|
BVAR (current_buffer, enable_multibyte_characters) = multibyte ? Qt : Qnil;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
set_buffer_internal (current);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
return workbuf;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
|
2003-05-28 11:37:09 +00:00
|
|
|
|
static Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
code_conversion_restore (Lisp_Object arg)
|
2003-05-28 11:37:09 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object current, workbuf;
|
2006-01-17 02:38:38 +00:00
|
|
|
|
struct gcpro gcpro1;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
|
2006-01-17 02:38:38 +00:00
|
|
|
|
GCPRO1 (arg);
|
2003-12-02 01:40:27 +00:00
|
|
|
|
current = XCAR (arg);
|
|
|
|
|
workbuf = XCDR (arg);
|
|
|
|
|
if (! NILP (workbuf))
|
|
|
|
|
{
|
|
|
|
|
if (EQ (workbuf, Vcode_conversion_reused_workbuf))
|
|
|
|
|
reused_workbuf_in_use = 0;
|
|
|
|
|
else if (! NILP (Fbuffer_live_p (workbuf)))
|
|
|
|
|
Fkill_buffer (workbuf);
|
|
|
|
|
}
|
|
|
|
|
set_buffer_internal (XBUFFER (current));
|
2006-01-17 02:38:38 +00:00
|
|
|
|
UNGCPRO;
|
2003-05-28 11:37:09 +00:00
|
|
|
|
return Qnil;
|
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
code_conversion_save (int with_work_buf, int multibyte)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
Lisp_Object workbuf = Qnil;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2003-05-28 11:37:09 +00:00
|
|
|
|
if (with_work_buf)
|
2003-12-02 01:40:27 +00:00
|
|
|
|
workbuf = make_conversion_work_buffer (multibyte);
|
|
|
|
|
record_unwind_protect (code_conversion_restore,
|
|
|
|
|
Fcons (Fcurrent_buffer (), workbuf));
|
2003-05-28 11:37:09 +00:00
|
|
|
|
return workbuf;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int
|
2010-07-07 11:38:03 +02:00
|
|
|
|
decode_coding_gap (struct coding_system *coding,
|
|
|
|
|
EMACS_INT chars, EMACS_INT bytes)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2010-07-07 10:45:22 +02:00
|
|
|
|
int count = SPECPDL_INDEX ();
|
2003-05-29 13:17:04 +00:00
|
|
|
|
Lisp_Object attrs;
|
1998-02-20 01:40:47 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
code_conversion_save (0, 0);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
coding->src_object = Fcurrent_buffer ();
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->src_chars = chars;
|
|
|
|
|
coding->src_bytes = bytes;
|
|
|
|
|
coding->src_pos = -chars;
|
|
|
|
|
coding->src_pos_byte = -bytes;
|
|
|
|
|
coding->src_multibyte = chars < bytes;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
coding->dst_object = coding->src_object;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_pos = PT;
|
|
|
|
|
coding->dst_pos_byte = PT_BYTE;
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
coding->dst_multibyte = ! NILP (BVAR (current_buffer, enable_multibyte_characters));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_REQUIRE_DETECTION (coding))
|
|
|
|
|
detect_coding (coding);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
|
2006-03-07 01:53:54 +00:00
|
|
|
|
coding->mode |= CODING_MODE_LAST_BLOCK;
|
2007-02-23 06:02:23 +00:00
|
|
|
|
current_buffer->text->inhibit_shrinking = 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
decode_coding (coding);
|
2007-02-23 06:02:23 +00:00
|
|
|
|
current_buffer->text->inhibit_shrinking = 0;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-05-29 13:17:04 +00:00
|
|
|
|
attrs = CODING_ID_ATTRS (coding->id);
|
|
|
|
|
if (! NILP (CODING_ATTR_POST_READ (attrs)))
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2003-05-29 13:17:04 +00:00
|
|
|
|
EMACS_INT prev_Z = Z, prev_Z_BYTE = Z_BYTE;
|
|
|
|
|
Lisp_Object val;
|
|
|
|
|
|
|
|
|
|
TEMP_SET_PT_BOTH (coding->dst_pos, coding->dst_pos_byte);
|
|
|
|
|
val = call1 (CODING_ATTR_POST_READ (attrs),
|
|
|
|
|
make_number (coding->produced_char));
|
|
|
|
|
CHECK_NATNUM (val);
|
|
|
|
|
coding->produced_char += Z - prev_Z;
|
|
|
|
|
coding->produced += Z_BYTE - prev_Z_BYTE;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unbind_to (count, Qnil);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
return coding->result;
|
|
|
|
|
}
|
1999-04-06 12:34:12 +00:00
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Decode the text in the range FROM/FROM_BYTE and TO/TO_BYTE in
|
|
|
|
|
SRC_OBJECT into DST_OBJECT by coding context CODING.
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
SRC_OBJECT is a buffer, a string, or Qnil.
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
If it is a buffer, the text is at point of the buffer. FROM and TO
|
|
|
|
|
are positions in the buffer.
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
If it is a string, the text is at the beginning of the string.
|
|
|
|
|
FROM and TO are indices to the string.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
If it is nil, the text is at coding->source. FROM and TO are
|
|
|
|
|
indices to coding->source.
|
2000-08-16 11:19:34 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DST_OBJECT is a buffer, Qt, or Qnil.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
If it is a buffer, the decoded text is inserted at point of the
|
|
|
|
|
buffer. If the buffer is the same as SRC_OBJECT, the source text
|
|
|
|
|
is deleted.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
If it is Qt, a string is made from the decoded text, and
|
|
|
|
|
set in CODING->dst_object.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
If it is Qnil, the decoded text is stored at CODING->destination.
|
2003-05-06 08:16:37 +00:00
|
|
|
|
The caller must allocate CODING->dst_bytes bytes at
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING->destination by xmalloc. If the decoded text is longer than
|
|
|
|
|
CODING->dst_bytes, CODING->destination is relocated by xrealloc.
|
|
|
|
|
*/
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
void
|
2010-07-07 11:38:03 +02:00
|
|
|
|
decode_coding_object (struct coding_system *coding,
|
|
|
|
|
Lisp_Object src_object,
|
|
|
|
|
EMACS_INT from, EMACS_INT from_byte,
|
|
|
|
|
EMACS_INT to, EMACS_INT to_byte,
|
|
|
|
|
Lisp_Object dst_object)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2010-07-07 10:45:22 +02:00
|
|
|
|
int count = SPECPDL_INDEX ();
|
2011-03-07 23:12:45 -08:00
|
|
|
|
unsigned char *destination IF_LINT (= NULL);
|
|
|
|
|
EMACS_INT dst_bytes IF_LINT (= 0);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMACS_INT chars = to - from;
|
|
|
|
|
EMACS_INT bytes = to_byte - from_byte;
|
|
|
|
|
Lisp_Object attrs;
|
2011-03-07 23:12:45 -08:00
|
|
|
|
int saved_pt = -1, saved_pt_byte IF_LINT (= 0);
|
2008-01-18 07:08:52 +00:00
|
|
|
|
int need_marker_adjustment = 0;
|
2008-02-14 12:24:15 +00:00
|
|
|
|
Lisp_Object old_deactivate_mark;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2008-02-14 12:24:15 +00:00
|
|
|
|
old_deactivate_mark = Vdeactivate_mark;
|
2001-12-17 15:21:06 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (NILP (dst_object))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
destination = coding->destination;
|
|
|
|
|
dst_bytes = coding->dst_bytes;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2001-12-17 15:21:06 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->src_object = src_object;
|
|
|
|
|
coding->src_chars = chars;
|
|
|
|
|
coding->src_bytes = bytes;
|
|
|
|
|
coding->src_multibyte = chars < bytes;
|
2001-07-23 09:26:46 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (STRINGP (src_object))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->src_pos = from;
|
|
|
|
|
coding->src_pos_byte = from_byte;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (BUFFERP (src_object))
|
1998-09-28 11:52:53 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
set_buffer_internal (XBUFFER (src_object));
|
|
|
|
|
if (from != GPT)
|
|
|
|
|
move_gap_both (from, from_byte);
|
|
|
|
|
if (EQ (src_object, dst_object))
|
1998-02-20 01:40:47 +00:00
|
|
|
|
{
|
2008-01-18 07:08:52 +00:00
|
|
|
|
struct Lisp_Marker *tail;
|
|
|
|
|
|
|
|
|
|
for (tail = BUF_MARKERS (current_buffer); tail; tail = tail->next)
|
|
|
|
|
{
|
|
|
|
|
tail->need_adjustment
|
|
|
|
|
= tail->charpos == (tail->insertion_type ? from : to);
|
|
|
|
|
need_marker_adjustment |= tail->need_adjustment;
|
|
|
|
|
}
|
2003-05-28 11:37:09 +00:00
|
|
|
|
saved_pt = PT, saved_pt_byte = PT_BYTE;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
TEMP_SET_PT_BOTH (from, from_byte);
|
2008-03-03 22:29:12 +00:00
|
|
|
|
current_buffer->text->inhibit_shrinking = 1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
del_range_both (from, from_byte, to, to_byte, 1);
|
|
|
|
|
coding->src_pos = -chars;
|
|
|
|
|
coding->src_pos_byte = -bytes;
|
1998-02-20 01:40:47 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
1998-02-20 01:40:47 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->src_pos = from;
|
|
|
|
|
coding->src_pos_byte = from_byte;
|
1998-02-20 01:40:47 +00:00
|
|
|
|
}
|
1998-09-28 11:52:53 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (CODING_REQUIRE_DETECTION (coding))
|
|
|
|
|
detect_coding (coding);
|
|
|
|
|
attrs = CODING_ID_ATTRS (coding->id);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-05-06 08:16:37 +00:00
|
|
|
|
if (EQ (dst_object, Qt)
|
|
|
|
|
|| (! NILP (CODING_ATTR_POST_READ (attrs))
|
|
|
|
|
&& NILP (dst_object)))
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2008-03-27 20:04:37 +00:00
|
|
|
|
coding->dst_multibyte = !CODING_FOR_UNIBYTE (coding);
|
|
|
|
|
coding->dst_object = code_conversion_save (1, coding->dst_multibyte);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_pos = BEG;
|
|
|
|
|
coding->dst_pos_byte = BEG_BYTE;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (BUFFERP (dst_object))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
code_conversion_save (0, 0);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_object = dst_object;
|
|
|
|
|
coding->dst_pos = BUF_PT (XBUFFER (dst_object));
|
|
|
|
|
coding->dst_pos_byte = BUF_PT_BYTE (XBUFFER (dst_object));
|
|
|
|
|
coding->dst_multibyte
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
= ! NILP (BVAR (XBUFFER (dst_object), enable_multibyte_characters));
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
code_conversion_save (0, 0);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_object = Qnil;
|
2008-03-27 20:24:55 +00:00
|
|
|
|
/* Most callers presume this will return a multibyte result, and they
|
|
|
|
|
won't use `binary' or `raw-text' anyway, so let's not worry about
|
|
|
|
|
CODING_FOR_UNIBYTE. */
|
2008-03-27 20:26:59 +00:00
|
|
|
|
coding->dst_multibyte = 1;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
decode_coding (coding);
|
2000-05-26 13:42:03 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (BUFFERP (coding->dst_object))
|
|
|
|
|
set_buffer_internal (XBUFFER (coding->dst_object));
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! NILP (CODING_ATTR_POST_READ (attrs)))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2008-02-14 12:24:15 +00:00
|
|
|
|
struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMACS_INT prev_Z = Z, prev_Z_BYTE = Z_BYTE;
|
1998-03-12 00:44:06 +00:00
|
|
|
|
Lisp_Object val;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-05-14 11:47:35 +00:00
|
|
|
|
TEMP_SET_PT_BOTH (coding->dst_pos, coding->dst_pos_byte);
|
2008-02-14 12:24:15 +00:00
|
|
|
|
GCPRO5 (coding->src_object, coding->dst_object, src_object, dst_object,
|
|
|
|
|
old_deactivate_mark);
|
2005-03-29 00:34:38 +00:00
|
|
|
|
val = safe_call1 (CODING_ATTR_POST_READ (attrs),
|
|
|
|
|
make_number (coding->produced_char));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
UNGCPRO;
|
|
|
|
|
CHECK_NATNUM (val);
|
|
|
|
|
coding->produced_char += Z - prev_Z;
|
|
|
|
|
coding->produced += Z_BYTE - prev_Z_BYTE;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
1998-09-26 04:20:48 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (EQ (dst_object, Qt))
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_object = Fbuffer_string ();
|
|
|
|
|
}
|
|
|
|
|
else if (NILP (dst_object) && BUFFERP (coding->dst_object))
|
|
|
|
|
{
|
|
|
|
|
set_buffer_internal (XBUFFER (coding->dst_object));
|
|
|
|
|
if (dst_bytes < coding->produced)
|
|
|
|
|
{
|
2008-02-14 12:24:15 +00:00
|
|
|
|
destination = xrealloc (destination, coding->produced);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! destination)
|
|
|
|
|
{
|
2003-12-29 07:52:49 +00:00
|
|
|
|
record_conversion_result (coding,
|
2010-02-18 11:27:25 +09:00
|
|
|
|
CODING_RESULT_INSUFFICIENT_MEM);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unbind_to (count, Qnil);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (BEGV < GPT && GPT < BEGV + coding->produced_char)
|
|
|
|
|
move_gap_both (BEGV, BEGV_BYTE);
|
Replace bcopy, bzero, bcmp by memcpy, memmove, memset, memcmp
* alloc.c (overrun_check_malloc, overrun_check_realloc)
(overrun_check_free, xstrdup, allocate_string)
(allocate_string_data, compact_small_strings, Fmake_string)
(make_unibyte_string, make_multibyte_string)
(make_string_from_bytes, make_specified_string, make_float)
(Fcons, allocate_terminal, allocate_frame, make_pure_string)
(Fgarbage_collect): Replace bcopy, safe_bcopy, bzero, bcmp by
memcpy, memmove, memset, memcmp.
* atimer.c (start_atimer, set_alarm): Likewise.
* buffer.c (clone_per_buffer_values, report_overlay_modification)
(mmap_realloc, init_buffer_once): Likewise.
* callint.c (Fcall_interactively): Likewise.
* callproc.c (Fcall_process, Fcall_process_region, child_setup)
(getenv_internal_1): Likewise.
* casefiddle.c (casify_object): Likewise.
* ccl.c (ccl_driver): Likewise.
* character.c (str_as_multibyte, str_to_multibyte): Likewise.
* charset.c (load_charset_map_from_file)
(load_charset_map_from_file, load_charset_map_from_vector)
(Fdefine_charset_internal): Likewise.
* cm.c (Wcm_clear): Likewise.
* coding.c (decode_eol, decode_coding_object)
(Fset_coding_system_priority, make_subsidiaries): Likewise.
* data.c (Faset): Likewise.
* dired.c (directory_files_internal, file_name_completion_stat):
Likewise.
* dispnew.c (new_glyph_matrix, adjust_glyph_matrix)
(clear_glyph_row, copy_row_except_pointers)
(copy_glyph_row_contents, new_glyph_pool, realloc_glyph_pool)
(save_current_matrix, restore_current_matrix)
(build_frame_matrix_from_leaf_window, mirrored_line_dance)
(mirror_line_dance, scrolling_window): Likewise.
* doc.c (Fsnarf_documentation, Fsubstitute_command_keys):
Likewise.
* doprnt.c (doprnt): Likewise.
* editfns.c (Fuser_full_name, make_buffer_string_both)
(Fmessage_box, Fformat, Ftranspose_regions): Likewise.
* emacs.c (sort_args): Likewise.
* eval.c (Fapply, Ffuncall): Likewise.
* fileio.c (Ffile_name_directory, make_temp_name)
(Fexpand_file_name, search_embedded_absfilename)
(Fsubstitute_in_file_name, Ffile_symlink_p, Finsert_file_contents)
(auto_save_error): Likewise.
* fns.c (Fstring_equal, Fcopy_sequence, concat)
(string_to_multibyte, Fstring_as_unibyte, Fstring_as_multibyte)
(internal_equal, Fclear_string, larger_vector, copy_hash_table)
(Fmake_hash_table): Likewise.
* fringe.c (Fdefine_fringe_bitmap): Likewise.
* ftfont.c (ftfont_text_extents): Likewise.
* getloadavg.c (getloadavg): Likewise.
* image.c (define_image_type, make_image, make_image_cache)
(x_create_x_image_and_pixmap, xbm_image_p)
(w32_create_pixmap_from_bitmap_data, xbm_load, xpm_lookup_color)
(xpm_image_p, x_create_bitmap_from_xpm_data, xpm_load)
(init_color_table, x_build_heuristic_mask, pbm_image_p, pbm_load)
(png_image_p, png_read_from_memory, png_load, jpeg_image_p)
(tiff_image_p, tiff_read_from_memory, gif_image_p)
(gif_read_from_memory, gif_load, svg_image_p, gs_image_p):
Likewise.
* indent.c (scan_for_column, compute_motion): Likewise.
* insdel.c (gap_left, gap_right, make_gap_smaller, copy_text)
(insert_1_both, insert_from_gap, replace_range_2): Likewise.
* intervals.c (reproduce_tree, reproduce_tree_obj): Likewise.
* keyboard.c (echo_char, save_getcjmp, restore_getcjmp)
(kbd_buffer_store_event_hold, apply_modifiers_uncached)
(store_user_signal_events, menu_bar_items, tool_bar_items)
(process_tool_bar_item, append_tool_bar_item)
(read_char_minibuf_menu_prompt, read_key_sequence)
(Fread_key_sequence, Fread_key_sequence_vector, Frecent_keys):
Likewise.
* keymap.c (current_minor_maps, Fdescribe_buffer_bindings):
Likewise.
* lisp.h (STRING_COPYIN): Likewise.
* lread.c (Fload, read1, oblookup): Likewise.
* msdos.c (Frecent_doskeys): Likewise.
* nsfns.m (Fx_create_frame): Likewise.
* nsfont.m (nsfont_open, nsfont_text_extents, ns_glyph_metrics):
Likewise.
* nsimage.m (EmacsImage-initFromSkipXBM:width:height:)
(EmacsImage-initForXPMWithDepth:width:height:flip:length:):
Likewise.
* nsmenu.m (ns_update_menubar): Likewise.
* nsterm.m (ns_draw_fringe_bitmap, ns_term_init): Likewise.
* print.c (print_unwind, printchar, strout, print_string)
(print_error_message): Likewise.
* process.c (conv_lisp_to_sockaddr, set_socket_option)
(Fmake_network_process, Fnetwork_interface_list)
(Fnetwork_interface_info, read_process_output, Fprocess_send_eof)
(init_process): Likewise.
* ralloc.c (resize_bloc, r_alloc_sbrk, r_alloc_init): Likewise.
* regex.c (init_syntax_once, regex_compile, re_compile_fastmap):
Likewise.
* scroll.c (do_scrolling, do_direct_scrolling)
(scrolling_max_lines_saved): Likewise.
* search.c (search_buffer, wordify, Freplace_match): Likewise.
* sound.c (wav_init, au_init, Fplay_sound_internal): Likewise.
* syntax.c (skip_chars, skip_syntaxes): Likewise.
* sysdep.c (child_setup_tty, sys_subshell, emacs_get_tty)
(emacs_set_tty): Likewise.
* term.c (encode_terminal_code, calculate_costs)
(produce_special_glyphs, create_tty_output, init_tty, delete_tty):
Likewise.
* termcap.c (tgetst1, gobble_line): Likewise.
* termhooks.h (EVENT_INIT): Likewise.
* tparam.c (tparam1): Likewise.
* unexalpha.c (unexec): Likewise.
* unexec.c (write_segment): Likewise.
* unexmacosx.c (unexec_write_zero): Likewise.
* w32fns.c (w32_wnd_proc, Fx_create_frame, x_create_tip_frame)
(Fx_file_dialog, Fsystem_move_file_to_trash): Likewise.
* w32font.c (w32font_list_family, w32font_text_extents)
(w32font_list_internal, w32font_match_internal)
(w32font_open_internal, compute_metrics, Fx_select_font):
Likewise.
* w32menu.c (set_frame_menubar, add_menu_item)
(w32_menu_display_help, w32_free_submenu_strings): Likewise.
* w32term.c (XCreateGC, w32_initialize_display_info): Likewise.
* w32uniscribe.c (uniscribe_list_family): Likewise.
* w32xfns.c (get_next_msg, post_msg, prepend_msg): Likewise.
* window.c (make_window, replace_window, set_window_buffer)
(Fsplit_window): Likewise.
* xdisp.c (init_iterator, RECORD_OVERLAY_STRING, reseat_to_string)
(add_to_log, message3, x_consider_frame_title)
(append_space_for_newline, extend_face_to_end_of_line)
(decode_mode_spec_coding, init_glyph_string): Likewise.
* xfaces.c (x_create_gc, get_lface_attributes_no_remap)
(Finternal_copy_lisp_face, Finternal_merge_in_global_face)
(face_attr_equal_p, make_realized_face, make_face_cache)
(free_realized_faces, lookup_named_face, smaller_face)
(face_with_height, lookup_derived_face)
(x_supports_face_attributes_p, Finternal_set_font_selection_order)
(Finternal_set_font_selection_order, realize_default_face)
(compute_char_face, face_at_buffer_position)
(face_for_overlay_string, face_at_string_position, merge_faces):
Likewise.
* xfns.c (xic_create_fontsetname, Fx_create_frame)
(Fx_window_property, x_create_tip_frame)
(Fx_backspace_delete_keys_p): Likewise.
* xfont.c (xfont_list, xfont_match, xfont_list_family)
(xfont_text_extents): Likewise.
* xmenu.c (set_frame_menubar, xmenu_show): Likewise.
* xrdb.c (magic_file_p, x_get_resource): Likewise.
* xselect.c (x_queue_event, x_get_window_property)
(receive_incremental_selection): Likewise.
* xsmfns.c (x_session_check_input): Likewise.
* xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT)
(handle_one_xevent, x_check_errors, xim_initialize, x_term_init):
Likewise.
* character.h (BCOPY_SHORT): Removed.
* config.in: Regenerate.
* dispnew.c (safe_bcopy): Only define as dummy if PROFILING.
* emacs.c (main) [PROFILING]: Don't declare
dump_opcode_frequencies.
* lisp.h (safe_bcopy): Remove declaration.
(memset) [!HAVE_MEMSET]: Declare.
(memcpy) [!HAVE_MEMCPY]: Likewise.
(memmove) [!HAVE_MEMMOVE]: Likewise.
(memcmp) [!HAVE_MEMCMP]: Likewise.
* s/ms-w32.h (bzero, bcopy, bcmp, GAP_USE_BCOPY)
(BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE, HAVE_BCOPY, HAVE_BCMP):
Don't define.
(HAVE_MEMCMP, HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET): Define.
* s/msdos.h (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE)
(BCOPY_DOWNWARD_SAFE): Don't define.
* sysdep.c (memset) [!HAVE_MEMSET]: Define.
(memcpy) [!HAVE_MEMCPY]: Define.
(memmove) [!HAVE_MEMMOVE]: Define.
(memcmp) [!HAVE_MEMCMP]: Define.
* config.nt (HAVE_BCOPY, HAVE_BCMP): Remove undefs.
(HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET, HAVE_MEMCMP): Add undefs.
* sed2v2.inp (HAVE_MEMCPY, HAVE_MEMSET): Edit to 1.
(HAVE_BZERO): Don't edit.
* lwlib.c (lwlib_memset, lwlib_bcopy): Remove.
(malloc_widget_value, free_widget_info, allocate_widget_instance)
(lw_separator_p): Replace lwlib_memset, lwlib_bcopy, bzero, bcmp by
memset, memcpy, memcmp.
* lwlib-utils.c (XtApplyToWidgets): Likewise.
* xlwmenu.c (XlwMenuInitialize): Likewise.
* lwlib.h (lwlib_bcopy): Remove declaration.
* ebrowse.c (add_sym, make_namespace): Replace bcopy, bzero by
memcpy, memmove, memset.
* pop.c (pop_retrieve, socket_connection, pop_getline): Likewise.
* CPP-DEFINES (BCOPY_DOWNWARD_SAFE, BCOPY_UPWARD_SAFE)
(GAP_USE_BCOPY, HAVE_BCMP, HAVE_BCOPY, bcmp, bcopy, bzero):
Remove.
* configure.in: Don't check for bcopy, bcmp, bzero. Don't include
<strings.h> and don't define bcopy, bzero, BCMP in config.h.
2010-07-08 00:18:28 +02:00
|
|
|
|
memcpy (destination, BEGV_ADDR, coding->produced);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->destination = destination;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2003-05-28 11:37:09 +00:00
|
|
|
|
if (saved_pt >= 0)
|
|
|
|
|
{
|
|
|
|
|
/* This is the case of:
|
|
|
|
|
(BUFFERP (src_object) && EQ (src_object, dst_object))
|
|
|
|
|
As we have moved PT while replacing the original buffer
|
|
|
|
|
contents, we must recover it now. */
|
|
|
|
|
set_buffer_internal (XBUFFER (src_object));
|
2008-03-03 22:29:12 +00:00
|
|
|
|
current_buffer->text->inhibit_shrinking = 0;
|
2003-05-28 11:37:09 +00:00
|
|
|
|
if (saved_pt < from)
|
|
|
|
|
TEMP_SET_PT_BOTH (saved_pt, saved_pt_byte);
|
|
|
|
|
else if (saved_pt < from + chars)
|
|
|
|
|
TEMP_SET_PT_BOTH (from, from_byte);
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
else if (! NILP (BVAR (current_buffer, enable_multibyte_characters)))
|
2003-05-28 11:37:09 +00:00
|
|
|
|
TEMP_SET_PT_BOTH (saved_pt + (coding->produced_char - chars),
|
|
|
|
|
saved_pt_byte + (coding->produced - bytes));
|
|
|
|
|
else
|
|
|
|
|
TEMP_SET_PT_BOTH (saved_pt + (coding->produced - bytes),
|
|
|
|
|
saved_pt_byte + (coding->produced - bytes));
|
2008-01-18 07:08:52 +00:00
|
|
|
|
|
|
|
|
|
if (need_marker_adjustment)
|
|
|
|
|
{
|
|
|
|
|
struct Lisp_Marker *tail;
|
|
|
|
|
|
|
|
|
|
for (tail = BUF_MARKERS (current_buffer); tail; tail = tail->next)
|
|
|
|
|
if (tail->need_adjustment)
|
|
|
|
|
{
|
|
|
|
|
tail->need_adjustment = 0;
|
|
|
|
|
if (tail->insertion_type)
|
|
|
|
|
{
|
|
|
|
|
tail->bytepos = from_byte;
|
|
|
|
|
tail->charpos = from;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
tail->bytepos = from_byte + coding->produced;
|
|
|
|
|
tail->charpos
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
= (NILP (BVAR (current_buffer, enable_multibyte_characters))
|
2008-01-18 07:08:52 +00:00
|
|
|
|
? tail->bytepos : from + coding->produced_char);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2003-05-28 11:37:09 +00:00
|
|
|
|
|
2008-02-14 12:24:15 +00:00
|
|
|
|
Vdeactivate_mark = old_deactivate_mark;
|
2003-12-29 07:52:49 +00:00
|
|
|
|
unbind_to (count, coding->dst_object);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
void
|
2010-07-07 11:38:03 +02:00
|
|
|
|
encode_coding_object (struct coding_system *coding,
|
|
|
|
|
Lisp_Object src_object,
|
|
|
|
|
EMACS_INT from, EMACS_INT from_byte,
|
|
|
|
|
EMACS_INT to, EMACS_INT to_byte,
|
|
|
|
|
Lisp_Object dst_object)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2010-07-07 10:45:22 +02:00
|
|
|
|
int count = SPECPDL_INDEX ();
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMACS_INT chars = to - from;
|
|
|
|
|
EMACS_INT bytes = to_byte - from_byte;
|
|
|
|
|
Lisp_Object attrs;
|
2011-03-07 23:12:45 -08:00
|
|
|
|
int saved_pt = -1, saved_pt_byte IF_LINT (= 0);
|
2008-01-18 07:08:52 +00:00
|
|
|
|
int need_marker_adjustment = 0;
|
2005-09-23 07:06:22 +00:00
|
|
|
|
int kill_src_buffer = 0;
|
2008-02-14 12:24:15 +00:00
|
|
|
|
Lisp_Object old_deactivate_mark;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2008-02-14 12:24:15 +00:00
|
|
|
|
old_deactivate_mark = Vdeactivate_mark;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
coding->src_object = src_object;
|
|
|
|
|
coding->src_chars = chars;
|
|
|
|
|
coding->src_bytes = bytes;
|
|
|
|
|
coding->src_multibyte = chars < bytes;
|
|
|
|
|
|
|
|
|
|
attrs = CODING_ID_ATTRS (coding->id);
|
|
|
|
|
|
2008-01-18 07:08:52 +00:00
|
|
|
|
if (EQ (src_object, dst_object))
|
|
|
|
|
{
|
|
|
|
|
struct Lisp_Marker *tail;
|
|
|
|
|
|
|
|
|
|
for (tail = BUF_MARKERS (current_buffer); tail; tail = tail->next)
|
|
|
|
|
{
|
|
|
|
|
tail->need_adjustment
|
|
|
|
|
= tail->charpos == (tail->insertion_type ? from : to);
|
|
|
|
|
need_marker_adjustment |= tail->need_adjustment;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! NILP (CODING_ATTR_PRE_WRITE (attrs)))
|
2000-05-25 04:44:33 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
coding->src_object = code_conversion_save (1, coding->src_multibyte);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
set_buffer_internal (XBUFFER (coding->src_object));
|
|
|
|
|
if (STRINGP (src_object))
|
|
|
|
|
insert_from_string (src_object, from, from_byte, chars, bytes, 0);
|
|
|
|
|
else if (BUFFERP (src_object))
|
|
|
|
|
insert_from_buffer (XBUFFER (src_object), from, chars, 0);
|
|
|
|
|
else
|
2011-02-06 11:44:36 -08:00
|
|
|
|
insert_1_both ((char *) coding->source + from, chars, bytes, 0, 0, 0);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (EQ (src_object, dst_object))
|
|
|
|
|
{
|
|
|
|
|
set_buffer_internal (XBUFFER (src_object));
|
2003-05-28 11:37:09 +00:00
|
|
|
|
saved_pt = PT, saved_pt_byte = PT_BYTE;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
del_range_both (from, from_byte, to, to_byte, 1);
|
|
|
|
|
set_buffer_internal (XBUFFER (coding->src_object));
|
|
|
|
|
}
|
|
|
|
|
|
2005-03-29 00:34:38 +00:00
|
|
|
|
{
|
|
|
|
|
Lisp_Object args[3];
|
2008-02-14 12:24:15 +00:00
|
|
|
|
struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
|
2005-03-29 00:34:38 +00:00
|
|
|
|
|
2008-02-14 12:24:15 +00:00
|
|
|
|
GCPRO5 (coding->src_object, coding->dst_object, src_object, dst_object,
|
|
|
|
|
old_deactivate_mark);
|
2005-03-29 00:34:38 +00:00
|
|
|
|
args[0] = CODING_ATTR_PRE_WRITE (attrs);
|
|
|
|
|
args[1] = make_number (BEG);
|
|
|
|
|
args[2] = make_number (Z);
|
|
|
|
|
safe_call (3, args);
|
2008-02-14 12:24:15 +00:00
|
|
|
|
UNGCPRO;
|
2005-03-29 00:34:38 +00:00
|
|
|
|
}
|
2005-09-23 07:06:22 +00:00
|
|
|
|
if (XBUFFER (coding->src_object) != current_buffer)
|
|
|
|
|
kill_src_buffer = 1;
|
2002-05-14 13:03:45 +00:00
|
|
|
|
coding->src_object = Fcurrent_buffer ();
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (BEG != GPT)
|
|
|
|
|
move_gap_both (BEG, BEG_BYTE);
|
|
|
|
|
coding->src_chars = Z - BEG;
|
|
|
|
|
coding->src_bytes = Z_BYTE - BEG_BYTE;
|
|
|
|
|
coding->src_pos = BEG;
|
|
|
|
|
coding->src_pos_byte = BEG_BYTE;
|
|
|
|
|
coding->src_multibyte = Z < Z_BYTE;
|
|
|
|
|
}
|
|
|
|
|
else if (STRINGP (src_object))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
code_conversion_save (0, 0);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->src_pos = from;
|
|
|
|
|
coding->src_pos_byte = from_byte;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (BUFFERP (src_object))
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2003-12-02 01:40:27 +00:00
|
|
|
|
code_conversion_save (0, 0);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
set_buffer_internal (XBUFFER (src_object));
|
|
|
|
|
if (EQ (src_object, dst_object))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2003-05-28 11:37:09 +00:00
|
|
|
|
saved_pt = PT, saved_pt_byte = PT_BYTE;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
coding->src_object = del_range_1 (from, to, 1, 1);
|
|
|
|
|
coding->src_pos = 0;
|
|
|
|
|
coding->src_pos_byte = 0;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (from < GPT && to >= GPT)
|
|
|
|
|
move_gap_both (from, from_byte);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->src_pos = from;
|
|
|
|
|
coding->src_pos_byte = from_byte;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2003-05-28 11:37:09 +00:00
|
|
|
|
else
|
2003-12-02 01:40:27 +00:00
|
|
|
|
code_conversion_save (0, 0);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (BUFFERP (dst_object))
|
1998-09-28 11:52:53 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_object = dst_object;
|
2002-08-21 12:53:56 +00:00
|
|
|
|
if (EQ (src_object, dst_object))
|
|
|
|
|
{
|
|
|
|
|
coding->dst_pos = from;
|
|
|
|
|
coding->dst_pos_byte = from_byte;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2008-05-28 06:38:47 +00:00
|
|
|
|
struct buffer *current = current_buffer;
|
|
|
|
|
|
|
|
|
|
set_buffer_temp (XBUFFER (dst_object));
|
|
|
|
|
coding->dst_pos = PT;
|
|
|
|
|
coding->dst_pos_byte = PT_BYTE;
|
|
|
|
|
move_gap_both (coding->dst_pos, coding->dst_pos_byte);
|
|
|
|
|
set_buffer_temp (current);
|
2002-08-21 12:53:56 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_multibyte
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
= ! NILP (BVAR (XBUFFER (dst_object), enable_multibyte_characters));
|
1998-09-28 11:52:53 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (EQ (dst_object, Qt))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2011-07-28 13:31:29 -07:00
|
|
|
|
ptrdiff_t dst_bytes = max (1, coding->src_chars);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_object = Qnil;
|
2011-07-28 13:31:29 -07:00
|
|
|
|
coding->destination = (unsigned char *) xmalloc (dst_bytes);
|
|
|
|
|
coding->dst_bytes = dst_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_multibyte = 0;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_object = Qnil;
|
|
|
|
|
coding->dst_multibyte = 0;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
encode_coding (coding);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (EQ (dst_object, Qt))
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (BUFFERP (coding->dst_object))
|
|
|
|
|
coding->dst_object = Fbuffer_string ();
|
|
|
|
|
else
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding->dst_object
|
|
|
|
|
= make_unibyte_string ((char *) coding->destination,
|
|
|
|
|
coding->produced);
|
|
|
|
|
xfree (coding->destination);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-05-28 11:37:09 +00:00
|
|
|
|
if (saved_pt >= 0)
|
|
|
|
|
{
|
|
|
|
|
/* This is the case of:
|
|
|
|
|
(BUFFERP (src_object) && EQ (src_object, dst_object))
|
|
|
|
|
As we have moved PT while replacing the original buffer
|
|
|
|
|
contents, we must recover it now. */
|
|
|
|
|
set_buffer_internal (XBUFFER (src_object));
|
|
|
|
|
if (saved_pt < from)
|
|
|
|
|
TEMP_SET_PT_BOTH (saved_pt, saved_pt_byte);
|
|
|
|
|
else if (saved_pt < from + chars)
|
|
|
|
|
TEMP_SET_PT_BOTH (from, from_byte);
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
else if (! NILP (BVAR (current_buffer, enable_multibyte_characters)))
|
2003-05-28 11:37:09 +00:00
|
|
|
|
TEMP_SET_PT_BOTH (saved_pt + (coding->produced_char - chars),
|
|
|
|
|
saved_pt_byte + (coding->produced - bytes));
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
else
|
2003-05-28 11:37:09 +00:00
|
|
|
|
TEMP_SET_PT_BOTH (saved_pt + (coding->produced - bytes),
|
|
|
|
|
saved_pt_byte + (coding->produced - bytes));
|
2008-01-18 07:08:52 +00:00
|
|
|
|
|
|
|
|
|
if (need_marker_adjustment)
|
|
|
|
|
{
|
|
|
|
|
struct Lisp_Marker *tail;
|
|
|
|
|
|
|
|
|
|
for (tail = BUF_MARKERS (current_buffer); tail; tail = tail->next)
|
|
|
|
|
if (tail->need_adjustment)
|
|
|
|
|
{
|
|
|
|
|
tail->need_adjustment = 0;
|
|
|
|
|
if (tail->insertion_type)
|
|
|
|
|
{
|
|
|
|
|
tail->bytepos = from_byte;
|
|
|
|
|
tail->charpos = from;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
tail->bytepos = from_byte + coding->produced;
|
|
|
|
|
tail->charpos
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
= (NILP (BVAR (current_buffer, enable_multibyte_characters))
|
2008-01-18 07:08:52 +00:00
|
|
|
|
? tail->bytepos : from + coding->produced_char);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2003-05-28 11:37:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
2005-09-23 07:06:22 +00:00
|
|
|
|
if (kill_src_buffer)
|
|
|
|
|
Fkill_buffer (coding->src_object);
|
2008-02-14 12:24:15 +00:00
|
|
|
|
|
|
|
|
|
Vdeactivate_mark = old_deactivate_mark;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unbind_to (count, Qnil);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
preferred_coding_system (void)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int id = coding_categories[coding_priorities[0]].id;
|
2000-08-18 06:41:15 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return CODING_ID_NAME (id);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef emacs
|
1998-08-02 01:06:57 +00:00
|
|
|
|
/*** 8. Emacs Lisp library functions ***/
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2011-04-13 22:04:02 -07:00
|
|
|
|
DEFUN ("coding-system-p", Fcoding_system_p, Scoding_system_p, 1, 1, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Return t if OBJECT is nil or a coding-system.
|
2002-03-01 01:17:24 +00:00
|
|
|
|
See the documentation of `define-coding-system' for information
|
2001-11-04 17:43:52 +00:00
|
|
|
|
about coding-system objects. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object object)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2008-05-19 00:57:11 +00:00
|
|
|
|
if (NILP (object)
|
|
|
|
|
|| CODING_SYSTEM_ID (object) >= 0)
|
2006-01-19 07:20:52 +00:00
|
|
|
|
return Qt;
|
2008-05-19 00:57:11 +00:00
|
|
|
|
if (! SYMBOLP (object)
|
|
|
|
|
|| NILP (Fget (object, Qcoding_system_define_form)))
|
2006-01-19 07:20:52 +00:00
|
|
|
|
return Qnil;
|
|
|
|
|
return Qt;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2011-04-13 22:04:02 -07:00
|
|
|
|
DEFUN ("read-non-nil-coding-system", Fread_non_nil_coding_system,
|
1997-05-10 03:19:20 +00:00
|
|
|
|
Sread_non_nil_coding_system, 1, 1, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Read a coding system from the minibuffer, prompting with string PROMPT. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object prompt)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
1997-02-27 11:10:42 +00:00
|
|
|
|
Lisp_Object val;
|
1997-05-10 03:19:20 +00:00
|
|
|
|
do
|
|
|
|
|
{
|
1997-10-21 10:43:40 +00:00
|
|
|
|
val = Fcompleting_read (prompt, Vcoding_system_alist, Qnil,
|
|
|
|
|
Qt, Qnil, Qcoding_system_history, Qnil, Qnil);
|
1997-05-10 03:19:20 +00:00
|
|
|
|
}
|
2003-09-08 12:53:41 +00:00
|
|
|
|
while (SCHARS (val) == 0);
|
1997-02-27 11:10:42 +00:00
|
|
|
|
return (Fintern (val, Qnil));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2011-04-13 22:04:02 -07:00
|
|
|
|
DEFUN ("read-coding-system", Fread_coding_system, Sread_coding_system, 1, 2, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Read a coding system from the minibuffer, prompting with string PROMPT.
|
2007-10-17 01:29:58 +00:00
|
|
|
|
If the user enters null input, return second argument DEFAULT-CODING-SYSTEM.
|
|
|
|
|
Ignores case when completing coding systems (all Emacs coding systems
|
|
|
|
|
are lower-case). */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object prompt, Lisp_Object default_coding_system)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
1997-09-04 04:55:52 +00:00
|
|
|
|
Lisp_Object val;
|
2007-10-17 01:29:58 +00:00
|
|
|
|
int count = SPECPDL_INDEX ();
|
|
|
|
|
|
1997-09-05 05:38:21 +00:00
|
|
|
|
if (SYMBOLP (default_coding_system))
|
2002-05-20 08:05:15 +00:00
|
|
|
|
default_coding_system = SYMBOL_NAME (default_coding_system);
|
2007-10-17 01:29:58 +00:00
|
|
|
|
specbind (Qcompletion_ignore_case, Qt);
|
1997-10-21 10:43:40 +00:00
|
|
|
|
val = Fcompleting_read (prompt, Vcoding_system_alist, Qnil,
|
1997-09-05 05:38:21 +00:00
|
|
|
|
Qt, Qnil, Qcoding_system_history,
|
|
|
|
|
default_coding_system, Qnil);
|
2007-10-17 01:29:58 +00:00
|
|
|
|
unbind_to (count, Qnil);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
return (SCHARS (val) == 0 ? Qnil : Fintern (val, Qnil));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2011-04-13 22:04:02 -07:00
|
|
|
|
DEFUN ("check-coding-system", Fcheck_coding_system, Scheck_coding_system,
|
1997-02-20 07:02:49 +00:00
|
|
|
|
1, 1, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Check validity of CODING-SYSTEM.
|
2004-04-12 23:17:27 +00:00
|
|
|
|
If valid, return CODING-SYSTEM, else signal a `coding-system-error' error.
|
|
|
|
|
It is valid if it is nil or a symbol defined as a coding system by the
|
|
|
|
|
function `define-coding-system'. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object coding_system)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2006-01-19 07:20:52 +00:00
|
|
|
|
Lisp_Object define_form;
|
|
|
|
|
|
|
|
|
|
define_form = Fget (coding_system, Qcoding_system_define_form);
|
|
|
|
|
if (! NILP (define_form))
|
|
|
|
|
{
|
|
|
|
|
Fput (coding_system, Qcoding_system_define_form, Qnil);
|
|
|
|
|
safe_eval (define_form);
|
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
if (!NILP (Fcoding_system_p (coding_system)))
|
|
|
|
|
return coding_system;
|
2006-07-18 13:26:12 +00:00
|
|
|
|
xsignal1 (Qcoding_system_error, coding_system);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
1998-01-19 19:45:53 +00:00
|
|
|
|
|
2002-10-10 09:05:37 +00:00
|
|
|
|
/* Detect how the bytes at SRC of length SRC_BYTES are encoded. If
|
|
|
|
|
HIGHEST is nonzero, return the coding system of the highest
|
2010-10-12 21:52:05 +09:00
|
|
|
|
priority among the detected coding systems. Otherwise return a
|
2002-10-10 09:05:37 +00:00
|
|
|
|
list of detected coding systems sorted by their priorities. If
|
|
|
|
|
MULTIBYTEP is nonzero, it is assumed that the bytes are in correct
|
|
|
|
|
multibyte form but contains only ASCII and eight-bit chars.
|
|
|
|
|
Otherwise, the bytes are raw bytes.
|
|
|
|
|
|
|
|
|
|
CODING-SYSTEM controls the detection as below:
|
|
|
|
|
|
|
|
|
|
If it is nil, detect both text-format and eol-format. If the
|
|
|
|
|
text-format part of CODING-SYSTEM is already specified
|
|
|
|
|
(e.g. `iso-latin-1'), detect only eol-format. If the eol-format
|
|
|
|
|
part of CODING-SYSTEM is already specified (e.g. `undecided-unix'),
|
|
|
|
|
detect only text-format. */
|
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
Lisp_Object
|
2010-07-07 11:38:03 +02:00
|
|
|
|
detect_coding_system (const unsigned char *src,
|
|
|
|
|
EMACS_INT src_chars, EMACS_INT src_bytes,
|
|
|
|
|
int highest, int multibytep,
|
|
|
|
|
Lisp_Object coding_system)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
const unsigned char *src_end = src + src_bytes;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object attrs, eol_type;
|
2008-12-03 02:27:26 +00:00
|
|
|
|
Lisp_Object val = Qnil;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
struct coding_system coding;
|
Use ptrdiff_t for hash table indexes.
* category.c (hash_get_category_set):
* ccl.c (ccl_driver):
* charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
* coding.c (coding_system_charset_list, detect_coding_system):
* coding.h (struct coding_system.id):
* composite.c (get_composition_id, gstring_lookup_cache):
* fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
* image.c (xpm_get_color_table_h):
* lisp.h (hash_lookup, hash_put):
* minibuf.c (Ftest_completion):
Use ptrdiff_t for hash table indexes, not int (which is too
narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
32-bit --with-wide-int hosts).
2011-07-18 23:07:07 -07:00
|
|
|
|
ptrdiff_t id;
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
struct coding_detection_info detect_info;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
enum coding_category base_category;
|
2008-04-03 12:31:27 +00:00
|
|
|
|
int null_byte_found = 0, eight_bit_found = 0;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (NILP (coding_system))
|
|
|
|
|
coding_system = Qundecided;
|
|
|
|
|
setup_coding_system (coding_system, &coding);
|
|
|
|
|
attrs = CODING_ID_ATTRS (coding.id);
|
|
|
|
|
eol_type = CODING_ID_EOL_TYPE (coding.id);
|
2002-10-10 09:05:37 +00:00
|
|
|
|
coding_system = CODING_ATTR_BASE_NAME (attrs);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding.source = src;
|
2003-12-02 01:40:27 +00:00
|
|
|
|
coding.src_chars = src_chars;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding.src_bytes = src_bytes;
|
|
|
|
|
coding.src_multibyte = multibytep;
|
|
|
|
|
coding.consumed = 0;
|
2002-10-10 09:05:37 +00:00
|
|
|
|
coding.mode |= CODING_MODE_LAST_BLOCK;
|
2008-06-04 07:53:59 +00:00
|
|
|
|
coding.head_ascii = 0;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info.checked = detect_info.found = detect_info.rejected = 0;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-10-10 09:05:37 +00:00
|
|
|
|
/* At first, detect text-format if necessary. */
|
2003-12-02 01:40:27 +00:00
|
|
|
|
base_category = XINT (CODING_ATTR_CATEGORY (attrs));
|
|
|
|
|
if (base_category == coding_category_undecided)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2011-03-07 23:12:45 -08:00
|
|
|
|
enum coding_category category IF_LINT (= 0);
|
|
|
|
|
struct coding_system *this IF_LINT (= NULL);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int c, i;
|
1998-09-28 11:52:53 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
/* Skip all ASCII bytes except for a few ISO2022 controls. */
|
2008-04-03 12:31:27 +00:00
|
|
|
|
for (; src < src_end; src++)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
c = *src;
|
2004-09-13 00:41:15 +00:00
|
|
|
|
if (c & 0x80)
|
|
|
|
|
{
|
2008-04-03 12:31:27 +00:00
|
|
|
|
eight_bit_found = 1;
|
|
|
|
|
if (null_byte_found)
|
|
|
|
|
break;
|
|
|
|
|
}
|
2008-06-04 07:53:59 +00:00
|
|
|
|
else if (c < 0x20)
|
2008-04-03 12:31:27 +00:00
|
|
|
|
{
|
|
|
|
|
if ((c == ISO_CODE_ESC || c == ISO_CODE_SI || c == ISO_CODE_SO)
|
|
|
|
|
&& ! inhibit_iso_escape_detection
|
|
|
|
|
&& ! detect_info.checked)
|
2004-09-13 00:41:15 +00:00
|
|
|
|
{
|
2008-04-03 12:31:27 +00:00
|
|
|
|
if (detect_coding_iso_2022 (&coding, &detect_info))
|
|
|
|
|
{
|
|
|
|
|
/* We have scanned the whole data. */
|
|
|
|
|
if (! (detect_info.rejected & CATEGORY_MASK_ISO_7_ELSE))
|
2008-06-04 07:53:59 +00:00
|
|
|
|
{
|
|
|
|
|
/* We didn't find an 8-bit code. We may
|
|
|
|
|
have found a null-byte, but it's very
|
|
|
|
|
rare that a binary file confirm to
|
|
|
|
|
ISO-2022. */
|
|
|
|
|
src = src_end;
|
|
|
|
|
coding.head_ascii = src - coding.source;
|
|
|
|
|
}
|
|
|
|
|
detect_info.rejected |= ~CATEGORY_MASK_ISO_ESCAPE;
|
2008-04-03 12:31:27 +00:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2009-01-10 10:41:23 +00:00
|
|
|
|
else if (! c && !inhibit_null_byte_detection)
|
2008-04-03 12:31:27 +00:00
|
|
|
|
{
|
|
|
|
|
null_byte_found = 1;
|
|
|
|
|
if (eight_bit_found)
|
|
|
|
|
break;
|
2004-09-13 00:41:15 +00:00
|
|
|
|
}
|
2008-06-05 11:35:10 +00:00
|
|
|
|
if (! eight_bit_found)
|
|
|
|
|
coding.head_ascii++;
|
2004-09-13 00:41:15 +00:00
|
|
|
|
}
|
2008-06-05 11:35:10 +00:00
|
|
|
|
else if (! eight_bit_found)
|
2008-06-04 07:53:59 +00:00
|
|
|
|
coding.head_ascii++;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
1998-09-28 11:52:53 +00:00
|
|
|
|
|
2008-04-03 12:31:27 +00:00
|
|
|
|
if (null_byte_found || eight_bit_found
|
|
|
|
|
|| coding.head_ascii < coding.src_bytes
|
2004-09-13 00:41:15 +00:00
|
|
|
|
|| detect_info.found)
|
|
|
|
|
{
|
2008-04-03 12:31:27 +00:00
|
|
|
|
if (coding.head_ascii == coding.src_bytes)
|
2004-09-13 00:41:15 +00:00
|
|
|
|
/* As all bytes are 7-bit, we can ignore non-ISO-2022 codings. */
|
|
|
|
|
for (i = 0; i < coding_category_raw_text; i++)
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
{
|
2004-09-13 00:41:15 +00:00
|
|
|
|
category = coding_priorities[i];
|
2006-08-28 04:09:02 +00:00
|
|
|
|
this = coding_categories + category;
|
2004-09-13 00:41:15 +00:00
|
|
|
|
if (detect_info.found & (1 << category))
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
break;
|
|
|
|
|
}
|
2004-09-13 00:41:15 +00:00
|
|
|
|
else
|
2008-04-03 12:31:27 +00:00
|
|
|
|
{
|
|
|
|
|
if (null_byte_found)
|
|
|
|
|
{
|
|
|
|
|
detect_info.checked |= ~CATEGORY_MASK_UTF_16;
|
|
|
|
|
detect_info.rejected |= ~CATEGORY_MASK_UTF_16;
|
|
|
|
|
}
|
|
|
|
|
for (i = 0; i < coding_category_raw_text; i++)
|
|
|
|
|
{
|
|
|
|
|
category = coding_priorities[i];
|
|
|
|
|
this = coding_categories + category;
|
2004-09-13 00:41:15 +00:00
|
|
|
|
|
2008-04-03 12:31:27 +00:00
|
|
|
|
if (this->id < 0)
|
|
|
|
|
{
|
|
|
|
|
/* No coding system of this category is defined. */
|
|
|
|
|
detect_info.rejected |= (1 << category);
|
|
|
|
|
}
|
|
|
|
|
else if (category >= coding_category_raw_text)
|
|
|
|
|
continue;
|
|
|
|
|
else if (detect_info.checked & (1 << category))
|
|
|
|
|
{
|
|
|
|
|
if (highest
|
|
|
|
|
&& (detect_info.found & (1 << category)))
|
2004-09-13 00:41:15 +00:00
|
|
|
|
break;
|
2008-04-03 12:31:27 +00:00
|
|
|
|
}
|
|
|
|
|
else if ((*(this->detector)) (&coding, &detect_info)
|
|
|
|
|
&& highest
|
|
|
|
|
&& (detect_info.found & (1 << category)))
|
|
|
|
|
{
|
|
|
|
|
if (category == coding_category_utf_16_auto)
|
|
|
|
|
{
|
|
|
|
|
if (detect_info.found & CATEGORY_MASK_UTF_16_LE)
|
|
|
|
|
category = coding_category_utf_16_le;
|
|
|
|
|
else
|
|
|
|
|
category = coding_category_utf_16_be;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2004-09-13 00:41:15 +00:00
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2009-01-15 07:13:39 +00:00
|
|
|
|
if ((detect_info.rejected & CATEGORY_MASK_ANY) == CATEGORY_MASK_ANY
|
|
|
|
|
|| null_byte_found)
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info.found = CATEGORY_MASK_RAW_TEXT;
|
2009-01-15 07:13:39 +00:00
|
|
|
|
id = CODING_SYSTEM_ID (Qno_conversion);
|
2002-10-10 09:05:37 +00:00
|
|
|
|
val = Fcons (make_number (id), Qnil);
|
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
else if (! detect_info.rejected && ! detect_info.found)
|
2002-10-10 09:05:37 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info.found = CATEGORY_MASK_ANY;
|
2002-10-10 09:05:37 +00:00
|
|
|
|
id = coding_categories[coding_category_undecided].id;
|
|
|
|
|
val = Fcons (make_number (id), Qnil);
|
|
|
|
|
}
|
|
|
|
|
else if (highest)
|
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (detect_info.found)
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info.found = 1 << category;
|
|
|
|
|
val = Fcons (make_number (this->id), Qnil);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
for (i = 0; i < coding_category_raw_text; i++)
|
|
|
|
|
if (! (detect_info.rejected & (1 << coding_priorities[i])))
|
|
|
|
|
{
|
|
|
|
|
detect_info.found = 1 << coding_priorities[i];
|
|
|
|
|
id = coding_categories[coding_priorities[i]].id;
|
|
|
|
|
val = Fcons (make_number (id), Qnil);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2002-10-10 09:05:37 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
int mask = detect_info.rejected | detect_info.found;
|
|
|
|
|
int found = 0;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-10-10 09:05:37 +00:00
|
|
|
|
for (i = coding_category_raw_text - 1; i >= 0; i--)
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
{
|
|
|
|
|
category = coding_priorities[i];
|
|
|
|
|
if (! (mask & (1 << category)))
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
found |= 1 << category;
|
|
|
|
|
id = coding_categories[category].id;
|
2006-08-28 04:09:02 +00:00
|
|
|
|
if (id >= 0)
|
|
|
|
|
val = Fcons (make_number (id), val);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (i = coding_category_raw_text - 1; i >= 0; i--)
|
|
|
|
|
{
|
|
|
|
|
category = coding_priorities[i];
|
|
|
|
|
if (detect_info.found & (1 << category))
|
|
|
|
|
{
|
|
|
|
|
id = coding_categories[category].id;
|
|
|
|
|
val = Fcons (make_number (id), val);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info.found |= found;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
else if (base_category == coding_category_utf_8_auto)
|
|
|
|
|
{
|
|
|
|
|
if (detect_coding_utf_8 (&coding, &detect_info))
|
|
|
|
|
{
|
|
|
|
|
struct coding_system *this;
|
|
|
|
|
|
|
|
|
|
if (detect_info.found & CATEGORY_MASK_UTF_8_SIG)
|
|
|
|
|
this = coding_categories + coding_category_utf_8_sig;
|
|
|
|
|
else
|
|
|
|
|
this = coding_categories + coding_category_utf_8_nosig;
|
|
|
|
|
val = Fcons (make_number (this->id), Qnil);
|
|
|
|
|
}
|
|
|
|
|
}
|
2003-12-02 01:40:27 +00:00
|
|
|
|
else if (base_category == coding_category_utf_16_auto)
|
|
|
|
|
{
|
|
|
|
|
if (detect_coding_utf_16 (&coding, &detect_info))
|
|
|
|
|
{
|
|
|
|
|
struct coding_system *this;
|
|
|
|
|
|
|
|
|
|
if (detect_info.found & CATEGORY_MASK_UTF_16_LE)
|
|
|
|
|
this = coding_categories + coding_category_utf_16_le;
|
|
|
|
|
else if (detect_info.found & CATEGORY_MASK_UTF_16_BE)
|
|
|
|
|
this = coding_categories + coding_category_utf_16_be;
|
|
|
|
|
else if (detect_info.rejected & CATEGORY_MASK_UTF_16_LE_NOSIG)
|
|
|
|
|
this = coding_categories + coding_category_utf_16_be_nosig;
|
|
|
|
|
else
|
|
|
|
|
this = coding_categories + coding_category_utf_16_le_nosig;
|
|
|
|
|
val = Fcons (make_number (this->id), Qnil);
|
|
|
|
|
}
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
detect_info.found = 1 << XINT (CODING_ATTR_CATEGORY (attrs));
|
2002-10-10 09:05:37 +00:00
|
|
|
|
val = Fcons (make_number (coding.id), Qnil);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2002-10-10 09:05:37 +00:00
|
|
|
|
/* Then, detect eol-format if necessary. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2008-12-03 02:27:26 +00:00
|
|
|
|
int normal_eol = -1, utf_16_be_eol = -1, utf_16_le_eol = -1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object tail;
|
|
|
|
|
|
2002-10-10 09:05:37 +00:00
|
|
|
|
if (VECTORP (eol_type))
|
|
|
|
|
{
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (detect_info.found & ~CATEGORY_MASK_UTF_16)
|
2008-04-03 12:31:27 +00:00
|
|
|
|
{
|
|
|
|
|
if (null_byte_found)
|
|
|
|
|
normal_eol = EOL_SEEN_LF;
|
|
|
|
|
else
|
|
|
|
|
normal_eol = detect_eol (coding.source, src_bytes,
|
|
|
|
|
coding_category_raw_text);
|
|
|
|
|
}
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (detect_info.found & (CATEGORY_MASK_UTF_16_BE
|
|
|
|
|
| CATEGORY_MASK_UTF_16_BE_NOSIG))
|
2002-10-10 09:05:37 +00:00
|
|
|
|
utf_16_be_eol = detect_eol (coding.source, src_bytes,
|
|
|
|
|
coding_category_utf_16_be);
|
(CATEGORY_MASK_RAW_TEXT): New macro.
(detect_coding_utf_8, detect_coding_utf_16)
(detect_coding_emacs_mule, detect_coding_iso_2022)
(detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset): Change argument MASK
to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
sequence is valid in this coding system. Callers changed.
(MAX_ANNOTATION_LENGTH): New macro.
(ADD_ANNOTATION_DATA): New macro.
(ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
ADD_ANNOTATION_DATA. The format of annotation data changed.
(ADD_CHARSET_DATA): New macro.
(emacs_mule_char): New argument ID. Callers changed.
(decode_coding_emacs_mule, decode_coding_iso_2022)
(decode_coding_sjis, decode_coding_big5, decode_coding_charset):
Produce charset annotation data in coding->charbuf.
(encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
to charset annotation data in coding->charbuf.
(setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
coding->common_flags if the coding system is iso-2022 based and
uses designation.
(produce_composition): Adjusted for the new annotation data
format.
(produce_charset): New function.
(produce_annotation): Handle charset annotation.
(handle_composition_annotation, handle_charset_annotation): New
functions.
(consume_chars): Handle charset annotation. Utilize the above two
functions.
(encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
buffer, get the deleted text as a string and set
coding->src_object to that string.
(detect_coding, detect_coding_system): Use the new struct
coding_detection_info.
2003-01-06 11:37:17 +00:00
|
|
|
|
if (detect_info.found & (CATEGORY_MASK_UTF_16_LE
|
|
|
|
|
| CATEGORY_MASK_UTF_16_LE_NOSIG))
|
2002-10-10 09:05:37 +00:00
|
|
|
|
utf_16_le_eol = detect_eol (coding.source, src_bytes,
|
|
|
|
|
coding_category_utf_16_le);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (EQ (eol_type, Qunix))
|
|
|
|
|
normal_eol = utf_16_be_eol = utf_16_le_eol = EOL_SEEN_LF;
|
|
|
|
|
else if (EQ (eol_type, Qdos))
|
|
|
|
|
normal_eol = utf_16_be_eol = utf_16_le_eol = EOL_SEEN_CRLF;
|
|
|
|
|
else
|
|
|
|
|
normal_eol = utf_16_be_eol = utf_16_le_eol = EOL_SEEN_CR;
|
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (tail = val; CONSP (tail); tail = XCDR (tail))
|
|
|
|
|
{
|
2002-10-10 09:05:37 +00:00
|
|
|
|
enum coding_category category;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int this_eol;
|
2002-10-10 09:05:37 +00:00
|
|
|
|
|
|
|
|
|
id = XINT (XCAR (tail));
|
|
|
|
|
attrs = CODING_ID_ATTRS (id);
|
|
|
|
|
category = XINT (CODING_ATTR_CATEGORY (attrs));
|
|
|
|
|
eol_type = CODING_ID_EOL_TYPE (id);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (VECTORP (eol_type))
|
|
|
|
|
{
|
2002-10-10 09:05:37 +00:00
|
|
|
|
if (category == coding_category_utf_16_be
|
|
|
|
|
|| category == coding_category_utf_16_be_nosig)
|
|
|
|
|
this_eol = utf_16_be_eol;
|
|
|
|
|
else if (category == coding_category_utf_16_le
|
|
|
|
|
|| category == coding_category_utf_16_le_nosig)
|
|
|
|
|
this_eol = utf_16_le_eol;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2002-10-10 09:05:37 +00:00
|
|
|
|
this_eol = normal_eol;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (this_eol == EOL_SEEN_LF)
|
|
|
|
|
XSETCAR (tail, AREF (eol_type, 0));
|
|
|
|
|
else if (this_eol == EOL_SEEN_CRLF)
|
|
|
|
|
XSETCAR (tail, AREF (eol_type, 1));
|
|
|
|
|
else if (this_eol == EOL_SEEN_CR)
|
|
|
|
|
XSETCAR (tail, AREF (eol_type, 2));
|
2002-10-10 09:05:37 +00:00
|
|
|
|
else
|
|
|
|
|
XSETCAR (tail, CODING_ID_NAME (id));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2002-10-10 09:05:37 +00:00
|
|
|
|
else
|
|
|
|
|
XSETCAR (tail, CODING_ID_NAME (id));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2008-12-03 02:27:26 +00:00
|
|
|
|
return (highest ? (CONSP (val) ? XCAR (val) : Qnil) : val);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
DEFUN ("detect-coding-region", Fdetect_coding_region, Sdetect_coding_region,
|
|
|
|
|
2, 3, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Detect coding system of the text in the region between START and END.
|
|
|
|
|
Return a list of possible coding systems ordered by priority.
|
2009-03-27 07:25:44 +00:00
|
|
|
|
The coding systems to try and their priorities follows what
|
|
|
|
|
the function `coding-system-priority-list' (which see) returns.
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2006-08-28 04:18:47 +00:00
|
|
|
|
If only ASCII characters are found (except for such ISO-2022 control
|
2008-05-19 00:57:11 +00:00
|
|
|
|
characters as ESC), it returns a list of single element `undecided'
|
|
|
|
|
or its subsidiary coding system according to a detected end-of-line
|
|
|
|
|
format.
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2001-11-04 17:43:52 +00:00
|
|
|
|
If optional argument HIGHEST is non-nil, return the coding system of
|
|
|
|
|
highest priority. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object start, Lisp_Object end, Lisp_Object highest)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
|
|
|
|
int from, to;
|
|
|
|
|
int from_byte, to_byte;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2001-11-02 20:46:55 +00:00
|
|
|
|
CHECK_NUMBER_COERCE_MARKER (start);
|
|
|
|
|
CHECK_NUMBER_COERCE_MARKER (end);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
validate_region (&start, &end);
|
|
|
|
|
from = XINT (start), to = XINT (end);
|
|
|
|
|
from_byte = CHAR_TO_BYTE (from);
|
|
|
|
|
to_byte = CHAR_TO_BYTE (to);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
if (from < GPT && to >= GPT)
|
|
|
|
|
move_gap_both (to, to_byte);
|
2001-03-08 04:42:43 +00:00
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
return detect_coding_system (BYTE_POS_ADDR (from_byte),
|
2003-12-02 01:40:27 +00:00
|
|
|
|
to - from, to_byte - from_byte,
|
2000-12-13 23:24:37 +00:00
|
|
|
|
!NILP (highest),
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
!NILP (BVAR (current_buffer
|
Hide implementation of `struct buffer'
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Use B_.
* intervals.c (set_point_both, get_local_map): Use B_.
* callproc.c (Fcall_process, Fcall_process_region): Use B_.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Use B_.
* bytecode.c (Fbyte_code): Use B_.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Use B_.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Use B_.
* print.c (printchar, strout, print_string, PRINTDECLARE)
(PRINTPREPARE, PRINTFINISH, temp_output_buffer_setup)
(print_object): Use B_.
* font.c (font_at): Use B_.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5): Use
B_.
* callint.c (check_mark, Fcall_interactively): Use B_.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Use B_.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Use B_.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Use B_.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Use B_.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion): Use
B_.
* casefiddle.c (casify_object, casify_region): Use B_.
* casetab.c (Fcurrent_case_table, set_case_table): Use B_.
* cmds.c (Fself_insert_command, internal_self_insert): Use B_.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Use B_.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Use B_.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker): Use
B_.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Use B_.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Use B_.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Use B_.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Use B_.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Use B_.
* xfns.c (x_create_tip_frame, Fx_show_tip): Use B_.
* xfaces.c (compute_char_face): Use B_.
* character.c (chars_in_text, Fget_byte): Use B_.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Use B_.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region): Use
B_.
* charset.c (Ffind_charset_region): Use B_.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Use B_.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Use B_.
* frame.c (make_frame_visible_1): Use B_.
* dispnew.c (Fframe_or_buffer_changed_p): Use B_.
* dispextern.h (WINDOW_WANTS_HEADER_LINE_P)
(WINDOW_WANTS_MODELINE_P): Use B_.
* syntax.h (Vstandard_syntax_table): Update.
(CURRENT_SYNTAX_TABLE, SETUP_BUFFER_SYNTAX_TABLE): Use B_.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Update.
(TEXT_PROP_MEANS_INVISIBLE): Use B_.
* character.h (FETCH_CHAR_ADVANCE): Update.
(INC_BOTH, ASCII_CHAR_WIDTH, DEC_BOTH): Use B_.
* category.h (Vstandard_category_table): Update.
* lisp.h (DEFVAR_BUFFER_DEFAULTS): Update for change to field
names.
(DOWNCASE_TABLE, UPCASE_TABLE): Use B_.
* buffer.c (swapfield_): New macro.
(Fbuffer_swap_text): Use swapfield_ where appropriate.
(Fbuffer_live_p, Fget_file_buffer, get_truename_buffer)
(Fget_buffer_create, clone_per_buffer_values)
(Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, Fset_buffer_multibyte)
(swap_out_buffer_local_variables, record_overlay_string)
(overlay_strings, init_buffer_once, init_buffer, syms_of_buffer):
Use B_.
* buffer.h (struct buffer): Rename all Lisp_Object fields.
(BUFFER_INTERNAL_FIELD, B_): New macro.
(FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE): Use B_.
2011-02-14 08:39:19 -07:00
|
|
|
|
, enable_multibyte_characters)),
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Qnil);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
DEFUN ("detect-coding-string", Fdetect_coding_string, Sdetect_coding_string,
|
|
|
|
|
1, 2, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Detect coding system of the text in STRING.
|
|
|
|
|
Return a list of possible coding systems ordered by priority.
|
2009-03-27 07:26:37 +00:00
|
|
|
|
The coding systems to try and their priorities follows what
|
|
|
|
|
the function `coding-system-priority-list' (which see) returns.
|
1998-02-20 01:40:47 +00:00
|
|
|
|
|
2006-08-28 04:18:47 +00:00
|
|
|
|
If only ASCII characters are found (except for such ISO-2022 control
|
2008-05-19 00:57:11 +00:00
|
|
|
|
characters as ESC), it returns a list of single element `undecided'
|
|
|
|
|
or its subsidiary coding system according to a detected end-of-line
|
|
|
|
|
format.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2001-11-04 17:43:52 +00:00
|
|
|
|
If optional argument HIGHEST is non-nil, return the coding system of
|
|
|
|
|
highest priority. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object string, Lisp_Object highest)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2001-11-02 20:46:55 +00:00
|
|
|
|
CHECK_STRING (string);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
return detect_coding_system (SDATA (string),
|
|
|
|
|
SCHARS (string), SBYTES (string),
|
2003-09-08 12:53:41 +00:00
|
|
|
|
!NILP (highest), STRING_MULTIBYTE (string),
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Qnil);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
[ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
2011-05-28 15:39:39 -07:00
|
|
|
|
static inline int
|
2010-07-04 00:50:25 -07:00
|
|
|
|
char_encodable_p (int c, Lisp_Object attrs)
|
2000-07-27 06:01:19 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object tail;
|
|
|
|
|
struct charset *charset;
|
2004-01-25 07:30:47 +00:00
|
|
|
|
Lisp_Object translation_table;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2004-01-25 07:30:47 +00:00
|
|
|
|
translation_table = CODING_ATTR_TRANS_TBL (attrs);
|
2004-01-27 02:21:37 +00:00
|
|
|
|
if (! NILP (translation_table))
|
2004-01-25 07:30:47 +00:00
|
|
|
|
c = translate_char (translation_table, c);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (tail = CODING_ATTR_CHARSET_LIST (attrs);
|
|
|
|
|
CONSP (tail); tail = XCDR (tail))
|
1998-10-21 11:50:56 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charset = CHARSET_FROM_ID (XINT (XCAR (tail)));
|
|
|
|
|
if (CHAR_CHARSET_P (c, charset))
|
|
|
|
|
break;
|
1998-10-21 11:50:56 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return (! NILP (tail));
|
2000-07-27 06:01:19 +00:00
|
|
|
|
}
|
1998-04-15 23:49:52 +00:00
|
|
|
|
|
1998-02-20 01:40:47 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Return a list of coding systems that safely encode the text between
|
|
|
|
|
START and END. If EXCLUDE is non-nil, it is a list of coding
|
|
|
|
|
systems not to check. The returned list doesn't contain any such
|
2002-07-25 02:01:39 +00:00
|
|
|
|
coding systems. In any case, if the text contains only ASCII or is
|
2002-03-01 01:17:24 +00:00
|
|
|
|
unibyte, return t. */
|
2000-07-19 03:44:55 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFUN ("find-coding-systems-region-internal",
|
|
|
|
|
Ffind_coding_systems_region_internal,
|
|
|
|
|
Sfind_coding_systems_region_internal, 2, 3, 0,
|
|
|
|
|
doc: /* Internal use only. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object start, Lisp_Object end, Lisp_Object exclude)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
Lisp_Object coding_attrs_list, safe_codings;
|
|
|
|
|
EMACS_INT start_byte, end_byte;
|
2002-07-22 06:40:36 +00:00
|
|
|
|
const unsigned char *p, *pbeg, *pend;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
2009-06-19 08:39:44 +00:00
|
|
|
|
Lisp_Object tail, elt, work_table;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (STRINGP (start))
|
|
|
|
|
{
|
|
|
|
|
if (!STRING_MULTIBYTE (start)
|
2003-09-08 12:53:41 +00:00
|
|
|
|
|| SCHARS (start) == SBYTES (start))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return Qt;
|
|
|
|
|
start_byte = 0;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
end_byte = SBYTES (start);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHECK_NUMBER_COERCE_MARKER (start);
|
|
|
|
|
CHECK_NUMBER_COERCE_MARKER (end);
|
|
|
|
|
if (XINT (start) < BEG || XINT (end) > Z || XINT (start) > XINT (end))
|
|
|
|
|
args_out_of_range (start, end);
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
if (NILP (BVAR (current_buffer, enable_multibyte_characters)))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return Qt;
|
|
|
|
|
start_byte = CHAR_TO_BYTE (XINT (start));
|
|
|
|
|
end_byte = CHAR_TO_BYTE (XINT (end));
|
|
|
|
|
if (XINT (end) - XINT (start) == end_byte - start_byte)
|
|
|
|
|
return Qt;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-02-13 22:23:01 +00:00
|
|
|
|
if (XINT (start) < GPT && XINT (end) > GPT)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2003-02-13 22:23:01 +00:00
|
|
|
|
if ((GPT - XINT (start)) < (XINT (end) - GPT))
|
|
|
|
|
move_gap_both (XINT (start), start_byte);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2003-02-13 22:23:01 +00:00
|
|
|
|
move_gap_both (XINT (end), end_byte);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding_attrs_list = Qnil;
|
|
|
|
|
for (tail = Vcoding_system_list; CONSP (tail); tail = XCDR (tail))
|
|
|
|
|
if (NILP (exclude)
|
|
|
|
|
|| NILP (Fmemq (XCAR (tail), exclude)))
|
|
|
|
|
{
|
|
|
|
|
Lisp_Object attrs;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
attrs = AREF (CODING_SYSTEM_SPEC (XCAR (tail)), 0);
|
|
|
|
|
if (EQ (XCAR (tail), CODING_ATTR_BASE_NAME (attrs))
|
|
|
|
|
&& ! EQ (CODING_ATTR_TYPE (attrs), Qundecided))
|
2004-01-25 07:30:47 +00:00
|
|
|
|
{
|
|
|
|
|
ASET (attrs, coding_attr_trans_tbl,
|
2004-03-11 08:46:07 +00:00
|
|
|
|
get_translation_table (attrs, 1, NULL));
|
2004-01-25 07:30:47 +00:00
|
|
|
|
coding_attrs_list = Fcons (attrs, coding_attrs_list);
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (STRINGP (start))
|
2003-09-08 12:53:41 +00:00
|
|
|
|
p = pbeg = SDATA (start);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
p = pbeg = BYTE_POS_ADDR (start_byte);
|
|
|
|
|
pend = p + (end_byte - start_byte);
|
1999-10-18 01:36:35 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (p < pend && ASCII_BYTE_P (*p)) p++;
|
|
|
|
|
while (p < pend && ASCII_BYTE_P (*(pend - 1))) pend--;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2009-06-19 08:39:44 +00:00
|
|
|
|
work_table = Fmake_char_table (Qnil, Qnil);
|
2000-07-27 06:01:19 +00:00
|
|
|
|
while (p < pend)
|
2002-01-11 21:27:54 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (ASCII_BYTE_P (*p))
|
|
|
|
|
p++;
|
2002-01-11 21:27:54 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
c = STRING_CHAR_ADVANCE (p);
|
2009-06-19 08:39:44 +00:00
|
|
|
|
if (!NILP (char_table_ref (work_table, c)))
|
|
|
|
|
/* This character was already checked. Ignore it. */
|
|
|
|
|
continue;
|
1998-03-30 06:00:54 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charset_map_loaded = 0;
|
|
|
|
|
for (tail = coding_attrs_list; CONSP (tail);)
|
|
|
|
|
{
|
|
|
|
|
elt = XCAR (tail);
|
|
|
|
|
if (NILP (elt))
|
|
|
|
|
tail = XCDR (tail);
|
|
|
|
|
else if (char_encodable_p (c, elt))
|
|
|
|
|
tail = XCDR (tail);
|
|
|
|
|
else if (CONSP (XCDR (tail)))
|
|
|
|
|
{
|
|
|
|
|
XSETCAR (tail, XCAR (XCDR (tail)));
|
|
|
|
|
XSETCDR (tail, XCDR (XCDR (tail)));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
XSETCAR (tail, Qnil);
|
|
|
|
|
tail = XCDR (tail);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (charset_map_loaded)
|
|
|
|
|
{
|
|
|
|
|
EMACS_INT p_offset = p - pbeg, pend_offset = pend - pbeg;
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (STRINGP (start))
|
2003-09-08 12:53:41 +00:00
|
|
|
|
pbeg = SDATA (start);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
pbeg = BYTE_POS_ADDR (start_byte);
|
|
|
|
|
p = pbeg + p_offset;
|
|
|
|
|
pend = pbeg + pend_offset;
|
|
|
|
|
}
|
2009-06-19 08:39:44 +00:00
|
|
|
|
char_table_set (work_table, c, Qt);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
1998-02-20 01:40:47 +00:00
|
|
|
|
|
2004-04-14 12:37:29 +00:00
|
|
|
|
safe_codings = list2 (Qraw_text, Qno_conversion);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (tail = coding_attrs_list; CONSP (tail); tail = XCDR (tail))
|
|
|
|
|
if (! NILP (XCAR (tail)))
|
|
|
|
|
safe_codings = Fcons (CODING_ATTR_BASE_NAME (XCAR (tail)), safe_codings);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2000-07-27 06:01:19 +00:00
|
|
|
|
return safe_codings;
|
|
|
|
|
}
|
2000-06-30 02:56:45 +00:00
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
DEFUN ("unencodable-char-position", Funencodable_char_position,
|
|
|
|
|
Sunencodable_char_position, 3, 5, 0,
|
|
|
|
|
doc: /*
|
|
|
|
|
Return position of first un-encodable character in a region.
|
2008-05-19 00:57:11 +00:00
|
|
|
|
START and END specify the region and CODING-SYSTEM specifies the
|
2003-09-08 12:53:41 +00:00
|
|
|
|
encoding to check. Return nil if CODING-SYSTEM does encode the region.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
If optional 4th argument COUNT is non-nil, it specifies at most how
|
|
|
|
|
many un-encodable characters to search. In this case, the value is a
|
|
|
|
|
list of positions.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
If optional 5th argument STRING is non-nil, it is a string to search
|
|
|
|
|
for un-encodable characters. In that case, START and END are indexes
|
|
|
|
|
to the string. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object start, Lisp_Object end, Lisp_Object coding_system, Lisp_Object count, Lisp_Object string)
|
2003-09-08 12:53:41 +00:00
|
|
|
|
{
|
|
|
|
|
int n;
|
|
|
|
|
struct coding_system coding;
|
2004-01-25 07:30:47 +00:00
|
|
|
|
Lisp_Object attrs, charset_list, translation_table;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
Lisp_Object positions;
|
|
|
|
|
int from, to;
|
|
|
|
|
const unsigned char *p, *stop, *pend;
|
|
|
|
|
int ascii_compatible;
|
1998-02-20 01:40:47 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
setup_coding_system (Fcheck_coding_system (coding_system), &coding);
|
|
|
|
|
attrs = CODING_ID_ATTRS (coding.id);
|
|
|
|
|
if (EQ (CODING_ATTR_TYPE (attrs), Qraw_text))
|
|
|
|
|
return Qnil;
|
|
|
|
|
ascii_compatible = ! NILP (CODING_ATTR_ASCII_COMPAT (attrs));
|
|
|
|
|
charset_list = CODING_ATTR_CHARSET_LIST (attrs);
|
2004-03-11 08:46:07 +00:00
|
|
|
|
translation_table = get_translation_table (attrs, 1, NULL);
|
1998-02-20 01:40:47 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
if (NILP (string))
|
|
|
|
|
{
|
|
|
|
|
validate_region (&start, &end);
|
|
|
|
|
from = XINT (start);
|
|
|
|
|
to = XINT (end);
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
if (NILP (BVAR (current_buffer, enable_multibyte_characters))
|
2003-09-08 12:53:41 +00:00
|
|
|
|
|| (ascii_compatible
|
|
|
|
|
&& (to - from) == (CHAR_TO_BYTE (to) - (CHAR_TO_BYTE (from)))))
|
|
|
|
|
return Qnil;
|
|
|
|
|
p = CHAR_POS_ADDR (from);
|
|
|
|
|
pend = CHAR_POS_ADDR (to);
|
|
|
|
|
if (from < GPT && to >= GPT)
|
|
|
|
|
stop = GPT_ADDR;
|
|
|
|
|
else
|
|
|
|
|
stop = pend;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
CHECK_STRING (string);
|
|
|
|
|
CHECK_NATNUM (start);
|
|
|
|
|
CHECK_NATNUM (end);
|
|
|
|
|
from = XINT (start);
|
|
|
|
|
to = XINT (end);
|
|
|
|
|
if (from > to
|
|
|
|
|
|| to > SCHARS (string))
|
|
|
|
|
args_out_of_range_3 (string, start, end);
|
|
|
|
|
if (! STRING_MULTIBYTE (string))
|
|
|
|
|
return Qnil;
|
|
|
|
|
p = SDATA (string) + string_char_to_byte (string, from);
|
|
|
|
|
stop = pend = SDATA (string) + string_char_to_byte (string, to);
|
|
|
|
|
if (ascii_compatible && (to - from) == (pend - p))
|
|
|
|
|
return Qnil;
|
|
|
|
|
}
|
1998-09-16 07:21:31 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
if (NILP (count))
|
|
|
|
|
n = 1;
|
|
|
|
|
else
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
CHECK_NATNUM (count);
|
|
|
|
|
n = XINT (count);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
positions = Qnil;
|
|
|
|
|
while (1)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
int c;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
if (ascii_compatible)
|
|
|
|
|
while (p < stop && ASCII_BYTE_P (*p))
|
|
|
|
|
p++, from++;
|
|
|
|
|
if (p >= stop)
|
2001-12-17 15:33:32 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
if (p >= pend)
|
|
|
|
|
break;
|
|
|
|
|
stop = pend;
|
|
|
|
|
p = GAP_END_ADDR;
|
2001-12-17 15:33:32 +00:00
|
|
|
|
}
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
c = STRING_CHAR_ADVANCE (p);
|
|
|
|
|
if (! (ASCII_CHAR_P (c) && ascii_compatible)
|
2004-01-25 07:30:47 +00:00
|
|
|
|
&& ! char_charset (translate_char (translation_table, c),
|
|
|
|
|
charset_list, NULL))
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
positions = Fcons (make_number (from), positions);
|
|
|
|
|
n--;
|
|
|
|
|
if (n == 0)
|
|
|
|
|
break;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
from++;
|
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
return (NILP (count) ? Fcar (positions) : Fnreverse (positions));
|
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFUN ("check-coding-systems-region", Fcheck_coding_systems_region,
|
|
|
|
|
Scheck_coding_systems_region, 3, 3, 0,
|
|
|
|
|
doc: /* Check if the region is encodable by coding systems.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
START and END are buffer positions specifying the region.
|
|
|
|
|
CODING-SYSTEM-LIST is a list of coding systems to check.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
The value is an alist ((CODING-SYSTEM POS0 POS1 ...) ...), where
|
2008-05-19 00:57:11 +00:00
|
|
|
|
CODING-SYSTEM is a member of CODING-SYSTEM-LIST and can't encode the
|
2002-03-01 01:17:24 +00:00
|
|
|
|
whole region, POS0, POS1, ... are buffer positions where non-encodable
|
|
|
|
|
characters are found.
|
2001-12-17 15:21:06 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
If all coding systems in CODING-SYSTEM-LIST can encode the region, the
|
|
|
|
|
value is nil.
|
2001-12-17 15:21:06 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
START may be a string. In that case, check if the string is
|
|
|
|
|
encodable, and the value contains indices to the string instead of
|
2009-02-16 11:53:52 +00:00
|
|
|
|
buffer positions. END is ignored.
|
|
|
|
|
|
2009-02-16 13:04:15 +00:00
|
|
|
|
If the current buffer (or START if it is a string) is unibyte, the value
|
2009-02-16 11:53:52 +00:00
|
|
|
|
is nil. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object start, Lisp_Object end, Lisp_Object coding_system_list)
|
2000-07-27 06:01:19 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object list;
|
|
|
|
|
EMACS_INT start_byte, end_byte;
|
|
|
|
|
int pos;
|
2002-07-22 06:40:36 +00:00
|
|
|
|
const unsigned char *p, *pbeg, *pend;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
2004-01-25 07:30:47 +00:00
|
|
|
|
Lisp_Object tail, elt, attrs;
|
2001-07-23 09:26:46 +00:00
|
|
|
|
|
2000-07-27 06:01:19 +00:00
|
|
|
|
if (STRINGP (start))
|
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (!STRING_MULTIBYTE (start)
|
2009-02-16 13:04:15 +00:00
|
|
|
|
|| SCHARS (start) == SBYTES (start))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return Qnil;
|
|
|
|
|
start_byte = 0;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
end_byte = SBYTES (start);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
pos = 0;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
2000-07-27 06:01:19 +00:00
|
|
|
|
else
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2001-11-02 20:46:55 +00:00
|
|
|
|
CHECK_NUMBER_COERCE_MARKER (start);
|
|
|
|
|
CHECK_NUMBER_COERCE_MARKER (end);
|
2000-07-27 06:01:19 +00:00
|
|
|
|
if (XINT (start) < BEG || XINT (end) > Z || XINT (start) > XINT (end))
|
|
|
|
|
args_out_of_range (start, end);
|
Change B_ to BVAR
* xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
* xfaces.c (compute_char_face): Replace B_ with BVAR.
* xdisp.c (pos_visible_p, init_iterator, reseat_1)
(message_dolog, update_echo_area, ensure_echo_area_buffers)
(with_echo_area_buffer, setup_echo_area_for_printing)
(set_message_1, update_menu_bar, update_tool_bar)
(text_outside_line_unchanged_p, redisplay_internal)
(try_scrolling, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, row_containing_pos)
(try_window_id, get_overlay_arrow_glyph_row, display_line)
(Fcurrent_bidi_paragraph_direction, display_mode_lines)
(decode_mode_spec_coding, decode_mode_spec, display_count_lines)
(get_window_cursor_type, note_mouse_highlight): Replace B_ with
BVAR.
* window.c (window_display_table, unshow_buffer, window_loop)
(window_min_size_2, set_window_buffer, Fset_window_buffer)
(select_window, Fforce_window_update, temp_output_buffer_show)
(Fset_window_configuration, save_window_save): Replace B_ with
BVAR.
* w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
Replace B_ with BVAR.
* undo.c (record_point, record_insert, record_delete)
(record_marker_adjustment, record_first_change)
(record_property_change, Fundo_boundary, truncate_undo_list)
(Fprimitive_undo): Replace B_ with BVAR.
* syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
(SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
* syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
(Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
(skip_syntaxes, scan_lists): Replace B_ with BVAR.
* search.c (compile_pattern_1, compile_pattern, looking_at_1)
(string_match_1, fast_looking_at, newline_cache_on_off)
(search_command, search_buffer, simple_search, boyer_moore)
(Freplace_match): Replace B_ with BVAR.
* process.c (get_process, list_processes_1, Fstart_process)
(Fmake_serial_process, Fmake_network_process)
(read_process_output, send_process, exec_sentinel)
(status_notify, setup_process_coding_systems): Replace B_ with
BVAR.
* print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
(strout, print_string, temp_output_buffer_setup, print_object):
Replace B_ with BVAR.
* msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
* minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Replace
B_ with BVAR.
* marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
(set_marker_both, set_marker_restricted_both, unchain_marker):
Replace B_ with BVAR.
* lread.c (readchar, unreadchar, openp, readevalloop)
(Feval_buffer, Feval_region): Replace B_ with BVAR.
* lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
* keymap.c (Flocal_key_binding, Fuse_local_map)
(Fcurrent_local_map, push_key_description)
(Fdescribe_buffer_bindings): Replace B_ with BVAR.
* keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
(read_key_sequence): Replace B_ with BVAR.
* intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
* intervals.c (set_point_both, get_local_map): Replace B_ with
BVAR.
* insdel.c (check_markers, insert_char, insert_1_both)
(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
(adjust_after_replace, replace_range, del_range_2)
(modify_region, prepare_to_modify_buffer)
(Fcombine_after_change_execute): Replace B_ with BVAR.
* indent.c (buffer_display_table, recompute_width_table)
(width_run_cache_on_off, current_column, scan_for_column)
(Findent_to, position_indentation, compute_motion, vmotion):
Replace B_ with BVAR.
* fringe.c (get_logical_cursor_bitmap)
(get_logical_fringe_bitmap, update_window_fringes): Replace B_
with BVAR.
* frame.c (make_frame_visible_1): Replace B_ with BVAR.
* font.c (font_at): Replace B_ with BVAR.
* fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
Replace B_ with BVAR.
* filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
(unlock_buffer): Replace B_ with BVAR.
* fileio.c (Fexpand_file_name, Ffile_directory_p)
(Ffile_regular_p, Ffile_selinux_context)
(Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
(Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
(Finsert_file_contents, choose_write_coding_system)
(Fwrite_region, build_annotations, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_error, auto_save_1)
(Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
* editfns.c (region_limit, Fmark_marker, save_excursion_save)
(save_excursion_restore, Fprevious_char, Fchar_before)
(general_insert_function, Finsert_char, Finsert_byte)
(make_buffer_string_both, Finsert_buffer_substring)
(Fcompare_buffer_substrings, subst_char_in_region_unwind)
(subst_char_in_region_unwind_1, Fsubst_char_in_region)
(Ftranslate_region_internal, save_restriction_restore)
(Fchar_equal): Replace B_ with BVAR.
* dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
* dispextern.h (WINDOW_WANTS_MODELINE_P)
(WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
* dired.c (directory_files_internal): Replace B_ with BVAR.
* data.c (swap_in_symval_forwarding, set_internal)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
Replace B_ with BVAR.
* composite.c (fill_gstring_header)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Replace B_ with BVAR.
* coding.c (decode_coding, encode_coding)
(make_conversion_work_buffer, decode_coding_gap)
(decode_coding_object, encode_coding_object)
(Fdetect_coding_region, Ffind_coding_systems_region_internal)
(Funencodable_char_position, Fcheck_coding_systems_region):
Replace B_ with BVAR.
* cmds.c (Fself_insert_command, internal_self_insert): Replace B_
with BVAR.
* charset.c (Ffind_charset_region): Replace B_ with BVAR.
* character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
(ASCII_CHAR_WIDTH): Replace B_ with BVAR.
* character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
* category.h (Vstandard_category_table): Replace B_ with BVAR.
* category.c (check_category_table, Fcategory_table)
(Fset_category_table, char_category_set): Replace B_ with BVAR.
* casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
BVAR.
* casefiddle.c (casify_object, casify_region): Replace B_ with
BVAR.
* callproc.c (Fcall_process, Fcall_process_region): Replace B_
with BVAR.
* callint.c (check_mark, Fcall_interactively): Replace B_ with
BVAR.
* bytecode.c (Fbyte_code): Replace B_ with BVAR.
* buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
with BVAR.
* buffer.c (Fbuffer_live_p, Fget_file_buffer)
(get_truename_buffer, Fget_buffer_create)
(clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
(reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
(Fbuffer_local_value, buffer_lisp_local_variables)
(Fset_buffer_modified_p, Frestore_buffer_modified_p)
(Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
(Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
(set_buffer_temp, Fset_buffer, set_buffer_if_live)
(Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
(Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
(Fset_buffer_multibyte, swap_out_buffer_local_variables)
(record_overlay_string, overlay_strings, init_buffer_once)
(init_buffer, syms_of_buffer): Replace B_ with BVAR.
2011-02-16 08:02:50 -07:00
|
|
|
|
if (NILP (BVAR (current_buffer, enable_multibyte_characters)))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return Qnil;
|
|
|
|
|
start_byte = CHAR_TO_BYTE (XINT (start));
|
|
|
|
|
end_byte = CHAR_TO_BYTE (XINT (end));
|
|
|
|
|
if (XINT (end) - XINT (start) == end_byte - start_byte)
|
2009-02-16 11:53:52 +00:00
|
|
|
|
return Qnil;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2003-02-13 22:23:01 +00:00
|
|
|
|
if (XINT (start) < GPT && XINT (end) > GPT)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
2003-02-13 22:23:01 +00:00
|
|
|
|
if ((GPT - XINT (start)) < (XINT (end) - GPT))
|
|
|
|
|
move_gap_both (XINT (start), start_byte);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
2003-02-13 22:23:01 +00:00
|
|
|
|
move_gap_both (XINT (end), end_byte);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
2003-02-13 22:23:01 +00:00
|
|
|
|
pos = XINT (start);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
1998-03-10 21:14:08 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
list = Qnil;
|
|
|
|
|
for (tail = coding_system_list; CONSP (tail); tail = XCDR (tail))
|
1998-03-30 06:00:54 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
elt = XCAR (tail);
|
2004-01-25 07:30:47 +00:00
|
|
|
|
attrs = AREF (CODING_SYSTEM_SPEC (elt), 0);
|
2004-03-11 08:46:07 +00:00
|
|
|
|
ASET (attrs, coding_attr_trans_tbl,
|
|
|
|
|
get_translation_table (attrs, 1, NULL));
|
2004-01-25 07:30:47 +00:00
|
|
|
|
list = Fcons (Fcons (elt, Fcons (attrs, Qnil)), list);
|
1998-03-30 06:00:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (STRINGP (start))
|
2003-09-08 12:53:41 +00:00
|
|
|
|
p = pbeg = SDATA (start);
|
2002-01-11 21:27:54 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
p = pbeg = BYTE_POS_ADDR (start_byte);
|
|
|
|
|
pend = p + (end_byte - start_byte);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (p < pend && ASCII_BYTE_P (*p)) p++, pos++;
|
|
|
|
|
while (p < pend && ASCII_BYTE_P (*(pend - 1))) pend--;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (p < pend)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (ASCII_BYTE_P (*p))
|
|
|
|
|
p++;
|
1998-10-21 11:50:56 +00:00
|
|
|
|
else
|
2000-07-27 06:01:19 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
c = STRING_CHAR_ADVANCE (p);
|
|
|
|
|
|
|
|
|
|
charset_map_loaded = 0;
|
|
|
|
|
for (tail = list; CONSP (tail); tail = XCDR (tail))
|
|
|
|
|
{
|
|
|
|
|
elt = XCDR (XCAR (tail));
|
|
|
|
|
if (! char_encodable_p (c, XCAR (elt)))
|
|
|
|
|
XSETCDR (elt, Fcons (make_number (pos), XCDR (elt)));
|
|
|
|
|
}
|
|
|
|
|
if (charset_map_loaded)
|
|
|
|
|
{
|
|
|
|
|
EMACS_INT p_offset = p - pbeg, pend_offset = pend - pbeg;
|
|
|
|
|
|
|
|
|
|
if (STRINGP (start))
|
2003-09-08 12:53:41 +00:00
|
|
|
|
pbeg = SDATA (start);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
pbeg = BYTE_POS_ADDR (start_byte);
|
|
|
|
|
p = pbeg + p_offset;
|
|
|
|
|
pend = pbeg + pend_offset;
|
|
|
|
|
}
|
2000-07-27 06:01:19 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
pos++;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
tail = list;
|
|
|
|
|
list = Qnil;
|
|
|
|
|
for (; CONSP (tail); tail = XCDR (tail))
|
1999-12-15 00:06:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
elt = XCAR (tail);
|
|
|
|
|
if (CONSP (XCDR (XCDR (elt))))
|
|
|
|
|
list = Fcons (Fcons (XCAR (elt), Fnreverse (XCDR (XCDR (elt)))),
|
|
|
|
|
list);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
}
|
1998-03-12 00:44:06 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return list;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-04-13 17:49:00 +00:00
|
|
|
|
|
2011-04-10 23:58:57 -07:00
|
|
|
|
static Lisp_Object
|
2010-07-07 11:38:03 +02:00
|
|
|
|
code_convert_region (Lisp_Object start, Lisp_Object end,
|
|
|
|
|
Lisp_Object coding_system, Lisp_Object dst_object,
|
|
|
|
|
int encodep, int norecord)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
1998-01-19 19:45:53 +00:00
|
|
|
|
struct coding_system coding;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMACS_INT from, from_byte, to, to_byte;
|
|
|
|
|
Lisp_Object src_object;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2001-11-02 20:46:55 +00:00
|
|
|
|
CHECK_NUMBER_COERCE_MARKER (start);
|
|
|
|
|
CHECK_NUMBER_COERCE_MARKER (end);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (NILP (coding_system))
|
|
|
|
|
coding_system = Qno_conversion;
|
|
|
|
|
else
|
|
|
|
|
CHECK_CODING_SYSTEM (coding_system);
|
|
|
|
|
src_object = Fcurrent_buffer ();
|
|
|
|
|
if (NILP (dst_object))
|
|
|
|
|
dst_object = src_object;
|
|
|
|
|
else if (! EQ (dst_object, Qt))
|
|
|
|
|
CHECK_BUFFER (dst_object);
|
1998-01-19 19:45:53 +00:00
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
validate_region (&start, &end);
|
|
|
|
|
from = XFASTINT (start);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
from_byte = CHAR_TO_BYTE (from);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
to = XFASTINT (end);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
to_byte = CHAR_TO_BYTE (to);
|
2000-12-14 01:27:43 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
setup_coding_system (coding_system, &coding);
|
|
|
|
|
coding.mode |= CODING_MODE_LAST_BLOCK;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (encodep)
|
|
|
|
|
encode_coding_object (&coding, src_object, from, from_byte, to, to_byte,
|
|
|
|
|
dst_object);
|
|
|
|
|
else
|
|
|
|
|
decode_coding_object (&coding, src_object, from, from_byte, to, to_byte,
|
|
|
|
|
dst_object);
|
|
|
|
|
if (! norecord)
|
|
|
|
|
Vlast_coding_system_used = CODING_ID_NAME (coding.id);
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return (BUFFERP (dst_object)
|
|
|
|
|
? make_number (coding.produced_char)
|
|
|
|
|
: coding.dst_object);
|
1998-01-30 11:05:41 +00:00
|
|
|
|
}
|
2000-08-04 05:53:01 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1998-01-30 11:05:41 +00:00
|
|
|
|
DEFUN ("decode-coding-region", Fdecode_coding_region, Sdecode_coding_region,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
3, 4, "r\nzCoding system: ",
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Decode the current region from the specified coding system.
|
2002-03-01 01:17:24 +00:00
|
|
|
|
When called from a program, takes four arguments:
|
|
|
|
|
START, END, CODING-SYSTEM, and DESTINATION.
|
|
|
|
|
START and END are buffer positions.
|
2001-01-26 06:10:21 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Optional 4th arguments DESTINATION specifies where the decoded text goes.
|
2007-11-06 13:32:57 +00:00
|
|
|
|
If nil, the region between START and END is replaced by the decoded text.
|
2008-10-21 15:57:30 +00:00
|
|
|
|
If buffer, the decoded text is inserted in that buffer after point (point
|
|
|
|
|
does not move).
|
2008-05-28 09:11:59 +00:00
|
|
|
|
In those cases, the length of the decoded text is returned.
|
2008-05-28 06:38:47 +00:00
|
|
|
|
If DESTINATION is t, the decoded text is returned.
|
2001-01-26 06:10:21 +00:00
|
|
|
|
|
2001-11-04 17:43:52 +00:00
|
|
|
|
This function sets `last-coding-system-used' to the precise coding system
|
|
|
|
|
used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
|
2008-05-28 06:38:47 +00:00
|
|
|
|
not fully specified.) */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object start, Lisp_Object end, Lisp_Object coding_system, Lisp_Object destination)
|
1998-01-30 11:05:41 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return code_convert_region (start, end, coding_system, destination, 0, 0);
|
1998-01-19 19:45:53 +00:00
|
|
|
|
}
|
2001-01-26 06:10:21 +00:00
|
|
|
|
|
1998-01-19 19:45:53 +00:00
|
|
|
|
DEFUN ("encode-coding-region", Fencode_coding_region, Sencode_coding_region,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
3, 4, "r\nzCoding system: ",
|
|
|
|
|
doc: /* Encode the current region by specified coding system.
|
2008-05-19 00:57:11 +00:00
|
|
|
|
When called from a program, takes four arguments:
|
|
|
|
|
START, END, CODING-SYSTEM and DESTINATION.
|
|
|
|
|
START and END are buffer positions.
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Optional 4th arguments DESTINATION specifies where the encoded text goes.
|
|
|
|
|
If nil, the region between START and END is replace by the encoded text.
|
2008-10-21 15:57:30 +00:00
|
|
|
|
If buffer, the encoded text is inserted in that buffer after point (point
|
|
|
|
|
does not move).
|
2008-05-28 09:11:59 +00:00
|
|
|
|
In those cases, the length of the encoded text is returned.
|
2008-05-28 06:38:47 +00:00
|
|
|
|
If DESTINATION is t, the encoded text is returned.
|
2000-08-18 06:41:15 +00:00
|
|
|
|
|
2001-11-04 17:43:52 +00:00
|
|
|
|
This function sets `last-coding-system-used' to the precise coding system
|
|
|
|
|
used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
|
2008-05-28 06:38:47 +00:00
|
|
|
|
not fully specified.) */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object start, Lisp_Object end, Lisp_Object coding_system, Lisp_Object destination)
|
1998-01-19 19:45:53 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return code_convert_region (start, end, coding_system, destination, 1, 0);
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Lisp_Object
|
2010-07-12 09:32:53 -07:00
|
|
|
|
code_convert_string (Lisp_Object string, Lisp_Object coding_system,
|
|
|
|
|
Lisp_Object dst_object, int encodep, int nocopy, int norecord)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
{
|
1998-01-30 11:05:41 +00:00
|
|
|
|
struct coding_system coding;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
EMACS_INT chars, bytes;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2001-11-02 20:46:55 +00:00
|
|
|
|
CHECK_STRING (string);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
if (NILP (coding_system))
|
2000-06-30 02:56:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (! norecord)
|
|
|
|
|
Vlast_coding_system_used = Qno_conversion;
|
|
|
|
|
if (NILP (dst_object))
|
|
|
|
|
return (nocopy ? Fcopy_sequence (string) : string);
|
2000-06-30 02:56:45 +00:00
|
|
|
|
}
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (NILP (coding_system))
|
|
|
|
|
coding_system = Qno_conversion;
|
|
|
|
|
else
|
|
|
|
|
CHECK_CODING_SYSTEM (coding_system);
|
|
|
|
|
if (NILP (dst_object))
|
|
|
|
|
dst_object = Qt;
|
|
|
|
|
else if (! EQ (dst_object, Qt))
|
|
|
|
|
CHECK_BUFFER (dst_object);
|
2000-08-16 01:37:20 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
setup_coding_system (coding_system, &coding);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
coding.mode |= CODING_MODE_LAST_BLOCK;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
chars = SCHARS (string);
|
|
|
|
|
bytes = SBYTES (string);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (encodep)
|
|
|
|
|
encode_coding_object (&coding, string, 0, 0, chars, bytes, dst_object);
|
|
|
|
|
else
|
|
|
|
|
decode_coding_object (&coding, string, 0, 0, chars, bytes, dst_object);
|
|
|
|
|
if (! norecord)
|
|
|
|
|
Vlast_coding_system_used = CODING_ID_NAME (coding.id);
|
2000-08-16 01:37:20 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return (BUFFERP (dst_object)
|
|
|
|
|
? make_number (coding.produced_char)
|
|
|
|
|
: coding.dst_object);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2000-08-16 01:37:20 +00:00
|
|
|
|
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
|
1998-06-03 14:41:07 +00:00
|
|
|
|
/* Encode or decode STRING according to CODING_SYSTEM.
|
1999-12-15 00:06:45 +00:00
|
|
|
|
Do not set Vlast_coding_system_used.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1999-12-15 00:06:45 +00:00
|
|
|
|
This function is called only from macros DECODE_FILE and
|
|
|
|
|
ENCODE_FILE, thus we ignore character composition. */
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1998-06-03 14:41:07 +00:00
|
|
|
|
Lisp_Object
|
2010-07-07 11:38:03 +02:00
|
|
|
|
code_convert_string_norecord (Lisp_Object string, Lisp_Object coding_system,
|
|
|
|
|
int encodep)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-05 00:08:50 +00:00
|
|
|
|
return code_convert_string (string, coding_system, Qt, encodep, 0, 1);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2011-04-13 22:04:02 -07:00
|
|
|
|
DEFUN ("decode-coding-string", Fdecode_coding_string, Sdecode_coding_string,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
2, 4, 0,
|
|
|
|
|
doc: /* Decode STRING which is encoded in CODING-SYSTEM, and return the result.
|
|
|
|
|
|
|
|
|
|
Optional third arg NOCOPY non-nil means it is OK to return STRING itself
|
|
|
|
|
if the decoding operation is trivial.
|
1998-06-03 14:41:07 +00:00
|
|
|
|
|
2008-05-19 00:57:11 +00:00
|
|
|
|
Optional fourth arg BUFFER non-nil means that the decoded text is
|
2008-10-21 15:57:30 +00:00
|
|
|
|
inserted in that buffer after point (point does not move). In this
|
|
|
|
|
case, the return value is the length of the decoded text.
|
1998-06-03 14:41:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
This function sets `last-coding-system-used' to the precise coding system
|
|
|
|
|
used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
|
2008-05-19 00:57:11 +00:00
|
|
|
|
not fully specified.) */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object string, Lisp_Object coding_system, Lisp_Object nocopy, Lisp_Object buffer)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return code_convert_string (string, coding_system, buffer,
|
|
|
|
|
0, ! NILP (nocopy), 0);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFUN ("encode-coding-string", Fencode_coding_string, Sencode_coding_string,
|
|
|
|
|
2, 4, 0,
|
|
|
|
|
doc: /* Encode STRING to CODING-SYSTEM, and return the result.
|
|
|
|
|
|
|
|
|
|
Optional third arg NOCOPY non-nil means it is OK to return STRING
|
|
|
|
|
itself if the encoding operation is trivial.
|
|
|
|
|
|
2008-05-19 00:57:11 +00:00
|
|
|
|
Optional fourth arg BUFFER non-nil means that the encoded text is
|
2008-10-21 15:57:30 +00:00
|
|
|
|
inserted in that buffer after point (point does not move). In this
|
|
|
|
|
case, the return value is the length of the encoded text.
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
This function sets `last-coding-system-used' to the precise coding system
|
|
|
|
|
used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
|
|
|
|
|
not fully specified.) */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object string, Lisp_Object coding_system, Lisp_Object nocopy, Lisp_Object buffer)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return code_convert_string (string, coding_system, buffer,
|
2011-07-01 13:03:55 +02:00
|
|
|
|
1, ! NILP (nocopy), 0);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
1998-01-19 19:45:53 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
DEFUN ("decode-sjis-char", Fdecode_sjis_char, Sdecode_sjis_char, 1, 1, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Decode a Japanese character which has CODE in shift_jis encoding.
|
|
|
|
|
Return the corresponding character. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object code)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object spec, attrs, val;
|
|
|
|
|
struct charset *charset_roman, *charset_kanji, *charset_kana, *charset;
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
EMACS_INT ch;
|
|
|
|
|
int c;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHECK_NATNUM (code);
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
ch = XFASTINT (code);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHECK_CODING_SYSTEM_GET_SPEC (Vsjis_coding_system, spec);
|
|
|
|
|
attrs = AREF (spec, 0);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
if (ASCII_BYTE_P (ch)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
&& ! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
|
|
|
|
|
return code;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = CODING_ATTR_CHARSET_LIST (attrs);
|
|
|
|
|
charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
|
2002-05-14 08:00:53 +00:00
|
|
|
|
charset_kana = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
|
|
|
|
|
charset_kanji = CHARSET_FROM_ID (XINT (XCAR (val)));
|
2000-03-07 06:17:54 +00:00
|
|
|
|
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
if (ch <= 0x7F)
|
|
|
|
|
{
|
|
|
|
|
c = ch;
|
|
|
|
|
charset = charset_roman;
|
|
|
|
|
}
|
|
|
|
|
else if (ch >= 0xA0 && ch < 0xDF)
|
1999-01-14 01:20:35 +00:00
|
|
|
|
{
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
c = ch - 0x80;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charset = charset_kana;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
1999-01-14 01:20:35 +00:00
|
|
|
|
else
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
EMACS_INT c1 = ch >> 8;
|
|
|
|
|
int c2 = ch & 0xFF;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
if (c1 < 0x81 || (c1 > 0x9F && c1 < 0xE0) || c1 > 0xEF
|
|
|
|
|
|| c2 < 0x40 || c2 == 0x7F || c2 > 0xFC)
|
2011-04-18 17:34:42 -07:00
|
|
|
|
error ("Invalid code: %"pI"d", ch);
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
c = ch;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
SJIS_TO_JIS (c);
|
|
|
|
|
charset = charset_kanji;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
c = DECODE_CHAR (charset, c);
|
|
|
|
|
if (c < 0)
|
2011-04-18 17:34:42 -07:00
|
|
|
|
error ("Invalid code: %"pI"d", ch);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return make_number (c);
|
2001-12-17 15:21:06 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
DEFUN ("encode-sjis-char", Fencode_sjis_char, Sencode_sjis_char, 1, 1, 0,
|
2006-11-12 22:18:51 +00:00
|
|
|
|
doc: /* Encode a Japanese character CH to shift_jis encoding.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
Return the corresponding code in SJIS. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object ch)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object spec, attrs, charset_list;
|
|
|
|
|
int c;
|
|
|
|
|
struct charset *charset;
|
|
|
|
|
unsigned code;
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHECK_CHARACTER (ch);
|
|
|
|
|
c = XFASTINT (ch);
|
|
|
|
|
CHECK_CODING_SYSTEM_GET_SPEC (Vsjis_coding_system, spec);
|
|
|
|
|
attrs = AREF (spec, 0);
|
|
|
|
|
|
|
|
|
|
if (ASCII_CHAR_P (c)
|
|
|
|
|
&& ! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
|
|
|
|
|
return ch;
|
|
|
|
|
|
|
|
|
|
charset_list = CODING_ATTR_CHARSET_LIST (attrs);
|
|
|
|
|
charset = char_charset (c, charset_list, &code);
|
|
|
|
|
if (code == CHARSET_INVALID_CODE (charset))
|
2011-04-23 13:33:28 +03:00
|
|
|
|
error ("Can't encode by shift_jis encoding: %c", c);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
JIS_TO_SJIS (code);
|
|
|
|
|
|
|
|
|
|
return make_number (code);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DEFUN ("decode-big5-char", Fdecode_big5_char, Sdecode_big5_char, 1, 1, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Decode a Big5 character which has CODE in BIG5 coding system.
|
|
|
|
|
Return the corresponding character. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object code)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object spec, attrs, val;
|
|
|
|
|
struct charset *charset_roman, *charset_big5, *charset;
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
EMACS_INT ch;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int c;
|
1998-01-01 07:05:26 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHECK_NATNUM (code);
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
ch = XFASTINT (code);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHECK_CODING_SYSTEM_GET_SPEC (Vbig5_coding_system, spec);
|
|
|
|
|
attrs = AREF (spec, 0);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
if (ASCII_BYTE_P (ch)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
&& ! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
|
|
|
|
|
return code;
|
1998-01-01 07:05:26 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = CODING_ATTR_CHARSET_LIST (attrs);
|
|
|
|
|
charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
|
|
|
|
|
charset_big5 = CHARSET_FROM_ID (XINT (XCAR (val)));
|
2001-03-08 04:42:43 +00:00
|
|
|
|
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
if (ch <= 0x7F)
|
|
|
|
|
{
|
|
|
|
|
c = ch;
|
|
|
|
|
charset = charset_roman;
|
|
|
|
|
}
|
1999-02-16 01:38:01 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
EMACS_INT b1 = ch >> 8;
|
|
|
|
|
int b2 = ch & 0x7F;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (b1 < 0xA1 || b1 > 0xFE
|
|
|
|
|
|| b2 < 0x40 || (b2 > 0x7E && b2 < 0xA1) || b2 > 0xFE)
|
2011-04-18 17:34:42 -07:00
|
|
|
|
error ("Invalid code: %"pI"d", ch);
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
c = ch;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charset = charset_big5;
|
1999-02-16 01:38:01 +00:00
|
|
|
|
}
|
error: Print 32- and 64-bit integers portably (Bug#8435).
Without this change, on typical 64-bit hosts error ("...%d...", N)
was used to print both 32- and 64-bit integers N, which relied on
undefined behavior.
* lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
New macro.
* lisp.h (error, verror): Mark as printf-like functions.
* eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
Report overflow in size calculations when allocating printf buffer.
Do not truncate output string at its first null byte.
* xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
Truncate the output at a character boundary, since vsnprintf does not
do that.
* charset.c (check_iso_charset_parameter): Convert internal
character to string before calling 'error', since %c now has the
printf meaning.
* coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
overflow when computing char to be passed to 'error'. Do not
pass Lisp_Object to 'error'; pass the integer instead.
* nsfns.m (Fns_do_applescript): Use int, not long, since it's
formatted with plain %d.
2011-04-06 20:34:05 -07:00
|
|
|
|
c = DECODE_CHAR (charset, c);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (c < 0)
|
2011-04-18 17:34:42 -07:00
|
|
|
|
error ("Invalid code: %"pI"d", ch);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return make_number (c);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
1998-01-01 07:05:26 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
DEFUN ("encode-big5-char", Fencode_big5_char, Sencode_big5_char, 1, 1, 0,
|
2006-11-12 22:18:51 +00:00
|
|
|
|
doc: /* Encode the Big5 character CH to BIG5 coding system.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
Return the corresponding character code in Big5. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object ch)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object spec, attrs, charset_list;
|
|
|
|
|
struct charset *charset;
|
|
|
|
|
int c;
|
|
|
|
|
unsigned code;
|
|
|
|
|
|
|
|
|
|
CHECK_CHARACTER (ch);
|
|
|
|
|
c = XFASTINT (ch);
|
|
|
|
|
CHECK_CODING_SYSTEM_GET_SPEC (Vbig5_coding_system, spec);
|
|
|
|
|
attrs = AREF (spec, 0);
|
|
|
|
|
if (ASCII_CHAR_P (c)
|
|
|
|
|
&& ! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
|
|
|
|
|
return ch;
|
|
|
|
|
|
|
|
|
|
charset_list = CODING_ATTR_CHARSET_LIST (attrs);
|
|
|
|
|
charset = char_charset (c, charset_list, &code);
|
|
|
|
|
if (code == CHARSET_INVALID_CODE (charset))
|
2011-04-23 13:33:28 +03:00
|
|
|
|
error ("Can't encode by Big5 encoding: %c", c);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
return make_number (code);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
1998-01-19 19:45:53 +00:00
|
|
|
|
|
2002-11-06 23:31:21 +00:00
|
|
|
|
DEFUN ("set-terminal-coding-system-internal", Fset_terminal_coding_system_internal,
|
2005-05-03 01:49:33 +00:00
|
|
|
|
Sset_terminal_coding_system_internal, 1, 2, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Internal use only. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object coding_system, Lisp_Object terminal)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2010-11-01 13:09:26 +09:00
|
|
|
|
struct terminal *term = get_terminal (terminal, 1);
|
|
|
|
|
struct coding_system *terminal_coding = TERMINAL_TERMINAL_CODING (term);
|
2001-11-02 20:46:55 +00:00
|
|
|
|
CHECK_SYMBOL (coding_system);
|
2004-05-23 01:53:23 +00:00
|
|
|
|
setup_coding_system (Fcheck_coding_system (coding_system), terminal_coding);
|
1997-10-23 12:01:50 +00:00
|
|
|
|
/* We had better not send unsafe characters to terminal. */
|
2007-10-11 16:24:58 +00:00
|
|
|
|
terminal_coding->mode |= CODING_MODE_SAFE_ENCODING;
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* Character composition should be disabled. */
|
2007-10-11 16:24:58 +00:00
|
|
|
|
terminal_coding->common_flags &= ~CODING_ANNOTATE_COMPOSITION_MASK;
|
2004-05-23 01:53:23 +00:00
|
|
|
|
terminal_coding->src_multibyte = 1;
|
|
|
|
|
terminal_coding->dst_multibyte = 0;
|
2010-11-01 13:09:26 +09:00
|
|
|
|
if (terminal_coding->common_flags & CODING_REQUIRE_ENCODING_MASK)
|
|
|
|
|
term->charset_list = coding_charset_list (terminal_coding);
|
|
|
|
|
else
|
2010-11-17 14:51:09 +09:00
|
|
|
|
term->charset_list = Fcons (make_number (charset_ascii), Qnil);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
return Qnil;
|
|
|
|
|
}
|
|
|
|
|
|
1997-08-10 04:13:19 +00:00
|
|
|
|
DEFUN ("set-safe-terminal-coding-system-internal",
|
|
|
|
|
Fset_safe_terminal_coding_system_internal,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
Sset_safe_terminal_coding_system_internal, 1, 1, 0,
|
2001-11-13 11:56:24 +00:00
|
|
|
|
doc: /* Internal use only. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object coding_system)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2001-11-02 20:46:55 +00:00
|
|
|
|
CHECK_SYMBOL (coding_system);
|
1997-08-10 04:13:19 +00:00
|
|
|
|
setup_coding_system (Fcheck_coding_system (coding_system),
|
|
|
|
|
&safe_terminal_coding);
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* Character composition should be disabled. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
safe_terminal_coding.common_flags &= ~CODING_ANNOTATE_COMPOSITION_MASK;
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
safe_terminal_coding.src_multibyte = 1;
|
|
|
|
|
safe_terminal_coding.dst_multibyte = 0;
|
1997-08-10 04:13:19 +00:00
|
|
|
|
return Qnil;
|
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-11-06 23:31:21 +00:00
|
|
|
|
DEFUN ("terminal-coding-system", Fterminal_coding_system,
|
2005-05-03 01:49:33 +00:00
|
|
|
|
Sterminal_coding_system, 0, 1, 0,
|
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
* src/termhooks.h (struct device): Rename to `terminal'. Rename member
`next_device' to `next_terminal'.
(device_list): Rename to `terminal_list'.
(FRAME_DEVICE): Rename to `FRAME_TERMINAL'.
(DEVICE_TERMINAL_CODING): Rename to `TERMINAL_TERMINAL_CODING'.
(TERMINAL_KEYBOARD_CODING): Rename to `TERMINAL_KEYBOARD_CODING'.
(DEVICE_ACTIVE_P): Rename to `TERMINAL_ACTIVE_P'.
Update declarations and macro definitions.
* src/termchar.h (tty_display_info): Rename member `device' to `terminal'.
(FRAME_TTY): Update for renames.
* src/xterm.h (x_display_info): Rename member `device' to `terminal'.
* src/frame.h (frame): Rename `device' member to `terminal'.
(FRAME_KBOARD, FRAME_LIVE_P, Qdevice, Qdisplay_live_p):
Update for renames.
* src/lisp.h (set_process_environment): Rename to `set_global_environment'.
(device): Rename to `terminal'.
* src/dispextern.h: Update declarations and macro definitions.
* src/terminal.c (device_list): Rename to `terminal_list'.
(next_device_id): Rename to `next_terminal_id'.
(initial_device): Rename to `initial_terminal'.
(get_device): Rename to `get_terminal'.
(create_device): Rename to `create_terminal'.
(mark_devices): Rename to `mark_terminals'.
(delete_device): Rename to `delete_terminal'.
(Fdelete_display): Rename to `Fdelete_terminal'.
(Fframe_terminal): Move here from frame.c.
(Fdisplay_live_p): Rename to `Fterminal_live_p'.
(Fdisplay_list): Rename to `Fterminal_list'.
(Fdisplay_name): Rename to `Fterminal_name'.
(init_initial_device): Rename to `init_initial_terminal'.
(delete_initial_device): Rename to `delete_initial_terminal'.
(ring_bell, update_begin, update_end, set_terminal_window)
(cursor_to, raw_cursor_to, clear_to_end, clear_frame)
(clear_end_of_line, write_glyphs, insert_glyphs, delete_glyphs)
(ins_del_lines, get_terminal_param, store_terminal_param)
(Fterminal_parameters, Fterminal_parameter)
(Fmodify_terminal_parameters, Fset_terminal_parameter)
(syms_of_terminal): Update for renames.
* src/term.c (get_tty_device): Rename to `get_tty_terminal'. Update.
(Fdisplay_tty_type): Rename to `Ftty_type'.
(Fdisplay_controlling_tty_p): Rename to `Fcontrolling_tty_p'.
(delete_tty, tty_set_terminal_modes, tty_reset_terminal_modes)
(Ftty_display_color_p, Ftty_display_color_cells, get_named_tty)
(Ftty_no_underline, Fsuspend_tty, Fresume_tty, create_tty_output)
(init_tty, maybe_fatal, delete_tty, syms_of_term): Update for rename.
* src/frame.c (Qdevice): Rename to `Qterminal'.
(Qdisplay_live_p): Rename to `Qterminal_live_p'.
(terminal_frame_count): Rename to `tty_frame_count'.
(Fframe_display): Move to terminal.c, rename to `Fframe_terminal'.
(make_frame_without_minibuffer, make_initial_frame)
(make_terminal_frame, Fmodify_frame_parameters)
(do_switch_frame, Fdelete_frame, Fmouse_position)
(Fmouse_pixel_position, Fraise_frame, Flower_frame)
(Fredirect_frame_focus, set_term_frame_name, syms_of_frame):
Update for renames.
* src/xdisp.c (message2_nolog, message3_nolog, redisplay_internal)
(set_vertical_scroll_bar, redisplay_window, check_x_display_info)
(x_set_scroll_bar_foreground, x_set_scroll_bar_background)
(Fx_create_frame, Fxw_display_color_p, Fx_display_grayscale_p)
(Fx_display_pixel_width, Fx_display_pixel_height)
(Fx_display_planes, Fx_display_color_cells)
(Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
(Fx_display_screens, Fx_display_mm_height, Fx_display_mm_width)
(Fx_display_backing_store, Fx_display_visual_class)
(Fx_display_save_under, Fx_close_connection, x_create_tip_frame):
Update for renames.
* xterm.c (handle_one_xevent): Initialize `f' to NULL.
(x_delete_device): Rename to `x_delete_terminal'.
(x_create_device): Rename to `x_create_terminal'.
(XTset_terminal_modes, XTreset_terminal_modes)
(XTread_socket, x_connection_closed, x_term_init)
(x_term_init, x_delete_display): Update for renames.
* src/dispnew.c (Fredraw_frame, Fsend_string_to_terminal)
(Fsend_string_to_terminal, init_display): Update for renames.
* src/keyboard.c (push_frame_kboard, pop_kboard, pop_kboard)
(kbd_buffer_get_event, read_avail_input, tty_read_avail_input)
(interrupt_signal, Fset_output_flow_control)
(Fset_input_meta_mode, Fset_quit_char, delete_kboard)
(syms_of_keyboard): Update for renames.
* src/alloc.c (mark_devices): Update declaration.
(Fgarbage_collect): Update for renames.
* src/coding.c (Fset_terminal_coding_system_internal)
(Fterminal_coding_system4)
(Fset_keyboard_coding_system_internal)
(Fkeyboard_coding_system): Update for renames.
* src/data.c (Fterminal_local_value, Fset_terminal_local_value):
Update for renames.
* src/minibuf.c (read_minibuf): Update for renames.
* src/sysdep.c (init_sys_modes, reset_sys_modes): Update for renames.
* xselect.c (x_handle_selection_clear): Update for renames.
* lisp/files.el (save-buffers-kill-display): Rename to `save-buffers-kill-terminal'.
(save-buffers-kill-terminal, ctl-x-map): Update for renames.
* frame.el (make-frame): Rename 'device frame parameter to 'terminal. Update.
(frames-on-display-list, framep-on-display, suspend-frame): Update for renames.
(selected-display): Rename to `selected-terminal'.
* server.el (server-save-buffers-kill-display): Rename to
`server-save-buffers-kill-terminal'.
(server-delete-client, server-handle-delete-frame)
(server-handle-suspend-tty, server-process-filter)
(server-switch-buffer): Update for renames.
* startup.el (normal-splash-screen, normal-splash-screen): Update for renames.
* talk.el (talk): Update for renames.
* termdev.el (terminal-id): Update for renames.
* xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal)
(turn-off-xterm-mouse-tracking-on-terminal)
(xterm-mouse-handle-delete-frame): Update for renames.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-471
2005-12-29 18:20:26 +00:00
|
|
|
|
doc: /* Return coding system specified for terminal output on the given terminal.
|
* keyboard.c (Fset_input_meta_mode): Doc fix.
* dispnew.c (Fsend_string_to_terminal): Doc fix.
* data.c (Fterminal_local_value, Fset_terminal_local_value): Doc
fixes.
* coding.c (Fterminal_coding_system): Doc fix.
* xfns.c (Fx_display_grayscale_p, Fx_display_pixel_width)
(Fx_display_pixel_height, Fx_display_planes)
(Fx_display_color_cells, Fx_server_max_request_size)
(Fx_server_vendor, Fx_server_version, Fx_display_screens)
(Fx_display_mm_height, Fx_display_mm_width)
(Fx_display_backing_store, Fx_display_visual_class)
(Fx_display_save_under, Fx_close_connection, Fx_synchronize): Doc
fixes, replacing "terminal id" with "terminal object".
(check_x_display_info): Handle terminal objects instead of
terminal ids.
2009-04-22 04:32:21 +00:00
|
|
|
|
TERMINAL may be a terminal object, a frame, or nil for the selected
|
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
* src/termhooks.h (struct device): Rename to `terminal'. Rename member
`next_device' to `next_terminal'.
(device_list): Rename to `terminal_list'.
(FRAME_DEVICE): Rename to `FRAME_TERMINAL'.
(DEVICE_TERMINAL_CODING): Rename to `TERMINAL_TERMINAL_CODING'.
(TERMINAL_KEYBOARD_CODING): Rename to `TERMINAL_KEYBOARD_CODING'.
(DEVICE_ACTIVE_P): Rename to `TERMINAL_ACTIVE_P'.
Update declarations and macro definitions.
* src/termchar.h (tty_display_info): Rename member `device' to `terminal'.
(FRAME_TTY): Update for renames.
* src/xterm.h (x_display_info): Rename member `device' to `terminal'.
* src/frame.h (frame): Rename `device' member to `terminal'.
(FRAME_KBOARD, FRAME_LIVE_P, Qdevice, Qdisplay_live_p):
Update for renames.
* src/lisp.h (set_process_environment): Rename to `set_global_environment'.
(device): Rename to `terminal'.
* src/dispextern.h: Update declarations and macro definitions.
* src/terminal.c (device_list): Rename to `terminal_list'.
(next_device_id): Rename to `next_terminal_id'.
(initial_device): Rename to `initial_terminal'.
(get_device): Rename to `get_terminal'.
(create_device): Rename to `create_terminal'.
(mark_devices): Rename to `mark_terminals'.
(delete_device): Rename to `delete_terminal'.
(Fdelete_display): Rename to `Fdelete_terminal'.
(Fframe_terminal): Move here from frame.c.
(Fdisplay_live_p): Rename to `Fterminal_live_p'.
(Fdisplay_list): Rename to `Fterminal_list'.
(Fdisplay_name): Rename to `Fterminal_name'.
(init_initial_device): Rename to `init_initial_terminal'.
(delete_initial_device): Rename to `delete_initial_terminal'.
(ring_bell, update_begin, update_end, set_terminal_window)
(cursor_to, raw_cursor_to, clear_to_end, clear_frame)
(clear_end_of_line, write_glyphs, insert_glyphs, delete_glyphs)
(ins_del_lines, get_terminal_param, store_terminal_param)
(Fterminal_parameters, Fterminal_parameter)
(Fmodify_terminal_parameters, Fset_terminal_parameter)
(syms_of_terminal): Update for renames.
* src/term.c (get_tty_device): Rename to `get_tty_terminal'. Update.
(Fdisplay_tty_type): Rename to `Ftty_type'.
(Fdisplay_controlling_tty_p): Rename to `Fcontrolling_tty_p'.
(delete_tty, tty_set_terminal_modes, tty_reset_terminal_modes)
(Ftty_display_color_p, Ftty_display_color_cells, get_named_tty)
(Ftty_no_underline, Fsuspend_tty, Fresume_tty, create_tty_output)
(init_tty, maybe_fatal, delete_tty, syms_of_term): Update for rename.
* src/frame.c (Qdevice): Rename to `Qterminal'.
(Qdisplay_live_p): Rename to `Qterminal_live_p'.
(terminal_frame_count): Rename to `tty_frame_count'.
(Fframe_display): Move to terminal.c, rename to `Fframe_terminal'.
(make_frame_without_minibuffer, make_initial_frame)
(make_terminal_frame, Fmodify_frame_parameters)
(do_switch_frame, Fdelete_frame, Fmouse_position)
(Fmouse_pixel_position, Fraise_frame, Flower_frame)
(Fredirect_frame_focus, set_term_frame_name, syms_of_frame):
Update for renames.
* src/xdisp.c (message2_nolog, message3_nolog, redisplay_internal)
(set_vertical_scroll_bar, redisplay_window, check_x_display_info)
(x_set_scroll_bar_foreground, x_set_scroll_bar_background)
(Fx_create_frame, Fxw_display_color_p, Fx_display_grayscale_p)
(Fx_display_pixel_width, Fx_display_pixel_height)
(Fx_display_planes, Fx_display_color_cells)
(Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
(Fx_display_screens, Fx_display_mm_height, Fx_display_mm_width)
(Fx_display_backing_store, Fx_display_visual_class)
(Fx_display_save_under, Fx_close_connection, x_create_tip_frame):
Update for renames.
* xterm.c (handle_one_xevent): Initialize `f' to NULL.
(x_delete_device): Rename to `x_delete_terminal'.
(x_create_device): Rename to `x_create_terminal'.
(XTset_terminal_modes, XTreset_terminal_modes)
(XTread_socket, x_connection_closed, x_term_init)
(x_term_init, x_delete_display): Update for renames.
* src/dispnew.c (Fredraw_frame, Fsend_string_to_terminal)
(Fsend_string_to_terminal, init_display): Update for renames.
* src/keyboard.c (push_frame_kboard, pop_kboard, pop_kboard)
(kbd_buffer_get_event, read_avail_input, tty_read_avail_input)
(interrupt_signal, Fset_output_flow_control)
(Fset_input_meta_mode, Fset_quit_char, delete_kboard)
(syms_of_keyboard): Update for renames.
* src/alloc.c (mark_devices): Update declaration.
(Fgarbage_collect): Update for renames.
* src/coding.c (Fset_terminal_coding_system_internal)
(Fterminal_coding_system4)
(Fset_keyboard_coding_system_internal)
(Fkeyboard_coding_system): Update for renames.
* src/data.c (Fterminal_local_value, Fset_terminal_local_value):
Update for renames.
* src/minibuf.c (read_minibuf): Update for renames.
* src/sysdep.c (init_sys_modes, reset_sys_modes): Update for renames.
* xselect.c (x_handle_selection_clear): Update for renames.
* lisp/files.el (save-buffers-kill-display): Rename to `save-buffers-kill-terminal'.
(save-buffers-kill-terminal, ctl-x-map): Update for renames.
* frame.el (make-frame): Rename 'device frame parameter to 'terminal. Update.
(frames-on-display-list, framep-on-display, suspend-frame): Update for renames.
(selected-display): Rename to `selected-terminal'.
* server.el (server-save-buffers-kill-display): Rename to
`server-save-buffers-kill-terminal'.
(server-delete-client, server-handle-delete-frame)
(server-handle-suspend-tty, server-process-filter)
(server-switch-buffer): Update for renames.
* startup.el (normal-splash-screen, normal-splash-screen): Update for renames.
* talk.el (talk): Update for renames.
* termdev.el (terminal-id): Update for renames.
* xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal)
(turn-off-xterm-mouse-tracking-on-terminal)
(xterm-mouse-handle-delete-frame): Update for renames.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-471
2005-12-29 18:20:26 +00:00
|
|
|
|
frame's terminal device. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object terminal)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2007-10-12 21:06:27 +00:00
|
|
|
|
struct coding_system *terminal_coding
|
|
|
|
|
= TERMINAL_TERMINAL_CODING (get_terminal (terminal, 1));
|
|
|
|
|
Lisp_Object coding_system = CODING_ID_NAME (terminal_coding->id);
|
2004-10-12 02:40:21 +00:00
|
|
|
|
|
2011-12-04 10:46:07 -05:00
|
|
|
|
/* For backward compatibility, return nil if it is `undecided'. */
|
2006-03-09 01:22:51 +00:00
|
|
|
|
return (! EQ (coding_system, Qundecided) ? coding_system : Qnil);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-11-06 23:31:21 +00:00
|
|
|
|
DEFUN ("set-keyboard-coding-system-internal", Fset_keyboard_coding_system_internal,
|
2005-05-03 01:49:33 +00:00
|
|
|
|
Sset_keyboard_coding_system_internal, 1, 2, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Internal use only. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object coding_system, Lisp_Object terminal)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
* src/termhooks.h (struct device): Rename to `terminal'. Rename member
`next_device' to `next_terminal'.
(device_list): Rename to `terminal_list'.
(FRAME_DEVICE): Rename to `FRAME_TERMINAL'.
(DEVICE_TERMINAL_CODING): Rename to `TERMINAL_TERMINAL_CODING'.
(TERMINAL_KEYBOARD_CODING): Rename to `TERMINAL_KEYBOARD_CODING'.
(DEVICE_ACTIVE_P): Rename to `TERMINAL_ACTIVE_P'.
Update declarations and macro definitions.
* src/termchar.h (tty_display_info): Rename member `device' to `terminal'.
(FRAME_TTY): Update for renames.
* src/xterm.h (x_display_info): Rename member `device' to `terminal'.
* src/frame.h (frame): Rename `device' member to `terminal'.
(FRAME_KBOARD, FRAME_LIVE_P, Qdevice, Qdisplay_live_p):
Update for renames.
* src/lisp.h (set_process_environment): Rename to `set_global_environment'.
(device): Rename to `terminal'.
* src/dispextern.h: Update declarations and macro definitions.
* src/terminal.c (device_list): Rename to `terminal_list'.
(next_device_id): Rename to `next_terminal_id'.
(initial_device): Rename to `initial_terminal'.
(get_device): Rename to `get_terminal'.
(create_device): Rename to `create_terminal'.
(mark_devices): Rename to `mark_terminals'.
(delete_device): Rename to `delete_terminal'.
(Fdelete_display): Rename to `Fdelete_terminal'.
(Fframe_terminal): Move here from frame.c.
(Fdisplay_live_p): Rename to `Fterminal_live_p'.
(Fdisplay_list): Rename to `Fterminal_list'.
(Fdisplay_name): Rename to `Fterminal_name'.
(init_initial_device): Rename to `init_initial_terminal'.
(delete_initial_device): Rename to `delete_initial_terminal'.
(ring_bell, update_begin, update_end, set_terminal_window)
(cursor_to, raw_cursor_to, clear_to_end, clear_frame)
(clear_end_of_line, write_glyphs, insert_glyphs, delete_glyphs)
(ins_del_lines, get_terminal_param, store_terminal_param)
(Fterminal_parameters, Fterminal_parameter)
(Fmodify_terminal_parameters, Fset_terminal_parameter)
(syms_of_terminal): Update for renames.
* src/term.c (get_tty_device): Rename to `get_tty_terminal'. Update.
(Fdisplay_tty_type): Rename to `Ftty_type'.
(Fdisplay_controlling_tty_p): Rename to `Fcontrolling_tty_p'.
(delete_tty, tty_set_terminal_modes, tty_reset_terminal_modes)
(Ftty_display_color_p, Ftty_display_color_cells, get_named_tty)
(Ftty_no_underline, Fsuspend_tty, Fresume_tty, create_tty_output)
(init_tty, maybe_fatal, delete_tty, syms_of_term): Update for rename.
* src/frame.c (Qdevice): Rename to `Qterminal'.
(Qdisplay_live_p): Rename to `Qterminal_live_p'.
(terminal_frame_count): Rename to `tty_frame_count'.
(Fframe_display): Move to terminal.c, rename to `Fframe_terminal'.
(make_frame_without_minibuffer, make_initial_frame)
(make_terminal_frame, Fmodify_frame_parameters)
(do_switch_frame, Fdelete_frame, Fmouse_position)
(Fmouse_pixel_position, Fraise_frame, Flower_frame)
(Fredirect_frame_focus, set_term_frame_name, syms_of_frame):
Update for renames.
* src/xdisp.c (message2_nolog, message3_nolog, redisplay_internal)
(set_vertical_scroll_bar, redisplay_window, check_x_display_info)
(x_set_scroll_bar_foreground, x_set_scroll_bar_background)
(Fx_create_frame, Fxw_display_color_p, Fx_display_grayscale_p)
(Fx_display_pixel_width, Fx_display_pixel_height)
(Fx_display_planes, Fx_display_color_cells)
(Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
(Fx_display_screens, Fx_display_mm_height, Fx_display_mm_width)
(Fx_display_backing_store, Fx_display_visual_class)
(Fx_display_save_under, Fx_close_connection, x_create_tip_frame):
Update for renames.
* xterm.c (handle_one_xevent): Initialize `f' to NULL.
(x_delete_device): Rename to `x_delete_terminal'.
(x_create_device): Rename to `x_create_terminal'.
(XTset_terminal_modes, XTreset_terminal_modes)
(XTread_socket, x_connection_closed, x_term_init)
(x_term_init, x_delete_display): Update for renames.
* src/dispnew.c (Fredraw_frame, Fsend_string_to_terminal)
(Fsend_string_to_terminal, init_display): Update for renames.
* src/keyboard.c (push_frame_kboard, pop_kboard, pop_kboard)
(kbd_buffer_get_event, read_avail_input, tty_read_avail_input)
(interrupt_signal, Fset_output_flow_control)
(Fset_input_meta_mode, Fset_quit_char, delete_kboard)
(syms_of_keyboard): Update for renames.
* src/alloc.c (mark_devices): Update declaration.
(Fgarbage_collect): Update for renames.
* src/coding.c (Fset_terminal_coding_system_internal)
(Fterminal_coding_system4)
(Fset_keyboard_coding_system_internal)
(Fkeyboard_coding_system): Update for renames.
* src/data.c (Fterminal_local_value, Fset_terminal_local_value):
Update for renames.
* src/minibuf.c (read_minibuf): Update for renames.
* src/sysdep.c (init_sys_modes, reset_sys_modes): Update for renames.
* xselect.c (x_handle_selection_clear): Update for renames.
* lisp/files.el (save-buffers-kill-display): Rename to `save-buffers-kill-terminal'.
(save-buffers-kill-terminal, ctl-x-map): Update for renames.
* frame.el (make-frame): Rename 'device frame parameter to 'terminal. Update.
(frames-on-display-list, framep-on-display, suspend-frame): Update for renames.
(selected-display): Rename to `selected-terminal'.
* server.el (server-save-buffers-kill-display): Rename to
`server-save-buffers-kill-terminal'.
(server-delete-client, server-handle-delete-frame)
(server-handle-suspend-tty, server-process-filter)
(server-switch-buffer): Update for renames.
* startup.el (normal-splash-screen, normal-splash-screen): Update for renames.
* talk.el (talk): Update for renames.
* termdev.el (terminal-id): Update for renames.
* xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal)
(turn-off-xterm-mouse-tracking-on-terminal)
(xterm-mouse-handle-delete-frame): Update for renames.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-471
2005-12-29 18:20:26 +00:00
|
|
|
|
struct terminal *t = get_terminal (terminal, 1);
|
2001-11-02 20:46:55 +00:00
|
|
|
|
CHECK_SYMBOL (coding_system);
|
2009-07-01 11:35:07 +00:00
|
|
|
|
if (NILP (coding_system))
|
|
|
|
|
coding_system = Qno_conversion;
|
|
|
|
|
else
|
|
|
|
|
Fcheck_coding_system (coding_system);
|
|
|
|
|
setup_coding_system (coding_system, TERMINAL_KEYBOARD_CODING (t));
|
2010-10-12 21:52:05 +09:00
|
|
|
|
/* Character composition should be disabled. */
|
2007-10-11 16:24:58 +00:00
|
|
|
|
TERMINAL_KEYBOARD_CODING (t)->common_flags
|
|
|
|
|
&= ~CODING_ANNOTATE_COMPOSITION_MASK;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
return Qnil;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DEFUN ("keyboard-coding-system",
|
2007-10-12 21:06:27 +00:00
|
|
|
|
Fkeyboard_coding_system, Skeyboard_coding_system, 0, 1, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Return coding system specified for decoding keyboard input. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object terminal)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2007-10-12 21:06:27 +00:00
|
|
|
|
return CODING_ID_NAME (TERMINAL_KEYBOARD_CODING
|
|
|
|
|
(get_terminal (terminal, 1))->id);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2011-04-13 22:04:02 -07:00
|
|
|
|
DEFUN ("find-operation-coding-system", Ffind_operation_coding_system,
|
1997-07-02 12:53:53 +00:00
|
|
|
|
Sfind_operation_coding_system, 1, MANY, 0,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Choose a coding system for an operation based on the target name.
|
|
|
|
|
The value names a pair of coding systems: (DECODING-SYSTEM . ENCODING-SYSTEM).
|
|
|
|
|
DECODING-SYSTEM is the coding system to use for decoding
|
|
|
|
|
\(in case OPERATION does decoding), and ENCODING-SYSTEM is the coding system
|
|
|
|
|
for encoding (in case OPERATION does encoding).
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2001-11-04 17:43:52 +00:00
|
|
|
|
The first argument OPERATION specifies an I/O primitive:
|
|
|
|
|
For file I/O, `insert-file-contents' or `write-region'.
|
|
|
|
|
For process I/O, `call-process', `call-process-region', or `start-process'.
|
|
|
|
|
For network I/O, `open-network-stream'.
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2001-11-04 17:43:52 +00:00
|
|
|
|
The remaining arguments should be the same arguments that were passed
|
|
|
|
|
to the primitive. Depending on which primitive, one of those arguments
|
|
|
|
|
is selected as the TARGET. For example, if OPERATION does file I/O,
|
|
|
|
|
whichever argument specifies the file name is TARGET.
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2001-11-04 17:43:52 +00:00
|
|
|
|
TARGET has a meaning which depends on OPERATION:
|
2006-06-07 18:05:10 +00:00
|
|
|
|
For file I/O, TARGET is a file name (except for the special case below).
|
2001-11-04 17:43:52 +00:00
|
|
|
|
For process I/O, TARGET is a process name.
|
2008-05-19 00:57:11 +00:00
|
|
|
|
For network I/O, TARGET is a service name or a port number.
|
2000-07-27 06:01:19 +00:00
|
|
|
|
|
2008-05-19 00:57:11 +00:00
|
|
|
|
This function looks up what is specified for TARGET in
|
2001-11-04 17:43:52 +00:00
|
|
|
|
`file-coding-system-alist', `process-coding-system-alist',
|
|
|
|
|
or `network-coding-system-alist' depending on OPERATION.
|
|
|
|
|
They may specify a coding system, a cons of coding systems,
|
|
|
|
|
or a function symbol to call.
|
|
|
|
|
In the last case, we call the function with one argument,
|
|
|
|
|
which is a list of all the arguments given to this function.
|
2007-07-09 08:00:55 +00:00
|
|
|
|
If the function can't decide a coding system, it can return
|
|
|
|
|
`undecided' so that the normal code-detection is performed.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
2006-06-07 18:05:10 +00:00
|
|
|
|
If OPERATION is `insert-file-contents', the argument corresponding to
|
|
|
|
|
TARGET may be a cons (FILENAME . BUFFER). In that case, FILENAME is a
|
|
|
|
|
file name to look up, and BUFFER is a buffer that contains the file's
|
|
|
|
|
contents (not yet decoded). If `file-coding-system-alist' specifies a
|
|
|
|
|
function to call for FILENAME, that function should examine the
|
|
|
|
|
contents of BUFFER instead of reading the file.
|
|
|
|
|
|
2007-07-24 01:23:55 +00:00
|
|
|
|
usage: (find-operation-coding-system OPERATION ARGUMENTS...) */)
|
Variadic C functions now count arguments with ptrdiff_t.
This partly undoes my 2011-03-30 change, which replaced int with size_t.
Back then I didn't know that the Emacs coding style prefers signed int.
Also, in the meantime I found a few more instances where arguments
were being counted with int, which may truncate counts on 64-bit
machines, or EMACS_INT, which may be unnecessarily wide.
* lisp.h (struct Lisp_Subr.function.aMANY)
(DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
Arg counts are now ptrdiff_t, not size_t.
All variadic functions and their callers changed accordingly.
(struct gcpro.nvars): Now size_t, not size_t. All uses changed.
* bytecode.c (exec_byte_code): Check maxdepth for overflow,
to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
* callint.c (Fcall_interactively): Check arg count for overflow,
to avoid potential buffer overrun. Use signed char, not 'int',
for 'varies' array, so that we needn't bother to check its size
calculation for overflow.
* editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
* eval.c (apply_lambda):
* fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
(struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
(mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
2011-06-14 11:57:19 -07:00
|
|
|
|
(ptrdiff_t nargs, Lisp_Object *args)
|
2003-01-31 04:03:07 +00:00
|
|
|
|
{
|
1997-02-20 07:02:49 +00:00
|
|
|
|
Lisp_Object operation, target_idx, target, val;
|
|
|
|
|
register Lisp_Object chain;
|
2003-02-04 14:56:31 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
if (nargs < 2)
|
|
|
|
|
error ("Too few arguments");
|
|
|
|
|
operation = args[0];
|
|
|
|
|
if (!SYMBOLP (operation)
|
2011-03-26 19:12:36 -07:00
|
|
|
|
|| !NATNUMP (target_idx = Fget (operation, Qtarget_idx)))
|
2008-04-08 20:18:14 +00:00
|
|
|
|
error ("Invalid first argument");
|
2011-03-26 19:12:36 -07:00
|
|
|
|
if (nargs < 1 + XFASTINT (target_idx))
|
2011-04-27 21:15:29 +03:00
|
|
|
|
error ("Too few arguments for operation `%s'",
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SDATA (SYMBOL_NAME (operation)));
|
2011-03-26 19:12:36 -07:00
|
|
|
|
target = args[XFASTINT (target_idx) + 1];
|
1997-02-20 07:02:49 +00:00
|
|
|
|
if (!(STRINGP (target)
|
2006-06-08 06:48:34 +00:00
|
|
|
|
|| (EQ (operation, Qinsert_file_contents) && CONSP (target)
|
|
|
|
|
&& STRINGP (XCAR (target)) && BUFFERP (XCDR (target)))
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|| (EQ (operation, Qopen_network_stream) && INTEGERP (target))))
|
2011-04-27 21:15:29 +03:00
|
|
|
|
error ("Invalid argument %"pI"d of operation `%s'",
|
|
|
|
|
XFASTINT (target_idx) + 1, SDATA (SYMBOL_NAME (operation)));
|
2006-06-08 06:48:34 +00:00
|
|
|
|
if (CONSP (target))
|
|
|
|
|
target = XCAR (target);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1997-07-04 20:44:52 +00:00
|
|
|
|
chain = ((EQ (operation, Qinsert_file_contents)
|
|
|
|
|
|| EQ (operation, Qwrite_region))
|
1997-06-09 12:59:12 +00:00
|
|
|
|
? Vfile_coding_system_alist
|
1997-07-04 20:44:52 +00:00
|
|
|
|
: (EQ (operation, Qopen_network_stream)
|
1997-06-09 12:59:12 +00:00
|
|
|
|
? Vnetwork_coding_system_alist
|
|
|
|
|
: Vprocess_coding_system_alist));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
if (NILP (chain))
|
|
|
|
|
return Qnil;
|
|
|
|
|
|
1999-09-13 02:23:04 +00:00
|
|
|
|
for (; CONSP (chain); chain = XCDR (chain))
|
2003-01-31 04:03:07 +00:00
|
|
|
|
{
|
1997-09-04 04:55:52 +00:00
|
|
|
|
Lisp_Object elt;
|
2003-01-31 04:03:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
elt = XCAR (chain);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
if (CONSP (elt)
|
|
|
|
|
&& ((STRINGP (target)
|
1999-09-13 02:23:04 +00:00
|
|
|
|
&& STRINGP (XCAR (elt))
|
|
|
|
|
&& fast_string_match (XCAR (elt), target) >= 0)
|
|
|
|
|
|| (INTEGERP (target) && EQ (target, XCAR (elt)))))
|
2003-01-31 04:03:07 +00:00
|
|
|
|
{
|
1999-09-13 02:23:04 +00:00
|
|
|
|
val = XCDR (elt);
|
1997-09-05 08:07:44 +00:00
|
|
|
|
/* Here, if VAL is both a valid coding system and a valid
|
|
|
|
|
function symbol, we return VAL as a coding system. */
|
1997-06-09 12:59:12 +00:00
|
|
|
|
if (CONSP (val))
|
|
|
|
|
return val;
|
|
|
|
|
if (! SYMBOLP (val))
|
|
|
|
|
return Qnil;
|
|
|
|
|
if (! NILP (Fcoding_system_p (val)))
|
|
|
|
|
return Fcons (val, val);
|
1997-09-05 08:07:44 +00:00
|
|
|
|
if (! NILP (Ffboundp (val)))
|
2003-01-31 04:03:07 +00:00
|
|
|
|
{
|
2006-08-03 11:45:23 +00:00
|
|
|
|
/* We use call1 rather than safe_call1
|
|
|
|
|
so as to get bug reports about functions called here
|
|
|
|
|
which don't handle the current interface. */
|
|
|
|
|
val = call1 (val, Flist (nargs, args));
|
1997-09-05 08:07:44 +00:00
|
|
|
|
if (CONSP (val))
|
|
|
|
|
return val;
|
|
|
|
|
if (SYMBOLP (val) && ! NILP (Fcoding_system_p (val)))
|
|
|
|
|
return Fcons (val, val);
|
2003-01-31 04:03:07 +00:00
|
|
|
|
}
|
1997-06-09 12:59:12 +00:00
|
|
|
|
return Qnil;
|
2003-01-31 04:03:07 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
return Qnil;
|
2003-01-31 04:03:07 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFUN ("set-coding-system-priority", Fset_coding_system_priority,
|
2002-07-11 23:15:52 +00:00
|
|
|
|
Sset_coding_system_priority, 0, MANY, 0,
|
2002-05-26 17:07:35 +00:00
|
|
|
|
doc: /* Assign higher priority to the coding systems given as arguments.
|
2008-05-19 00:57:11 +00:00
|
|
|
|
If multiple coding systems belong to the same category,
|
2003-09-17 19:21:10 +00:00
|
|
|
|
all but the first one are ignored.
|
|
|
|
|
|
2008-05-19 00:57:11 +00:00
|
|
|
|
usage: (set-coding-system-priority &rest coding-systems) */)
|
Variadic C functions now count arguments with ptrdiff_t.
This partly undoes my 2011-03-30 change, which replaced int with size_t.
Back then I didn't know that the Emacs coding style prefers signed int.
Also, in the meantime I found a few more instances where arguments
were being counted with int, which may truncate counts on 64-bit
machines, or EMACS_INT, which may be unnecessarily wide.
* lisp.h (struct Lisp_Subr.function.aMANY)
(DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
Arg counts are now ptrdiff_t, not size_t.
All variadic functions and their callers changed accordingly.
(struct gcpro.nvars): Now size_t, not size_t. All uses changed.
* bytecode.c (exec_byte_code): Check maxdepth for overflow,
to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
* callint.c (Fcall_interactively): Check arg count for overflow,
to avoid potential buffer overrun. Use signed char, not 'int',
for 'varies' array, so that we needn't bother to check its size
calculation for overflow.
* editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
* eval.c (apply_lambda):
* fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
(struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
(mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
2011-06-14 11:57:19 -07:00
|
|
|
|
(ptrdiff_t nargs, Lisp_Object *args)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
Variadic C functions now count arguments with ptrdiff_t.
This partly undoes my 2011-03-30 change, which replaced int with size_t.
Back then I didn't know that the Emacs coding style prefers signed int.
Also, in the meantime I found a few more instances where arguments
were being counted with int, which may truncate counts on 64-bit
machines, or EMACS_INT, which may be unnecessarily wide.
* lisp.h (struct Lisp_Subr.function.aMANY)
(DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
Arg counts are now ptrdiff_t, not size_t.
All variadic functions and their callers changed accordingly.
(struct gcpro.nvars): Now size_t, not size_t. All uses changed.
* bytecode.c (exec_byte_code): Check maxdepth for overflow,
to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
* callint.c (Fcall_interactively): Check arg count for overflow,
to avoid potential buffer overrun. Use signed char, not 'int',
for 'varies' array, so that we needn't bother to check its size
calculation for overflow.
* editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
* eval.c (apply_lambda):
* fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
(struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
(mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
2011-06-14 11:57:19 -07:00
|
|
|
|
ptrdiff_t i, j;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int changed[coding_category_max];
|
|
|
|
|
enum coding_category priorities[coding_category_max];
|
|
|
|
|
|
Replace bcopy, bzero, bcmp by memcpy, memmove, memset, memcmp
* alloc.c (overrun_check_malloc, overrun_check_realloc)
(overrun_check_free, xstrdup, allocate_string)
(allocate_string_data, compact_small_strings, Fmake_string)
(make_unibyte_string, make_multibyte_string)
(make_string_from_bytes, make_specified_string, make_float)
(Fcons, allocate_terminal, allocate_frame, make_pure_string)
(Fgarbage_collect): Replace bcopy, safe_bcopy, bzero, bcmp by
memcpy, memmove, memset, memcmp.
* atimer.c (start_atimer, set_alarm): Likewise.
* buffer.c (clone_per_buffer_values, report_overlay_modification)
(mmap_realloc, init_buffer_once): Likewise.
* callint.c (Fcall_interactively): Likewise.
* callproc.c (Fcall_process, Fcall_process_region, child_setup)
(getenv_internal_1): Likewise.
* casefiddle.c (casify_object): Likewise.
* ccl.c (ccl_driver): Likewise.
* character.c (str_as_multibyte, str_to_multibyte): Likewise.
* charset.c (load_charset_map_from_file)
(load_charset_map_from_file, load_charset_map_from_vector)
(Fdefine_charset_internal): Likewise.
* cm.c (Wcm_clear): Likewise.
* coding.c (decode_eol, decode_coding_object)
(Fset_coding_system_priority, make_subsidiaries): Likewise.
* data.c (Faset): Likewise.
* dired.c (directory_files_internal, file_name_completion_stat):
Likewise.
* dispnew.c (new_glyph_matrix, adjust_glyph_matrix)
(clear_glyph_row, copy_row_except_pointers)
(copy_glyph_row_contents, new_glyph_pool, realloc_glyph_pool)
(save_current_matrix, restore_current_matrix)
(build_frame_matrix_from_leaf_window, mirrored_line_dance)
(mirror_line_dance, scrolling_window): Likewise.
* doc.c (Fsnarf_documentation, Fsubstitute_command_keys):
Likewise.
* doprnt.c (doprnt): Likewise.
* editfns.c (Fuser_full_name, make_buffer_string_both)
(Fmessage_box, Fformat, Ftranspose_regions): Likewise.
* emacs.c (sort_args): Likewise.
* eval.c (Fapply, Ffuncall): Likewise.
* fileio.c (Ffile_name_directory, make_temp_name)
(Fexpand_file_name, search_embedded_absfilename)
(Fsubstitute_in_file_name, Ffile_symlink_p, Finsert_file_contents)
(auto_save_error): Likewise.
* fns.c (Fstring_equal, Fcopy_sequence, concat)
(string_to_multibyte, Fstring_as_unibyte, Fstring_as_multibyte)
(internal_equal, Fclear_string, larger_vector, copy_hash_table)
(Fmake_hash_table): Likewise.
* fringe.c (Fdefine_fringe_bitmap): Likewise.
* ftfont.c (ftfont_text_extents): Likewise.
* getloadavg.c (getloadavg): Likewise.
* image.c (define_image_type, make_image, make_image_cache)
(x_create_x_image_and_pixmap, xbm_image_p)
(w32_create_pixmap_from_bitmap_data, xbm_load, xpm_lookup_color)
(xpm_image_p, x_create_bitmap_from_xpm_data, xpm_load)
(init_color_table, x_build_heuristic_mask, pbm_image_p, pbm_load)
(png_image_p, png_read_from_memory, png_load, jpeg_image_p)
(tiff_image_p, tiff_read_from_memory, gif_image_p)
(gif_read_from_memory, gif_load, svg_image_p, gs_image_p):
Likewise.
* indent.c (scan_for_column, compute_motion): Likewise.
* insdel.c (gap_left, gap_right, make_gap_smaller, copy_text)
(insert_1_both, insert_from_gap, replace_range_2): Likewise.
* intervals.c (reproduce_tree, reproduce_tree_obj): Likewise.
* keyboard.c (echo_char, save_getcjmp, restore_getcjmp)
(kbd_buffer_store_event_hold, apply_modifiers_uncached)
(store_user_signal_events, menu_bar_items, tool_bar_items)
(process_tool_bar_item, append_tool_bar_item)
(read_char_minibuf_menu_prompt, read_key_sequence)
(Fread_key_sequence, Fread_key_sequence_vector, Frecent_keys):
Likewise.
* keymap.c (current_minor_maps, Fdescribe_buffer_bindings):
Likewise.
* lisp.h (STRING_COPYIN): Likewise.
* lread.c (Fload, read1, oblookup): Likewise.
* msdos.c (Frecent_doskeys): Likewise.
* nsfns.m (Fx_create_frame): Likewise.
* nsfont.m (nsfont_open, nsfont_text_extents, ns_glyph_metrics):
Likewise.
* nsimage.m (EmacsImage-initFromSkipXBM:width:height:)
(EmacsImage-initForXPMWithDepth:width:height:flip:length:):
Likewise.
* nsmenu.m (ns_update_menubar): Likewise.
* nsterm.m (ns_draw_fringe_bitmap, ns_term_init): Likewise.
* print.c (print_unwind, printchar, strout, print_string)
(print_error_message): Likewise.
* process.c (conv_lisp_to_sockaddr, set_socket_option)
(Fmake_network_process, Fnetwork_interface_list)
(Fnetwork_interface_info, read_process_output, Fprocess_send_eof)
(init_process): Likewise.
* ralloc.c (resize_bloc, r_alloc_sbrk, r_alloc_init): Likewise.
* regex.c (init_syntax_once, regex_compile, re_compile_fastmap):
Likewise.
* scroll.c (do_scrolling, do_direct_scrolling)
(scrolling_max_lines_saved): Likewise.
* search.c (search_buffer, wordify, Freplace_match): Likewise.
* sound.c (wav_init, au_init, Fplay_sound_internal): Likewise.
* syntax.c (skip_chars, skip_syntaxes): Likewise.
* sysdep.c (child_setup_tty, sys_subshell, emacs_get_tty)
(emacs_set_tty): Likewise.
* term.c (encode_terminal_code, calculate_costs)
(produce_special_glyphs, create_tty_output, init_tty, delete_tty):
Likewise.
* termcap.c (tgetst1, gobble_line): Likewise.
* termhooks.h (EVENT_INIT): Likewise.
* tparam.c (tparam1): Likewise.
* unexalpha.c (unexec): Likewise.
* unexec.c (write_segment): Likewise.
* unexmacosx.c (unexec_write_zero): Likewise.
* w32fns.c (w32_wnd_proc, Fx_create_frame, x_create_tip_frame)
(Fx_file_dialog, Fsystem_move_file_to_trash): Likewise.
* w32font.c (w32font_list_family, w32font_text_extents)
(w32font_list_internal, w32font_match_internal)
(w32font_open_internal, compute_metrics, Fx_select_font):
Likewise.
* w32menu.c (set_frame_menubar, add_menu_item)
(w32_menu_display_help, w32_free_submenu_strings): Likewise.
* w32term.c (XCreateGC, w32_initialize_display_info): Likewise.
* w32uniscribe.c (uniscribe_list_family): Likewise.
* w32xfns.c (get_next_msg, post_msg, prepend_msg): Likewise.
* window.c (make_window, replace_window, set_window_buffer)
(Fsplit_window): Likewise.
* xdisp.c (init_iterator, RECORD_OVERLAY_STRING, reseat_to_string)
(add_to_log, message3, x_consider_frame_title)
(append_space_for_newline, extend_face_to_end_of_line)
(decode_mode_spec_coding, init_glyph_string): Likewise.
* xfaces.c (x_create_gc, get_lface_attributes_no_remap)
(Finternal_copy_lisp_face, Finternal_merge_in_global_face)
(face_attr_equal_p, make_realized_face, make_face_cache)
(free_realized_faces, lookup_named_face, smaller_face)
(face_with_height, lookup_derived_face)
(x_supports_face_attributes_p, Finternal_set_font_selection_order)
(Finternal_set_font_selection_order, realize_default_face)
(compute_char_face, face_at_buffer_position)
(face_for_overlay_string, face_at_string_position, merge_faces):
Likewise.
* xfns.c (xic_create_fontsetname, Fx_create_frame)
(Fx_window_property, x_create_tip_frame)
(Fx_backspace_delete_keys_p): Likewise.
* xfont.c (xfont_list, xfont_match, xfont_list_family)
(xfont_text_extents): Likewise.
* xmenu.c (set_frame_menubar, xmenu_show): Likewise.
* xrdb.c (magic_file_p, x_get_resource): Likewise.
* xselect.c (x_queue_event, x_get_window_property)
(receive_incremental_selection): Likewise.
* xsmfns.c (x_session_check_input): Likewise.
* xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT)
(handle_one_xevent, x_check_errors, xim_initialize, x_term_init):
Likewise.
* character.h (BCOPY_SHORT): Removed.
* config.in: Regenerate.
* dispnew.c (safe_bcopy): Only define as dummy if PROFILING.
* emacs.c (main) [PROFILING]: Don't declare
dump_opcode_frequencies.
* lisp.h (safe_bcopy): Remove declaration.
(memset) [!HAVE_MEMSET]: Declare.
(memcpy) [!HAVE_MEMCPY]: Likewise.
(memmove) [!HAVE_MEMMOVE]: Likewise.
(memcmp) [!HAVE_MEMCMP]: Likewise.
* s/ms-w32.h (bzero, bcopy, bcmp, GAP_USE_BCOPY)
(BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE, HAVE_BCOPY, HAVE_BCMP):
Don't define.
(HAVE_MEMCMP, HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET): Define.
* s/msdos.h (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE)
(BCOPY_DOWNWARD_SAFE): Don't define.
* sysdep.c (memset) [!HAVE_MEMSET]: Define.
(memcpy) [!HAVE_MEMCPY]: Define.
(memmove) [!HAVE_MEMMOVE]: Define.
(memcmp) [!HAVE_MEMCMP]: Define.
* config.nt (HAVE_BCOPY, HAVE_BCMP): Remove undefs.
(HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET, HAVE_MEMCMP): Add undefs.
* sed2v2.inp (HAVE_MEMCPY, HAVE_MEMSET): Edit to 1.
(HAVE_BZERO): Don't edit.
* lwlib.c (lwlib_memset, lwlib_bcopy): Remove.
(malloc_widget_value, free_widget_info, allocate_widget_instance)
(lw_separator_p): Replace lwlib_memset, lwlib_bcopy, bzero, bcmp by
memset, memcpy, memcmp.
* lwlib-utils.c (XtApplyToWidgets): Likewise.
* xlwmenu.c (XlwMenuInitialize): Likewise.
* lwlib.h (lwlib_bcopy): Remove declaration.
* ebrowse.c (add_sym, make_namespace): Replace bcopy, bzero by
memcpy, memmove, memset.
* pop.c (pop_retrieve, socket_connection, pop_getline): Likewise.
* CPP-DEFINES (BCOPY_DOWNWARD_SAFE, BCOPY_UPWARD_SAFE)
(GAP_USE_BCOPY, HAVE_BCMP, HAVE_BCOPY, bcmp, bcopy, bzero):
Remove.
* configure.in: Don't check for bcopy, bcmp, bzero. Don't include
<strings.h> and don't define bcopy, bzero, BCMP in config.h.
2010-07-08 00:18:28 +02:00
|
|
|
|
memset (changed, 0, sizeof changed);
|
2003-01-31 04:03:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (i = j = 0; i < nargs; i++)
|
2003-01-31 04:03:07 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
enum coding_category category;
|
|
|
|
|
Lisp_Object spec, attrs;
|
2003-01-31 04:03:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHECK_CODING_SYSTEM_GET_SPEC (args[i], spec);
|
|
|
|
|
attrs = AREF (spec, 0);
|
|
|
|
|
category = XINT (CODING_ATTR_CATEGORY (attrs));
|
|
|
|
|
if (changed[category])
|
|
|
|
|
/* Ignore this coding system because a coding system of the
|
|
|
|
|
same category already had a higher priority. */
|
|
|
|
|
continue;
|
|
|
|
|
changed[category] = 1;
|
|
|
|
|
priorities[j++] = category;
|
|
|
|
|
if (coding_categories[category].id >= 0
|
|
|
|
|
&& ! EQ (args[i], CODING_ID_NAME (coding_categories[category].id)))
|
|
|
|
|
setup_coding_system (args[i], &coding_categories[category]);
|
2003-06-05 23:21:22 +00:00
|
|
|
|
Fset (AREF (Vcoding_category_table, category), args[i]);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2003-01-31 04:03:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Now we have decided top J priorities. Reflect the order of the
|
|
|
|
|
original priorities to the remaining priorities. */
|
2003-01-31 04:03:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (i = j, j = 0; i < coding_category_max; i++, j++)
|
2003-01-31 04:03:07 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (j < coding_category_max
|
|
|
|
|
&& changed[coding_priorities[j]])
|
|
|
|
|
j++;
|
|
|
|
|
if (j == coding_category_max)
|
|
|
|
|
abort ();
|
|
|
|
|
priorities[i] = coding_priorities[j];
|
|
|
|
|
}
|
2003-01-31 04:03:07 +00:00
|
|
|
|
|
Replace bcopy, bzero, bcmp by memcpy, memmove, memset, memcmp
* alloc.c (overrun_check_malloc, overrun_check_realloc)
(overrun_check_free, xstrdup, allocate_string)
(allocate_string_data, compact_small_strings, Fmake_string)
(make_unibyte_string, make_multibyte_string)
(make_string_from_bytes, make_specified_string, make_float)
(Fcons, allocate_terminal, allocate_frame, make_pure_string)
(Fgarbage_collect): Replace bcopy, safe_bcopy, bzero, bcmp by
memcpy, memmove, memset, memcmp.
* atimer.c (start_atimer, set_alarm): Likewise.
* buffer.c (clone_per_buffer_values, report_overlay_modification)
(mmap_realloc, init_buffer_once): Likewise.
* callint.c (Fcall_interactively): Likewise.
* callproc.c (Fcall_process, Fcall_process_region, child_setup)
(getenv_internal_1): Likewise.
* casefiddle.c (casify_object): Likewise.
* ccl.c (ccl_driver): Likewise.
* character.c (str_as_multibyte, str_to_multibyte): Likewise.
* charset.c (load_charset_map_from_file)
(load_charset_map_from_file, load_charset_map_from_vector)
(Fdefine_charset_internal): Likewise.
* cm.c (Wcm_clear): Likewise.
* coding.c (decode_eol, decode_coding_object)
(Fset_coding_system_priority, make_subsidiaries): Likewise.
* data.c (Faset): Likewise.
* dired.c (directory_files_internal, file_name_completion_stat):
Likewise.
* dispnew.c (new_glyph_matrix, adjust_glyph_matrix)
(clear_glyph_row, copy_row_except_pointers)
(copy_glyph_row_contents, new_glyph_pool, realloc_glyph_pool)
(save_current_matrix, restore_current_matrix)
(build_frame_matrix_from_leaf_window, mirrored_line_dance)
(mirror_line_dance, scrolling_window): Likewise.
* doc.c (Fsnarf_documentation, Fsubstitute_command_keys):
Likewise.
* doprnt.c (doprnt): Likewise.
* editfns.c (Fuser_full_name, make_buffer_string_both)
(Fmessage_box, Fformat, Ftranspose_regions): Likewise.
* emacs.c (sort_args): Likewise.
* eval.c (Fapply, Ffuncall): Likewise.
* fileio.c (Ffile_name_directory, make_temp_name)
(Fexpand_file_name, search_embedded_absfilename)
(Fsubstitute_in_file_name, Ffile_symlink_p, Finsert_file_contents)
(auto_save_error): Likewise.
* fns.c (Fstring_equal, Fcopy_sequence, concat)
(string_to_multibyte, Fstring_as_unibyte, Fstring_as_multibyte)
(internal_equal, Fclear_string, larger_vector, copy_hash_table)
(Fmake_hash_table): Likewise.
* fringe.c (Fdefine_fringe_bitmap): Likewise.
* ftfont.c (ftfont_text_extents): Likewise.
* getloadavg.c (getloadavg): Likewise.
* image.c (define_image_type, make_image, make_image_cache)
(x_create_x_image_and_pixmap, xbm_image_p)
(w32_create_pixmap_from_bitmap_data, xbm_load, xpm_lookup_color)
(xpm_image_p, x_create_bitmap_from_xpm_data, xpm_load)
(init_color_table, x_build_heuristic_mask, pbm_image_p, pbm_load)
(png_image_p, png_read_from_memory, png_load, jpeg_image_p)
(tiff_image_p, tiff_read_from_memory, gif_image_p)
(gif_read_from_memory, gif_load, svg_image_p, gs_image_p):
Likewise.
* indent.c (scan_for_column, compute_motion): Likewise.
* insdel.c (gap_left, gap_right, make_gap_smaller, copy_text)
(insert_1_both, insert_from_gap, replace_range_2): Likewise.
* intervals.c (reproduce_tree, reproduce_tree_obj): Likewise.
* keyboard.c (echo_char, save_getcjmp, restore_getcjmp)
(kbd_buffer_store_event_hold, apply_modifiers_uncached)
(store_user_signal_events, menu_bar_items, tool_bar_items)
(process_tool_bar_item, append_tool_bar_item)
(read_char_minibuf_menu_prompt, read_key_sequence)
(Fread_key_sequence, Fread_key_sequence_vector, Frecent_keys):
Likewise.
* keymap.c (current_minor_maps, Fdescribe_buffer_bindings):
Likewise.
* lisp.h (STRING_COPYIN): Likewise.
* lread.c (Fload, read1, oblookup): Likewise.
* msdos.c (Frecent_doskeys): Likewise.
* nsfns.m (Fx_create_frame): Likewise.
* nsfont.m (nsfont_open, nsfont_text_extents, ns_glyph_metrics):
Likewise.
* nsimage.m (EmacsImage-initFromSkipXBM:width:height:)
(EmacsImage-initForXPMWithDepth:width:height:flip:length:):
Likewise.
* nsmenu.m (ns_update_menubar): Likewise.
* nsterm.m (ns_draw_fringe_bitmap, ns_term_init): Likewise.
* print.c (print_unwind, printchar, strout, print_string)
(print_error_message): Likewise.
* process.c (conv_lisp_to_sockaddr, set_socket_option)
(Fmake_network_process, Fnetwork_interface_list)
(Fnetwork_interface_info, read_process_output, Fprocess_send_eof)
(init_process): Likewise.
* ralloc.c (resize_bloc, r_alloc_sbrk, r_alloc_init): Likewise.
* regex.c (init_syntax_once, regex_compile, re_compile_fastmap):
Likewise.
* scroll.c (do_scrolling, do_direct_scrolling)
(scrolling_max_lines_saved): Likewise.
* search.c (search_buffer, wordify, Freplace_match): Likewise.
* sound.c (wav_init, au_init, Fplay_sound_internal): Likewise.
* syntax.c (skip_chars, skip_syntaxes): Likewise.
* sysdep.c (child_setup_tty, sys_subshell, emacs_get_tty)
(emacs_set_tty): Likewise.
* term.c (encode_terminal_code, calculate_costs)
(produce_special_glyphs, create_tty_output, init_tty, delete_tty):
Likewise.
* termcap.c (tgetst1, gobble_line): Likewise.
* termhooks.h (EVENT_INIT): Likewise.
* tparam.c (tparam1): Likewise.
* unexalpha.c (unexec): Likewise.
* unexec.c (write_segment): Likewise.
* unexmacosx.c (unexec_write_zero): Likewise.
* w32fns.c (w32_wnd_proc, Fx_create_frame, x_create_tip_frame)
(Fx_file_dialog, Fsystem_move_file_to_trash): Likewise.
* w32font.c (w32font_list_family, w32font_text_extents)
(w32font_list_internal, w32font_match_internal)
(w32font_open_internal, compute_metrics, Fx_select_font):
Likewise.
* w32menu.c (set_frame_menubar, add_menu_item)
(w32_menu_display_help, w32_free_submenu_strings): Likewise.
* w32term.c (XCreateGC, w32_initialize_display_info): Likewise.
* w32uniscribe.c (uniscribe_list_family): Likewise.
* w32xfns.c (get_next_msg, post_msg, prepend_msg): Likewise.
* window.c (make_window, replace_window, set_window_buffer)
(Fsplit_window): Likewise.
* xdisp.c (init_iterator, RECORD_OVERLAY_STRING, reseat_to_string)
(add_to_log, message3, x_consider_frame_title)
(append_space_for_newline, extend_face_to_end_of_line)
(decode_mode_spec_coding, init_glyph_string): Likewise.
* xfaces.c (x_create_gc, get_lface_attributes_no_remap)
(Finternal_copy_lisp_face, Finternal_merge_in_global_face)
(face_attr_equal_p, make_realized_face, make_face_cache)
(free_realized_faces, lookup_named_face, smaller_face)
(face_with_height, lookup_derived_face)
(x_supports_face_attributes_p, Finternal_set_font_selection_order)
(Finternal_set_font_selection_order, realize_default_face)
(compute_char_face, face_at_buffer_position)
(face_for_overlay_string, face_at_string_position, merge_faces):
Likewise.
* xfns.c (xic_create_fontsetname, Fx_create_frame)
(Fx_window_property, x_create_tip_frame)
(Fx_backspace_delete_keys_p): Likewise.
* xfont.c (xfont_list, xfont_match, xfont_list_family)
(xfont_text_extents): Likewise.
* xmenu.c (set_frame_menubar, xmenu_show): Likewise.
* xrdb.c (magic_file_p, x_get_resource): Likewise.
* xselect.c (x_queue_event, x_get_window_property)
(receive_incremental_selection): Likewise.
* xsmfns.c (x_session_check_input): Likewise.
* xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT)
(handle_one_xevent, x_check_errors, xim_initialize, x_term_init):
Likewise.
* character.h (BCOPY_SHORT): Removed.
* config.in: Regenerate.
* dispnew.c (safe_bcopy): Only define as dummy if PROFILING.
* emacs.c (main) [PROFILING]: Don't declare
dump_opcode_frequencies.
* lisp.h (safe_bcopy): Remove declaration.
(memset) [!HAVE_MEMSET]: Declare.
(memcpy) [!HAVE_MEMCPY]: Likewise.
(memmove) [!HAVE_MEMMOVE]: Likewise.
(memcmp) [!HAVE_MEMCMP]: Likewise.
* s/ms-w32.h (bzero, bcopy, bcmp, GAP_USE_BCOPY)
(BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE, HAVE_BCOPY, HAVE_BCMP):
Don't define.
(HAVE_MEMCMP, HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET): Define.
* s/msdos.h (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE)
(BCOPY_DOWNWARD_SAFE): Don't define.
* sysdep.c (memset) [!HAVE_MEMSET]: Define.
(memcpy) [!HAVE_MEMCPY]: Define.
(memmove) [!HAVE_MEMMOVE]: Define.
(memcmp) [!HAVE_MEMCMP]: Define.
* config.nt (HAVE_BCOPY, HAVE_BCMP): Remove undefs.
(HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET, HAVE_MEMCMP): Add undefs.
* sed2v2.inp (HAVE_MEMCPY, HAVE_MEMSET): Edit to 1.
(HAVE_BZERO): Don't edit.
* lwlib.c (lwlib_memset, lwlib_bcopy): Remove.
(malloc_widget_value, free_widget_info, allocate_widget_instance)
(lw_separator_p): Replace lwlib_memset, lwlib_bcopy, bzero, bcmp by
memset, memcpy, memcmp.
* lwlib-utils.c (XtApplyToWidgets): Likewise.
* xlwmenu.c (XlwMenuInitialize): Likewise.
* lwlib.h (lwlib_bcopy): Remove declaration.
* ebrowse.c (add_sym, make_namespace): Replace bcopy, bzero by
memcpy, memmove, memset.
* pop.c (pop_retrieve, socket_connection, pop_getline): Likewise.
* CPP-DEFINES (BCOPY_DOWNWARD_SAFE, BCOPY_UPWARD_SAFE)
(GAP_USE_BCOPY, HAVE_BCMP, HAVE_BCOPY, bcmp, bcopy, bzero):
Remove.
* configure.in: Don't check for bcopy, bcmp, bzero. Don't include
<strings.h> and don't define bcopy, bzero, BCMP in config.h.
2010-07-08 00:18:28 +02:00
|
|
|
|
memcpy (coding_priorities, priorities, sizeof priorities);
|
2003-02-04 14:56:31 +00:00
|
|
|
|
|
2003-06-05 23:21:22 +00:00
|
|
|
|
/* Update `coding-category-list'. */
|
|
|
|
|
Vcoding_category_list = Qnil;
|
2011-03-26 19:12:36 -07:00
|
|
|
|
for (i = coding_category_max; i-- > 0; )
|
2003-06-05 23:21:22 +00:00
|
|
|
|
Vcoding_category_list
|
|
|
|
|
= Fcons (AREF (Vcoding_category_table, priorities[i]),
|
|
|
|
|
Vcoding_category_list);
|
2003-01-31 04:03:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return Qnil;
|
2003-01-31 04:03:07 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFUN ("coding-system-priority-list", Fcoding_system_priority_list,
|
|
|
|
|
Scoding_system_priority_list, 0, 1, 0,
|
2002-05-26 17:07:35 +00:00
|
|
|
|
doc: /* Return a list of coding systems ordered by their priorities.
|
2009-03-27 07:25:44 +00:00
|
|
|
|
The list contains a subset of coding systems; i.e. coding systems
|
|
|
|
|
assigned to each coding category (see `coding-category-list').
|
|
|
|
|
|
2002-05-26 17:07:35 +00:00
|
|
|
|
HIGHESTP non-nil means just return the highest priority one. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object highestp)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
|
|
|
|
int i;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object val;
|
2003-01-31 04:03:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (i = 0, val = Qnil; i < coding_category_max; i++)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
enum coding_category category = coding_priorities[i];
|
|
|
|
|
int id = coding_categories[category].id;
|
|
|
|
|
Lisp_Object attrs;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (id < 0)
|
|
|
|
|
continue;
|
|
|
|
|
attrs = CODING_ID_ATTRS (id);
|
|
|
|
|
if (! NILP (highestp))
|
|
|
|
|
return CODING_ATTR_BASE_NAME (attrs);
|
|
|
|
|
val = Fcons (CODING_ATTR_BASE_NAME (attrs), val);
|
|
|
|
|
}
|
|
|
|
|
return Fnreverse (val);
|
|
|
|
|
}
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
* process.c (ifflag_def): Make flag_sym constant.
(Fnetwork_interface_info): Use a constant pointer.
(ifflag_table):
* xfns.c (cursor_bits):
* xdisp.c (power_letter):
* termcap.c (speeds, esctab):
* sysdep.c (baud_convert):
* keyboard.c (lispy_accent_codes, modifier_names):
* image.c (xbm_format, xpm_format, pbm_format, png_format)
(jpeg_format, tiff_format, gif_format, svg_format)
(interlace_start, interlace_increment, gs_format):
* gtkutil.c (separator_names):
* fringe.c (swap_nibble):
* fns.c (base64_value_to_char, base64_char_to_value):
* fileio.c (make_temp_name_tbl):
* coding.c (suffixes): Make constant.
2009-11-11 20:11:51 +00:00
|
|
|
|
static const char *const suffixes[] = { "-unix", "-dos", "-mac" };
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
|
|
|
|
static Lisp_Object
|
2010-07-04 00:50:25 -07:00
|
|
|
|
make_subsidiaries (Lisp_Object base)
|
2002-08-11 01:06:42 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object subsidiaries;
|
2011-06-19 11:44:09 -07:00
|
|
|
|
ptrdiff_t base_name_len = SBYTES (SYMBOL_NAME (base));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
char *buf = (char *) alloca (base_name_len + 6);
|
|
|
|
|
int i;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
Replace bcopy, bzero, bcmp by memcpy, memmove, memset, memcmp
* alloc.c (overrun_check_malloc, overrun_check_realloc)
(overrun_check_free, xstrdup, allocate_string)
(allocate_string_data, compact_small_strings, Fmake_string)
(make_unibyte_string, make_multibyte_string)
(make_string_from_bytes, make_specified_string, make_float)
(Fcons, allocate_terminal, allocate_frame, make_pure_string)
(Fgarbage_collect): Replace bcopy, safe_bcopy, bzero, bcmp by
memcpy, memmove, memset, memcmp.
* atimer.c (start_atimer, set_alarm): Likewise.
* buffer.c (clone_per_buffer_values, report_overlay_modification)
(mmap_realloc, init_buffer_once): Likewise.
* callint.c (Fcall_interactively): Likewise.
* callproc.c (Fcall_process, Fcall_process_region, child_setup)
(getenv_internal_1): Likewise.
* casefiddle.c (casify_object): Likewise.
* ccl.c (ccl_driver): Likewise.
* character.c (str_as_multibyte, str_to_multibyte): Likewise.
* charset.c (load_charset_map_from_file)
(load_charset_map_from_file, load_charset_map_from_vector)
(Fdefine_charset_internal): Likewise.
* cm.c (Wcm_clear): Likewise.
* coding.c (decode_eol, decode_coding_object)
(Fset_coding_system_priority, make_subsidiaries): Likewise.
* data.c (Faset): Likewise.
* dired.c (directory_files_internal, file_name_completion_stat):
Likewise.
* dispnew.c (new_glyph_matrix, adjust_glyph_matrix)
(clear_glyph_row, copy_row_except_pointers)
(copy_glyph_row_contents, new_glyph_pool, realloc_glyph_pool)
(save_current_matrix, restore_current_matrix)
(build_frame_matrix_from_leaf_window, mirrored_line_dance)
(mirror_line_dance, scrolling_window): Likewise.
* doc.c (Fsnarf_documentation, Fsubstitute_command_keys):
Likewise.
* doprnt.c (doprnt): Likewise.
* editfns.c (Fuser_full_name, make_buffer_string_both)
(Fmessage_box, Fformat, Ftranspose_regions): Likewise.
* emacs.c (sort_args): Likewise.
* eval.c (Fapply, Ffuncall): Likewise.
* fileio.c (Ffile_name_directory, make_temp_name)
(Fexpand_file_name, search_embedded_absfilename)
(Fsubstitute_in_file_name, Ffile_symlink_p, Finsert_file_contents)
(auto_save_error): Likewise.
* fns.c (Fstring_equal, Fcopy_sequence, concat)
(string_to_multibyte, Fstring_as_unibyte, Fstring_as_multibyte)
(internal_equal, Fclear_string, larger_vector, copy_hash_table)
(Fmake_hash_table): Likewise.
* fringe.c (Fdefine_fringe_bitmap): Likewise.
* ftfont.c (ftfont_text_extents): Likewise.
* getloadavg.c (getloadavg): Likewise.
* image.c (define_image_type, make_image, make_image_cache)
(x_create_x_image_and_pixmap, xbm_image_p)
(w32_create_pixmap_from_bitmap_data, xbm_load, xpm_lookup_color)
(xpm_image_p, x_create_bitmap_from_xpm_data, xpm_load)
(init_color_table, x_build_heuristic_mask, pbm_image_p, pbm_load)
(png_image_p, png_read_from_memory, png_load, jpeg_image_p)
(tiff_image_p, tiff_read_from_memory, gif_image_p)
(gif_read_from_memory, gif_load, svg_image_p, gs_image_p):
Likewise.
* indent.c (scan_for_column, compute_motion): Likewise.
* insdel.c (gap_left, gap_right, make_gap_smaller, copy_text)
(insert_1_both, insert_from_gap, replace_range_2): Likewise.
* intervals.c (reproduce_tree, reproduce_tree_obj): Likewise.
* keyboard.c (echo_char, save_getcjmp, restore_getcjmp)
(kbd_buffer_store_event_hold, apply_modifiers_uncached)
(store_user_signal_events, menu_bar_items, tool_bar_items)
(process_tool_bar_item, append_tool_bar_item)
(read_char_minibuf_menu_prompt, read_key_sequence)
(Fread_key_sequence, Fread_key_sequence_vector, Frecent_keys):
Likewise.
* keymap.c (current_minor_maps, Fdescribe_buffer_bindings):
Likewise.
* lisp.h (STRING_COPYIN): Likewise.
* lread.c (Fload, read1, oblookup): Likewise.
* msdos.c (Frecent_doskeys): Likewise.
* nsfns.m (Fx_create_frame): Likewise.
* nsfont.m (nsfont_open, nsfont_text_extents, ns_glyph_metrics):
Likewise.
* nsimage.m (EmacsImage-initFromSkipXBM:width:height:)
(EmacsImage-initForXPMWithDepth:width:height:flip:length:):
Likewise.
* nsmenu.m (ns_update_menubar): Likewise.
* nsterm.m (ns_draw_fringe_bitmap, ns_term_init): Likewise.
* print.c (print_unwind, printchar, strout, print_string)
(print_error_message): Likewise.
* process.c (conv_lisp_to_sockaddr, set_socket_option)
(Fmake_network_process, Fnetwork_interface_list)
(Fnetwork_interface_info, read_process_output, Fprocess_send_eof)
(init_process): Likewise.
* ralloc.c (resize_bloc, r_alloc_sbrk, r_alloc_init): Likewise.
* regex.c (init_syntax_once, regex_compile, re_compile_fastmap):
Likewise.
* scroll.c (do_scrolling, do_direct_scrolling)
(scrolling_max_lines_saved): Likewise.
* search.c (search_buffer, wordify, Freplace_match): Likewise.
* sound.c (wav_init, au_init, Fplay_sound_internal): Likewise.
* syntax.c (skip_chars, skip_syntaxes): Likewise.
* sysdep.c (child_setup_tty, sys_subshell, emacs_get_tty)
(emacs_set_tty): Likewise.
* term.c (encode_terminal_code, calculate_costs)
(produce_special_glyphs, create_tty_output, init_tty, delete_tty):
Likewise.
* termcap.c (tgetst1, gobble_line): Likewise.
* termhooks.h (EVENT_INIT): Likewise.
* tparam.c (tparam1): Likewise.
* unexalpha.c (unexec): Likewise.
* unexec.c (write_segment): Likewise.
* unexmacosx.c (unexec_write_zero): Likewise.
* w32fns.c (w32_wnd_proc, Fx_create_frame, x_create_tip_frame)
(Fx_file_dialog, Fsystem_move_file_to_trash): Likewise.
* w32font.c (w32font_list_family, w32font_text_extents)
(w32font_list_internal, w32font_match_internal)
(w32font_open_internal, compute_metrics, Fx_select_font):
Likewise.
* w32menu.c (set_frame_menubar, add_menu_item)
(w32_menu_display_help, w32_free_submenu_strings): Likewise.
* w32term.c (XCreateGC, w32_initialize_display_info): Likewise.
* w32uniscribe.c (uniscribe_list_family): Likewise.
* w32xfns.c (get_next_msg, post_msg, prepend_msg): Likewise.
* window.c (make_window, replace_window, set_window_buffer)
(Fsplit_window): Likewise.
* xdisp.c (init_iterator, RECORD_OVERLAY_STRING, reseat_to_string)
(add_to_log, message3, x_consider_frame_title)
(append_space_for_newline, extend_face_to_end_of_line)
(decode_mode_spec_coding, init_glyph_string): Likewise.
* xfaces.c (x_create_gc, get_lface_attributes_no_remap)
(Finternal_copy_lisp_face, Finternal_merge_in_global_face)
(face_attr_equal_p, make_realized_face, make_face_cache)
(free_realized_faces, lookup_named_face, smaller_face)
(face_with_height, lookup_derived_face)
(x_supports_face_attributes_p, Finternal_set_font_selection_order)
(Finternal_set_font_selection_order, realize_default_face)
(compute_char_face, face_at_buffer_position)
(face_for_overlay_string, face_at_string_position, merge_faces):
Likewise.
* xfns.c (xic_create_fontsetname, Fx_create_frame)
(Fx_window_property, x_create_tip_frame)
(Fx_backspace_delete_keys_p): Likewise.
* xfont.c (xfont_list, xfont_match, xfont_list_family)
(xfont_text_extents): Likewise.
* xmenu.c (set_frame_menubar, xmenu_show): Likewise.
* xrdb.c (magic_file_p, x_get_resource): Likewise.
* xselect.c (x_queue_event, x_get_window_property)
(receive_incremental_selection): Likewise.
* xsmfns.c (x_session_check_input): Likewise.
* xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT)
(handle_one_xevent, x_check_errors, xim_initialize, x_term_init):
Likewise.
* character.h (BCOPY_SHORT): Removed.
* config.in: Regenerate.
* dispnew.c (safe_bcopy): Only define as dummy if PROFILING.
* emacs.c (main) [PROFILING]: Don't declare
dump_opcode_frequencies.
* lisp.h (safe_bcopy): Remove declaration.
(memset) [!HAVE_MEMSET]: Declare.
(memcpy) [!HAVE_MEMCPY]: Likewise.
(memmove) [!HAVE_MEMMOVE]: Likewise.
(memcmp) [!HAVE_MEMCMP]: Likewise.
* s/ms-w32.h (bzero, bcopy, bcmp, GAP_USE_BCOPY)
(BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE, HAVE_BCOPY, HAVE_BCMP):
Don't define.
(HAVE_MEMCMP, HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET): Define.
* s/msdos.h (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE)
(BCOPY_DOWNWARD_SAFE): Don't define.
* sysdep.c (memset) [!HAVE_MEMSET]: Define.
(memcpy) [!HAVE_MEMCPY]: Define.
(memmove) [!HAVE_MEMMOVE]: Define.
(memcmp) [!HAVE_MEMCMP]: Define.
* config.nt (HAVE_BCOPY, HAVE_BCMP): Remove undefs.
(HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET, HAVE_MEMCMP): Add undefs.
* sed2v2.inp (HAVE_MEMCPY, HAVE_MEMSET): Edit to 1.
(HAVE_BZERO): Don't edit.
* lwlib.c (lwlib_memset, lwlib_bcopy): Remove.
(malloc_widget_value, free_widget_info, allocate_widget_instance)
(lw_separator_p): Replace lwlib_memset, lwlib_bcopy, bzero, bcmp by
memset, memcpy, memcmp.
* lwlib-utils.c (XtApplyToWidgets): Likewise.
* xlwmenu.c (XlwMenuInitialize): Likewise.
* lwlib.h (lwlib_bcopy): Remove declaration.
* ebrowse.c (add_sym, make_namespace): Replace bcopy, bzero by
memcpy, memmove, memset.
* pop.c (pop_retrieve, socket_connection, pop_getline): Likewise.
* CPP-DEFINES (BCOPY_DOWNWARD_SAFE, BCOPY_UPWARD_SAFE)
(GAP_USE_BCOPY, HAVE_BCMP, HAVE_BCOPY, bcmp, bcopy, bzero):
Remove.
* configure.in: Don't check for bcopy, bcmp, bzero. Don't include
<strings.h> and don't define bcopy, bzero, BCMP in config.h.
2010-07-08 00:18:28 +02:00
|
|
|
|
memcpy (buf, SDATA (SYMBOL_NAME (base)), base_name_len);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
subsidiaries = Fmake_vector (make_number (3), Qnil);
|
|
|
|
|
for (i = 0; i < 3; i++)
|
2002-08-11 01:06:42 +00:00
|
|
|
|
{
|
2011-06-19 11:44:09 -07:00
|
|
|
|
strcpy (buf + base_name_len, suffixes[i]);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (subsidiaries, i, intern (buf));
|
2002-08-11 01:06:42 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
return subsidiaries;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFUN ("define-coding-system-internal", Fdefine_coding_system_internal,
|
|
|
|
|
Sdefine_coding_system_internal, coding_arg_max, MANY, 0,
|
2002-05-17 16:25:23 +00:00
|
|
|
|
doc: /* For internal use only.
|
|
|
|
|
usage: (define-coding-system-internal ...) */)
|
Variadic C functions now count arguments with ptrdiff_t.
This partly undoes my 2011-03-30 change, which replaced int with size_t.
Back then I didn't know that the Emacs coding style prefers signed int.
Also, in the meantime I found a few more instances where arguments
were being counted with int, which may truncate counts on 64-bit
machines, or EMACS_INT, which may be unnecessarily wide.
* lisp.h (struct Lisp_Subr.function.aMANY)
(DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
Arg counts are now ptrdiff_t, not size_t.
All variadic functions and their callers changed accordingly.
(struct gcpro.nvars): Now size_t, not size_t. All uses changed.
* bytecode.c (exec_byte_code): Check maxdepth for overflow,
to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
* callint.c (Fcall_interactively): Check arg count for overflow,
to avoid potential buffer overrun. Use signed char, not 'int',
for 'varies' array, so that we needn't bother to check its size
calculation for overflow.
* editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
* eval.c (apply_lambda):
* fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
(struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
(mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
2011-06-14 11:57:19 -07:00
|
|
|
|
(ptrdiff_t nargs, Lisp_Object *args)
|
2002-08-11 01:06:42 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object name;
|
|
|
|
|
Lisp_Object spec_vec; /* [ ATTRS ALIASE EOL_TYPE ] */
|
|
|
|
|
Lisp_Object attrs; /* Vector of attributes. */
|
|
|
|
|
Lisp_Object eol_type;
|
|
|
|
|
Lisp_Object aliases;
|
|
|
|
|
Lisp_Object coding_type, charset_list, safe_charsets;
|
|
|
|
|
enum coding_category category;
|
|
|
|
|
Lisp_Object tail, val;
|
|
|
|
|
int max_charset_id = 0;
|
|
|
|
|
int i;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (nargs < coding_arg_max)
|
|
|
|
|
goto short_args;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
attrs = Fmake_vector (make_number (coding_attr_last_index), Qnil);
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
name = args[coding_arg_name];
|
|
|
|
|
CHECK_SYMBOL (name);
|
|
|
|
|
CODING_ATTR_BASE_NAME (attrs) = name;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = args[coding_arg_mnemonic];
|
|
|
|
|
if (! STRINGP (val))
|
|
|
|
|
CHECK_CHARACTER (val);
|
|
|
|
|
CODING_ATTR_MNEMONIC (attrs) = val;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
coding_type = args[coding_arg_coding_type];
|
|
|
|
|
CHECK_SYMBOL (coding_type);
|
|
|
|
|
CODING_ATTR_TYPE (attrs) = coding_type;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charset_list = args[coding_arg_charset_list];
|
|
|
|
|
if (SYMBOLP (charset_list))
|
|
|
|
|
{
|
|
|
|
|
if (EQ (charset_list, Qiso_2022))
|
|
|
|
|
{
|
|
|
|
|
if (! EQ (coding_type, Qiso_2022))
|
|
|
|
|
error ("Invalid charset-list");
|
|
|
|
|
charset_list = Viso_2022_charset_list;
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (charset_list, Qemacs_mule))
|
|
|
|
|
{
|
|
|
|
|
if (! EQ (coding_type, Qemacs_mule))
|
|
|
|
|
error ("Invalid charset-list");
|
|
|
|
|
charset_list = Vemacs_mule_charset_list;
|
|
|
|
|
}
|
|
|
|
|
for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
|
|
|
|
|
if (max_charset_id < XFASTINT (XCAR (tail)))
|
|
|
|
|
max_charset_id = XFASTINT (XCAR (tail));
|
|
|
|
|
}
|
2002-08-11 01:06:42 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
charset_list = Fcopy_sequence (charset_list);
|
2007-10-12 21:06:27 +00:00
|
|
|
|
for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
|
2002-08-11 01:06:42 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
struct charset *charset;
|
|
|
|
|
|
2007-10-12 21:06:27 +00:00
|
|
|
|
val = XCAR (tail);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHECK_CHARSET_GET_CHARSET (val, charset);
|
|
|
|
|
if (EQ (coding_type, Qiso_2022)
|
|
|
|
|
? CHARSET_ISO_FINAL (charset) < 0
|
|
|
|
|
: EQ (coding_type, Qemacs_mule)
|
|
|
|
|
? CHARSET_EMACS_MULE_ID (charset) < 0
|
|
|
|
|
: 0)
|
|
|
|
|
error ("Can't handle charset `%s'",
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
XSETCAR (tail, make_number (charset->id));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (max_charset_id < charset->id)
|
|
|
|
|
max_charset_id = charset->id;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING_ATTR_CHARSET_LIST (attrs) = charset_list;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
2009-02-22 15:48:02 +00:00
|
|
|
|
safe_charsets = make_uninit_string (max_charset_id + 1);
|
|
|
|
|
memset (SDATA (safe_charsets), 255, max_charset_id + 1);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SSET (safe_charsets, XFASTINT (XCAR (tail)), 0);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING_ATTR_SAFE_CHARSETS (attrs) = safe_charsets;
|
2002-08-11 01:06:42 +00:00
|
|
|
|
|
2002-10-16 05:04:10 +00:00
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = args[coding_arg_ascii_compatible_p];
|
1998-01-19 19:45:53 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = args[coding_arg_decode_translation_table];
|
2004-01-27 02:21:37 +00:00
|
|
|
|
if (! CHAR_TABLE_P (val) && ! CONSP (val))
|
2004-01-25 07:30:47 +00:00
|
|
|
|
CHECK_SYMBOL (val);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING_ATTR_DECODE_TBL (attrs) = val;
|
1998-01-19 19:45:53 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = args[coding_arg_encode_translation_table];
|
2004-01-27 02:21:37 +00:00
|
|
|
|
if (! CHAR_TABLE_P (val) && ! CONSP (val))
|
2004-01-25 07:30:47 +00:00
|
|
|
|
CHECK_SYMBOL (val);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING_ATTR_ENCODE_TBL (attrs) = val;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = args[coding_arg_post_read_conversion];
|
|
|
|
|
CHECK_SYMBOL (val);
|
|
|
|
|
CODING_ATTR_POST_READ (attrs) = val;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = args[coding_arg_pre_write_conversion];
|
|
|
|
|
CHECK_SYMBOL (val);
|
|
|
|
|
CODING_ATTR_PRE_WRITE (attrs) = val;
|
1998-01-19 19:45:53 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = args[coding_arg_default_char];
|
|
|
|
|
if (NILP (val))
|
|
|
|
|
CODING_ATTR_DEFAULT_CHAR (attrs) = make_number (' ');
|
|
|
|
|
else
|
|
|
|
|
{
|
2003-09-08 12:53:41 +00:00
|
|
|
|
CHECK_CHARACTER (val);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING_ATTR_DEFAULT_CHAR (attrs) = val;
|
|
|
|
|
}
|
1998-01-30 11:05:41 +00:00
|
|
|
|
|
2003-09-08 12:53:41 +00:00
|
|
|
|
val = args[coding_arg_for_unibyte];
|
|
|
|
|
CODING_ATTR_FOR_UNIBYTE (attrs) = NILP (val) ? Qnil : Qt;
|
1998-01-19 19:45:53 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = args[coding_arg_plist];
|
|
|
|
|
CHECK_LIST (val);
|
|
|
|
|
CODING_ATTR_PLIST (attrs) = val;
|
1998-01-19 19:45:53 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (EQ (coding_type, Qcharset))
|
|
|
|
|
{
|
2002-05-22 11:14:45 +00:00
|
|
|
|
/* Generate a lisp vector of 256 elements. Each element is nil,
|
|
|
|
|
integer, or a list of charset IDs.
|
1998-01-19 19:45:53 +00:00
|
|
|
|
|
2002-05-22 11:14:45 +00:00
|
|
|
|
If Nth element is nil, the byte code N is invalid in this
|
|
|
|
|
coding system.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-05-22 11:14:45 +00:00
|
|
|
|
If Nth element is a number NUM, N is the first byte of a
|
|
|
|
|
charset whose ID is NUM.
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-05-22 11:14:45 +00:00
|
|
|
|
If Nth element is a list of charset IDs, N is the first byte
|
|
|
|
|
of one of them. The list is sorted by dimensions of the
|
2010-10-12 21:52:05 +09:00
|
|
|
|
charsets. A charset of smaller dimension comes first. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = Fmake_vector (make_number (256), Qnil);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2003-11-24 02:21:55 +00:00
|
|
|
|
for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
2002-05-22 11:14:45 +00:00
|
|
|
|
struct charset *charset = CHARSET_FROM_ID (XFASTINT (XCAR (tail)));
|
|
|
|
|
int dim = CHARSET_DIMENSION (charset);
|
|
|
|
|
int idx = (dim - 1) * 4;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2003-11-24 02:21:55 +00:00
|
|
|
|
if (CHARSET_ASCII_COMPATIBLE_P (charset))
|
2002-10-16 05:04:10 +00:00
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
|
1998-01-30 11:05:41 +00:00
|
|
|
|
|
2002-05-10 03:56:05 +00:00
|
|
|
|
for (i = charset->code_space[idx];
|
|
|
|
|
i <= charset->code_space[idx + 1]; i++)
|
|
|
|
|
{
|
2002-05-22 11:14:45 +00:00
|
|
|
|
Lisp_Object tmp, tmp2;
|
|
|
|
|
int dim2;
|
1999-12-15 00:06:45 +00:00
|
|
|
|
|
2002-05-22 11:14:45 +00:00
|
|
|
|
tmp = AREF (val, i);
|
|
|
|
|
if (NILP (tmp))
|
|
|
|
|
tmp = XCAR (tail);
|
|
|
|
|
else if (NUMBERP (tmp))
|
|
|
|
|
{
|
|
|
|
|
dim2 = CHARSET_DIMENSION (CHARSET_FROM_ID (XFASTINT (tmp)));
|
|
|
|
|
if (dim < dim2)
|
|
|
|
|
tmp = Fcons (XCAR (tail), Fcons (tmp, Qnil));
|
2002-05-23 10:56:58 +00:00
|
|
|
|
else
|
|
|
|
|
tmp = Fcons (tmp, Fcons (XCAR (tail), Qnil));
|
2002-05-22 11:14:45 +00:00
|
|
|
|
}
|
2002-05-10 03:56:05 +00:00
|
|
|
|
else
|
2002-05-22 11:14:45 +00:00
|
|
|
|
{
|
|
|
|
|
for (tmp2 = tmp; CONSP (tmp2); tmp2 = XCDR (tmp2))
|
|
|
|
|
{
|
|
|
|
|
dim2 = CHARSET_DIMENSION (CHARSET_FROM_ID (XFASTINT (XCAR (tmp2))));
|
|
|
|
|
if (dim < dim2)
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (NILP (tmp2))
|
|
|
|
|
tmp = nconc2 (tmp, Fcons (XCAR (tail), Qnil));
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
XSETCDR (tmp2, Fcons (XCAR (tmp2), XCDR (tmp2)));
|
|
|
|
|
XSETCAR (tmp2, XCAR (tail));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ASET (val, i, tmp);
|
2002-05-10 03:56:05 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
ASET (attrs, coding_attr_charset_valids, val);
|
|
|
|
|
category = coding_category_charset;
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (coding_type, Qccl))
|
|
|
|
|
{
|
|
|
|
|
Lisp_Object valids;
|
1998-06-03 14:41:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (nargs < coding_arg_ccl_max)
|
|
|
|
|
goto short_args;
|
1998-06-03 14:41:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = args[coding_arg_ccl_decoder];
|
|
|
|
|
CHECK_CCL_PROGRAM (val);
|
|
|
|
|
if (VECTORP (val))
|
|
|
|
|
val = Fcopy_sequence (val);
|
|
|
|
|
ASET (attrs, coding_attr_ccl_decoder, val);
|
1998-06-03 14:41:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = args[coding_arg_ccl_encoder];
|
|
|
|
|
CHECK_CCL_PROGRAM (val);
|
|
|
|
|
if (VECTORP (val))
|
|
|
|
|
val = Fcopy_sequence (val);
|
|
|
|
|
ASET (attrs, coding_attr_ccl_encoder, val);
|
1998-06-03 14:41:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = args[coding_arg_ccl_valids];
|
|
|
|
|
valids = Fmake_string (make_number (256), make_number (0));
|
|
|
|
|
for (tail = val; !NILP (tail); tail = Fcdr (tail))
|
|
|
|
|
{
|
2003-01-30 02:23:40 +00:00
|
|
|
|
int from, to;
|
1998-06-03 14:41:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
val = Fcar (tail);
|
|
|
|
|
if (INTEGERP (val))
|
2003-01-30 02:23:40 +00:00
|
|
|
|
{
|
|
|
|
|
from = to = XINT (val);
|
|
|
|
|
if (from < 0 || from > 255)
|
|
|
|
|
args_out_of_range_3 (val, make_number (0), make_number (255));
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
CHECK_CONS (val);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
CHECK_NATNUM_CAR (val);
|
|
|
|
|
CHECK_NATNUM_CDR (val);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
from = XINT (XCAR (val));
|
2003-09-08 12:53:41 +00:00
|
|
|
|
if (from > 255)
|
2003-01-30 02:23:40 +00:00
|
|
|
|
args_out_of_range_3 (XCAR (val),
|
|
|
|
|
make_number (0), make_number (255));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
to = XINT (XCDR (val));
|
2003-01-30 02:23:40 +00:00
|
|
|
|
if (to < from || to > 255)
|
|
|
|
|
args_out_of_range_3 (XCDR (val),
|
|
|
|
|
XCAR (val), make_number (255));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
2003-01-30 02:23:40 +00:00
|
|
|
|
for (i = from; i <= to; i++)
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SSET (valids, i, 1);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
ASET (attrs, coding_attr_ccl_valids, valids);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
category = coding_category_ccl;
|
1999-01-14 01:20:35 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (EQ (coding_type, Qutf_16))
|
1999-01-14 01:20:35 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object bom, endian;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-10-16 05:04:10 +00:00
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = Qnil;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (nargs < coding_arg_utf16_max)
|
|
|
|
|
goto short_args;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
bom = args[coding_arg_utf16_bom];
|
|
|
|
|
if (! NILP (bom) && ! EQ (bom, Qt))
|
|
|
|
|
{
|
|
|
|
|
CHECK_CONS (bom);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
val = XCAR (bom);
|
|
|
|
|
CHECK_CODING_SYSTEM (val);
|
|
|
|
|
val = XCDR (bom);
|
|
|
|
|
CHECK_CODING_SYSTEM (val);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
ASET (attrs, coding_attr_utf_bom, bom);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
endian = args[coding_arg_utf16_endian];
|
2003-05-06 12:28:11 +00:00
|
|
|
|
CHECK_SYMBOL (endian);
|
|
|
|
|
if (NILP (endian))
|
|
|
|
|
endian = Qbig;
|
|
|
|
|
else if (! EQ (endian, Qbig) && ! EQ (endian, Qlittle))
|
2003-09-08 12:53:41 +00:00
|
|
|
|
error ("Invalid endian: %s", SDATA (SYMBOL_NAME (endian)));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (attrs, coding_attr_utf_16_endian, endian);
|
|
|
|
|
|
|
|
|
|
category = (CONSP (bom)
|
|
|
|
|
? coding_category_utf_16_auto
|
|
|
|
|
: NILP (bom)
|
2003-05-06 12:28:11 +00:00
|
|
|
|
? (EQ (endian, Qbig)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
? coding_category_utf_16_be_nosig
|
|
|
|
|
: coding_category_utf_16_le_nosig)
|
2003-05-06 12:28:11 +00:00
|
|
|
|
: (EQ (endian, Qbig)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
? coding_category_utf_16_be
|
|
|
|
|
: coding_category_utf_16_le));
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (coding_type, Qiso_2022))
|
|
|
|
|
{
|
|
|
|
|
Lisp_Object initial, reg_usage, request, flags;
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (nargs < coding_arg_iso2022_max)
|
|
|
|
|
goto short_args;
|
|
|
|
|
|
|
|
|
|
initial = Fcopy_sequence (args[coding_arg_iso2022_initial]);
|
|
|
|
|
CHECK_VECTOR (initial);
|
|
|
|
|
for (i = 0; i < 4; i++)
|
|
|
|
|
{
|
|
|
|
|
val = Faref (initial, make_number (i));
|
|
|
|
|
if (! NILP (val))
|
|
|
|
|
{
|
2002-10-16 05:04:10 +00:00
|
|
|
|
struct charset *charset;
|
|
|
|
|
|
|
|
|
|
CHECK_CHARSET_GET_CHARSET (val, charset);
|
|
|
|
|
ASET (initial, i, make_number (CHARSET_ID (charset)));
|
|
|
|
|
if (i == 0 && CHARSET_ASCII_COMPATIBLE_P (charset))
|
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
ASET (initial, i, make_number (-1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
reg_usage = args[coding_arg_iso2022_reg_usage];
|
|
|
|
|
CHECK_CONS (reg_usage);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
CHECK_NUMBER_CAR (reg_usage);
|
|
|
|
|
CHECK_NUMBER_CDR (reg_usage);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
request = Fcopy_sequence (args[coding_arg_iso2022_request]);
|
|
|
|
|
for (tail = request; ! NILP (tail); tail = Fcdr (tail))
|
1998-08-02 01:06:57 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
int id;
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
Lisp_Object tmp1;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
val = Fcar (tail);
|
|
|
|
|
CHECK_CONS (val);
|
* coding.c (Fdefine_coding_system_internal): Don't redeclare 'i' inside
a block, when the outer 'i' will do.
(decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
(emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
(decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
(decode_coding_raw_text, decode_coding_charset, get_translation_table):
(Fdecode_sjis_char, Fdefine_coding_system_internal):
Rename locals to avoid shadowing.
* character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2011-03-07 20:37:19 -08:00
|
|
|
|
tmp1 = XCAR (val);
|
|
|
|
|
CHECK_CHARSET_GET_ID (tmp1, id);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
CHECK_NATNUM_CDR (val);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (XINT (XCDR (val)) >= 4)
|
2011-04-18 17:34:42 -07:00
|
|
|
|
error ("Invalid graphic register number: %"pI"d", XINT (XCDR (val)));
|
2003-09-08 12:53:41 +00:00
|
|
|
|
XSETCAR (val, make_number (id));
|
1998-08-02 01:06:57 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
flags = args[coding_arg_iso2022_flags];
|
|
|
|
|
CHECK_NATNUM (flags);
|
|
|
|
|
i = XINT (flags);
|
|
|
|
|
if (EQ (args[coding_arg_charset_list], Qiso_2022))
|
|
|
|
|
flags = make_number (i | CODING_ISO_FLAG_FULL_SUPPORT);
|
|
|
|
|
|
|
|
|
|
ASET (attrs, coding_attr_iso_initial, initial);
|
|
|
|
|
ASET (attrs, coding_attr_iso_usage, reg_usage);
|
|
|
|
|
ASET (attrs, coding_attr_iso_request, request);
|
|
|
|
|
ASET (attrs, coding_attr_iso_flags, flags);
|
|
|
|
|
setup_iso_safe_charsets (attrs);
|
|
|
|
|
|
|
|
|
|
if (i & CODING_ISO_FLAG_SEVEN_BITS)
|
|
|
|
|
category = ((i & (CODING_ISO_FLAG_LOCKING_SHIFT
|
|
|
|
|
| CODING_ISO_FLAG_SINGLE_SHIFT))
|
|
|
|
|
? coding_category_iso_7_else
|
|
|
|
|
: EQ (args[coding_arg_charset_list], Qiso_2022)
|
|
|
|
|
? coding_category_iso_7
|
|
|
|
|
: coding_category_iso_7_tight);
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
int id = XINT (AREF (initial, 1));
|
|
|
|
|
|
2002-08-08 13:01:56 +00:00
|
|
|
|
category = (((i & CODING_ISO_FLAG_LOCKING_SHIFT)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|| EQ (args[coding_arg_charset_list], Qiso_2022)
|
|
|
|
|
|| id < 0)
|
|
|
|
|
? coding_category_iso_8_else
|
|
|
|
|
: (CHARSET_DIMENSION (CHARSET_FROM_ID (id)) == 1)
|
|
|
|
|
? coding_category_iso_8_1
|
|
|
|
|
: coding_category_iso_8_2);
|
|
|
|
|
}
|
2002-10-16 09:12:55 +00:00
|
|
|
|
if (category != coding_category_iso_8_1
|
|
|
|
|
&& category != coding_category_iso_8_2)
|
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = Qnil;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
|
|
|
|
else if (EQ (coding_type, Qemacs_mule))
|
1999-02-16 01:38:01 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (EQ (args[coding_arg_charset_list], Qemacs_mule))
|
|
|
|
|
ASET (attrs, coding_attr_emacs_mule_full, Qt);
|
2002-10-16 05:04:10 +00:00
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
category = coding_category_emacs_mule;
|
1999-02-16 01:38:01 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (EQ (coding_type, Qshift_jis))
|
1999-02-16 01:38:01 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
struct charset *charset;
|
|
|
|
|
|
2004-01-25 07:30:47 +00:00
|
|
|
|
if (XINT (Flength (charset_list)) != 3
|
2004-01-25 07:44:22 +00:00
|
|
|
|
&& XINT (Flength (charset_list)) != 4)
|
2004-01-25 07:30:47 +00:00
|
|
|
|
error ("There should be three or four charsets");
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
|
|
|
|
|
if (CHARSET_DIMENSION (charset) != 1)
|
|
|
|
|
error ("Dimension of charset %s is not one",
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
|
2002-10-16 05:04:10 +00:00
|
|
|
|
if (CHARSET_ASCII_COMPATIBLE_P (charset))
|
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
charset_list = XCDR (charset_list);
|
|
|
|
|
charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
|
|
|
|
|
if (CHARSET_DIMENSION (charset) != 1)
|
|
|
|
|
error ("Dimension of charset %s is not one",
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
charset_list = XCDR (charset_list);
|
|
|
|
|
charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
|
|
|
|
|
if (CHARSET_DIMENSION (charset) != 2)
|
2004-01-25 07:30:47 +00:00
|
|
|
|
error ("Dimension of charset %s is not two",
|
|
|
|
|
SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
|
|
|
|
|
|
|
|
|
|
charset_list = XCDR (charset_list);
|
2004-01-25 07:50:35 +00:00
|
|
|
|
if (! NILP (charset_list))
|
|
|
|
|
{
|
|
|
|
|
charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
|
|
|
|
|
if (CHARSET_DIMENSION (charset) != 2)
|
|
|
|
|
error ("Dimension of charset %s is not two",
|
|
|
|
|
SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
category = coding_category_sjis;
|
|
|
|
|
Vsjis_coding_system = name;
|
1999-02-16 01:38:01 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (EQ (coding_type, Qbig5))
|
|
|
|
|
{
|
|
|
|
|
struct charset *charset;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (XINT (Flength (charset_list)) != 2)
|
|
|
|
|
error ("There should be just two charsets");
|
|
|
|
|
|
|
|
|
|
charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
|
|
|
|
|
if (CHARSET_DIMENSION (charset) != 1)
|
|
|
|
|
error ("Dimension of charset %s is not one",
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
|
2002-10-16 05:04:10 +00:00
|
|
|
|
if (CHARSET_ASCII_COMPATIBLE_P (charset))
|
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
charset_list = XCDR (charset_list);
|
|
|
|
|
charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
|
|
|
|
|
if (CHARSET_DIMENSION (charset) != 2)
|
|
|
|
|
error ("Dimension of charset %s is not two",
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
category = coding_category_big5;
|
|
|
|
|
Vbig5_coding_system = name;
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (coding_type, Qraw_text))
|
1999-02-16 01:38:01 +00:00
|
|
|
|
{
|
2002-10-16 05:04:10 +00:00
|
|
|
|
category = coding_category_raw_text;
|
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
|
1999-02-16 01:38:01 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (EQ (coding_type, Qutf_8))
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
Lisp_Object bom;
|
|
|
|
|
|
2002-10-16 05:04:10 +00:00
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
|
|
|
|
|
if (nargs < coding_arg_utf8_max)
|
|
|
|
|
goto short_args;
|
|
|
|
|
|
|
|
|
|
bom = args[coding_arg_utf8_bom];
|
|
|
|
|
if (! NILP (bom) && ! EQ (bom, Qt))
|
|
|
|
|
{
|
|
|
|
|
CHECK_CONS (bom);
|
|
|
|
|
val = XCAR (bom);
|
|
|
|
|
CHECK_CODING_SYSTEM (val);
|
|
|
|
|
val = XCDR (bom);
|
|
|
|
|
CHECK_CODING_SYSTEM (val);
|
|
|
|
|
}
|
|
|
|
|
ASET (attrs, coding_attr_utf_bom, bom);
|
|
|
|
|
|
|
|
|
|
category = (CONSP (bom) ? coding_category_utf_8_auto
|
|
|
|
|
: NILP (bom) ? coding_category_utf_8_nosig
|
|
|
|
|
: coding_category_utf_8_sig);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
else if (EQ (coding_type, Qundecided))
|
|
|
|
|
category = coding_category_undecided;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
else
|
2002-03-01 01:17:24 +00:00
|
|
|
|
error ("Invalid coding system type: %s",
|
2003-09-08 12:53:41 +00:00
|
|
|
|
SDATA (SYMBOL_NAME (coding_type)));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CODING_ATTR_CATEGORY (attrs) = make_number (category);
|
2003-06-06 02:13:40 +00:00
|
|
|
|
CODING_ATTR_PLIST (attrs)
|
|
|
|
|
= Fcons (QCcategory, Fcons (AREF (Vcoding_category_table, category),
|
|
|
|
|
CODING_ATTR_PLIST (attrs)));
|
2005-07-29 06:20:30 +00:00
|
|
|
|
CODING_ATTR_PLIST (attrs)
|
2008-04-08 20:18:14 +00:00
|
|
|
|
= Fcons (QCascii_compatible_p,
|
2005-07-29 06:20:30 +00:00
|
|
|
|
Fcons (CODING_ATTR_ASCII_COMPAT (attrs),
|
|
|
|
|
CODING_ATTR_PLIST (attrs)));
|
1997-08-10 04:13:19 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
eol_type = args[coding_arg_eol_type];
|
|
|
|
|
if (! NILP (eol_type)
|
|
|
|
|
&& ! EQ (eol_type, Qunix)
|
|
|
|
|
&& ! EQ (eol_type, Qdos)
|
|
|
|
|
&& ! EQ (eol_type, Qmac))
|
|
|
|
|
error ("Invalid eol-type");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
aliases = Fcons (name, Qnil);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (NILP (eol_type))
|
|
|
|
|
{
|
|
|
|
|
eol_type = make_subsidiaries (name);
|
|
|
|
|
for (i = 0; i < 3; i++)
|
1998-08-02 01:06:57 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object this_spec, this_name, this_aliases, this_eol_type;
|
|
|
|
|
|
|
|
|
|
this_name = AREF (eol_type, i);
|
|
|
|
|
this_aliases = Fcons (this_name, Qnil);
|
|
|
|
|
this_eol_type = (i == 0 ? Qunix : i == 1 ? Qdos : Qmac);
|
|
|
|
|
this_spec = Fmake_vector (make_number (3), attrs);
|
|
|
|
|
ASET (this_spec, 1, this_aliases);
|
|
|
|
|
ASET (this_spec, 2, this_eol_type);
|
|
|
|
|
Fputhash (this_name, this_spec, Vcoding_system_hash_table);
|
|
|
|
|
Vcoding_system_list = Fcons (this_name, Vcoding_system_list);
|
2006-02-03 07:37:09 +00:00
|
|
|
|
val = Fassoc (Fsymbol_name (this_name), Vcoding_system_alist);
|
|
|
|
|
if (NILP (val))
|
|
|
|
|
Vcoding_system_alist
|
|
|
|
|
= Fcons (Fcons (Fsymbol_name (this_name), Qnil),
|
|
|
|
|
Vcoding_system_alist);
|
1998-08-02 01:06:57 +00:00
|
|
|
|
}
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
spec_vec = Fmake_vector (make_number (3), attrs);
|
|
|
|
|
ASET (spec_vec, 1, aliases);
|
|
|
|
|
ASET (spec_vec, 2, eol_type);
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Fputhash (name, spec_vec, Vcoding_system_hash_table);
|
|
|
|
|
Vcoding_system_list = Fcons (name, Vcoding_system_list);
|
2006-02-03 07:37:09 +00:00
|
|
|
|
val = Fassoc (Fsymbol_name (name), Vcoding_system_alist);
|
|
|
|
|
if (NILP (val))
|
|
|
|
|
Vcoding_system_alist = Fcons (Fcons (Fsymbol_name (name), Qnil),
|
|
|
|
|
Vcoding_system_alist);
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
int id = coding_categories[category].id;
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (id < 0 || EQ (name, CODING_ID_NAME (id)))
|
|
|
|
|
setup_coding_system (name, &coding_categories[category]);
|
|
|
|
|
}
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
return Qnil;
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
short_args:
|
|
|
|
|
return Fsignal (Qwrong_number_of_arguments,
|
|
|
|
|
Fcons (intern ("define-coding-system-internal"),
|
|
|
|
|
make_number (nargs)));
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2003-10-06 11:21:31 +00:00
|
|
|
|
|
2004-01-27 02:21:37 +00:00
|
|
|
|
DEFUN ("coding-system-put", Fcoding_system_put, Scoding_system_put,
|
|
|
|
|
3, 3, 0,
|
|
|
|
|
doc: /* Change value in CODING-SYSTEM's property list PROP to VAL. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object coding_system, Lisp_Object prop, Lisp_Object val)
|
2004-01-27 02:21:37 +00:00
|
|
|
|
{
|
2004-04-20 11:26:43 +00:00
|
|
|
|
Lisp_Object spec, attrs;
|
2004-01-27 02:21:37 +00:00
|
|
|
|
|
|
|
|
|
CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
|
|
|
|
|
attrs = AREF (spec, 0);
|
|
|
|
|
if (EQ (prop, QCmnemonic))
|
|
|
|
|
{
|
|
|
|
|
if (! STRINGP (val))
|
|
|
|
|
CHECK_CHARACTER (val);
|
|
|
|
|
CODING_ATTR_MNEMONIC (attrs) = val;
|
|
|
|
|
}
|
2008-12-10 01:04:19 +00:00
|
|
|
|
else if (EQ (prop, QCdefault_char))
|
2004-01-27 02:21:37 +00:00
|
|
|
|
{
|
|
|
|
|
if (NILP (val))
|
|
|
|
|
val = make_number (' ');
|
|
|
|
|
else
|
|
|
|
|
CHECK_CHARACTER (val);
|
|
|
|
|
CODING_ATTR_DEFAULT_CHAR (attrs) = val;
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (prop, QCdecode_translation_table))
|
|
|
|
|
{
|
|
|
|
|
if (! CHAR_TABLE_P (val) && ! CONSP (val))
|
|
|
|
|
CHECK_SYMBOL (val);
|
|
|
|
|
CODING_ATTR_DECODE_TBL (attrs) = val;
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (prop, QCencode_translation_table))
|
|
|
|
|
{
|
|
|
|
|
if (! CHAR_TABLE_P (val) && ! CONSP (val))
|
|
|
|
|
CHECK_SYMBOL (val);
|
|
|
|
|
CODING_ATTR_ENCODE_TBL (attrs) = val;
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (prop, QCpost_read_conversion))
|
|
|
|
|
{
|
|
|
|
|
CHECK_SYMBOL (val);
|
|
|
|
|
CODING_ATTR_POST_READ (attrs) = val;
|
|
|
|
|
}
|
|
|
|
|
else if (EQ (prop, QCpre_write_conversion))
|
|
|
|
|
{
|
|
|
|
|
CHECK_SYMBOL (val);
|
|
|
|
|
CODING_ATTR_PRE_WRITE (attrs) = val;
|
|
|
|
|
}
|
2005-07-29 06:20:30 +00:00
|
|
|
|
else if (EQ (prop, QCascii_compatible_p))
|
|
|
|
|
{
|
|
|
|
|
CODING_ATTR_ASCII_COMPAT (attrs) = val;
|
|
|
|
|
}
|
2004-01-27 02:21:37 +00:00
|
|
|
|
|
|
|
|
|
CODING_ATTR_PLIST (attrs)
|
|
|
|
|
= Fplist_put (CODING_ATTR_PLIST (attrs), prop, val);
|
|
|
|
|
return val;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFUN ("define-coding-system-alias", Fdefine_coding_system_alias,
|
|
|
|
|
Sdefine_coding_system_alias, 2, 2, 0,
|
|
|
|
|
doc: /* Define ALIAS as an alias for CODING-SYSTEM. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object alias, Lisp_Object coding_system)
|
1998-05-25 08:08:07 +00:00
|
|
|
|
{
|
2006-02-03 07:37:09 +00:00
|
|
|
|
Lisp_Object spec, aliases, eol_type, val;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
CHECK_SYMBOL (alias);
|
|
|
|
|
CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
|
|
|
|
|
aliases = AREF (spec, 1);
|
2008-05-19 00:57:11 +00:00
|
|
|
|
/* ALIASES should be a list of length more than zero, and the first
|
2003-10-06 11:21:31 +00:00
|
|
|
|
element is a base coding system. Append ALIAS at the tail of the
|
|
|
|
|
list. */
|
2002-03-01 01:17:24 +00:00
|
|
|
|
while (!NILP (XCDR (aliases)))
|
|
|
|
|
aliases = XCDR (aliases);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
XSETCDR (aliases, Fcons (alias, Qnil));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
eol_type = AREF (spec, 2);
|
|
|
|
|
if (VECTORP (eol_type))
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object subsidiaries;
|
|
|
|
|
int i;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
subsidiaries = make_subsidiaries (alias);
|
|
|
|
|
for (i = 0; i < 3; i++)
|
|
|
|
|
Fdefine_coding_system_alias (AREF (subsidiaries, i),
|
|
|
|
|
AREF (eol_type, i));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
Fputhash (alias, spec, Vcoding_system_hash_table);
|
2003-10-06 11:21:31 +00:00
|
|
|
|
Vcoding_system_list = Fcons (alias, Vcoding_system_list);
|
2006-02-03 07:37:09 +00:00
|
|
|
|
val = Fassoc (Fsymbol_name (alias), Vcoding_system_alist);
|
|
|
|
|
if (NILP (val))
|
|
|
|
|
Vcoding_system_alist = Fcons (Fcons (Fsymbol_name (alias), Qnil),
|
|
|
|
|
Vcoding_system_alist);
|
1998-05-25 08:08:07 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
return Qnil;
|
|
|
|
|
}
|
|
|
|
|
|
2011-04-13 22:04:02 -07:00
|
|
|
|
DEFUN ("coding-system-base", Fcoding_system_base, Scoding_system_base,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
1, 1, 0,
|
|
|
|
|
doc: /* Return the base of CODING-SYSTEM.
|
2002-05-26 17:07:35 +00:00
|
|
|
|
Any alias or subsidiary coding system is not a base coding system. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object coding_system)
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object spec, attrs;
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (NILP (coding_system))
|
|
|
|
|
return (Qno_conversion);
|
|
|
|
|
CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
|
|
|
|
|
attrs = AREF (spec, 0);
|
|
|
|
|
return CODING_ATTR_BASE_NAME (attrs);
|
|
|
|
|
}
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFUN ("coding-system-plist", Fcoding_system_plist, Scoding_system_plist,
|
|
|
|
|
1, 1, 0,
|
|
|
|
|
doc: "Return the property list of CODING-SYSTEM.")
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object coding_system)
|
2002-03-01 01:17:24 +00:00
|
|
|
|
{
|
|
|
|
|
Lisp_Object spec, attrs;
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (NILP (coding_system))
|
|
|
|
|
coding_system = Qno_conversion;
|
|
|
|
|
CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
|
|
|
|
|
attrs = AREF (spec, 0);
|
|
|
|
|
return CODING_ATTR_PLIST (attrs);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
DEFUN ("coding-system-aliases", Fcoding_system_aliases, Scoding_system_aliases,
|
|
|
|
|
1, 1, 0,
|
2002-05-26 17:07:35 +00:00
|
|
|
|
doc: /* Return the list of aliases of CODING-SYSTEM. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object coding_system)
|
1998-05-25 08:08:07 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object spec;
|
1998-08-08 21:32:57 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (NILP (coding_system))
|
|
|
|
|
coding_system = Qno_conversion;
|
|
|
|
|
CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
|
2002-05-26 17:07:35 +00:00
|
|
|
|
return AREF (spec, 1);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
}
|
1998-05-25 08:08:07 +00:00
|
|
|
|
|
2011-04-13 22:04:02 -07:00
|
|
|
|
DEFUN ("coding-system-eol-type", Fcoding_system_eol_type,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Scoding_system_eol_type, 1, 1, 0,
|
|
|
|
|
doc: /* Return eol-type of CODING-SYSTEM.
|
2008-05-19 00:57:11 +00:00
|
|
|
|
An eol-type is an integer 0, 1, 2, or a vector of coding systems.
|
1998-05-25 08:08:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Integer values 0, 1, and 2 indicate a format of end-of-line; LF, CRLF,
|
|
|
|
|
and CR respectively.
|
1998-05-25 08:08:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
A vector value indicates that a format of end-of-line should be
|
|
|
|
|
detected automatically. Nth element of the vector is the subsidiary
|
|
|
|
|
coding system whose eol-type is N. */)
|
2010-07-08 14:25:08 -07:00
|
|
|
|
(Lisp_Object coding_system)
|
2003-01-31 04:03:07 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Lisp_Object spec, eol_type;
|
|
|
|
|
int n;
|
2003-01-31 04:03:07 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
if (NILP (coding_system))
|
|
|
|
|
coding_system = Qno_conversion;
|
|
|
|
|
if (! CODING_SYSTEM_P (coding_system))
|
|
|
|
|
return Qnil;
|
|
|
|
|
spec = CODING_SYSTEM_SPEC (coding_system);
|
|
|
|
|
eol_type = AREF (spec, 2);
|
|
|
|
|
if (VECTORP (eol_type))
|
|
|
|
|
return Fcopy_sequence (eol_type);
|
|
|
|
|
n = EQ (eol_type, Qunix) ? 0 : EQ (eol_type, Qdos) ? 1 : 2;
|
|
|
|
|
return make_number (n);
|
2003-01-31 04:03:07 +00:00
|
|
|
|
}
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
#endif /* emacs */
|
|
|
|
|
|
|
|
|
|
|
1998-08-02 01:06:57 +00:00
|
|
|
|
/*** 9. Post-amble ***/
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
1998-04-14 12:25:56 +00:00
|
|
|
|
void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
init_coding_once (void)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (i = 0; i < coding_category_max; i++)
|
|
|
|
|
{
|
|
|
|
|
coding_categories[i].id = -1;
|
|
|
|
|
coding_priorities[i] = i;
|
|
|
|
|
}
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
|
|
|
|
/* ISO2022 specific initialize routine. */
|
|
|
|
|
for (i = 0; i < 0x20; i++)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
iso_code_class[i] = ISO_control_0;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
for (i = 0x21; i < 0x7F; i++)
|
|
|
|
|
iso_code_class[i] = ISO_graphic_plane_0;
|
|
|
|
|
for (i = 0x80; i < 0xA0; i++)
|
(ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->resutl to
CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
(ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
EMIT_BYTES): New macros.
(THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
macros deleted.
(CHECK_CODE_RANGE_A0_FF): This macro deleted.
(detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
check the validity of multibyte sequence.
(decode_coding_emacs_mule): New function.
(encode_coding_emacs_mule): New macro.
(detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
the source.
(DECODE_ISO_CHARACTER): Just return a character code.
(DECODE_COMPOSITION_START): Set coding->result instead of result.
(decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
EMIT_CHAR to produced decoded characters. Exit the loop only by
macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
block here.
(ENCODE_ISO_CHARACTER): Don't translate character here. Produce
only position codes for an invalid character.
(encode_designation_at_bol): Return new destination pointer. 5th
arg DSTP is changed to DST.
(encode_coding_iso2022, decode_coding_sjis_big5): Get a character
from the source by ONE_MORE_CHAR. Don't handle the case of last
block here.
(DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
macros deleted.
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
TWO_MORE_BYTES to fetch a byte from the source.
(encode_eol): Pay attention to coding->src_multibyte.
(detect_coding, detect_eol): Preserve members src_multibyte and
dst_multibyte.
(DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
(encoding_buffer_size): Set magnification to 3 for all coding
systems that require encoding.
(ccl_coding_driver): For decoding, be sure that the result is
valid multibyte sequence.
(decode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call decode_coding_emacs_mule. For no-conversion
and raw-text, always call decode_eol. Handle the case of last
block here. If not coding->dst_multibyte, convert the resulting
sequence to unibyte.
(encode_coding): Initialize coding->errors and coding->result.
For emacs-mule, call encode_coding_emacs_mule. For no-conversion
and raw-text, always call encode_eol. Handle the case of last
block here.
(shrink_decoding_region, shrink_encoding_region): Detect cases
that we can't skip data more rigidly.
(code_convert_region): Setup src_multibyte and dst_multibyte
members of coding. For decoding, if the buffer is multibyte,
convert the source sequence to unibyte in advance. For encoding,
if the buffer is multibyte, convert the resulting sequence to
multibyte afterward.
(run_pre_post_conversion_on_str): New function.
(code_convert_string): Deleted and divided into the following two.
(decode_coding_string, encode_coding_string): New functions.
(code_convert_string1, code_convert_string_norecord): Call one of
above.
(Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
MAKE_NON_ASCII_CHAR.
(Fset_terminal_coding_system_internal,
Fset_safe_terminal_coding_system_internal): Setup src_multibyte
and dst_multibyte members.
(init_coding_once): Initialize iso_code_class with new enum
ISO_control_0 and ISO_control_1.
2000-05-19 23:54:56 +00:00
|
|
|
|
iso_code_class[i] = ISO_control_1;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
for (i = 0xA1; i < 0xFF; i++)
|
|
|
|
|
iso_code_class[i] = ISO_graphic_plane_1;
|
|
|
|
|
iso_code_class[0x20] = iso_code_class[0x7F] = ISO_0x20_or_0x7F;
|
|
|
|
|
iso_code_class[0xA0] = iso_code_class[0xFF] = ISO_0xA0_or_0xFF;
|
|
|
|
|
iso_code_class[ISO_CODE_SO] = ISO_shift_out;
|
|
|
|
|
iso_code_class[ISO_CODE_SI] = ISO_shift_in;
|
|
|
|
|
iso_code_class[ISO_CODE_SS2_7] = ISO_single_shift_2_7;
|
|
|
|
|
iso_code_class[ISO_CODE_ESC] = ISO_escape;
|
|
|
|
|
iso_code_class[ISO_CODE_SS2] = ISO_single_shift_2;
|
|
|
|
|
iso_code_class[ISO_CODE_SS3] = ISO_single_shift_3;
|
|
|
|
|
iso_code_class[ISO_CODE_CSI] = ISO_control_sequence_introducer;
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (i = 0; i < 256; i++)
|
|
|
|
|
{
|
|
|
|
|
emacs_mule_bytes[i] = 1;
|
|
|
|
|
}
|
2002-07-22 06:40:36 +00:00
|
|
|
|
emacs_mule_bytes[EMACS_MULE_LEADING_CODE_PRIVATE_11] = 3;
|
|
|
|
|
emacs_mule_bytes[EMACS_MULE_LEADING_CODE_PRIVATE_12] = 3;
|
|
|
|
|
emacs_mule_bytes[EMACS_MULE_LEADING_CODE_PRIVATE_21] = 4;
|
|
|
|
|
emacs_mule_bytes[EMACS_MULE_LEADING_CODE_PRIVATE_22] = 4;
|
1997-02-27 11:10:42 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef emacs
|
|
|
|
|
|
1998-04-14 12:25:56 +00:00
|
|
|
|
void
|
2010-07-04 00:50:25 -07:00
|
|
|
|
syms_of_coding (void)
|
1997-02-27 11:10:42 +00:00
|
|
|
|
{
|
2002-03-01 01:17:24 +00:00
|
|
|
|
staticpro (&Vcoding_system_hash_table);
|
2003-09-08 12:53:41 +00:00
|
|
|
|
{
|
|
|
|
|
Lisp_Object args[2];
|
|
|
|
|
args[0] = QCtest;
|
|
|
|
|
args[1] = Qeq;
|
|
|
|
|
Vcoding_system_hash_table = Fmake_hash_table (2, args);
|
|
|
|
|
}
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
staticpro (&Vsjis_coding_system);
|
|
|
|
|
Vsjis_coding_system = Qnil;
|
1997-02-27 11:10:42 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
staticpro (&Vbig5_coding_system);
|
|
|
|
|
Vbig5_coding_system = Qnil;
|
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
staticpro (&Vcode_conversion_reused_workbuf);
|
|
|
|
|
Vcode_conversion_reused_workbuf = Qnil;
|
|
|
|
|
|
|
|
|
|
staticpro (&Vcode_conversion_workbuf_name);
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
Vcode_conversion_workbuf_name = make_pure_c_string (" *code-conversion-work*");
|
1997-02-27 11:10:42 +00:00
|
|
|
|
|
2003-12-02 01:40:27 +00:00
|
|
|
|
reused_workbuf_in_use = 0;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
|
|
|
|
|
DEFSYM (Qcharset, "charset");
|
|
|
|
|
DEFSYM (Qtarget_idx, "target-idx");
|
|
|
|
|
DEFSYM (Qcoding_system_history, "coding-system-history");
|
1997-09-04 05:58:20 +00:00
|
|
|
|
Fset (Qcoding_system_history, Qnil);
|
|
|
|
|
|
1997-07-07 00:59:44 +00:00
|
|
|
|
/* Target FILENAME is the first argument. */
|
1997-02-27 11:10:42 +00:00
|
|
|
|
Fput (Qinsert_file_contents, Qtarget_idx, make_number (0));
|
1997-07-07 00:59:44 +00:00
|
|
|
|
/* Target FILENAME is the third argument. */
|
1997-02-27 11:10:42 +00:00
|
|
|
|
Fput (Qwrite_region, Qtarget_idx, make_number (2));
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qcall_process, "call-process");
|
1997-07-07 00:59:44 +00:00
|
|
|
|
/* Target PROGRAM is the first argument. */
|
1997-02-27 11:10:42 +00:00
|
|
|
|
Fput (Qcall_process, Qtarget_idx, make_number (0));
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qcall_process_region, "call-process-region");
|
1997-07-07 00:59:44 +00:00
|
|
|
|
/* Target PROGRAM is the third argument. */
|
1997-02-27 11:10:42 +00:00
|
|
|
|
Fput (Qcall_process_region, Qtarget_idx, make_number (2));
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qstart_process, "start-process");
|
1997-07-07 00:59:44 +00:00
|
|
|
|
/* Target PROGRAM is the third argument. */
|
1997-02-27 11:10:42 +00:00
|
|
|
|
Fput (Qstart_process, Qtarget_idx, make_number (2));
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qopen_network_stream, "open-network-stream");
|
1997-07-07 00:59:44 +00:00
|
|
|
|
/* Target SERVICE is the fourth argument. */
|
1997-02-27 11:10:42 +00:00
|
|
|
|
Fput (Qopen_network_stream, Qtarget_idx, make_number (3));
|
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qcoding_system, "coding-system");
|
|
|
|
|
DEFSYM (Qcoding_aliases, "coding-aliases");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qeol_type, "eol-type");
|
|
|
|
|
DEFSYM (Qunix, "unix");
|
|
|
|
|
DEFSYM (Qdos, "dos");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qbuffer_file_coding_system, "buffer-file-coding-system");
|
|
|
|
|
DEFSYM (Qpost_read_conversion, "post-read-conversion");
|
|
|
|
|
DEFSYM (Qpre_write_conversion, "pre-write-conversion");
|
|
|
|
|
DEFSYM (Qdefault_char, "default-char");
|
|
|
|
|
DEFSYM (Qundecided, "undecided");
|
|
|
|
|
DEFSYM (Qno_conversion, "no-conversion");
|
|
|
|
|
DEFSYM (Qraw_text, "raw-text");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qiso_2022, "iso-2022");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qutf_8, "utf-8");
|
2003-09-08 12:53:41 +00:00
|
|
|
|
DEFSYM (Qutf_8_emacs, "utf-8-emacs");
|
1997-08-28 10:51:12 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qutf_16, "utf-16");
|
|
|
|
|
DEFSYM (Qbig, "big");
|
|
|
|
|
DEFSYM (Qlittle, "little");
|
1997-08-28 10:51:12 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qshift_jis, "shift-jis");
|
|
|
|
|
DEFSYM (Qbig5, "big5");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qcoding_system_p, "coding-system-p");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qcoding_system_error, "coding-system-error");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
Fput (Qcoding_system_error, Qerror_conditions,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
pure_cons (Qcoding_system_error, pure_cons (Qerror, Qnil)));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
Fput (Qcoding_system_error, Qerror_message,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
make_pure_c_string ("Invalid coding system"));
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
2000-07-27 06:01:19 +00:00
|
|
|
|
/* Intern this now in case it isn't already done.
|
|
|
|
|
Setting this variable twice is harmless.
|
|
|
|
|
But don't staticpro it here--that is done in alloc.c. */
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
Qchar_table_extra_slots = intern_c_string ("char-table-extra-slots");
|
1997-10-23 12:01:50 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qtranslation_table, "translation-table");
|
2004-03-11 02:18:12 +00:00
|
|
|
|
Fput (Qtranslation_table, Qchar_table_extra_slots, make_number (2));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qtranslation_table_id, "translation-table-id");
|
|
|
|
|
DEFSYM (Qtranslation_table_for_decode, "translation-table-for-decode");
|
|
|
|
|
DEFSYM (Qtranslation_table_for_encode, "translation-table-for-encode");
|
1998-08-02 01:06:57 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qvalid_codes, "valid-codes");
|
1997-07-07 00:59:44 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
DEFSYM (Qemacs_mule, "emacs-mule");
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
2003-06-06 02:13:40 +00:00
|
|
|
|
DEFSYM (QCcategory, ":category");
|
2004-01-27 02:21:37 +00:00
|
|
|
|
DEFSYM (QCmnemonic, ":mnemonic");
|
2008-12-10 01:04:19 +00:00
|
|
|
|
DEFSYM (QCdefault_char, ":default-char");
|
2004-01-27 02:21:37 +00:00
|
|
|
|
DEFSYM (QCdecode_translation_table, ":decode-translation-table");
|
|
|
|
|
DEFSYM (QCencode_translation_table, ":encode-translation-table");
|
|
|
|
|
DEFSYM (QCpost_read_conversion, ":post-read-conversion");
|
|
|
|
|
DEFSYM (QCpre_write_conversion, ":pre-write-conversion");
|
2005-07-29 06:20:30 +00:00
|
|
|
|
DEFSYM (QCascii_compatible_p, ":ascii-compatible-p");
|
2003-06-06 02:13:40 +00:00
|
|
|
|
|
2002-03-01 01:17:24 +00:00
|
|
|
|
Vcoding_category_table
|
|
|
|
|
= Fmake_vector (make_number (coding_category_max), Qnil);
|
|
|
|
|
staticpro (&Vcoding_category_table);
|
|
|
|
|
/* Followings are target of code detection. */
|
|
|
|
|
ASET (Vcoding_category_table, coding_category_iso_7,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-iso-7"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_iso_7_tight,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-iso-7-tight"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_iso_8_1,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-iso-8-1"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_iso_8_2,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-iso-8-2"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_iso_7_else,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-iso-7-else"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_iso_8_else,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-iso-8-else"));
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_utf_8_auto,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-utf-8-auto"));
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_utf_8_nosig,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-utf-8"));
|
(CODING_UTF_8_BOM): New macro.
(enum coding_category): Delete coding_category_utf_8, add
coding_category_utf_8_auto, coding_category_utf_8_nosig, and
coding_category_utf_8_sig.
(CATEGORY_MASK_UTF_8): Delete it.
(CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG)
(CATEGORY_MASK_UTF_8_SIG): New macros.
(CATEGORY_MASK_ANY): Delete CATEGORY_MASK_UTF_8, add
CATEGORY_MASK_UTF_8_AUTO, CATEGORY_MASK_UTF_8_NOSIG, and
CATEGORY_MASK_UTF_8_SIG.
(CATEGORY_MASK_UTF_8): New macro.
(UTF_BOM, UTF_8_BOM_1, UTF_8_BOM_2, UTF_8_BOM_3): New macros.
(detect_coding_utf_8): Check BOM.
(decode_coding_utf_8, encode_coding_utf_8): Handle BOM.
(decode_coding_utf_16): Adjusted for the change of enum
utf_bom_type.
(encode_coding_utf_16): Likewise.
(setup_coding_system): Likewise. Set CODING_UTF_8_BOM (coding).
(detect_coding, detect_coding_system): Handle utf-8-auto.
(Fdefine_coding_system_internal): Handle `bom' property for utf-8.
(syms_of_coding): Fix setting up of Vcoding_category_table.
2008-05-29 22:58:15 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_utf_8_sig,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-utf-8-sig"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_utf_16_be,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-utf-16-be"));
|
2003-06-05 23:21:22 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_utf_16_auto,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-utf-16-auto"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_utf_16_le,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-utf-16-le"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_utf_16_be_nosig,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-utf-16-be-nosig"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_utf_16_le_nosig,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-utf-16-le-nosig"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_charset,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-charset"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_sjis,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-sjis"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_big5,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-big5"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_ccl,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-ccl"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_emacs_mule,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-emacs-mule"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
/* Followings are NOT target of code detection. */
|
|
|
|
|
ASET (Vcoding_category_table, coding_category_raw_text,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-raw-text"));
|
2002-03-01 01:17:24 +00:00
|
|
|
|
ASET (Vcoding_category_table, coding_category_undecided,
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
intern_c_string ("coding-category-undecided"));
|
2003-06-02 18:49:29 +00:00
|
|
|
|
|
2003-12-29 07:52:49 +00:00
|
|
|
|
DEFSYM (Qinsufficient_source, "insufficient-source");
|
|
|
|
|
DEFSYM (Qinconsistent_eol, "inconsistent-eol");
|
|
|
|
|
DEFSYM (Qinvalid_source, "invalid-source");
|
|
|
|
|
DEFSYM (Qinterrupted, "interrupted");
|
|
|
|
|
DEFSYM (Qinsufficient_memory, "insufficient-memory");
|
2006-01-19 07:20:52 +00:00
|
|
|
|
DEFSYM (Qcoding_system_define_form, "coding-system-define-form");
|
2003-12-29 07:52:49 +00:00
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
defsubr (&Scoding_system_p);
|
|
|
|
|
defsubr (&Sread_coding_system);
|
|
|
|
|
defsubr (&Sread_non_nil_coding_system);
|
|
|
|
|
defsubr (&Scheck_coding_system);
|
|
|
|
|
defsubr (&Sdetect_coding_region);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
defsubr (&Sdetect_coding_string);
|
2000-07-27 06:01:19 +00:00
|
|
|
|
defsubr (&Sfind_coding_systems_region_internal);
|
2002-08-11 01:06:42 +00:00
|
|
|
|
defsubr (&Sunencodable_char_position);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
defsubr (&Scheck_coding_systems_region);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
defsubr (&Sdecode_coding_region);
|
|
|
|
|
defsubr (&Sencode_coding_region);
|
|
|
|
|
defsubr (&Sdecode_coding_string);
|
|
|
|
|
defsubr (&Sencode_coding_string);
|
|
|
|
|
defsubr (&Sdecode_sjis_char);
|
|
|
|
|
defsubr (&Sencode_sjis_char);
|
|
|
|
|
defsubr (&Sdecode_big5_char);
|
|
|
|
|
defsubr (&Sencode_big5_char);
|
1997-05-28 04:36:27 +00:00
|
|
|
|
defsubr (&Sset_terminal_coding_system_internal);
|
1997-08-10 04:13:19 +00:00
|
|
|
|
defsubr (&Sset_safe_terminal_coding_system_internal);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
defsubr (&Sterminal_coding_system);
|
1997-05-28 04:36:27 +00:00
|
|
|
|
defsubr (&Sset_keyboard_coding_system_internal);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
defsubr (&Skeyboard_coding_system);
|
1997-07-02 12:53:53 +00:00
|
|
|
|
defsubr (&Sfind_operation_coding_system);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
defsubr (&Sset_coding_system_priority);
|
2003-01-31 04:03:07 +00:00
|
|
|
|
defsubr (&Sdefine_coding_system_internal);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
defsubr (&Sdefine_coding_system_alias);
|
2004-01-27 02:21:37 +00:00
|
|
|
|
defsubr (&Scoding_system_put);
|
2002-03-01 01:17:24 +00:00
|
|
|
|
defsubr (&Scoding_system_base);
|
|
|
|
|
defsubr (&Scoding_system_plist);
|
|
|
|
|
defsubr (&Scoding_system_aliases);
|
|
|
|
|
defsubr (&Scoding_system_eol_type);
|
|
|
|
|
defsubr (&Scoding_system_priority_list);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("coding-system-list", Vcoding_system_list,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* List of coding systems.
|
|
|
|
|
|
|
|
|
|
Do not alter the value of this variable manually. This variable should be
|
2002-03-01 01:17:24 +00:00
|
|
|
|
updated by the functions `define-coding-system' and
|
2001-11-04 17:43:52 +00:00
|
|
|
|
`define-coding-system-alias'. */);
|
1997-10-21 10:43:40 +00:00
|
|
|
|
Vcoding_system_list = Qnil;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("coding-system-alist", Vcoding_system_alist,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Alist of coding system names.
|
|
|
|
|
Each element is one element list of coding system name.
|
2008-05-28 09:11:59 +00:00
|
|
|
|
This variable is given to `completing-read' as COLLECTION argument.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
|
|
|
|
Do not alter the value of this variable manually. This variable should be
|
|
|
|
|
updated by the functions `make-coding-system' and
|
|
|
|
|
`define-coding-system-alias'. */);
|
1997-10-21 10:43:40 +00:00
|
|
|
|
Vcoding_system_alist = Qnil;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("coding-category-list", Vcoding_category_list,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* List of coding-categories (symbols) ordered by priority.
|
|
|
|
|
|
|
|
|
|
On detecting a coding system, Emacs tries code detection algorithms
|
|
|
|
|
associated with each coding-category one by one in this order. When
|
|
|
|
|
one algorithm agrees with a byte sequence of source text, the coding
|
2005-03-15 06:26:15 +00:00
|
|
|
|
system bound to the corresponding coding-category is selected.
|
|
|
|
|
|
2010-11-04 23:37:06 +01:00
|
|
|
|
Don't modify this variable directly, but use `set-coding-system-priority'. */);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
Vcoding_category_list = Qnil;
|
2002-03-01 01:17:24 +00:00
|
|
|
|
for (i = coding_category_max - 1; i >= 0; i--)
|
1997-02-20 07:02:49 +00:00
|
|
|
|
Vcoding_category_list
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
= Fcons (XVECTOR (Vcoding_category_table)->contents[i],
|
|
|
|
|
Vcoding_category_list);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("coding-system-for-read", Vcoding_system_for_read,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Specify the coding system for read operations.
|
|
|
|
|
It is useful to bind this variable with `let', but do not set it globally.
|
|
|
|
|
If the value is a coding system, it is used for decoding on read operation.
|
2008-05-28 09:11:59 +00:00
|
|
|
|
If not, an appropriate element is used from one of the coding system alists.
|
|
|
|
|
There are three such tables: `file-coding-system-alist',
|
2001-11-04 17:43:52 +00:00
|
|
|
|
`process-coding-system-alist', and `network-coding-system-alist'. */);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
Vcoding_system_for_read = Qnil;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("coding-system-for-write", Vcoding_system_for_write,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Specify the coding system for write operations.
|
|
|
|
|
Programs bind this variable with `let', but you should not set it globally.
|
|
|
|
|
If the value is a coding system, it is used for encoding of output,
|
|
|
|
|
when writing it to a file and when sending it to a file or subprocess.
|
|
|
|
|
|
|
|
|
|
If this does not specify a coding system, an appropriate element
|
2008-05-28 09:11:59 +00:00
|
|
|
|
is used from one of the coding system alists.
|
|
|
|
|
There are three such tables: `file-coding-system-alist',
|
2001-11-04 17:43:52 +00:00
|
|
|
|
`process-coding-system-alist', and `network-coding-system-alist'.
|
|
|
|
|
For output to files, if the above procedure does not specify a coding system,
|
|
|
|
|
the value of `buffer-file-coding-system' is used. */);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
Vcoding_system_for_write = Qnil;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("last-coding-system-used", Vlast_coding_system_used,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
Coding system used in the latest file or process I/O. */);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
Vlast_coding_system_used = Qnil;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("last-code-conversion-error", Vlast_code_conversion_error,
|
2003-12-29 07:52:49 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
Error status of the last code conversion.
|
|
|
|
|
|
|
|
|
|
When an error was detected in the last code conversion, this variable
|
|
|
|
|
is set to one of the following symbols.
|
|
|
|
|
`insufficient-source'
|
|
|
|
|
`inconsistent-eol'
|
|
|
|
|
`invalid-source'
|
|
|
|
|
`interrupted'
|
|
|
|
|
`insufficient-memory'
|
|
|
|
|
When no error was detected, the value doesn't change. So, to check
|
|
|
|
|
the error status of a code conversion by this variable, you must
|
|
|
|
|
explicitly set this variable to nil before performing code
|
|
|
|
|
conversion. */);
|
|
|
|
|
Vlast_code_conversion_error = Qnil;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_BOOL ("inhibit-eol-conversion", inhibit_eol_conversion,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
*Non-nil means always inhibit code conversion of end-of-line format.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
See info node `Coding Systems' and info node `Text and Binary' concerning
|
|
|
|
|
such conversion. */);
|
1997-07-07 00:59:44 +00:00
|
|
|
|
inhibit_eol_conversion = 0;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_BOOL ("inherit-process-coding-system", inherit_process_coding_system,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
Non-nil means process buffer inherits coding system of process output.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
Bind it to t if the process output is to be treated as if it were a file
|
|
|
|
|
read from some filesystem. */);
|
1998-04-15 15:52:41 +00:00
|
|
|
|
inherit_process_coding_system = 0;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("file-coding-system-alist", Vfile_coding_system_alist,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
Alist to decide a coding system to use for a file I/O operation.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
The format is ((PATTERN . VAL) ...),
|
|
|
|
|
where PATTERN is a regular expression matching a file name,
|
|
|
|
|
VAL is a coding system, a cons of coding systems, or a function symbol.
|
|
|
|
|
If VAL is a coding system, it is used for both decoding and encoding
|
|
|
|
|
the file contents.
|
|
|
|
|
If VAL is a cons of coding systems, the car part is used for decoding,
|
|
|
|
|
and the cdr part is used for encoding.
|
|
|
|
|
If VAL is a function symbol, the function must return a coding system
|
2006-08-09 01:25:03 +00:00
|
|
|
|
or a cons of coding systems which are used as above. The function is
|
|
|
|
|
called with an argument that is a list of the arguments with which
|
2007-06-26 00:26:46 +00:00
|
|
|
|
`find-operation-coding-system' was called. If the function can't decide
|
|
|
|
|
a coding system, it can return `undecided' so that the normal
|
|
|
|
|
code-detection is performed.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
|
|
|
|
See also the function `find-operation-coding-system'
|
|
|
|
|
and the variable `auto-coding-alist'. */);
|
1997-06-09 12:59:12 +00:00
|
|
|
|
Vfile_coding_system_alist = Qnil;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("process-coding-system-alist", Vprocess_coding_system_alist,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
Alist to decide a coding system to use for a process I/O operation.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
The format is ((PATTERN . VAL) ...),
|
|
|
|
|
where PATTERN is a regular expression matching a program name,
|
|
|
|
|
VAL is a coding system, a cons of coding systems, or a function symbol.
|
|
|
|
|
If VAL is a coding system, it is used for both decoding what received
|
|
|
|
|
from the program and encoding what sent to the program.
|
|
|
|
|
If VAL is a cons of coding systems, the car part is used for decoding,
|
|
|
|
|
and the cdr part is used for encoding.
|
|
|
|
|
If VAL is a function symbol, the function must return a coding system
|
|
|
|
|
or a cons of coding systems which are used as above.
|
|
|
|
|
|
|
|
|
|
See also the function `find-operation-coding-system'. */);
|
1997-06-09 12:59:12 +00:00
|
|
|
|
Vprocess_coding_system_alist = Qnil;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("network-coding-system-alist", Vnetwork_coding_system_alist,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
Alist to decide a coding system to use for a network I/O operation.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
The format is ((PATTERN . VAL) ...),
|
|
|
|
|
where PATTERN is a regular expression matching a network service name
|
|
|
|
|
or is a port number to connect to,
|
|
|
|
|
VAL is a coding system, a cons of coding systems, or a function symbol.
|
|
|
|
|
If VAL is a coding system, it is used for both decoding what received
|
|
|
|
|
from the network stream and encoding what sent to the network stream.
|
|
|
|
|
If VAL is a cons of coding systems, the car part is used for decoding,
|
|
|
|
|
and the cdr part is used for encoding.
|
|
|
|
|
If VAL is a function symbol, the function must return a coding system
|
|
|
|
|
or a cons of coding systems which are used as above.
|
|
|
|
|
|
|
|
|
|
See also the function `find-operation-coding-system'. */);
|
1997-06-09 12:59:12 +00:00
|
|
|
|
Vnetwork_coding_system_alist = Qnil;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("locale-coding-system", Vlocale_coding_system,
|
2001-11-14 00:04:57 +00:00
|
|
|
|
doc: /* Coding system to use with system messages.
|
|
|
|
|
Also used for decoding keyboard input on X Window system. */);
|
Add support for large files, 64-bit Solaris, system locale codings.
* Makefile.in (emacs): Set the LC_ALL environment variable to "C"
when dumping, so that the dumped Emacs doesn't have stray locale info.
(dired.o): Depend on systime.h.
(editfns.o): Depend on coding.h.
* alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
Include <config.h> before any system include files.
* alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
xmenu.c, xterm.c:
Do not include <stdlib.h>, as <config.h> does this now.
* callproc.c (Fcall_process):
Synchronize messages locale before invoking strerror.
Decode resulting string with locale-coding-system.
* coding.c (Vlocale_coding_system): New var.
(syms_of_coding): Adjust to above change.
(emacs_strerror): New function.
* coding.h (emacs_strerror, Vlocale_coding_system): New decls.
* config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
HAVE_STRSIGNAL): New macros.
(BITS_PER_LONG): Default to 64 if _LP64 is defined.
<stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
* dired.c: Include "systime.h".
(Ffile_attributes): Do not cast s.st_size to int; this loses
information if int is 32 bits but st_size and EMACS_INT are larger.
Treat large device numbers like large inode numbers.
* dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
* editfns.c: Include coding.h.
(emacs_strftime): Remove decl.
(emacs_strftimeu): New decl.
(emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
Use emacs_strftimeu instead of emacs_strftime.
(Fformat_time_string): Convert format string using
Vlocale_coding_system, and convert result back. Synchronize time
locale before invoking lower level function. Invoke
emacs_memftimeu, passing ut, instead of emacs_memftime.
* emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
(Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
Vprevious_time_locale): New variables.
(main): Invoke setlocale early, so that initial error messages are
localized properly. But skip locale-setting if LC_ALL is "C".
Fix up locale when it's safe to do so.
(fixup_locale): Moved here from xterm.c.
(synchronize_locale, synchronize_time_locale,
synchronize_messages_locale): New functions.
(syms_of_emacs): Accommodate above changes.
* fileio.c (report_file_error): Convert strerror output according
to Vlocale_coding_system.
(Finsert_file_contents): Check for arithmetic overflow in
computations that depend on file size. Report IO errors
with emacs_strerror, not strerror.
* fns.c (Fgethash): Declare dflt parameter.
* gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
is defined; that's config.h's job.
* lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
default these values to long, BITS_PER_LONG, and unsigned long.
(VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
(PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
(code_convert_string_norecord, fixup_locale,
synchronize_messages_locale, synchronize_time_locale,
emacs_open, emacs_close, emacs_read, emacs_write): New decls.
All Emacs callers of open, close, read, write changed to use
emacs_open, emacs_close, emacs_read, emacs_write.
* lread.c (file_offset, file_tell): New macros. All uses of ftell
changed to file_tell.
(saved_doc_string_position, prev_saved_doc_string_position): Now
of type file_offset.
(init_lread): Do not fix locale here; fixup_locale now does this.
* m/amdahl.h, s/usg5-4.h:
(NSIG): Remove.
(NSIG_MINIMUM): New macro.
* m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
s/umips.h, s/usg5-4.h:
(SIGIO): Do not undef.
(BROKEN_SIGIO): New macro.
* m/ustation.h:
(SIGTSTP): Do not undef.
(BROKEN_SIGTSTP): New macro.
* s/gnu-linux.h:
(SIGPOLL, SIGURG): Do not undef.
(BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
* s/ptx4.h:
(SIGINFO): Do not undef.
(BROKEN_SIGINFO): New macros.
* m/delta.h, s/ptx.h, s/template.h: Doc fix.
* mktime.c, strftime.c: Update to glibc 2.1.2 version, with
some Emacs-related changes merged.
* print.c (float_to_string): Prepend "-" to representation of a
NaN if the NaN is negative.
* process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
(wait_reading_process_input): Use emacs_strerror, not strerror.
* process.c (status_message, sigchld_handler): Synchronize locale,
then use strsignal istead of sys_siglist.
* w32proc.c (sys_wait): Likewise.
* s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
s/usg5-2.h, s/usg5-3.h, s/xenix.h:
(open, close, read, write, INTERRUPTIBLE_OPEN,
INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
* s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
* sysdep.c (sys_read, sys_write, read, write, sys_close, close,
sys_open, open): Remove.
(emacs_open, emacs_close, emacs_read, emacs_write): Always define;
the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
macros are no longer used.
(emacs_open): Renamed from sys_open. Merge BSD4_1 version.
(emacs_close): Renamed from sys_close.
(emacs_read): Renamed from sys_read.
(emacs_write): Renamed from sys_write.
(sys_siglist): Do not declare if HAVE_STRSIGNAL.
(dup2): Do not print error on failure; the real dup2 doesn't.
(strsignal): New function, defined if !HAVE_STRSIGNAL.
* syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
is defined.
(SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
(NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
(strsignal): Declare if !HAVE_STRSIGNAL.
* unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
(ElfW): Define in terms of ElfExpandBitsW.
* w32proc.c (sys_siglist): Remove decl.
* xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
with ANSI C.
(display_string): Declare face_string_pos arg.
* xfns.c (Fx_show_tip): Declare timeout param.
* xterm.c: No need to include locale.h.
(x_alloc_lighter_color, x_setup_relief_color):
Pass arg as double, not float, for compatibility with ANSI C.
(fixup_locale): Move to emacs.c.
(x_term_init): Do not setlocale or fixup locale; the main program
does this now.
1999-10-19 07:25:11 +00:00
|
|
|
|
Vlocale_coding_system = Qnil;
|
|
|
|
|
|
2000-05-25 11:07:47 +00:00
|
|
|
|
/* The eol mnemonics are reset in startup.el system-dependently. */
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("eol-mnemonic-unix", eol_mnemonic_unix,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
*String displayed in mode line for UNIX-like (LF) end-of-line format. */);
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
eol_mnemonic_unix = make_pure_c_string (":");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("eol-mnemonic-dos", eol_mnemonic_dos,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
*String displayed in mode line for DOS-like (CRLF) end-of-line format. */);
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
eol_mnemonic_dos = make_pure_c_string ("\\");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("eol-mnemonic-mac", eol_mnemonic_mac,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
*String displayed in mode line for MAC-like (CR) end-of-line format. */);
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
eol_mnemonic_mac = make_pure_c_string ("/");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("eol-mnemonic-undecided", eol_mnemonic_undecided,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
*String displayed in mode line when end-of-line format is not yet determined. */);
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
eol_mnemonic_undecided = make_pure_c_string (":");
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("enable-character-translation", Venable_character_translation,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
*Non-nil enables character translation while encoding and decoding. */);
|
1998-05-18 00:59:38 +00:00
|
|
|
|
Venable_character_translation = Qt;
|
1997-05-10 03:37:01 +00:00
|
|
|
|
|
1998-05-22 09:45:34 +00:00
|
|
|
|
DEFVAR_LISP ("standard-translation-table-for-decode",
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
Vstandard_translation_table_for_decode,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Table for translating characters while decoding. */);
|
1998-05-22 09:45:34 +00:00
|
|
|
|
Vstandard_translation_table_for_decode = Qnil;
|
1997-05-10 03:37:01 +00:00
|
|
|
|
|
1998-05-22 09:45:34 +00:00
|
|
|
|
DEFVAR_LISP ("standard-translation-table-for-encode",
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
Vstandard_translation_table_for_encode,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Table for translating characters while encoding. */);
|
1998-05-22 09:45:34 +00:00
|
|
|
|
Vstandard_translation_table_for_encode = Qnil;
|
1997-02-20 07:02:49 +00:00
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("charset-revision-table", Vcharset_revision_table,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Alist of charsets vs revision numbers.
|
|
|
|
|
While encoding, if a charset (car part of an element) is found,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
designate it with the escape sequence identifying revision (cdr part
|
|
|
|
|
of the element). */);
|
|
|
|
|
Vcharset_revision_table = Qnil;
|
1997-06-09 12:59:12 +00:00
|
|
|
|
|
|
|
|
|
DEFVAR_LISP ("default-process-coding-system",
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
Vdefault_process_coding_system,
|
2001-11-04 17:43:52 +00:00
|
|
|
|
doc: /* Cons of coding systems used for process I/O by default.
|
|
|
|
|
The car part is used for decoding a process output,
|
|
|
|
|
the cdr part is used for encoding a text to be sent to a process. */);
|
1997-06-09 12:59:12 +00:00
|
|
|
|
Vdefault_process_coding_system = Qnil;
|
1997-08-10 04:13:19 +00:00
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("latin-extra-code-table", Vlatin_extra_code_table,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
Table of extra Latin codes in the range 128..159 (inclusive).
|
2001-11-04 17:43:52 +00:00
|
|
|
|
This is a vector of length 256.
|
|
|
|
|
If Nth element is non-nil, the existence of code N in a file
|
|
|
|
|
\(or output of subprocess) doesn't prevent it to be detected as
|
|
|
|
|
a coding system of ISO 2022 variant which has a flag
|
|
|
|
|
`accept-latin-extra-code' t (e.g. iso-latin-1) on reading a file
|
|
|
|
|
or reading output of a subprocess.
|
2008-05-28 09:11:59 +00:00
|
|
|
|
Only 128th through 159th elements have a meaning. */);
|
1997-08-16 01:54:37 +00:00
|
|
|
|
Vlatin_extra_code_table = Fmake_vector (make_number (256), Qnil);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
|
|
|
|
|
DEFVAR_LISP ("select-safe-coding-system-function",
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
Vselect_safe_coding_system_function,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
|
|
|
|
Function to call to select safe coding system for encoding a text.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
|
|
|
|
If set, this function is called to force a user to select a proper
|
|
|
|
|
coding system which can encode the text in the case that a default
|
2008-01-16 04:12:22 +00:00
|
|
|
|
coding system used in each operation can't encode the text. The
|
|
|
|
|
function should take care that the buffer is not modified while
|
|
|
|
|
the coding system is being selected.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
|
|
|
|
The default value is `select-safe-coding-system' (which see). */);
|
Vselect_safe_coding_system_function): New variable.
(coding_category_table): This variable deleted.
(Vcoding_category_table): New variable.
(coding_category_name): Add "coding-category-iso-7-tight".
(detect_coding_iso2022): Check the mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding
category coding-category-iso-7-tight.
(DECODE_DESIGNATION): Decode only such designations that CODING
can handle.
(check_composing_code): New function.
(decode_coding_iso2022): Decode only such characters that CODING
can handle.
(encode_coding_iso2022): Before and after encoding composite
characters, reset designation and invocation status.
(detect_coding_sjis): Delete unnecessary check.
(detect_coding_big5): Likewise.
(encode_designation_at_bol): Check the validity of requested
designation register.
(setup_coding_system): Set requested designation registers for
non-supported charsets to
CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask
CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for
no-conversion and undecided.
(detect_coding): Adjusted for the new variable
Vcoding_category_table.
(syms_of_coding): Initialize Vcoding_category_table and staticpro
it. Register select-safe-coding-system as a Lisp variable.
(DECODE_CHARACTER_ASCII): Update coding->produced_char;
(DECODE_CHARACTER_DIMENSION1): Likewise.
(Qraw_text, Qcoding_category): New variables.
(syms_of_coding): Intern and staticpro them.
(coding_system_table): New variable.
(CHARSET_OK, SHIFT_OUT_OK): New macros.
(detect_coding_iso2022): Detection algorithm improved.
(decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
return value changed. Update members produced, produced_char,
consumed, consumed_char of the struct *coding. Pay attention to
CODING_MODE_INHIBIT_INCONSISTENT_EOL.
(encode_coding_iso2022): Likewise.
(decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
(decode_eol, encode_eol): Likewise.
(ENCODE_ISO_CHARACTER): Update coding->consumed_char.
(DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
(ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
(detect_coding(detect_coding(detect_ITIES and SKIP.
(detect_coding): Adjusted for the change of detect_coding_mask.
Update coding->heading_ascii.
(detect_eol_type): New arg SKIP.
(detect_eol): Adjusted for the change of detect_eol_type.
(ccl_codign_driver): New function.
(decode_coding): Arg CONSUMED deleted, and the meaning of return
value changed. Update members produced, produced_char, consumed,
consumed_char of the struct *coding.
(encode_coding): Likewise.
(shrink_decoding_region, shrink_encoding_region): New function.
(code_convert_region, code_convert_string): Completely rewritten.
(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
(Fdetect_coding_string): New function.
(Fdecode_coding_region, Fencode_coding_region): Adjusted for the
change of code_convert_region.
(Fdecode_coding_string, Fencode_coding_string): Adjusted for the
change of code_convert_string.
(Fupdate_iso_coding_systems): New function.
(init_coding_once): Initialize coding_system_table.
1998-01-22 01:26:45 +00:00
|
|
|
|
Vselect_safe_coding_system_function = Qnil;
|
|
|
|
|
|
2002-12-17 11:39:13 +00:00
|
|
|
|
DEFVAR_BOOL ("coding-system-require-warning",
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
coding_system_require_warning,
|
2002-12-17 11:39:13 +00:00
|
|
|
|
doc: /* Internal use only.
|
2003-01-31 04:03:07 +00:00
|
|
|
|
If non-nil, on writing a file, `select-safe-coding-system-function' is
|
|
|
|
|
called even if `coding-system-for-write' is non-nil. The command
|
|
|
|
|
`universal-coding-system-argument' binds this variable to t temporarily. */);
|
2002-12-17 11:39:13 +00:00
|
|
|
|
coding_system_require_warning = 0;
|
|
|
|
|
|
|
|
|
|
|
2000-07-18 14:37:54 +00:00
|
|
|
|
DEFVAR_BOOL ("inhibit-iso-escape-detection",
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
inhibit_iso_escape_detection,
|
2002-03-01 01:17:24 +00:00
|
|
|
|
doc: /*
|
2009-01-10 10:41:23 +00:00
|
|
|
|
If non-nil, Emacs ignores ISO-2022 escape sequences during code detection.
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
2009-01-10 10:41:23 +00:00
|
|
|
|
When Emacs reads text, it tries to detect how the text is encoded.
|
|
|
|
|
This code detection is sensitive to escape sequences. If Emacs sees
|
|
|
|
|
a valid ISO-2022 escape sequence, it assumes the text is encoded in one
|
|
|
|
|
of the ISO2022 encodings, and decodes text by the corresponding coding
|
|
|
|
|
system (e.g. `iso-2022-7bit').
|
2001-11-04 17:43:52 +00:00
|
|
|
|
|
|
|
|
|
However, there may be a case that you want to read escape sequences in
|
|
|
|
|
a file as is. In such a case, you can set this variable to non-nil.
|
2009-01-10 10:41:23 +00:00
|
|
|
|
Then the code detection will ignore any escape sequences, and no text is
|
|
|
|
|
detected as encoded in some ISO-2022 encoding. The result is that all
|
2001-11-04 17:43:52 +00:00
|
|
|
|
escape sequences become visible in a buffer.
|
|
|
|
|
|
|
|
|
|
The default value is nil, and it is strongly recommended not to change
|
|
|
|
|
it. That is because many Emacs Lisp source files that contain
|
|
|
|
|
non-ASCII characters are encoded by the coding system `iso-2022-7bit'
|
|
|
|
|
in Emacs's distribution, and they won't be decoded correctly on
|
|
|
|
|
reading if you suppress escape sequence detection.
|
|
|
|
|
|
|
|
|
|
The other way to read escape sequences in a file without decoding is
|
2009-01-10 10:41:23 +00:00
|
|
|
|
to explicitly specify some coding system that doesn't use ISO-2022
|
2001-11-04 17:43:52 +00:00
|
|
|
|
escape sequence (e.g `latin-1') on reading by \\[universal-coding-system-argument]. */);
|
2000-07-14 01:56:14 +00:00
|
|
|
|
inhibit_iso_escape_detection = 0;
|
2002-11-06 23:31:21 +00:00
|
|
|
|
|
2009-01-10 10:41:23 +00:00
|
|
|
|
DEFVAR_BOOL ("inhibit-null-byte-detection",
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
inhibit_null_byte_detection,
|
2009-01-10 10:41:23 +00:00
|
|
|
|
doc: /* If non-nil, Emacs ignores null bytes on code detection.
|
|
|
|
|
By default, Emacs treats it as binary data, and does not attempt to
|
|
|
|
|
decode it. The effect is as if you specified `no-conversion' for
|
|
|
|
|
reading that text.
|
|
|
|
|
|
|
|
|
|
Set this to non-nil when a regular text happens to include null bytes.
|
|
|
|
|
Examples are Index nodes of Info files and null-byte delimited output
|
|
|
|
|
from GNU Find and GNU Grep. Emacs will then ignore the null bytes and
|
|
|
|
|
decode text as usual. */);
|
|
|
|
|
inhibit_null_byte_detection = 0;
|
|
|
|
|
|
Move all DEFVAR'd globals into a structure -- threading infrastructure
* globals.h: New file.
* xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
* window.h (Vinitial_window_system, Vminibuf_scroll_window)
(Vwindow_system_version): Remove declaration.
* w32term.h (Vw32_enable_palette)
(Vx_pixel_size_width_font_regexp): Remove declaration.
* w32menu.c (Voverriding_local_map)
(Voverriding_local_map_menu_flag): Remove declaration.
* w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
(Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
(Vw32_enable_num_lock, Vw32_lwindow_modifier)
(Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
(Vw32_phantom_key_code, Vw32_recognize_altgr)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(w32_use_full_screen_buffer): Remove declaration.
* w32.c (Vsystem_configuration, Vw32_downcase_file_names)
(Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
(w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
* termopts.h (Vtruncate_partial_width_windows, inverse_video)
(no_redraw_on_reenter, visible_bell): Remove declaration.
* sysdep.c (Vsystem_name): Remove declaration.
* syntax.h (parse_sexp_lookup_properties): Remove declaration.
* menu.h (Vmenu_updating_frame): Remove declaration.
* macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
Remove declaration.
* lisp.h (Vafter_init_time, Vafter_load_alist)
(Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
(Vcompletion_regexp_list, Vcurrent_load_list)
(Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
(Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
(Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
(Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
(Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
(Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
(Vpurify_flag, Vquit_flag, Vsaved_region_selection)
(Vscalable_fonts_allowed, Vselect_active_regions)
(Vshell_file_name, Vstandard_input, Vstandard_output)
(Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
(Vtop_level, Vtty_erase_char, Vundo_outer_limit)
(Vuser_login_name, Vwindow_scroll_functions)
(Vwindow_system_version, Vx_no_window_manager)
(Vx_resource_class, Vx_resource_name, baud_rate)
(completion_ignore_case, debug_on_next_call, gc_cons_threshold)
(history_delete_duplicates, inhibit_x_resources)
(last_nonmenu_event, load_in_progress, max_specpdl_size)
(minibuffer_auto_raise, print_escape_newlines, scroll_margin)
(use_dialog_box, use_file_dialog): Remove declaration. Include
globals.h.
* keymap.h (Voverriding_local_map)
(Voverriding_local_map_menu_flag, meta_prefix_char): Remove
declaration.
* keyboard.h (Vdouble_click_time, Vfunction_key_map)
(Vinput_method_function, Vkey_translation_map)
(Vlucid_menu_bar_dirty_flag, Vthis_original_command)
(do_mouse_tracking, extra_keyboard_modifiers)
(num_nonmacro_input_events): Remove declaration.
* intervals.h (Vchar_property_alias_alist)
(Vdefault_text_properties, Vinhibit_point_motion_hooks)
(Vtext_property_default_nonsticky): Remove declaration.
* gtkutil.h (x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_whole_detached_tool_bar): Remove declaration.
* frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
(Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
(Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
(focus_follows_mouse): Remove declaration.
* fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
(Vignore_relative_composition, Votf_script_alist)
(Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
declaration.
* font.h (Vfont_log): Remove declaration.
* dosfns.h (Vdos_display_scancodes, Vdos_version)
(Vdos_windows_version, dos_codepage, dos_country_code)
(dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
(dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
declaration.
* disptab.h (Vglyph_table, Vstandard_display_table): Remove
declaration.
* dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
(Vmouse_autoselect_window, Voverflow_newline_into_fringe)
(Vshow_trailing_whitespace, Vtool_bar_button_margin)
(Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
(inverse_video, mode_line_in_non_selected_windows)
(tool_bar_button_relief, tool_bar_max_label_size)
(underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove declaration.
* composite.h (Vauto_composition_function)
(Vcomposition_function_table): Remove declaration.
* commands.h (Vexecuting_kbd_macro)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vthis_command)
(Vunread_command_events, cursor_in_echo_area)
(last_command_event, last_nonmenu_event, unread_command_char):
Remove declaration.
* coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
(Vdefault_file_name_coding_system)
(Vdefault_process_coding_system, Vfile_name_coding_system)
(Vlast_coding_system_used, Vlocale_coding_system)
(Vselect_safe_coding_system_function)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system): Remove
declaration.
* charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
declaration.
* character.h (Vauto_fill_chars, Vchar_direction_table)
(Vchar_script_table, Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove declaration.
* ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
* buffer.h (Vafter_change_functions, Vbefore_change_functions)
(Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
(inhibit_modification_hooks): Remove declaration.
* xterm.c (syms_of_xterm): Update.
(Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
(Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
(x_mouse_click_focus_ignore_position)
(x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
* xsmfns.c (syms_of_xsmfns): Update.
(Vx_session_id, Vx_session_previous_id): Remove.
* xsettings.c (syms_of_xsettings): Update.
(Vxft_settings, use_system_font): Remove.
* xselect.c (syms_of_xselect): Update.
(Vselection_converter_alist, Vx_lost_selection_functions)
(Vx_sent_selection_functions, x_selection_timeout): Remove.
* xfns.c (syms_of_xfns): Update.
(Vgtk_version_string, Vmotif_version_string)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
(x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
(x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
Remove.
* xfaces.c (syms_of_xfaces): Update.
(Vface_default_stipple, Vface_font_rescale_alist)
(Vface_ignored_fonts, Vface_new_frame_defaults)
(Vface_remapping_alist, Vfont_list_limit)
(Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
* xdisp.c (syms_of_xdisp): Update.
(Vauto_resize_tool_bars, Vblink_cursor_alist)
(Vdisplay_pixels_per_inch, Vfontification_functions)
(Vframe_title_format, Vglobal_mode_string)
(Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
(Vicon_title_format, Vinhibit_redisplay)
(Vline_number_display_limit, Vline_prefix)
(Vmax_mini_window_height, Vmenu_bar_update_hook)
(Vmenu_updating_frame, Vmessage_log_max)
(Vmouse_autoselect_window, Vnobreak_char_display)
(Voverlay_arrow_position, Voverlay_arrow_string)
(Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
(Vresize_mini_windows, Vshow_trailing_whitespace)
(Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
(Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
(Vwindow_scroll_functions, Vwindow_size_change_functions)
(Vwindow_text_change_functions, Vwrap_prefix)
(auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
(debug_end_pos, display_hourglass_p, emacs_scroll_step)
(highlight_nonselected_windows, hscroll_margin)
(inhibit_eval_during_redisplay, inhibit_free_realized_faces)
(inhibit_menubar_update, inhibit_try_cursor_movement)
(inhibit_try_window_id, inhibit_try_window_reusing)
(line_number_display_limit_width)
(make_cursor_line_fully_visible_p, message_truncate_lines)
(mode_line_inverse_video, multiple_frames, overline_margin)
(scroll_conservatively, scroll_margin, tool_bar_button_relief)
(tool_bar_max_label_size, underline_minimum_offset)
(unibyte_display_via_language_environment, x_stretch_cursor_p):
Remove.
* window.c (syms_of_window): Update.
(Vminibuf_scroll_window, Vother_window_scroll_buffer)
(Vrecenter_redisplay, Vscroll_preserve_screen_position)
(Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
(Vwindow_point_insertion_type, auto_window_vscroll_p)
(mode_line_in_non_selected_windows, next_screen_context_lines)
(window_min_height, window_min_width): Remove.
(scroll_margin): Remove declaration.
* w32term.c (syms_of_w32term): Update.
(Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
(Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
(Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
(w32_use_visible_system_caret, x_underline_at_descent_line)
(x_use_underline_position_properties): Remove.
(Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
Remove declaration.
* w32select.c (syms_of_w32select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* w32proc.c (syms_of_ntproc): Update.
(Vw32_downcase_file_names, Vw32_generate_fake_inodes)
(Vw32_get_true_file_attributes, Vw32_quote_process_args)
(Vw32_start_process_inherit_error_mode)
(Vw32_start_process_share_console)
(Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
(Vsystem_name): Remove declaration.
* w32font.c (syms_of_w32font): Update.
(Vw32_charset_info_alist): Remove.
* w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
(Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
(Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
(Vw32_enable_palette, Vw32_lwindow_modifier)
(Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
(Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
(Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
(Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
(Vx_max_tooltip_size, Vx_mode_pointer_shape)
(Vx_no_window_manager, Vx_nontext_pointer_shape)
(Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
(Vx_sensitive_text_pointer_shape)
(Vx_window_horizontal_drag_shape, w32_ansi_code_page)
(w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
(w32_mouse_move_interval)
(w32_pass_extra_mouse_buttons_to_system)
(w32_pass_multimedia_buttons_to_system, w32_quit_key)
(w32_strict_fontnames, w32_strict_painting): Remove.
(Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
(Vw32_recognize_altgr, Vwindow_system_version)
(w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
declaration.
* w32console.c (syms_of_ntterm): Update.
(w32_use_full_screen_buffer): Remove.
(Vtty_defined_color_alist): Remove declaration.
* w16select.c (syms_of_win16select): Update.
(Vnext_selection_coding_system, Vselection_coding_system): Remove.
* undo.c (syms_of_undo): Update.
(Vundo_outer_limit, Vundo_outer_limit_function)
(undo_inhibit_record_point, undo_limit, undo_strong_limit):
Remove.
* textprop.c (syms_of_textprop): Update.
(Vchar_property_alias_alist, Vdefault_text_properties)
(Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
Remove.
* terminal.c (syms_of_terminal): Update.
(Vdelete_terminal_functions, Vring_bell_function): Remove.
* term.c (syms_of_term): Update.
(Vresume_tty_functions, Vsuspend_tty_functions)
(no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
Remove.
* syntax.c (syms_of_syntax): Update.
(Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
(open_paren_in_column_0_is_defun_start)
(parse_sexp_ignore_comments, parse_sexp_lookup_properties)
(words_include_escapes): Remove.
* search.c (syms_of_search): Update.
(Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
* process.c (syms_of_process): Update.
(Vprocess_adaptive_read_buffering, Vprocess_connection_type)
(delete_exited_processes): Remove.
* print.c (syms_of_print): Update.
(Vfloat_output_format, Vprint_charset_text_property)
(Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
(Vprint_length, Vprint_level, Vprint_number_table)
(Vstandard_output, print_escape_multibyte)
(print_escape_newlines, print_escape_nonascii, print_quoted):
Remove.
* msdos.c (syms_of_msdos): Update.
(Vdos_unsupported_char_glyph): Remove.
(unibyte_display_via_language_environment): Remove declaration.
* minibuf.c (syms_of_minibuf): Update.
(Vcompletion_regexp_list, Vhistory_add_new_input)
(Vhistory_length, Vminibuffer_completing_file_name)
(Vminibuffer_completion_confirm)
(Vminibuffer_completion_predicate, Vminibuffer_completion_table)
(Vminibuffer_exit_hook, Vminibuffer_help_form)
(Vminibuffer_history_position, Vminibuffer_history_variable)
(Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
(Vread_buffer_function, Vread_expression_map)
(completion_ignore_case, enable_recursive_minibuffers)
(history_delete_duplicates, minibuffer_allow_text_properties)
(minibuffer_auto_raise, read_buffer_completion_ignore_case):
Remove.
* marker.c (syms_of_marker): Update.
(byte_debug_flag): Remove.
* macros.c (syms_of_macros): Update.
(Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
* lread.c (syms_of_lread): Update.
(Vafter_load_alist, Vbyte_boolean_vars)
(Vbytecomp_version_regexp, Vcurrent_load_list)
(Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
(Vload_history, Vload_path, Vload_read_function)
(Vload_source_file_function, Vload_suffixes, Vobarray)
(Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
(Vread_symbol_positions_list, Vread_with_symbol_positions)
(Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
(force_load_messages, load_convert_to_unibyte)
(load_dangerous_libraries, load_force_doc_strings)
(load_in_progress): Remove.
* keymap.c (syms_of_keymap): Update.
(Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
(Vminibuffer_local_completion_map)
(Vminibuffer_local_filename_completion_map)
(Vminibuffer_local_filename_must_match_map)
(Vminibuffer_local_map, Vminibuffer_local_must_match_map)
(Vminibuffer_local_ns_map, Vminor_mode_map_alist)
(Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
Remove.
* keyboard.c (syms_of_keyboard): Update.
(Vauto_save_timeout, Vcommand_error_function)
(Vcommand_hook_internal, Vdeactivate_mark)
(Vdeferred_action_function, Vdeferred_action_list)
(Vdisable_point_adjustment, Vdouble_click_time)
(Vecho_keystrokes, Venable_disabled_menus_and_buttons)
(Vfunction_key_map, Vglobal_disable_point_adjustment)
(Vhelp_char, Vhelp_event_list, Vhelp_form)
(Vinput_method_function, Vinput_method_previous_message)
(Vkey_translation_map, Vlast_event_frame)
(Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
(Vminibuffer_message_timeout, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Vpost_command_hook)
(Vpre_command_hook, Vprefix_help_command)
(Vsaved_region_selection, Vselect_active_regions)
(Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
(Vthis_command, Vthis_command_keys_shift_translated)
(Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
(Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
(Vtty_erase_char, Vunread_command_events)
(Vunread_input_method_events, Vunread_post_input_method_events)
(auto_save_interval, cannot_suspend, do_mouse_tracking)
(double_click_fuzz, extra_keyboard_modifiers)
(inhibit_local_menu_bar_menus, last_command_event)
(last_input_event, last_nonmenu_event, menu_prompt_more_char)
(menu_prompting, meta_prefix_char, num_input_keys)
(num_nonmacro_input_events, polling_period, unread_command_char):
Remove.
* insdel.c (syms_of_insdel): Update.
(Vcombine_after_change_calls, check_markers_debug_flag): Remove.
* indent.c (syms_of_indent): Update.
(indent_tabs_mode): Remove.
* image.c (syms_of_image): Update.
(Vimage_cache_eviction_delay, Vimage_types)
(Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
(cross_disabled_images): Remove.
* fringe.c (syms_of_fringe): Update.
(Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
* frame.c (syms_of_frame): Update.
(Vdefault_frame_alist, Vdefault_frame_scroll_bars)
(Vdelete_frame_functions, Vframe_alpha_lower_limit)
(Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
(Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
(Vx_resource_class, Vx_resource_name, focus_follows_mouse):
Remove.
* fontset.c (syms_of_fontset): Update.
(Valternate_fontname_alist, Vfont_encoding_charset_alist)
(Vfontset_alias_alist, Vignore_relative_composition)
(Votf_script_alist, Vuse_default_ascent)
(Vvertical_centering_font_regexp): Remove.
* font.c (syms_of_font): Update.
(Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
(Vfont_weight_table, Vfont_width_table): Remove.
* fns.c (syms_of_fns): Update.
(Vfeatures, use_dialog_box, use_file_dialog): Remove.
* filelock.c (syms_of_filelock): Update.
(Vtemporary_file_directory): Remove.
* fileio.c (syms_of_fileio): Update.
(Vafter_insert_file_functions, Vauto_save_include_big_deletions)
(Vauto_save_list_file_name, Vauto_save_visited_file_name)
(Vdefault_file_name_coding_system, Vfile_name_coding_system)
(Vfile_name_handler_alist, Vinhibit_file_name_handlers)
(Vinhibit_file_name_operation, Vset_auto_coding_function)
(Vwrite_region_annotate_functions)
(Vwrite_region_annotations_so_far)
(Vwrite_region_post_annotation_function)
(delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* eval.c (syms_of_eval): Update.
(Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
(Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
(Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
(debug_on_next_call, debug_on_quit, debugger_may_continue)
(max_lisp_eval_depth, max_specpdl_size): Remove.
* emacs.c (syms_of_emacs): Update.
(Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
(Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
(Vinstallation_directory, Vinvocation_directory)
(Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
(Vprevious_system_messages_locale, Vprevious_system_time_locale)
(Vsystem_configuration, Vsystem_configuration_options)
(Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
(inhibit_x_resources, noninteractive1): Remove.
* editfns.c (syms_of_editfns): Update.
(Vbuffer_access_fontified_property)
(Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
(Voperating_system_release, Vsystem_name, Vuser_full_name)
(Vuser_login_name, Vuser_real_login_name): Remove.
* dosfns.c (syms_of_dosfns): Update.
(Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
(dos_codepage, dos_country_code, dos_decimal_point)
(dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
(dos_super_key, dos_timezone_offset): Remove.
* doc.c (syms_of_doc): Update.
(Vbuild_files, Vdoc_file_name): Remove.
* dispnew.c (syms_of_display): Update.
(Vglyph_table, Vinitial_window_system)
(Vredisplay_preemption_period, Vstandard_display_table)
(Vwindow_system_version, baud_rate, cursor_in_echo_area)
(inverse_video, redisplay_dont_pause, visible_bell): Remove.
* dired.c (syms_of_dired): Update.
(Vcompletion_ignored_extensions): Remove.
(Vw32_get_true_file_attributes): Remove declaration.
* dbusbind.c (syms_of_dbusbind): Update.
(Vdbus_debug, Vdbus_registered_buses)
(Vdbus_registered_objects_table): Remove.
* data.c (syms_of_data): Update.
(Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
* composite.c (syms_of_composite): Update.
(Vauto_composition_function, Vauto_composition_mode)
(Vcompose_chars_after_function, Vcomposition_function_table):
Remove.
* coding.c (syms_of_coding): Update.
(Vcharset_revision_table, Vcoding_category_list)
(Vcoding_system_alist, Vcoding_system_for_read)
(Vcoding_system_for_write, Vcoding_system_list)
(Vdefault_process_coding_system, Venable_character_translation)
(Vfile_coding_system_alist, Vlast_code_conversion_error)
(Vlast_coding_system_used, Vlatin_extra_code_table)
(Vlocale_coding_system, Vnetwork_coding_system_alist)
(Vprocess_coding_system_alist)
(Vselect_safe_coding_system_function)
(Vstandard_translation_table_for_decode)
(Vstandard_translation_table_for_encode)
(Vtranslation_table_for_input, coding_system_require_warning)
(eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
(eol_mnemonic_unix, inherit_process_coding_system)
(inhibit_eol_conversion, inhibit_iso_escape_detection)
(inhibit_null_byte_detection): Remove.
* cmds.c (syms_of_cmds): Update.
(Vpost_self_insert_hook): Remove.
* charset.c (syms_of_charset): Update.
(Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
(inhibit_load_charset_map): Remove.
* character.c (syms_of_character): Update.
(Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
(Vchar_width_table, Vprintable_chars)
(Vscript_representative_chars, Vtranslation_table_vector)
(Vunicode_category_table): Remove.
* ccl.c (syms_of_ccl): Update.
(Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
(Vtranslation_hash_table_vector): Remove.
* category.c (syms_of_category): Update.
(Vword_combining_categories, Vword_separating_categories): Remove.
* callproc.c (syms_of_callproc): Update.
(Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
(Vexec_directory, Vexec_path, Vexec_suffixes)
(Vinitial_environment, Vprocess_environment)
(Vshared_game_score_directory, Vshell_file_name): Remove.
* callint.c (syms_of_callint): Update.
(Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
(Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
* bytecode.c (syms_of_bytecode): Update.
(Vbyte_code_meter, byte_metering_on): Remove.
* buffer.c (syms_of_buffer): Update.
(Vafter_change_functions, Vbefore_change_functions)
(Vchange_major_mode_hook, Vfirst_change_hook)
(Vinhibit_read_only, Vkill_buffer_query_functions)
(Vtransient_mark_mode, inhibit_modification_hooks): Remove.
* alloc.c (syms_of_alloc): Update.
(Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
(Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
(cons_cells_consed, floats_consed, garbage_collection_messages)
(gc_cons_threshold, gcs_done, intervals_consed)
(misc_objects_consed, pure_bytes_used, string_chars_consed)
(strings_consed, symbols_consed, vector_cells_consed): Remove.
* lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
(DEFVAR_INT): Assume global is in `globals'.
* alloc.c (globals): Define.
2011-01-18 13:45:37 -07:00
|
|
|
|
DEFVAR_LISP ("translation-table-for-input", Vtranslation_table_for_input,
|
2002-11-09 12:49:31 +00:00
|
|
|
|
doc: /* Char table for translating self-inserting characters.
|
2008-05-28 09:11:59 +00:00
|
|
|
|
This is applied to the result of input methods, not their input.
|
2009-02-07 10:52:13 +00:00
|
|
|
|
See also `keyboard-translate-table'.
|
|
|
|
|
|
|
|
|
|
Use of this variable for character code unification was rendered
|
|
|
|
|
obsolete in Emacs 23.1 and later, since Unicode is now the basis of
|
|
|
|
|
internal character representation. */);
|
2002-11-06 23:31:21 +00:00
|
|
|
|
Vtranslation_table_for_input = Qnil;
|
2003-09-08 12:53:41 +00:00
|
|
|
|
|
2002-05-07 04:50:48 +00:00
|
|
|
|
{
|
|
|
|
|
Lisp_Object args[coding_arg_max];
|
2003-09-08 12:53:41 +00:00
|
|
|
|
Lisp_Object plist[16];
|
2002-05-07 04:50:48 +00:00
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < coding_arg_max; i++)
|
|
|
|
|
args[i] = Qnil;
|
|
|
|
|
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
plist[0] = intern_c_string (":name");
|
2002-05-07 04:50:48 +00:00
|
|
|
|
plist[1] = args[coding_arg_name] = Qno_conversion;
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
plist[2] = intern_c_string (":mnemonic");
|
2002-05-07 04:50:48 +00:00
|
|
|
|
plist[3] = args[coding_arg_mnemonic] = make_number ('=');
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
plist[4] = intern_c_string (":coding-type");
|
2002-05-07 04:50:48 +00:00
|
|
|
|
plist[5] = args[coding_arg_coding_type] = Qraw_text;
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
plist[6] = intern_c_string (":ascii-compatible-p");
|
2002-05-07 04:50:48 +00:00
|
|
|
|
plist[7] = args[coding_arg_ascii_compatible_p] = Qt;
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
plist[8] = intern_c_string (":default-char");
|
2002-05-07 04:50:48 +00:00
|
|
|
|
plist[9] = args[coding_arg_default_char] = make_number (0);
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
plist[10] = intern_c_string (":for-unibyte");
|
2003-09-08 12:53:41 +00:00
|
|
|
|
plist[11] = args[coding_arg_for_unibyte] = Qt;
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
plist[12] = intern_c_string (":docstring");
|
|
|
|
|
plist[13] = make_pure_c_string ("Do no conversion.\n\
|
2002-05-07 04:50:48 +00:00
|
|
|
|
\n\
|
|
|
|
|
When you visit a file with this coding, the file is read into a\n\
|
|
|
|
|
unibyte buffer as is, thus each byte of a file is treated as a\n\
|
|
|
|
|
character.");
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
plist[14] = intern_c_string (":eol-type");
|
2003-09-08 12:53:41 +00:00
|
|
|
|
plist[15] = args[coding_arg_eol_type] = Qunix;
|
|
|
|
|
args[coding_arg_plist] = Flist (16, plist);
|
2002-05-07 04:50:48 +00:00
|
|
|
|
Fdefine_coding_system_internal (coding_arg_max, args);
|
2004-10-12 02:40:21 +00:00
|
|
|
|
|
|
|
|
|
plist[1] = args[coding_arg_name] = Qundecided;
|
|
|
|
|
plist[3] = args[coding_arg_mnemonic] = make_number ('-');
|
|
|
|
|
plist[5] = args[coding_arg_coding_type] = Qundecided;
|
|
|
|
|
/* This is already set.
|
2005-07-29 06:20:30 +00:00
|
|
|
|
plist[7] = args[coding_arg_ascii_compatible_p] = Qt; */
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
plist[8] = intern_c_string (":charset-list");
|
2004-10-12 02:40:21 +00:00
|
|
|
|
plist[9] = args[coding_arg_charset_list] = Fcons (Qascii, Qnil);
|
|
|
|
|
plist[11] = args[coding_arg_for_unibyte] = Qnil;
|
* xterm.c (syms_of_xterm):
* xselect.c (syms_of_xselect):
* xmenu.c (syms_of_xmenu):
* xfns.c (syms_of_xfns):
* xfaces.c (syms_of_xfaces):
* xdisp.c (syms_of_xdisp):
* window.c (syms_of_window):
* w32fns.c (syms_of_w32fns):
* undo.c (syms_of_undo):
* textprop.c (syms_of_textprop):
* terminal.c (syms_of_terminal):
* syntax.c (syms_of_syntax):
* sound.c (syms_of_sound):
* search.c (syms_of_search):
* print.c (syms_of_print):
* minibuf.c (syms_of_minibuf):
* macros.c (syms_of_macros):
* keymap.c (syms_of_keymap, initial_define_key)
(initial_define_lispy_key):
* keyboard.c (syms_of_keyboard):
* insdel.c (syms_of_insdel):
* image.c (syms_of_image):
* fringe.c (syms_of_fringe):
* frame.c (syms_of_frame):
* fontset.c (syms_of_fontset):
* fns.c (syms_of_fns):
* fns.c (syms_of_fns):
* fileio.c (syms_of_fileio):
* fileio.c (syms_of_fileio):
* eval.c (syms_of_eval):
* doc.c (syms_of_doc):
* dispnew.c (syms_of_display):
* dired.c (syms_of_dired):
* dbusbind.c (syms_of_dbusbind):
* data.c (syms_of_data):
* composite.c (syms_of_composite):
* coding.c (syms_of_coding):
* cmds.c (syms_of_cmds):
* charset.c (define_charset_internal, syms_of_character):
* ccl.c (syms_of_ccl):
* category.c (syms_of_category, init_category_once):
* casetab.c (syms_of_casetab):
* casefiddle.c (syms_of_casefiddle):
* callint.c (syms_of_callint):
* bytecode.c (syms_of_bytecode):
* buffer.c (keys_of_buffer, syms_of_buffer):
* alloc.c (syms_of_alloc):
* process.c (syms_of_process, init_process):
* lread.c (syms_of_lread, init_obarray):
* font.c (build_style_table):
* emacs.c (syms_of_emacs, main): Replace calls to intern with
intern_c_string, calls to make_pure_string with
make_pure_c_string. Use pure_cons instead of Fcons.
* process.c (socket_options): Make it const.
(set_socket_option, init_process): Use a const pointer.
* lread.c (intern_c_string): New function.
(defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
(defvar_int): Uset it. Make the name const char*.
* font.c (struct table_entry): Remove unused member. Make NAMES
constant.
(weight_table, slant_table, width_table): Make constant.
* emacs.c (struct standard_args): Make name and longname constant.
2009-11-06 06:50:52 +00:00
|
|
|
|
plist[13] = make_pure_c_string ("No conversion on encoding, automatic conversion on decoding.");
|
2004-10-12 02:40:21 +00:00
|
|
|
|
plist[15] = args[coding_arg_eol_type] = Qnil;
|
|
|
|
|
args[coding_arg_plist] = Flist (16, plist);
|
|
|
|
|
Fdefine_coding_system_internal (coding_arg_max, args);
|
2002-05-07 04:50:48 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setup_coding_system (Qno_conversion, &safe_terminal_coding);
|
2003-06-05 23:21:22 +00:00
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < coding_category_max; i++)
|
|
|
|
|
Fset (AREF (Vcoding_category_table, i), Qno_conversion);
|
|
|
|
|
}
|
2010-07-07 10:45:22 +02:00
|
|
|
|
#if defined (DOS_NT)
|
2006-05-15 02:48:46 +00:00
|
|
|
|
system_eol_type = Qdos;
|
|
|
|
|
#else
|
|
|
|
|
system_eol_type = Qunix;
|
|
|
|
|
#endif
|
|
|
|
|
staticpro (&system_eol_type);
|
1997-02-20 07:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
Add support for large files, 64-bit Solaris, system locale codings.
* Makefile.in (emacs): Set the LC_ALL environment variable to "C"
when dumping, so that the dumped Emacs doesn't have stray locale info.
(dired.o): Depend on systime.h.
(editfns.o): Depend on coding.h.
* alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
Include <config.h> before any system include files.
* alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
xmenu.c, xterm.c:
Do not include <stdlib.h>, as <config.h> does this now.
* callproc.c (Fcall_process):
Synchronize messages locale before invoking strerror.
Decode resulting string with locale-coding-system.
* coding.c (Vlocale_coding_system): New var.
(syms_of_coding): Adjust to above change.
(emacs_strerror): New function.
* coding.h (emacs_strerror, Vlocale_coding_system): New decls.
* config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
HAVE_STRSIGNAL): New macros.
(BITS_PER_LONG): Default to 64 if _LP64 is defined.
<stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
* dired.c: Include "systime.h".
(Ffile_attributes): Do not cast s.st_size to int; this loses
information if int is 32 bits but st_size and EMACS_INT are larger.
Treat large device numbers like large inode numbers.
* dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
* editfns.c: Include coding.h.
(emacs_strftime): Remove decl.
(emacs_strftimeu): New decl.
(emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
Use emacs_strftimeu instead of emacs_strftime.
(Fformat_time_string): Convert format string using
Vlocale_coding_system, and convert result back. Synchronize time
locale before invoking lower level function. Invoke
emacs_memftimeu, passing ut, instead of emacs_memftime.
* emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
(Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
Vprevious_time_locale): New variables.
(main): Invoke setlocale early, so that initial error messages are
localized properly. But skip locale-setting if LC_ALL is "C".
Fix up locale when it's safe to do so.
(fixup_locale): Moved here from xterm.c.
(synchronize_locale, synchronize_time_locale,
synchronize_messages_locale): New functions.
(syms_of_emacs): Accommodate above changes.
* fileio.c (report_file_error): Convert strerror output according
to Vlocale_coding_system.
(Finsert_file_contents): Check for arithmetic overflow in
computations that depend on file size. Report IO errors
with emacs_strerror, not strerror.
* fns.c (Fgethash): Declare dflt parameter.
* gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
is defined; that's config.h's job.
* lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
default these values to long, BITS_PER_LONG, and unsigned long.
(VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
(PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
(code_convert_string_norecord, fixup_locale,
synchronize_messages_locale, synchronize_time_locale,
emacs_open, emacs_close, emacs_read, emacs_write): New decls.
All Emacs callers of open, close, read, write changed to use
emacs_open, emacs_close, emacs_read, emacs_write.
* lread.c (file_offset, file_tell): New macros. All uses of ftell
changed to file_tell.
(saved_doc_string_position, prev_saved_doc_string_position): Now
of type file_offset.
(init_lread): Do not fix locale here; fixup_locale now does this.
* m/amdahl.h, s/usg5-4.h:
(NSIG): Remove.
(NSIG_MINIMUM): New macro.
* m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
s/umips.h, s/usg5-4.h:
(SIGIO): Do not undef.
(BROKEN_SIGIO): New macro.
* m/ustation.h:
(SIGTSTP): Do not undef.
(BROKEN_SIGTSTP): New macro.
* s/gnu-linux.h:
(SIGPOLL, SIGURG): Do not undef.
(BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
* s/ptx4.h:
(SIGINFO): Do not undef.
(BROKEN_SIGINFO): New macros.
* m/delta.h, s/ptx.h, s/template.h: Doc fix.
* mktime.c, strftime.c: Update to glibc 2.1.2 version, with
some Emacs-related changes merged.
* print.c (float_to_string): Prepend "-" to representation of a
NaN if the NaN is negative.
* process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
(wait_reading_process_input): Use emacs_strerror, not strerror.
* process.c (status_message, sigchld_handler): Synchronize locale,
then use strsignal istead of sys_siglist.
* w32proc.c (sys_wait): Likewise.
* s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
s/usg5-2.h, s/usg5-3.h, s/xenix.h:
(open, close, read, write, INTERRUPTIBLE_OPEN,
INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
* s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
* sysdep.c (sys_read, sys_write, read, write, sys_close, close,
sys_open, open): Remove.
(emacs_open, emacs_close, emacs_read, emacs_write): Always define;
the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
macros are no longer used.
(emacs_open): Renamed from sys_open. Merge BSD4_1 version.
(emacs_close): Renamed from sys_close.
(emacs_read): Renamed from sys_read.
(emacs_write): Renamed from sys_write.
(sys_siglist): Do not declare if HAVE_STRSIGNAL.
(dup2): Do not print error on failure; the real dup2 doesn't.
(strsignal): New function, defined if !HAVE_STRSIGNAL.
* syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
is defined.
(SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
(NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
(strsignal): Declare if !HAVE_STRSIGNAL.
* unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
(ElfW): Define in terms of ElfExpandBitsW.
* w32proc.c (sys_siglist): Remove decl.
* xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
with ANSI C.
(display_string): Declare face_string_pos arg.
* xfns.c (Fx_show_tip): Declare timeout param.
* xterm.c: No need to include locale.h.
(x_alloc_lighter_color, x_setup_relief_color):
Pass arg as double, not float, for compatibility with ANSI C.
(fixup_locale): Move to emacs.c.
(x_term_init): Do not setlocale or fixup locale; the main program
does this now.
1999-10-19 07:25:11 +00:00
|
|
|
|
char *
|
2010-07-04 00:50:25 -07:00
|
|
|
|
emacs_strerror (int error_number)
|
Add support for large files, 64-bit Solaris, system locale codings.
* Makefile.in (emacs): Set the LC_ALL environment variable to "C"
when dumping, so that the dumped Emacs doesn't have stray locale info.
(dired.o): Depend on systime.h.
(editfns.o): Depend on coding.h.
* alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
Include <config.h> before any system include files.
* alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
xmenu.c, xterm.c:
Do not include <stdlib.h>, as <config.h> does this now.
* callproc.c (Fcall_process):
Synchronize messages locale before invoking strerror.
Decode resulting string with locale-coding-system.
* coding.c (Vlocale_coding_system): New var.
(syms_of_coding): Adjust to above change.
(emacs_strerror): New function.
* coding.h (emacs_strerror, Vlocale_coding_system): New decls.
* config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
HAVE_STRSIGNAL): New macros.
(BITS_PER_LONG): Default to 64 if _LP64 is defined.
<stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
* dired.c: Include "systime.h".
(Ffile_attributes): Do not cast s.st_size to int; this loses
information if int is 32 bits but st_size and EMACS_INT are larger.
Treat large device numbers like large inode numbers.
* dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
* editfns.c: Include coding.h.
(emacs_strftime): Remove decl.
(emacs_strftimeu): New decl.
(emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
Use emacs_strftimeu instead of emacs_strftime.
(Fformat_time_string): Convert format string using
Vlocale_coding_system, and convert result back. Synchronize time
locale before invoking lower level function. Invoke
emacs_memftimeu, passing ut, instead of emacs_memftime.
* emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
(Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
Vprevious_time_locale): New variables.
(main): Invoke setlocale early, so that initial error messages are
localized properly. But skip locale-setting if LC_ALL is "C".
Fix up locale when it's safe to do so.
(fixup_locale): Moved here from xterm.c.
(synchronize_locale, synchronize_time_locale,
synchronize_messages_locale): New functions.
(syms_of_emacs): Accommodate above changes.
* fileio.c (report_file_error): Convert strerror output according
to Vlocale_coding_system.
(Finsert_file_contents): Check for arithmetic overflow in
computations that depend on file size. Report IO errors
with emacs_strerror, not strerror.
* fns.c (Fgethash): Declare dflt parameter.
* gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
is defined; that's config.h's job.
* lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
default these values to long, BITS_PER_LONG, and unsigned long.
(VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
(PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
(code_convert_string_norecord, fixup_locale,
synchronize_messages_locale, synchronize_time_locale,
emacs_open, emacs_close, emacs_read, emacs_write): New decls.
All Emacs callers of open, close, read, write changed to use
emacs_open, emacs_close, emacs_read, emacs_write.
* lread.c (file_offset, file_tell): New macros. All uses of ftell
changed to file_tell.
(saved_doc_string_position, prev_saved_doc_string_position): Now
of type file_offset.
(init_lread): Do not fix locale here; fixup_locale now does this.
* m/amdahl.h, s/usg5-4.h:
(NSIG): Remove.
(NSIG_MINIMUM): New macro.
* m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
s/umips.h, s/usg5-4.h:
(SIGIO): Do not undef.
(BROKEN_SIGIO): New macro.
* m/ustation.h:
(SIGTSTP): Do not undef.
(BROKEN_SIGTSTP): New macro.
* s/gnu-linux.h:
(SIGPOLL, SIGURG): Do not undef.
(BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
* s/ptx4.h:
(SIGINFO): Do not undef.
(BROKEN_SIGINFO): New macros.
* m/delta.h, s/ptx.h, s/template.h: Doc fix.
* mktime.c, strftime.c: Update to glibc 2.1.2 version, with
some Emacs-related changes merged.
* print.c (float_to_string): Prepend "-" to representation of a
NaN if the NaN is negative.
* process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
(wait_reading_process_input): Use emacs_strerror, not strerror.
* process.c (status_message, sigchld_handler): Synchronize locale,
then use strsignal istead of sys_siglist.
* w32proc.c (sys_wait): Likewise.
* s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
s/usg5-2.h, s/usg5-3.h, s/xenix.h:
(open, close, read, write, INTERRUPTIBLE_OPEN,
INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
* s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
* sysdep.c (sys_read, sys_write, read, write, sys_close, close,
sys_open, open): Remove.
(emacs_open, emacs_close, emacs_read, emacs_write): Always define;
the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
macros are no longer used.
(emacs_open): Renamed from sys_open. Merge BSD4_1 version.
(emacs_close): Renamed from sys_close.
(emacs_read): Renamed from sys_read.
(emacs_write): Renamed from sys_write.
(sys_siglist): Do not declare if HAVE_STRSIGNAL.
(dup2): Do not print error on failure; the real dup2 doesn't.
(strsignal): New function, defined if !HAVE_STRSIGNAL.
* syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
is defined.
(SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
(NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
(strsignal): Declare if !HAVE_STRSIGNAL.
* unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
(ElfW): Define in terms of ElfExpandBitsW.
* w32proc.c (sys_siglist): Remove decl.
* xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
with ANSI C.
(display_string): Declare face_string_pos arg.
* xfns.c (Fx_show_tip): Declare timeout param.
* xterm.c: No need to include locale.h.
(x_alloc_lighter_color, x_setup_relief_color):
Pass arg as double, not float, for compatibility with ANSI C.
(fixup_locale): Move to emacs.c.
(x_term_init): Do not setlocale or fixup locale; the main program
does this now.
1999-10-19 07:25:11 +00:00
|
|
|
|
{
|
|
|
|
|
char *str;
|
|
|
|
|
|
* callproc.c (strerror): Remove decl.
* fileio.c (strerror): Likewise.
* process.c (strerror): Likewise.
* emacs.c (strerror): Likewise.
(Vsystem_messages_locale): Renamed from Vmessages_locale.
All uses changed.
(Vprevious_system_messages_locale): Likewise, from
Vprevious_messages_locale.
(Vsystem_time_locale): Likewise, from Vtime_locale.
(Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
(ABORT_RETURN_TYPE): New macro.
(abort): Return type is now ABORT_RETURN_TYPE.
(main): Always invoke init_signals, even if POSIX_SIGNALS is not
defined.
(syms_of_emacs): messages-locale -> system-messages-locale,
previous-messages-locale -> previous-system-messages-locale,
time-locale -> system-time-locale,
previous-time-locale -> previous-system-time-locale.
* gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
(const): Do not define; that's config.h's job.
(<limits.h>): Include if HAVE_LIMITS_H is defined.
(CHAR_BIT): Move test for definedness outside of limits.h condition.
(<stddef.h>): Include if STDC_HEADERS is defined.
(FREE_RETURN_TYPE): New macro.
(free): Return type is now FREE_RETURN_TYPE.
* lisp.h (synchronize_system_time_locale): Renamed from
synchronize_time_locale. All uses changed.
(synchronize_system_messages_locale): Likewise, from
synchronize_messages_locale.
* process.c (sys_siglist): Remove.
* syntax.c (scan_sexps_forward): Use abort, not assert.
* sysdep.c (my_sys_siglist): New var.
(sys_siglist): New macro. Remove old initialized vars of same name.
(init_signals): Initialize sys_siglist.
* xfns.c (abort): Remove decl; stdlib.h now does this.
1999-11-22 08:19:51 +00:00
|
|
|
|
synchronize_system_messages_locale ();
|
Add support for large files, 64-bit Solaris, system locale codings.
* Makefile.in (emacs): Set the LC_ALL environment variable to "C"
when dumping, so that the dumped Emacs doesn't have stray locale info.
(dired.o): Depend on systime.h.
(editfns.o): Depend on coding.h.
* alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
Include <config.h> before any system include files.
* alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
xmenu.c, xterm.c:
Do not include <stdlib.h>, as <config.h> does this now.
* callproc.c (Fcall_process):
Synchronize messages locale before invoking strerror.
Decode resulting string with locale-coding-system.
* coding.c (Vlocale_coding_system): New var.
(syms_of_coding): Adjust to above change.
(emacs_strerror): New function.
* coding.h (emacs_strerror, Vlocale_coding_system): New decls.
* config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
HAVE_STRSIGNAL): New macros.
(BITS_PER_LONG): Default to 64 if _LP64 is defined.
<stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
* dired.c: Include "systime.h".
(Ffile_attributes): Do not cast s.st_size to int; this loses
information if int is 32 bits but st_size and EMACS_INT are larger.
Treat large device numbers like large inode numbers.
* dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
* editfns.c: Include coding.h.
(emacs_strftime): Remove decl.
(emacs_strftimeu): New decl.
(emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
Use emacs_strftimeu instead of emacs_strftime.
(Fformat_time_string): Convert format string using
Vlocale_coding_system, and convert result back. Synchronize time
locale before invoking lower level function. Invoke
emacs_memftimeu, passing ut, instead of emacs_memftime.
* emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
(Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
Vprevious_time_locale): New variables.
(main): Invoke setlocale early, so that initial error messages are
localized properly. But skip locale-setting if LC_ALL is "C".
Fix up locale when it's safe to do so.
(fixup_locale): Moved here from xterm.c.
(synchronize_locale, synchronize_time_locale,
synchronize_messages_locale): New functions.
(syms_of_emacs): Accommodate above changes.
* fileio.c (report_file_error): Convert strerror output according
to Vlocale_coding_system.
(Finsert_file_contents): Check for arithmetic overflow in
computations that depend on file size. Report IO errors
with emacs_strerror, not strerror.
* fns.c (Fgethash): Declare dflt parameter.
* gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
is defined; that's config.h's job.
* lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
default these values to long, BITS_PER_LONG, and unsigned long.
(VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
(PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
(code_convert_string_norecord, fixup_locale,
synchronize_messages_locale, synchronize_time_locale,
emacs_open, emacs_close, emacs_read, emacs_write): New decls.
All Emacs callers of open, close, read, write changed to use
emacs_open, emacs_close, emacs_read, emacs_write.
* lread.c (file_offset, file_tell): New macros. All uses of ftell
changed to file_tell.
(saved_doc_string_position, prev_saved_doc_string_position): Now
of type file_offset.
(init_lread): Do not fix locale here; fixup_locale now does this.
* m/amdahl.h, s/usg5-4.h:
(NSIG): Remove.
(NSIG_MINIMUM): New macro.
* m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
s/umips.h, s/usg5-4.h:
(SIGIO): Do not undef.
(BROKEN_SIGIO): New macro.
* m/ustation.h:
(SIGTSTP): Do not undef.
(BROKEN_SIGTSTP): New macro.
* s/gnu-linux.h:
(SIGPOLL, SIGURG): Do not undef.
(BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
* s/ptx4.h:
(SIGINFO): Do not undef.
(BROKEN_SIGINFO): New macros.
* m/delta.h, s/ptx.h, s/template.h: Doc fix.
* mktime.c, strftime.c: Update to glibc 2.1.2 version, with
some Emacs-related changes merged.
* print.c (float_to_string): Prepend "-" to representation of a
NaN if the NaN is negative.
* process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
(wait_reading_process_input): Use emacs_strerror, not strerror.
* process.c (status_message, sigchld_handler): Synchronize locale,
then use strsignal istead of sys_siglist.
* w32proc.c (sys_wait): Likewise.
* s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
s/usg5-2.h, s/usg5-3.h, s/xenix.h:
(open, close, read, write, INTERRUPTIBLE_OPEN,
INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
* s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
* sysdep.c (sys_read, sys_write, read, write, sys_close, close,
sys_open, open): Remove.
(emacs_open, emacs_close, emacs_read, emacs_write): Always define;
the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
macros are no longer used.
(emacs_open): Renamed from sys_open. Merge BSD4_1 version.
(emacs_close): Renamed from sys_close.
(emacs_read): Renamed from sys_read.
(emacs_write): Renamed from sys_write.
(sys_siglist): Do not declare if HAVE_STRSIGNAL.
(dup2): Do not print error on failure; the real dup2 doesn't.
(strsignal): New function, defined if !HAVE_STRSIGNAL.
* syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
is defined.
(SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
(NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
(strsignal): Declare if !HAVE_STRSIGNAL.
* unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
(ElfW): Define in terms of ElfExpandBitsW.
* w32proc.c (sys_siglist): Remove decl.
* xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
with ANSI C.
(display_string): Declare face_string_pos arg.
* xfns.c (Fx_show_tip): Declare timeout param.
* xterm.c: No need to include locale.h.
(x_alloc_lighter_color, x_setup_relief_color):
Pass arg as double, not float, for compatibility with ANSI C.
(fixup_locale): Move to emacs.c.
(x_term_init): Do not setlocale or fixup locale; the main program
does this now.
1999-10-19 07:25:11 +00:00
|
|
|
|
str = strerror (error_number);
|
|
|
|
|
|
|
|
|
|
if (! NILP (Vlocale_coding_system))
|
|
|
|
|
{
|
|
|
|
|
Lisp_Object dec = code_convert_string_norecord (build_string (str),
|
|
|
|
|
Vlocale_coding_system,
|
|
|
|
|
0);
|
2011-01-22 18:56:06 -08:00
|
|
|
|
str = SSDATA (dec);
|
Add support for large files, 64-bit Solaris, system locale codings.
* Makefile.in (emacs): Set the LC_ALL environment variable to "C"
when dumping, so that the dumped Emacs doesn't have stray locale info.
(dired.o): Depend on systime.h.
(editfns.o): Depend on coding.h.
* alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
Include <config.h> before any system include files.
* alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
xmenu.c, xterm.c:
Do not include <stdlib.h>, as <config.h> does this now.
* callproc.c (Fcall_process):
Synchronize messages locale before invoking strerror.
Decode resulting string with locale-coding-system.
* coding.c (Vlocale_coding_system): New var.
(syms_of_coding): Adjust to above change.
(emacs_strerror): New function.
* coding.h (emacs_strerror, Vlocale_coding_system): New decls.
* config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
HAVE_STRSIGNAL): New macros.
(BITS_PER_LONG): Default to 64 if _LP64 is defined.
<stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
* dired.c: Include "systime.h".
(Ffile_attributes): Do not cast s.st_size to int; this loses
information if int is 32 bits but st_size and EMACS_INT are larger.
Treat large device numbers like large inode numbers.
* dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
* editfns.c: Include coding.h.
(emacs_strftime): Remove decl.
(emacs_strftimeu): New decl.
(emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
Use emacs_strftimeu instead of emacs_strftime.
(Fformat_time_string): Convert format string using
Vlocale_coding_system, and convert result back. Synchronize time
locale before invoking lower level function. Invoke
emacs_memftimeu, passing ut, instead of emacs_memftime.
* emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
(Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
Vprevious_time_locale): New variables.
(main): Invoke setlocale early, so that initial error messages are
localized properly. But skip locale-setting if LC_ALL is "C".
Fix up locale when it's safe to do so.
(fixup_locale): Moved here from xterm.c.
(synchronize_locale, synchronize_time_locale,
synchronize_messages_locale): New functions.
(syms_of_emacs): Accommodate above changes.
* fileio.c (report_file_error): Convert strerror output according
to Vlocale_coding_system.
(Finsert_file_contents): Check for arithmetic overflow in
computations that depend on file size. Report IO errors
with emacs_strerror, not strerror.
* fns.c (Fgethash): Declare dflt parameter.
* gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
is defined; that's config.h's job.
* lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
default these values to long, BITS_PER_LONG, and unsigned long.
(VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
(PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
(code_convert_string_norecord, fixup_locale,
synchronize_messages_locale, synchronize_time_locale,
emacs_open, emacs_close, emacs_read, emacs_write): New decls.
All Emacs callers of open, close, read, write changed to use
emacs_open, emacs_close, emacs_read, emacs_write.
* lread.c (file_offset, file_tell): New macros. All uses of ftell
changed to file_tell.
(saved_doc_string_position, prev_saved_doc_string_position): Now
of type file_offset.
(init_lread): Do not fix locale here; fixup_locale now does this.
* m/amdahl.h, s/usg5-4.h:
(NSIG): Remove.
(NSIG_MINIMUM): New macro.
* m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
s/umips.h, s/usg5-4.h:
(SIGIO): Do not undef.
(BROKEN_SIGIO): New macro.
* m/ustation.h:
(SIGTSTP): Do not undef.
(BROKEN_SIGTSTP): New macro.
* s/gnu-linux.h:
(SIGPOLL, SIGURG): Do not undef.
(BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
* s/ptx4.h:
(SIGINFO): Do not undef.
(BROKEN_SIGINFO): New macros.
* m/delta.h, s/ptx.h, s/template.h: Doc fix.
* mktime.c, strftime.c: Update to glibc 2.1.2 version, with
some Emacs-related changes merged.
* print.c (float_to_string): Prepend "-" to representation of a
NaN if the NaN is negative.
* process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
(wait_reading_process_input): Use emacs_strerror, not strerror.
* process.c (status_message, sigchld_handler): Synchronize locale,
then use strsignal istead of sys_siglist.
* w32proc.c (sys_wait): Likewise.
* s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
s/usg5-2.h, s/usg5-3.h, s/xenix.h:
(open, close, read, write, INTERRUPTIBLE_OPEN,
INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
* s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
* sysdep.c (sys_read, sys_write, read, write, sys_close, close,
sys_open, open): Remove.
(emacs_open, emacs_close, emacs_read, emacs_write): Always define;
the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
macros are no longer used.
(emacs_open): Renamed from sys_open. Merge BSD4_1 version.
(emacs_close): Renamed from sys_close.
(emacs_read): Renamed from sys_read.
(emacs_write): Renamed from sys_write.
(sys_siglist): Do not declare if HAVE_STRSIGNAL.
(dup2): Do not print error on failure; the real dup2 doesn't.
(strsignal): New function, defined if !HAVE_STRSIGNAL.
* syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
is defined.
(SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
(NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
(strsignal): Declare if !HAVE_STRSIGNAL.
* unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
(ElfW): Define in terms of ElfExpandBitsW.
* w32proc.c (sys_siglist): Remove decl.
* xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
with ANSI C.
(display_string): Declare face_string_pos arg.
* xfns.c (Fx_show_tip): Declare timeout param.
* xterm.c: No need to include locale.h.
(x_alloc_lighter_color, x_setup_relief_color):
Pass arg as double, not float, for compatibility with ANSI C.
(fixup_locale): Move to emacs.c.
(x_term_init): Do not setlocale or fixup locale; the main program
does this now.
1999-10-19 07:25:11 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
|
1997-02-20 07:02:49 +00:00
|
|
|
|
#endif /* emacs */
|