928 |
coding->destination = (BUF_BEG_ADDR (XBUFFER (coding->dst_object)) |
coding->destination = (BUF_BEG_ADDR (XBUFFER (coding->dst_object)) |
929 |
+ coding->dst_pos_byte - 1); |
+ coding->dst_pos_byte - 1); |
930 |
if (coding->src_pos < 0) |
if (coding->src_pos < 0) |
|
/* The source and destination is in the same buffer. */ |
|
931 |
coding->dst_bytes = (GAP_END_ADDR |
coding->dst_bytes = (GAP_END_ADDR |
932 |
- (coding->src_bytes - coding->consumed) |
- (coding->src_bytes - coding->consumed) |
933 |
- coding->destination); |
- coding->destination); |
957 |
struct coding_system *coding; |
struct coding_system *coding; |
958 |
EMACS_INT bytes; |
EMACS_INT bytes; |
959 |
{ |
{ |
960 |
Lisp_Object this_buffer; |
if (BUFFERP (coding->dst_object) |
961 |
|
&& EQ (coding->src_object, coding->dst_object)) |
|
this_buffer = Fcurrent_buffer (); |
|
|
if (EQ (this_buffer, coding->dst_object)) |
|
962 |
{ |
{ |
963 |
EMACS_INT add = coding->src_bytes - coding->consumed; |
EMACS_INT add = coding->src_bytes - coding->consumed; |
964 |
|
|
968 |
} |
} |
969 |
else |
else |
970 |
{ |
{ |
971 |
|
Lisp_Object this_buffer; |
972 |
|
|
973 |
|
this_buffer = Fcurrent_buffer (); |
974 |
set_buffer_internal (XBUFFER (coding->dst_object)); |
set_buffer_internal (XBUFFER (coding->dst_object)); |
975 |
make_gap (bytes); |
make_gap (bytes); |
976 |
set_buffer_internal (XBUFFER (this_buffer)); |
set_buffer_internal (XBUFFER (this_buffer)); |
4130 |
struct coding_system *coding; |
struct coding_system *coding; |
4131 |
{ |
{ |
4132 |
coding->chars_at_source = 1; |
coding->chars_at_source = 1; |
4133 |
coding->consumed_char = coding->src_chars; |
coding->consumed_char = 0; |
4134 |
coding->consumed = coding->src_bytes; |
coding->consumed = 0; |
4135 |
coding->result = CODING_RESULT_SUCCESS; |
coding->result = CODING_RESULT_SUCCESS; |
4136 |
} |
} |
4137 |
|
|
5124 |
} |
} |
5125 |
if (dst == dst_end) |
if (dst == dst_end) |
5126 |
{ |
{ |
5127 |
EMACS_INT offset = src - coding->source; |
coding->consumed = src - coding->source; |
5128 |
|
|
5129 |
dst = alloc_destination (coding, src_end - src + 1, dst); |
if (EQ (coding->src_object, coding->dst_object)) |
5130 |
dst_end = coding->destination + coding->dst_bytes; |
dst_end = src; |
5131 |
coding_set_source (coding); |
if (dst == dst_end) |
5132 |
src = coding->source + offset; |
{ |
5133 |
src_end = coding->source + coding->src_bytes; |
dst = alloc_destination (coding, src_end - src + 1, |
5134 |
|
dst); |
5135 |
|
dst_end = coding->destination + coding->dst_bytes; |
5136 |
|
coding_set_source (coding); |
5137 |
|
src = coding->source + coding->consumed; |
5138 |
|
src_end = coding->source + coding->src_bytes; |
5139 |
|
} |
5140 |
} |
} |
5141 |
*dst++ = c; |
*dst++ = c; |
5142 |
produced_chars++; |
produced_chars++; |
5163 |
} |
} |
5164 |
if (dst >= dst_end - 1) |
if (dst >= dst_end - 1) |
5165 |
{ |
{ |
5166 |
EMACS_INT offset = src - coding->source; |
coding->consumed = src - coding->source; |
5167 |
|
|
5168 |
dst = alloc_destination (coding, src_end - src + 2, dst); |
if (EQ (coding->src_object, coding->dst_object)) |
5169 |
dst_end = coding->destination + coding->dst_bytes; |
dst_end = src; |
5170 |
coding_set_source (coding); |
if (dst >= dst_end - 1) |
5171 |
src = coding->source + offset; |
{ |
5172 |
src_end = coding->source + coding->src_bytes; |
dst = alloc_destination (coding, src_end - src + 2, |
5173 |
|
dst); |
5174 |
|
dst_end = coding->destination + coding->dst_bytes; |
5175 |
|
coding_set_source (coding); |
5176 |
|
src = coding->source + coding->consumed; |
5177 |
|
src_end = coding->source + coding->src_bytes; |
5178 |
|
} |
5179 |
} |
} |
5180 |
EMIT_ONE_BYTE (c); |
EMIT_ONE_BYTE (c); |
5181 |
} |
} |
5216 |
*dst++ = c; |
*dst++ = c; |
5217 |
} |
} |
5218 |
} |
} |
5219 |
|
coding->consumed = coding->src_bytes; |
5220 |
|
coding->consumed_char = coding->src_chars; |
5221 |
} |
} |
5222 |
|
|
5223 |
produced = dst - (coding->destination + coding->produced); |
produced = dst - (coding->destination + coding->produced); |
7588 |
} |
} |
7589 |
|
|
7590 |
Fputhash (alias, spec, Vcoding_system_hash_table); |
Fputhash (alias, spec, Vcoding_system_hash_table); |
7591 |
|
Vcoding_system_alist = Fcons (Fcons (alias, Qnil), Vcoding_system_alist); |
7592 |
|
|
7593 |
return Qnil; |
return Qnil; |
7594 |
} |
} |
7862 |
ASET (Vcoding_category_table, coding_category_undecided, |
ASET (Vcoding_category_table, coding_category_undecided, |
7863 |
intern ("coding-category-undecided")); |
intern ("coding-category-undecided")); |
7864 |
|
|
|
{ |
|
|
Lisp_Object args[coding_arg_max]; |
|
|
Lisp_Object plist[14]; |
|
|
int i; |
|
|
|
|
|
for (i = 0; i < coding_arg_max; i++) |
|
|
args[i] = Qnil; |
|
|
|
|
|
plist[0] = intern (":name"); |
|
|
plist[1] = args[coding_arg_name] = Qno_conversion; |
|
|
plist[2] = intern (":mnemonic"); |
|
|
plist[3] = args[coding_arg_mnemonic] = make_number ('='); |
|
|
plist[4] = intern (":coding-type"); |
|
|
plist[5] = args[coding_arg_coding_type] = Qraw_text; |
|
|
plist[6] = intern (":ascii-compatible-p"); |
|
|
plist[7] = args[coding_arg_ascii_compatible_p] = Qt; |
|
|
plist[8] = intern (":default-char"); |
|
|
plist[9] = args[coding_arg_default_char] = make_number (0); |
|
|
plist[10] = intern (":docstring"); |
|
|
plist[11] = build_string ("Do no conversion.\n\ |
|
|
\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."); |
|
|
plist[12] = intern (":eol-type"); |
|
|
plist[13] = args[coding_arg_eol_type] = Qunix; |
|
|
args[coding_arg_plist] = Flist (14, plist); |
|
|
Fdefine_coding_system_internal (coding_arg_max, args); |
|
|
} |
|
|
|
|
|
setup_coding_system (Qno_conversion, &keyboard_coding); |
|
|
setup_coding_system (Qno_conversion, &terminal_coding); |
|
|
setup_coding_system (Qno_conversion, &safe_terminal_coding); |
|
|
|
|
7865 |
defsubr (&Scoding_system_p); |
defsubr (&Scoding_system_p); |
7866 |
defsubr (&Sread_coding_system); |
defsubr (&Sread_coding_system); |
7867 |
defsubr (&Sread_non_nil_coding_system); |
defsubr (&Sread_non_nil_coding_system); |
8134 |
to explicitly specify some coding system that doesn't use ISO2022's |
to explicitly specify some coding system that doesn't use ISO2022's |
8135 |
escape sequence (e.g `latin-1') on reading by \\[universal-coding-system-argument]. */); |
escape sequence (e.g `latin-1') on reading by \\[universal-coding-system-argument]. */); |
8136 |
inhibit_iso_escape_detection = 0; |
inhibit_iso_escape_detection = 0; |
8137 |
|
|
8138 |
|
{ |
8139 |
|
Lisp_Object args[coding_arg_max]; |
8140 |
|
Lisp_Object plist[14]; |
8141 |
|
int i; |
8142 |
|
|
8143 |
|
for (i = 0; i < coding_arg_max; i++) |
8144 |
|
args[i] = Qnil; |
8145 |
|
|
8146 |
|
plist[0] = intern (":name"); |
8147 |
|
plist[1] = args[coding_arg_name] = Qno_conversion; |
8148 |
|
plist[2] = intern (":mnemonic"); |
8149 |
|
plist[3] = args[coding_arg_mnemonic] = make_number ('='); |
8150 |
|
plist[4] = intern (":coding-type"); |
8151 |
|
plist[5] = args[coding_arg_coding_type] = Qraw_text; |
8152 |
|
plist[6] = intern (":ascii-compatible-p"); |
8153 |
|
plist[7] = args[coding_arg_ascii_compatible_p] = Qt; |
8154 |
|
plist[8] = intern (":default-char"); |
8155 |
|
plist[9] = args[coding_arg_default_char] = make_number (0); |
8156 |
|
plist[10] = intern (":docstring"); |
8157 |
|
plist[11] = build_string ("Do no conversion.\n\ |
8158 |
|
\n\ |
8159 |
|
When you visit a file with this coding, the file is read into a\n\ |
8160 |
|
unibyte buffer as is, thus each byte of a file is treated as a\n\ |
8161 |
|
character."); |
8162 |
|
plist[12] = intern (":eol-type"); |
8163 |
|
plist[13] = args[coding_arg_eol_type] = Qunix; |
8164 |
|
args[coding_arg_plist] = Flist (14, plist); |
8165 |
|
Fdefine_coding_system_internal (coding_arg_max, args); |
8166 |
|
} |
8167 |
|
|
8168 |
|
setup_coding_system (Qno_conversion, &keyboard_coding); |
8169 |
|
setup_coding_system (Qno_conversion, &terminal_coding); |
8170 |
|
setup_coding_system (Qno_conversion, &safe_terminal_coding); |
8171 |
} |
} |
8172 |
|
|
8173 |
char * |
char * |