]> code.delx.au - gnu-emacs/blob - src/ChangeLog.22
*** empty log message ***
[gnu-emacs] / src / ChangeLog.22
1 2004-01-15 Kenichi Handa <handa@m17n.org>
2
3 * macterm.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
4 OBJECT args.
5
6 * xdisp.c (x_produce_glyphs): Call FACE_FOR_CHAR with POS and
7 OBJECT args for composition too.
8
9 * w32term.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
10 OBJECT args.
11
12 2004-01-13 Kenichi Handa <handa@m17n.org>
13
14 * dispextern.h (FACE_FOR_CHAR): New args POS and OBJECT.
15
16 * fontset.c (reorder_font_vector): Adjusted for the change of
17 FONT_DEF format.
18 (fontset_face): New arg id. Caller changed.
19 (face_for_char): New args pos and object.
20 (make_fontset_for_ascii_face): Adjusted for the change of FONT_DEF
21 format.n
22 (fs_query_fontset): Check NAME by Fassoc too.
23 (Fset_fontset_font): Allow non-XLFD font name.
24 (Ffontset_info): Adjusted for the change of FONT_DEF format.
25
26 * fontset.h (face_for_char): Prototype adjusted.
27
28 * xdisp.c (face_before_or_after_it_pos): Call FACE_FOR_CHAR with
29 POS and OBJECT args.
30 (get_next_display_element): Likewise.
31 (append_space): Likewise.
32 (extend_face_to_end_of_line): Likewise.
33 (get_char_face_and_encoding): Likewise.
34 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
35 (x_produce_glyphs): Likewise.
36
37 * xfaces.c (compute_char_face): Call FACE_FOR_CHAR with
38 POS and OBJECT args.
39
40 * xterm.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with
41 POS and OBJECT args.
42
43 2004-01-03 Jason Rumney <jasonr@gnu.org>
44
45 * w32select.c (Fw32_set_clipboard_data): Avoid potential realloc
46 of GlobalAlloc'ed memory.
47
48 2003-12-29 Kenichi Handa <handa@m17n.org>
49
50 * ccl.c (Fccl_execute_on_string): Fix the condition of loop.
51
52 * charset.h (charset_table_used): Delete extern.
53
54 * charset.c (charset_table_used): Make it static.
55 (map_charset_chars): Fix args to c_function with.
56
57 * chartab.c (map_sub_char_table_for_charset): Fix args to
58 c_function with.
59
60 * coding.h (enum coding_result_code): Delete
61 CODING_RESULT_INSUFFICIENT_CMP, add CODING_RESULT_INVALID_SRC.
62
63 * coding.c (Qinsufficient_source, Qinconsistent_eol)
64 (Qinvalid_source, Qinterrupted, Qinsufficient_memory): New
65 variables.
66 (Vlast_code_conversion_error): New variables.
67 (syms_of_coding): DEFSYM or DEFVAR_LISP them.
68 (ONE_MORE_BYTE): Record error if any instead of signaling an
69 error. If non-ASCII multibyte char is found, return the negative
70 value of the code. All callers changed to check it.
71 (ONE_MORE_BYTE_NO_CHECK): Likewise.
72 (record_conversion_result): New function. All codes setting
73 coding->result are changed to call this function.
74 (detect_coding_utf_8): Don't use the local variable incomplete.
75 (decode_coding_utf_8): Likewise.
76 (emacs_mule_char): Change the second arg to `const'.
77 (detect_coding_emacs_mule): Don't use the local variable
78 incomplete.
79 (detect_coding_sjis): Likewise.
80 (detect_coding_big5): Likewise.
81 (decode_coding): Fix of flushing out unprocessed data.
82 (make_conversion_work_buffer): Fix making of a work buffer.
83 (decode_coding_object): Return coding->dst_object;
84
85 * fontset.c (set_fontset_font): Fix args.
86
87 * lisp.h (CHARACTERBITS): Define as 22.
88
89 * process.c (send_process): Be sure to set coding->src_multibyte.
90
91 * xdisp.c (handle_auto_composed_prop): Fix setting of limit.
92
93 2003-12-02 Kenichi Handa <handa@m17n.org>
94
95 * xdisp.c (handle_auto_composed_prop): Give limit to
96 Fnext_single_char_property_change.
97
98 2003-12-02 Kenichi Handa <handa@m17n.org>
99
100 * coding.c (detect_coding): Fix previous change.
101 (detect_coding_system): Likewise.
102
103 2003-12-02 Kenichi Handa <handa@m17n.org>
104
105 * composite.c (syms_of_composite): Don't make the compostion hash
106 table week.
107
108 * fontset.c (Fset_fontset_font): Fix docstring.
109
110 * lisp.h (detect_coding_system): Adjust prototype.
111
112 * fileio.c (kill_workbuf_unwind): Delete this function.
113 (Finsert_file_contents): Adjust the call of detect_coding_system.
114 Get conversion_buffer by code_conversion_save. Use the macor
115 CODING_MAY_REQUIRE_DECODING. After decoding, update
116 coding_system.
117
118 * coding.h (make_conversion_work_buffer): Delete extern.
119 (code_conversion_save): Extern it.
120
121 * coding.c (enum iso_code_class_type): Delete ISO_carriage_return.
122 (CODING_GET_INFO): Delete argument eol_type. Callers changed.
123 (decode_coding_utf_8): Don't do eol converion.
124 (detect_coding_utf_16): Check coding->src_chars, not
125 coding->src_bytes. Add heuristics for those that have no
126 signature.
127 (decode_coding_emacs_mule): Don't do eol converion.
128 (decode_coding_iso_2022): Likewise.
129 (decode_coding_sjis): Likewise.
130 (decode_coding_big5): Likewise.
131 (decode_coding_charset): Likewise.
132 (adjust_coding_eol_type): Return a new coding system.
133 (detect_coding): Don't detect eol. Fix for utf-16 detection.
134 (decode_eol): In case of CRLF->LF conversion, use del_range_2 on
135 each change.
136 (decode_coding): Pay attention to undo_list. Do eol convesion for
137 all types of coding-systems (if necessary).
138 (Vcode_conversion_work_buf_list): Delete it.
139 (Vcode_conversion_reused_workbuf): Renamed from
140 Vcode_conversion_reused_work_buf.
141 (Vcode_conversion_workbuf_name): New variable.
142 (reused_workbuf_in_use): New variable.
143 (make_conversion_work_buffer): Delete the arg DEPTH.
144 (code_conversion_restore): Argument changed to cons.
145 (code_conversion_save): Delete the argument BUFFER. Callers
146 changed.
147 (detect_coding_system): New argument src_chars. Callers changed.
148 Fix for utf-16 detection.
149 (init_coding_once): Don't use ISO_carriage_return.
150 (syms_of_coding): Initialized Vcode_conversion_workbuf_name and
151 reused_workbuf_in_use.
152
153 2003-11-24 Kenichi Handa <handa@m17n.org>
154
155 * keymap.c (store_in_keymap): Pay attention to the case that idx
156 is a cons specifying a character range.
157
158 * coding.c (Fdefine_coding_system_internal): Fix previous change.
159
160 2003-11-23 Kenichi Handa <handa@m17n.org>
161
162 * xdisp.c (handle_auto_composed_prop): Fix the case of returning
163 HANDLED_RECOMPUTE_PROPS.
164
165 * coding.c (Fdefine_coding_system_internal): Fix checking of
166 ascii compatibility.
167
168 2003-11-22 Kenichi Handa <handa@m17n.org>
169
170 * charset.c (find_charsets_in_text): Delete unused locale
171 variable.
172 (Fset_charset_priority): Update Vemacs_mule_charset_list too.
173
174 * coding.c (encode_coding_emacs_mule): Emit bytes with MSB.
175 Resync charset_list to Vemacs_mule_charset_list.
176
177 * keymap.c (store_in_keymap): Pay attention to the case that idx
178 is a cons specifying a character range.
179
180 2003-11-18 Kenichi Handa <handa@m17n.org>
181
182 * composite.c (update_compositions): Bind inhibit-read-only, etc
183 to t before calling remove-list-of-text-properties.
184
185 * print.c (print_object): Always print ASCII chars as is.
186
187 2003-11-17 Kenichi Handa <handa@m17n.org>
188
189 * keymap.c (Fdefine_key): Fix handling of Lucid style event type
190 list.
191
192 * fns.c (Fmapconcat): Signal an error if SEQUENCE is a char table.
193 (Fmapcar): Likewise.
194 (Fmapc): Likewise.
195
196 2003-11-15 Kenichi Handa <handa@m17n.org>
197
198 * syntax.c (skip_chars): Be sure to alloca char_ranges when
199 necessary.
200
201 2003-11-14 Kenichi Handa <handa@m17n.org>
202
203 * xfaces.c (set_lface_from_font_name): Fix for the case that
204 FONTNAME is not fontset name.
205
206 2003-11-13 Kenichi Handa <handa@m17n.org>
207
208 * fns.c (base64_encode_1): Fix previous change.
209
210 2003-11-08 Kenichi Handa <handa@m17n.org>
211
212 * fontset.c (set_fontset_font): New function.
213 (Fset_fontset_font): If a font is specified for a charset, use
214 map_charset_chars to store the font spec in a fontset.
215
216 2003-10-29 Kenichi Handa <handa@m17n.org>
217
218 * fontset.c (fontset_face): Create a fallback fontset on demand
219 (make_fontset): Don't create a fallback fontset here.
220 (free_face_fontset): Free a fallback fontset (if any) too.
221 (n_auto_fontsets): Delete this variable.
222 (auto_fontset_alist): New variable.
223 (new_fontset_from_font_name): Check auto_fontset_alist.
224 (dump_fontset) [FONTSET_DEBUG]: Fully re-written.
225 (Ffontset_list_all) [FONTSET_DEBUG]: New function.
226 (syms_of_fontset): Initialize and staticpro auto_fontset_alist.
227 Defsubr Sfontset_list_all.
228
229 2003-10-24 Kenichi Handa <handa@m17n.org>
230
231 * xterm.c (x_list_fonts): Fix excluding of auto-scaled fonts.
232
233 2003-10-23 Kenichi Handa <handa@m17n.org>
234
235 * fontset.c (Fnew_fontset): Check NAME more rigidly.
236
237 2003-10-17 Kenichi Handa <handa@m17n.org>
238
239 * editfns.c (Fgoto_char): Fix docstring.
240
241 2003-10-16 Kenichi Handa <handa@m17n.org>
242
243 * insdel.c (insert_from_gap): Adjust intervals correctly.
244
245 2003-10-12 Jason Rumney <jasonr@gnu.org>
246
247 * w32term.c (GLYPHSET, WCRANGE): Define if system headers don't.
248 (pfnGetFontUnicodeRanges): New dynamically loaded function.
249 (w32_initialize): Try to load it.
250 (x_get_font_repertory): Use it if available.
251 (w32_encode_char): Add shortcut for unicode output.
252
253 * w32fns.c (w32_load_system_font): Default charset to -1.
254 (x_to_w32_charset): Match all fonts for unicode.
255 (w32_to_x_charset): New parameter matching. Don't return partial
256 or wildcard charsets.
257 (w32_to_all_x_charsets): Don't return partial or wildcard charsets.
258 (w32_codepage_for_font): Return CP_UNICODE for unicode.
259 (w32_to_x_font): Match charset to real charset.
260 (enum_font_cb2): Always list unicode versions.
261
262 * makefile.w32-in (temacs): Increase EMHEAP.
263
264 2003-10-11 Jason Rumney <jasonr@gnu.org>
265
266 * w32term.c (w32_encode_char): New charset parameter.
267 font_info.encoding becomes encoding_type.
268 (x_get_font_repertory): New function. Warning: stub only!
269 (x_new_font): Return quickly if font already set.
270 (x_new_fontset): fontsetname parameter is Lisp_Object.
271 Use new fs_query_fontset. Try new_fontset_from_font_name. Use
272 fontset_name for return value.
273
274 * w32term.h: Declare x_get_font_repertory.
275
276 * w32select.c (Fw32_set_clipboard_data): Use string_x_string_p in
277 place of find_charset_in_text. Use encode_coding_object in place
278 of encode_coding.
279 (Fw32_get_clipboard_data): Use decode_coding_c_string in place of
280 decode_coding.
281
282 * w32fns.c (Fx_create_frame, x_create_tip_frame): Use new version
283 of x_new_fontset.
284 (w32_load_system_font): Initialize charset as unicode.
285 font_info.encoding becomes encoding_type.
286 (w32_to_x_font): Use decode_coding_c_string in place of
287 decode_coding.
288 (x_to_w32_font): Use encode_coding_object in place of
289 encode_coding.
290 (syms_of_w32fns): Set get_font_repertory_func.
291
292 * w32console.c: Include character.h. Use terminal_encode_buffer
293 from term.c.
294 (write_glyphs): Use new version of encode_terminal_code. Use
295 encode_coding_object in place of encode_coding.
296
297 * w32bdf.c (w32_load_bdf_font): Clear font_info before filling.
298 encoding becomes encoding_type.
299
300 * term.c (terminal_encode_buffer): Make externally visible.
301
302 * makefile.w32-in: Add character.h dependancies.
303 (character.o, chartab.o): New targets.
304
305 2003-10-10 Kenichi Handa <handa@m17n.org>
306
307 * fileio.c (Finsert_file_contents) [DOS_NT]: Use the macro
308 CODING_ID_EOL_TYPE..
309
310 2003-10-07 Andreas Schwab <schwab@suse.de>
311
312 * coding.c (produce_chars): Revert last change.
313
314 2003-10-06 Kenichi Handa <handa@m17n.org>
315
316 * charset.h (charset_unicode): Extern it.
317
318 * charset.c (string_xstring_p): Check by (C >= 0x100).
319 (find_charsets_in_text): Format of the arc CHARSETS changed. New
320 arg MULTIBYTE.
321 (Ffind_charset_region, Ffind_charset_string): Adjusted for the
322 change of find_charsets_in_text.
323 (Fsplit_char): Fix doc. Never return unknown.
324
325 * chartab.c (char_table_translate): Use CHARACTERP, not INETEGERP.
326
327 * coding.c (Fdefine_coding_system_alias): Update
328 Vcoding_system_list.
329
330 * fontset.c (load_font_get_repertory): Pay attention to the case
331 that ENCODING of a font is specified by a char-table.
332
333 * xterm.c (x_get_font_repertory): Handle the case that the
334 encoding of font is other than Unicode.
335
336 2003-10-02 Kenichi Handa <handa@m17n.org>
337
338 * term.c (encode_terminal_code): Don't handle glyph-table. Check
339 if a character is encodable by the terminal coding system. If
340 not, produces proper number of `?'s. Update
341 terminal_encode_buffer and terminal_encode_buf_size if necessary.
342 (produce_glyphs): Check by CHAR_BYTE8_P, not SINGLE_BYTE_CHAR_P.
343
344 2003-10-01 Kenichi Handa <handa@m17n.org>
345
346 * term.c (terminal_encode_buffer, terminal_encode_buf_size): New
347 variables.
348 (encode_terminal_code): Argument changed. Encode multiple
349 characters at once. Store the result of encoding in
350 terminal_encode_buffer.
351 (write_glyphs): Adjusted for the change of encode_terminal_code.
352 (insert_glyphs): Likewise.
353 (term_init): Initialize terminal_encode_buffer and
354 terminal_encode_buf_size.
355
356 * coding.c (consume_chars): If coding->src_object is nil, don't
357 check annotation.
358
359 2003-09-30 Kenichi Handa <handa@m17n.org>
360
361 * character.c (char_string): Use ASCII_CHAR_P instead of
362 SINGLE_BYTE_CHAR_P.
363
364 2003-09-30 Kenichi Handa <handa@m17n.org>
365
366 * xdisp.c (handle_auto_composed_prop): Check if the last
367 characters of auto-composed region is newly composed with the
368 following characters.
369 (handle_composition_prop): Fix checking of point being inside
370 composition.
371
372 2003-09-26 Kenichi Handa <handa@m17n.org>
373
374 * fns.c (concat): Don't change multibyteness of the result by
375 concatenating an 8-bit character.
376
377 * data.c (Faset): Check newelt by CHECK_CHARACTER. Don't change
378 multibyteness of the result when newelt is an 8-bit character.
379
380 2003-09-29 Dave Love <fx@gnu.org>
381
382 * xmenu.c (find_and_call_menu_selection): Make menu_bar_items_used
383 EMACS_INT.
384
385 * xfns.c (DefaultDepthOfScreen, x_encode_text): Remove unused vars.
386
387 * xfaces.c (face_numeric_value): Declare dim size_t.
388 (Finternal_lisp_face_equal_p): Remove unused f.
389
390 * xdisp.c (BUILD_CHAR_GLYPH_STRINGS, display_and_set_cursor)
391 (MATRIX_ROW): Remove unused vars.
392 (draw_glyphs, x_insert_glyphs, fast_find_position)
393 (fast_find_position, fast_find_string_pos): Use EMACS_INT for
394 byte/char counts.
395
396 * regex.c (regex_compile): Remove unused var.
397
398 * minibuf.c (Fminibuffer_complete_word): Remove unused var.
399
400 * keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap)
401 (Faccessible_keymaps, where_is_internal): Remove unused vars.
402
403 * keyboard.c (cancel_hourglass_unwind): Return Qnil.
404
405 * frame.c (frame_name_fnn_p): Make len EMACS_INT.
406
407 * fileio.c (Fwrite_region): Remove unused var.
408
409 * dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
410 (adjust_frame_glyphs_for_window_redisplay): Remove unused ch_dim.
411
412 * composite.c (Fremove_list_of_text_properties): Declare.
413
414 * coding.c (inhibit_pre_post_conversion): Removed (unused).
415 (alloc_destination, produce_chars): Use EMACS_INT for byte/char
416 counts.
417 (coding_inherit_eol_type): Remove unused attrs.
418 (detect_coding): Cast arg of detect_eol.
419
420 * charset.c (syms_of_charset): Remove unused var p.
421 (find_charsets_in_text, Ffind_charset_region): Use EMACS_INT for
422 byte/char counts.
423
424 * casetab.c (set_case_table): Remove unused var.
425
426 * window.c (Fdisplay_buffer, Fframe_selected_window): Remove
427 unsued vars.
428
429 >>>>>>> 1.1.2.8
430 2003-09-26 Dave Love <fx@gnu.org>
431
432 * xterm.c (x_bitmap_mask): Declare.
433
434 2003-09-17 Dave Love <fx@gnu.org>
435
436 * xterm.c (x_term_init): Fix type error.
437
438 * lisp.h: Add Funibyte_char_to_multibyte.
439
440 * coding.c (Fread_coding_system): Fix arg of XSETSTRING.
441 (Fset_coding_system_priority): Doc fix.
442
443 * alloc.c: Sync with HEAD version.
444
445 * ccl.c (ccl_driver): Fix arg of CHARACTERP.
446
447 * indent.c (check_composition): Make start and end EMACS_INT.
448
449 * character.c (lisp_string_width): Make ignore and end EMACS_INT.
450
451 * xdisp.c (handle_composition_prop, check_point_in_composition):
452 Make buffer positions EMACS_INT.
453
454 * composite.c (find_composition, run_composition_function)
455 (update_compositions, Ffind_composition_internal): Make buffer
456 positions EMACS_INT.
457
458 * composite.h (find_composition, update_compositions): Make
459 position args EMACS_INT.
460
461 * keyboard.c (adjust_point_for_property): Make beg and end
462 EMACS_INT.
463
464 * intervals.c (get_property_and_range)
465 * intervals.h (get_property_and_range): Make start and end EMACS_INT.
466
467 * unexalpha.c: Don't include varargs.h.
468
469 2003-09-16 Dave Love <fx@gnu.org>
470
471 * coding.h (ENCODE_UTF_8): New.
472
473 * Makefile.in (gtkutil.o): Depend on coding.h.
474
475 * coding.c (Fset_coding_system_priority): Doc fix.
476
477 2003-09-16 Kenichi Handa <handa@m17n.org>
478
479 * fileio.c (Finsert_file_contents): Call setup_coding_system in
480 the case of auto saving.
481
482 2003-09-10 Andreas Schwab <schwab@suse.de>
483
484 * chartab.c (map_char_table): Protect `range' from GC.
485 (map_char_table_for_charset): Likewise.
486
487 2003-07-09 Kenichi Handa <handa@m17n.org>
488
489 * coding.c (decode_coding_sjis): Check bytes more rigidly.
490
491 2003-06-26 Kenichi Handa <handa@m17n.org>
492
493 * fileio.c (choose_write_coding_system): Return a decided coding
494 system.
495 (Fwrite_region): Set Vlast_coding_system_used to the return value
496 of choose_write_coding_system.
497
498 2003-06-06 Kenichi Handa <handa@m17n.org>
499
500 * charset.c (Fset_charset_priority): Pay attention to duplicated
501 arguments.
502
503 * coding.c (QCcategory): New variable.
504 (syms_of_coding): Defsym it. Set all elements of
505 Vcoding_category_table and their symbol values.
506 (Fset_coding_system_priority): Doc fix. Update symbol qvalues of
507 coding-category-XXX, and coding-category-list.
508 (Fdefine_coding_system_internal): Add category in the plist.
509
510 2003-06-05 Kenichi Handa <handa@m17n.org>
511
512 * callproc.c (Fcall_process): Handle carryover correctly.
513
514 * coding.c (decode_coding_iso_2022): Fix handling of invalid
515 bytes.
516 (raw_text_coding_system): Check NILP (coding_system).
517 (coding_inherit_eol_type): Check NILP (coding_system) and
518 NILP (parent).
519 (consume_chars): Fix for the case of raw-text.
520
521 * process.c (read_process_output): Handle carryover correctly.
522
523 2003-06-02 Dave Love <fx@gnu.org>
524
525 * regex.c (re_search_2): Fix last change.
526
527 2003-05-30 Kenichi Handa <handa@m17n.org>
528
529 * regex.c (GET_CHAR_BEFORE_2): Check multibyte, not
530 target_multibyte. Even in a unibyte case, return a converted
531 multibyte char.
532 (GET_CHAR_AFTER): New macro.
533 (PATFETCH): Translate via multibyte char.
534 (HANDLE_UNIBYTE_RANGE): Delete this macro.
535 (SETUP_MULTIBYTE_RANGE): New macro.
536 (regex_compile): Setup compiled code so that its multibyteness
537 matches that of a target. Fix the handling of "[X-YZ]" using
538 SETUP_MULTIBYTE_RANGE.
539 (analyse_first) <charset>: For filling fastmap for all multibyte
540 characters, don't check by BASE_LEADING_CODE_P.
541 (re_search_2): Don't check RE_TARGET_MULTIBYTE_P (bufp). It is
542 the same as RE_MULTIBYTE_P (bufp) now.
543 (mutually_exclusive_p): Check by (! multibyte ||
544 IS_REAL_ASCII (c)).
545 (TARGET_CHAR_AND_LENGTH): Delete this macro.
546 (TRANSLATE_VIA_MULTIBYTE): New macro.
547 (re_match_2_internal): Don't check RE_TARGET_MULTIBYTE_P (bufp).
548 It is the same as RE_MULTIBYTE_P (bufp) now.
549 <exactn>: Translate via multibyte.
550 <anychar>: Fetch a character by RE_STRING_CHAR_AND_LENGTH. Don't
551 translate it.
552 <charset, charset_not>: Fetch a character by
553 RE_STRING_CHAR_AND_LENGTH. Translate via multibyte.
554 <duplicate>: Call bcmp_translate with the last arg `multibyte'.
555 <wordbound, notwordbound, wordbeg, wordend, syntaxspec,
556 notsyntaxspec, categoryspec, notcategoryspec> Fetch a character
557 by GET_CHAR_AFTER.
558 (bcmp_translate): Likewise.
559
560 * search.c (compile_pattern): Check the member target_multibyte,
561 not the member multibyte of buf.
562
563 * lread.c (read1): While reading a string, set force_singlebyte
564 and force_multibyte correctly.
565
566 * charset.c (Fset_unibyte_charset): Fix setting up of
567 unibyte_to_multibyte_table.
568 (init_charset_once): Likewise.
569
570 2003-05-29 Kenichi Handa <handa@m17n.org>
571
572 * coding.c (setup_coding_system): If coding has
573 post-read-conversion or pre-write-conversion, set
574 CODING_REQUIRE_DECODING_MASK and CODING_REQUIRE_ENCODING_MASK
575 respectively.
576 (decode_coding_gap): Run post-read-conversion if any.
577
578 * fileio.c (Finsert_file_contents): Even if we read into a
579 unibyte buffer, check if we must decode the result or not.
580
581 2003-05-29 Kenichi Handa <handa@m17n.org>
582
583 * coding.c (make_conversion_work_buffer): Change the work buffer
584 name to the same one as that of Emacs 21.
585
586 2003-05-28 Kenichi Handa <handa@m17n.org>
587
588 * coding.h (make_conversion_work_buffer): Prototype adjusted.
589 (code_conversion_restore): Don't extern it.
590
591 * coding.c (detected_mask): Delete unused variable.
592 (decode_coding_iso_2022): Pay attention to the byte sequence of
593 CTEXT extended segment, and retain those bytes as is.
594 (decode_coding_ccl): Delete unused variable `valids'.
595 (setup_coding_system): Delete unused variable `category'.
596 (consume_chars): Delete unused variable `category'. Make it work
597 for non-multibyte case.
598 (make_conversion_work_buffer): Argument changed.
599 (saved_coding): Delete unused variable.
600 (code_conversion_restore): Don't check saved_coding->destination.
601 (code_conversion_save): New function.
602 (decode_coding_gap, encode_coding_gap): Call code_conversion_save
603 instead of record_unwind_protect.
604 (decode_coding_object, encode_coding_object): Likewise. Recover
605 PT.
606 (detect_coding_system): Delete unused variable `mask'.
607 (Fdefine_coding_system_internal): Delete unsed vaiable id;
608
609 * fileio.c (kill_workbuf_unwind): New function.
610 (Finsert_file_contents): On replacing, call
611 make_conversion_work_buffer with correct args, and call
612 record_unwind_protect with the first arg kill_workbuf_unwind.
613
614 * lisp.h (Fgenerate_new_buffer_name): EXFUN it.
615
616 2003-05-20 Kenichi Handa <handa@m17n.org>
617
618 * fontset.c (BASE_FONTSET_P): Check FONTSET_BASE, not
619 FONTSET_NAME.
620 (fontset_add): Fix for the case that TO is less than TO1.
621 (Ffontset_info): Don't use fallback fontset on checking the
622 default fontset.
623 (dump_fontset): New function for debugging.
624
625 * coding.c (Fdefine_coding_system_internal): Fix for the case that
626 coding_type is Qcharset.
627
628 2003-05-07 Kenichi Handa <handa@m17n.org>
629
630 * chartab.c (map_sub_char_table): New argument DEFAULT_VAL.
631 (map_char_table): Don't inherit the value from the parent on
632 initializing VAL. Adjusted for the above change.
633
634 2003-05-06 Kenichi Handa <handa@m17n.org>
635
636 * coding.c (Qsignature, Qendian): Delete these variables.
637 (syms_of_coding): Don't initialize them.
638 (CATEGORY_MASK_UTF_16_AUTO): New macro.
639 (detect_coding_utf_16): Add CATEGORY_MASK_UTF_16_AUTO in
640 detect_info->found.
641 (decode_coding_utf_16): Don't detect BOM here.
642 (encode_coding_utf_16): Produce BOM if CODING_UTF_16_BOM (coding)
643 is NOT utf_16_without_bom.
644 (setup_coding_system): For a coding system of type utf-16, check
645 if the attribute :endian is Qbig or not (not nil or not), and set
646 CODING_REQUIRE_DETECTION_MASK if BOM detection is required.
647 (detect_coding): If coding type is utf-16 and BOM detection is
648 required, detect it.
649 (Fdefine_coding_system_internal): For a coding system of type
650 utf-16, check if the attribute :endian is Qbig or not (not nil or
651 not).
652
653 2003-05-06 Kenichi Handa <handa@m17n.org>
654
655 * coding.c (coding_set_source): Fix for the case that the current
656 buffer is different from coding->src_object.
657 (decode_coding_object): Don't use the conversion work buffer if
658 DST_OBJECT is a buffer.
659
660 2003-05-04 Dave Love <fx@gnu.org>
661
662 * lread.c (read_emacs_mule_char) [len==2]: Index
663 emacs_mule_charset correctly.
664
665 2003-02-16 Dave Love <fx@gnu.org>
666
667 * coding.c (Qbig5, Vbig5_coding_system, CATEGORY_MASK_BIG5)
668 (detect_coding_big5, decode_coding_big5, encode_coding_big5)
669 (Fdecode_big5_char, Fencode_big5_char): Deleted. (Big5 no longer
670 treated specially.)
671 (setup_coding_system, coding_category, CATEGORY_MASK_ANY)
672 (detected_mask): Remove Big5 bits.
673
674 2003-04-09 Kenichi Handa <handa@m17n.org>
675
676 The following changes are to make the font rescaling facility
677 compatible with Emacs 21.
678
679 * xfaces.c (Vface_font_rescale_alist): Renamed from
680 Vface_resizing_fonts.
681 (struct font_name): Rename member resizing_ratio to rescale_ratio.
682 (font_rescale_ratio): Renamed from font_resizing_ratio.
683 (split_font_name): Set font->rescale_ratio.
684 (better_font_p): Pay attention to font->rescale_ratio.
685 (build_scalable_font_name): Likewise. Change RESX, and RESY
686 fields.
687 (syms_of_xfaces): Declare Vface_font_rescale_alist as a Lisp
688 variable.
689
690 2003-03-28 Kenichi Handa <handa@m17n.org>
691
692 * coding.c (Qutf_16_be_nosig, Qutf_16_be, Qutf_16_le_nosig)
693 (Qutf_16_le): Remove these variables.
694 (syms_of_coding): Don't DEFSYM them.
695 (decode_coding_utf_16): Fix handling of BOM.
696 (encode_coding_utf_16): Fix handling of BOM.
697
698 2003-03-14 Kenichi Handa <handa@m17n.org>
699
700 * fileio.c (Finsert_file_contents): On replacing, before decoding
701 the file into the work buffer, set point of the work buffer to the
702 end.
703
704 2003-02-13 Dave Love <fx@gnu.org>
705
706 * coding.c (Fcheck_coding_systems_region): Fix type errors.
707
708 2003-02-04 Dave Love <fx@gnu.org>
709
710 * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
711 and fix C types.
712
713 2003-01-31 Kenichi Handa <handa@m17n.org>
714
715 * xdisp.c (SKIP_GLYPHS): New macro.
716 (set_cursor_from_row): Pay attention to string display properties.
717
718 * category.c (copy_category_entry): Fix for the case that RANGE
719 is an integer.
720
721 * xterm.c (x_encode_char): Call ccl_driver with the last arg Qnil.
722
723 * w32term.c (w32_encode_char): Call ccl_driver with the last arg
724 Qnil.
725
726 2003-01-30 Kenichi Handa <handa@m17n.org>
727
728 * charset.c (Fcharset_id_internal): New function.
729 (syms_of_charset): Defsubr it.
730
731 * coding.c (decode_coding_ccl, encode_coding_ccl): Call ccl_driver
732 with the last arg charset_list acquired from coding.
733 (Fdefine_coding_system_internal): For ccl-based coding system, fix
734 the attribute coding_attr_ccl_valids.
735
736 * coding.h (enum define_coding_ccl_arg_index): Set the first
737 member coding_arg_ccl_decoder to coding_arg_max.
738
739 * ccl.h (ccl_driver): Prototype adjusted.
740
741 * ccl.c (CCL_DECODE_CHAR, CCL_ENCODE_CHAR): New macros.
742 (ccl_driver): New arg CHARSET_LIST. Use the above macros instead
743 of DECODE_CAHR, ENCODE_CHAR, CHAR_CHARSET.
744 (Fccl_execute): Call ccl_driver with the last arg Qnil.
745 (Fccl_execute_on_string): Likewise.
746
747 2003-01-11 Kenichi Handa <handa@m17n.org>
748
749 * charset.h (ENCODE_CHAR): If the method is SUBSET or SUPERSET,
750 call encode_char.
751
752 * charset.c (encode_char): Fix handling of methods SUBSET and
753 SUPERSET.
754
755 * xterm.c (x_new_fontset): Fix previous change.
756
757 2003-01-10 Dave Love <fx@gnu.org>
758
759 * composite.c (syms_of_composite): Make composition_hash_table
760 weak.
761
762 2003-01-10 Kenichi Handa <handa@m17n.org>
763
764 * dispextern.h (check_face_attributes, generate_ascii_font_name)
765 (font_name_registry): Don't extern them.
766 (split_font_name_into_vector, build_font_name_from_vector): Extern
767 them.
768
769 * fontset.h (Qfontset): Don't extern it.
770 (new_fontset_from_font_name): Extern it.
771
772 * fontset.c: Give 8 extra slots to fontset objects.
773 (Qfontset_info): New variable.
774 (syms_of_fontset): Defsym it.
775 (FONTSET_FALLBACK): New macro.
776 (fontset_face): Try also the default fontset.
777 (make_fontset): Realize a fallback fontset from the default
778 fontset.
779 (generate_ascii_font_name): Moved from xfaces.c. Rewritten by
780 using split_font_name_into_vector and build_font_name_from_vector.
781 (Fset_fontset_font): Access the elements of font_spec by enum
782 FONT_SPEC_INDEX. If font_spec is a string, extract the registry
783 name by using split_font_name_into_vector.
784 (Fnew_fontset): If no ASCII font is specified in FONTLIST,
785 generate a proper font name from the fontset name. Update
786 Vfontset_alias_alist.
787 (n_auto_fontsets): New variable.
788 (new_fontset_from_font_name): New function.
789 (Ffont_info): Store the information about fonts generated from the
790 default fontset in the first extra slot of the returned
791 char-table.
792
793 * xfaces.c (generate_ascii_font_name): Moved to fontset.c.
794 (font_name_registry): Function deleted.
795 (split_font_name_into_vector): New function.
796 (build_font_name_from_vector): New function.
797 (font_list): The argument REGISTRY is now a list of registry
798 names.
799 (choose_face_font): If we are choosing an ASCII font, and ATTRS
800 specifies an explicit font name, return the name as is. Make a
801 list of registy names.
802
803 * xfns.c (x_set_font, x_create_tip_frame): Adjusted to the change
804 of x_new_fontset.
805 (Fx_create_frame): Don't call x_new_fontset here. Just use
806 x_list_fonts to check the existence of fonts.
807
808 * xterm.h (x_new_fontset): Prototype adjusted.
809
810 * xterm.c (x_new_fontset): Change the arg FONTSETNAME to Lisp
811 string. Use new_fontset_from_font_name to create a fontset from a
812 font name.
813
814 2003-01-07 Dave Love <fx@gnu.org>
815
816 * Makefile.in: Fix some dependencies.
817
818 * keymap.c (Fapropos_internal): Don't gcpro apropos_predicate but
819 set it to nil before returning.
820
821 * composite.c (update_compositions): Fix type error.
822
823 * syntax.c (skip_chars, skip_syntaxes): Fix type errors.
824
825 2003-01-07 Kenichi Handa <handa@etl.go.jp>
826
827 * xterm.c (x_new_font): Optimize for the case that the font is
828 already set for the frame.
829
830 2003-01-06 Kenichi Handa <handa@m17n.org>
831
832 * chartab.c (char_table_ascii): Check if the char table contents
833 is sub-char-table or not.
834 (char_table_set): Fix argument to char_table_ascii.
835 (char_table_set_range): Likewise.
836
837 * coding.c (CATEGORY_MASK_RAW_TEXT): New macro.
838 (detect_coding_utf_8, detect_coding_utf_16)
839 (detect_coding_emacs_mule, detect_coding_iso_2022)
840 (detect_coding_sjis, detect_coding_big5)
841 (detect_coding_ccl, detect_coding_charset): Change argument MASK
842 to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
843 sequence is valid in this coding system. Callers changed.
844 (MAX_ANNOTATION_LENGTH): New macro.
845 (ADD_ANNOTATION_DATA): New macro.
846 (ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
847 ADD_ANNOTATION_DATA. The format of annotation data changed.
848 (ADD_CHARSET_DATA): New macro.
849 (emacs_mule_char): New argument ID. Callers changed.
850 (decode_coding_emacs_mule, decode_coding_iso_2022)
851 (decode_coding_sjis, decode_coding_big5, decode_coding_charset):
852 Produce charset annotation data in coding->charbuf.
853 (encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
854 to charset annotation data in coding->charbuf.
855 (setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
856 coding->common_flags if the coding system is iso-2022 based and
857 uses designation.
858 (produce_composition): Adjusted for the new annotation data
859 format.
860 (produce_charset): New function.
861 (produce_annotation): Handle charset annotation.
862 (handle_composition_annotation, handle_charset_annotation): New
863 functions.
864 (consume_chars): Handle charset annotation. Utilize the above two
865 functions.
866 (encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
867 buffer, get the deleted text as a string and set
868 coding->src_object to that string.
869 (detect_coding, detect_coding_system): Use the new struct
870 coding_detection_info.
871
872 * coding.h (struct coding_detection_info): New structure.
873 (struct coding_system): Prototype of the member `detector'
874 adjusted.
875 (CODING_ANNOTATE_CHARSET_MASK): New macro.
876
877 2003-01-06 Kenichi Handa <handa@etl.go.jp>
878
879 * insdel.c (insert_from_gap): Fix argument to offset_intervals.
880
881 2003-01-03 Dave Love <fx@gnu.org>
882
883 * keymap.c (apropos_predicate, apropos_accumulate): Declare
884 static.
885 (Fapropos_internal): Don't gcpro apropos_accumulate. Set result
886 to new local and nullify apropos_accumulate before returning.
887 (syms_of_keymap): Staticpro and initialize apropos_accumulate.
888
889 2002-12-05 Kenichi Handa <handa@m17n.org>
890
891 * charset.c (Fdefine_charset_internal): Setup charset.fast_map
892 correctly.
893
894 2002-11-26 Dave Love <fx@gnu.org>
895
896 * fns.c (Flanginfo): Call synchronize_system_time_locale.
897
898 2002-11-07 Kenichi Handa <handa@m17n.org>
899
900 The following changes are to make character composition happen
901 automatically on displaying.
902
903 * Makefile.in (lisp, shortlisp): Add composite.elc
904
905 * composite.h (Qauto_composed, Vauto_composition_function,
906 Qauto_composition_function): Extern them.
907
908 * composite.c (Vcomposition_function_table,
909 Qcomposition_function_table): Delete variables.
910 (Qauto_composed, Vauto_composition_function,
911 Qauto_composition_function): New variables.
912 (run_composition_function): Don't call
913 compose-chars-after-function.
914 (update_compositions): Clear `auto-composed' text property.
915 (compose_chars_in_text): Delete this function.
916 (syms_of_composite): Staticpro Qauto_composed and
917 Qauto_composition_function. Declare Vauto_composition_function as
918 a Lisp variable.
919
920 * dispextern.h (enum prop_idx): Add member AUTO_COMPOSED_PROP_IDX.
921
922 * xdisp.c (it_props): Add an entry for Qauto_composed.
923 (handle_auto_composed_prop): New function.
924
925 * xselect.c (selection_data_to_lisp_data): Don't call
926 compose_chars_in_text.
927
928 2002-11-06 Dave Love <fx@gnu.org>
929
930 * keyboard.c (read_char): Modify checking around use of
931 Vkeyboard_translate_table.
932
933 * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
934 and fix C types.
935
936 2002-11-06 Kenichi Handa <handa@m17n.org>
937
938 * coding.c (decode_coding_utf_8): When eol_type is Qdos, handle
939 the case that the last byte is '\r' correctly.
940 (decode_coding_emacs_mule): Likewise.
941 (decode_coding_iso_2022): Likewise.
942 (decode_coding_sjis): Likewise.
943 (decode_coding_big5): Likewise.
944 (decode_coding_charset): Likewise.
945 (produce_chars): Likewise.
946 (decode_coding): Flushing out the unprocessed data correctly.
947 (decode_coding_gap): Set CODING_MODE_LAST_BLOCK bit of
948 coding->mode.
949
950 2002-10-31 Dave Love <fx@gnu.org>
951
952 * xterm.c (XTread_socket): Fix changes for defined keysyms. Add
953 XK_ISO... case.
954 (xaw_scroll_callback): Revert last change.
955
956 2002-10-30 Kenichi Handa <handa@m17n.org>
957
958 * charset.c (Fset_charset_priority): Update
959 Viso_2022_charset_list.
960
961 2002-10-29 Kenichi Handa <handa@m17n.org>
962
963 * xfaces.c (Vface_resizing_fonts): New variable.
964 (struct font_name): New member `resizing_ratio'.
965 (font_resizing_ratio): New function.
966 (split_font_name): Set font->resizing_ratio.
967 (better_font_p): Pay attention to font->resizing_ratio.
968 (build_scalable_font_name): Likewise. Don't change POINT_SIZE,
969 RESX, and RESY fields.
970 (try_alternative_families): Try scalable fonts if
971 Vscalable_fonts_allowed is not Qt.
972 (syms_of_xfaces): Declare Vface_resizing_fonts as a Lisp variable.
973
974 2002-10-29 Dave Love <fx@gnu.org>
975
976 * xterm.c (xaw_scroll_callback): Cast correctly.
977
978 2002-10-28 Dave Love <fx@gnu.org>
979
980 * keyboard.c (lispy_accent_codes, lispy_accent_keys): Extend.
981 (lispy_kana_keys): Comment out.
982 (make_lispy_event) [XK_kana_A]: Comment out.
983
984 * xterm.c (xaw_scroll_callback): Cast call_data.
985 (XTread_socket): Deal with ASCII keysyms.
986 (syms_of_xterm) <Vx_keysym_table>: Fix args of make_hash_table.
987
988 2002-10-27 Dave Love <fx@gnu.org>
989
990 * xterm.c (Vx_keysym_table): New.
991 (syms_of_xterm): Initialize it.
992 (XTread_socket): Use it.
993 From head: Eliminate incorrect optimization that tried to avoid
994 decoding the output of X*LookupString.
995 (x_get_font_repertory): Delete charset declaration.
996
997 2002-10-16 Kenichi Handa <handa@m17n.org>
998
999 * coding.c (detect_coding): Fix previous change.
1000 (detect_coding_charset): If only ASCII bytes are found, return 0.
1001 (detect_coding_system): Fix previous change.
1002 (Fdefine_coding_system_internal): Setup CODING_ATTR_ASCII_COMPAT
1003 (attrs) correctly.
1004
1005 2002-10-15 Dave Love <fx@gnu.org>
1006
1007 * coding.c (Fcheck_coding_system): Doc fix.
1008
1009 * editfns.c (Finsert_byte): Return a proper value.
1010
1011 2002-10-14 Kenichi Handa <handa@etl.go.jp>
1012
1013 * coding.c (decode_coding): Fix args to translate_chars. Pay
1014 attention to Vstandard_translation_table_for_decode.
1015 (encode_coding): Fix args to translate_chars. Pay attention to
1016 Vstandard_translation_table_for_encode.
1017
1018 * data.c (Faset): Check NEWELT by ASCII_CHAR_P, not by
1019 SINGLE_BYTE_CHAR_P.
1020
1021 * editfns.c (general_insert_function): Check VAL by ASCII_CHAR_P,
1022 not by SINGLE_BYTE_CHAR_P.
1023
1024 * fns.c (concat): Check CH by ASCII_CHAR_P, not by
1025 SINGLE_BYTE_CHAR_P.
1026
1027 * insdel.c (copy_text): Check C by ASCII_CHAR_P, not by
1028 SINGLE_BYTE_CHAR_P.
1029
1030 * keymap.c (Ftext_char_description): Check C by ASCII_CHAR_P, not
1031 by SINGLE_BYTE_CHAR_P.
1032
1033 * search.c (Freplace_match): Check C by ASCII_CHAR_P, not by
1034 SINGLE_BYTE_CHAR_P.
1035
1036 2002-10-14 Dave Love <fx@gnu.org>
1037
1038 * fns.c (Fstring_as_multibyte, Fstring_to_multibyte): Doc fix.
1039
1040 2002-10-10 Dave Love <fx@gnu.org>
1041
1042 * fns.c (Flanginfo): Fix typo.
1043
1044 * unexelf.c (unexec): Make last change conditional on Irix 6.5.
1045
1046 2002-10-10 Kenichi Handa <handa@m17n.org>
1047
1048 * coding.c (detect_coding_utf_8): Check incomplete byte sequence.
1049 Don't update *mask when correctly detected.
1050 (detect_coding_utf_16): Likewise.
1051 (detect_coding_emacs_mule): Likewise.
1052 (detect_coding_iso_2022): Likewise.
1053 (detect_coding_sjis): Likewise.
1054 (detect_coding_big5): Likewise.
1055 (detect_coding_ccl): Likewise.
1056 (decode_coding_sjis): Fix decoding of katakana-jisx0201.
1057 (detect_eol): Delete the argument CODING, and add the argument
1058 CATEGORY.
1059 (detect_coding): Adjusted for the changes above.
1060 (detect_coding_system): Likewise.
1061
1062 2002-10-09 Kenichi Handa <handa@m17n.org>
1063
1064 * character.c (char_string): Renamed from
1065 char_string_with_unification. Pay attention to
1066 CHAR_MODIFIER_MASK.
1067 (string_char): Renamed from string_char.
1068
1069 * character.h (CHAR_STRING): Call char_string if C is greater than
1070 MAX_3_BYTE_CHAR.
1071 (CHAR_STRING_ADVANCE): Likewise.
1072 (STRING_CHAR): Call string_char instead of
1073 string_char_with_unification.
1074 (STRING_CHAR_AND_LENGTH): Likewise.
1075 (STRING_CHAR_ADVANCE): Likewise.
1076
1077 2002-10-09 Dave Love <fx@gnu.org>
1078
1079 * coding.c (decode_coding_utf_8): Treat surrogates as invalid.
1080
1081 2002-10-07 Kenichi Handa <handa@m17n.org>
1082
1083 * keymap.c (push_key_description): Pay attention to
1084 force_multibyte.
1085
1086 * regex.c (re_search_2): Fix for the case of unibyte buffer.
1087
1088 2002-10-06 Dave Love <fx@gnu.org>
1089
1090 * charset.c (define_charset_internal): Rename `supprementary'.
1091
1092 * Makefile.in (lisp, shortlisp): Remove latin-N.
1093
1094 2002-10-05 Dave Love <fx@gnu.org>
1095
1096 * xfns.c (x_window, x_window): Use use_xim.
1097
1098 * xterm.c (use_xim): Initialize.
1099 (xim_open_dpy, xim_initialize, xim_close_dpy): Use use_xim.
1100 (x_term_init): Maybe set use_xim.
1101
1102 * xterm.h (use_xim) [HAVE_X_I18N]: Declare.
1103
1104 2002-10-01 Kenichi Handa <handa@m17n.org>
1105
1106 * search.c (search_buffer): Fix case-fold-search of multibyte
1107 characters.
1108 (boyer_moore): Rename the last argument to char_high_bits.
1109
1110 2002-09-27 Kenichi Handa <handa@etl.go.jp>
1111
1112 * xdisp.c (display_string): Fix for the case of zero width glyph.
1113
1114 * xfns.c (x_set_font): Change the error message of the case that
1115 x_new_fontset returns Qt.
1116
1117 * xfaces.c (set_lface_from_font_name): Reject the default fontset.
1118 (Finternal_set_lisp_face_attribute): Use signal_error for the
1119 error of invalid fontset.
1120
1121 * xterm.c (x_new_fontset): If FONTSETNAME specifies the default
1122 fontset, return Qt.
1123
1124 2002-09-19 Kenichi Handa <handa@etl.go.jp>
1125
1126 * regex.c (re_search_2): Fix previous change.
1127
1128 2002-09-18 Kenichi Handa <handa@etl.go.jp>
1129
1130 * syntax.c (skip_syntaxes): Fix previous change.
1131
1132 2002-09-13 Kenichi Handa <handa@etl.go.jp>
1133
1134 * syntax.c (skip_chars): Fix previous change.
1135 (skip_syntaxes): Fix previous change.
1136
1137 2002-09-06 Dave Love <fx@gnu.org>
1138
1139 * config.in: Restore it.
1140
1141 2002-09-05 Dave Love <fx@gnu.org>
1142
1143 * config.in: Removed (now auto-generated).
1144
1145 * s/usg5-4.h: Fix last change.
1146
1147 * unexelf.c (unexec): Make .got handling not SGI-specific.
1148
1149 * syntax.c (syms_of_syntax) <multibyte-syntax-as-symbol>: Doc fix.
1150
1151 * regex.c: Use `ifdef HAVE_ALLOCA_H', not `if HAVE_ALLOCA_H'.
1152
1153 * keyboard.c (read_key_sequence): Fix type error.
1154
1155 * buffer.c (Fset_buffer_multibyte, Fset_buffer_multibyte): Fix
1156 type error.
1157
1158 * fontset.c (fontset_add): Return Lisp_Object.
1159
1160 2002-09-03 Dave Love <fx@gnu.org>
1161
1162 * charset.h (charset_ordered_list_tick): Declare extern.
1163
1164 2002-09-03 Kenichi Handa <handa@etl.go.jp>
1165
1166 The following changes (and some of 2002-08-20 changes of mine) are
1167 for handling syntax, category, and case conversion for unibyte
1168 characters by converting them to multibyte on the fly. With these
1169 changes, we don't have to setup syntax and case tables for unibyte
1170 characters in each language environment.
1171
1172 * abbrev.c (Fexpand_abbrev): Convert a unibyte character to
1173 multibyte if necessary.
1174
1175 * bytecode.c (Fbyte_code): Likewise.
1176
1177 * character.h (LEADING_CODE_LATIN_1_MIN)
1178 (LEADING_CODE_LATIN_1_MAX): New macros.
1179 (unibyte_to_multibyte_table): Extern it.
1180 (unibyte_char_to_multibyte): New macro.
1181 (MAKE_CHAR_MULTIBYTE): Use unibyte_to_multibyte_table.
1182 (CHAR_LEADING_CODE): New macro.
1183 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE): New macro.
1184
1185 * character.c (unibyte_to_multibyte_table): New variable.
1186 (unibyte_char_to_multibyte): Move to character.h and defined as
1187 macro.
1188 (multibyte_char_to_unibyte): If C is an eight-bit character,
1189 convert it to the corresponding byte value.
1190
1191 * charset.c (Fset_unibyte_charset): If the dimension of CHARSET is
1192 not 1, singals an error. Update the elements of
1193 unibyte_to_multibyte_table.
1194 (init_charset_once): Initialize unibyte_to_multibyte_table.
1195 (syms_of_charset): Define the charset `iso-8859-1'.
1196
1197 * casefiddle.c (casify_object): Fix previous change.
1198
1199 * cmds.c (internal_self_insert): In a multibyte buffer, insert C
1200 as is without converting it to unibyte. In a unibyte buffer,
1201 convert C to multibyte before checking the syntax.
1202
1203 * lisp.h (unibyte_char_to_multibyte): Extern deleted.
1204
1205 * minibuf.c (Fminibuffer_complete_word): Use the macro
1206 FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
1207
1208 * regex.h (struct re_pattern_buffer): New member target_multibyte.
1209
1210 * regex.c (RE_TARGET_MULTIBYTE_P): New macro.
1211 (GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte. If
1212 that is zero, convert an eight-bit char to multibyte.
1213 (MAKE_CHAR_MULTIBYTE, CHAR_LEADING_CODE): New dummy new macros for
1214 non-emacs case.
1215 (PATFETCH): Convert an eight-bit char to multibyte.
1216 (HANDLE_UNIBYTE_RANGE): New macro.
1217 (regex_compile): Setup the compiled pattern for multibyte chars
1218 even if the given regex string is unibyte. Use PATFETCH_RAW
1219 instead of PATFETCH in many places. To handle `charset'
1220 specification of unibyte, call HANDLE_UNIBYTE_RANGE. Use bitmap
1221 only for ASCII chars.
1222 (analyse_first) <exactn>: Simplified because the compiled pattern
1223 is multibyte.
1224 <charset_not>: Setup fastmap from bitmap only for ASCII chars.
1225 <charset>: Use CHAR_LEADING_CODE to get leading codes.
1226 <categoryspec>: If multibyte, setup fastmap only for ASCII chars
1227 here.
1228 (re_compile_fastmap) [emacs]: Call analyse_first with the arg
1229 multibyte always 1.
1230 (re_search_2) In emacs, set the locale variable multibyte to 1,
1231 otherwise to 0. New local variable target_multibyte. Check it
1232 to decide the multibyteness of STR1 and STR2. If
1233 target_multibyte is zero, convert unibyte chars to multibyte
1234 before translating and checking fastmap.
1235 (TARGET_CHAR_AND_LENGTH): New macro.
1236 (re_match_2_internal): In emacs, set the locale variable multibyte
1237 to 1, otherwise to 0. New local variable target_multibyte. Check
1238 it to decide the multibyteness of STR1 and STR2. Use
1239 TARGET_CHAR_AND_LENGTH to fetch a character from D.
1240 <charset, charset_not>: If multibyte is nonzero, check fastmap
1241 only for ASCII chars. Call bcmp_translate with
1242 target_multibyte, not with multibyte.
1243 <begline>: Declare the local variable C as `unsigned'.
1244 (bcmp_translate): Change the last arg name to target_multibyte.
1245
1246 * search.c (compile_pattern_1): Don't adjust the multibyteness of
1247 the regexp pattern and the matching target. Set cp->buf.multibyte
1248 to the multibyteness of the regexp pattern. Set
1249 cp->but.target_multibyte to the multibyteness of the matching
1250 target.
1251 (wordify): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE instead of
1252 FETCH_STRING_CHAR_ADVANCE.
1253 (Freplace_match): Convert unibyte chars to multibyte.
1254
1255 * syntax.c (char_quoted): Use FETCH_CHAR_AS_MULTIBYTE to convert
1256 unibyte chars to multibyte.
1257 (back_comment): Likewise.
1258 (scan_words): Likewise.
1259 (skip_chars): The arg syntaxp is deleted, and the code for
1260 handling syntaxes is moved to skip_syntaxes. Callers changed.
1261 Fix the case that the multibyteness of STRING and the current
1262 buffer doesn't match.
1263 (skip_syntaxes): New function.
1264 (SYNTAX_WITH_MULTIBYTE_CHECK): Check C by ASCII_CHAR_P, not by
1265 SINGLE_BYTE_CHAR_P.
1266 (Fforward_comment): Use FETCH_CHAR_AS_MULTIBYTE to convert unibyte
1267 chars to multibyte.
1268 (scan_lists): Likewise.
1269 (Fbackward_prefix_chars): Likewise.
1270 (scan_sexps_forward): Likewise.
1271
1272 2002-08-23 Kenichi Handa <handa@etl.go.jp>
1273
1274 * xfaces.c (QCfontset): New variable.
1275 (LFACE_FONTSET): New macro.
1276 (check_lface_attrs): Check also LFACE_FONTSET_INDEX.
1277 (set_lface_from_font_name): Setup LFACE_FONTSET (lface).
1278 (Finternal_set_lisp_face_attribute): Handle QCfontset.
1279 (Finternal_get_lisp_face_attribute): Likewise.
1280 (lface_same_font_attributes_p): Fix checking of LFACE_FONT_INDEX,
1281 check also LFACE_FONTSET_INDEX.
1282 (face_fontset): Check attrs[LFACE_FONTSET_INDEX], not
1283 attrs[LFACE_FONT_INDEX].
1284 (syms_of_xfaces): Intern and staticpro QCfontset.
1285
1286 * dispextern.h (enum lface_attribute_index): New member
1287 LFACE_FONTSET_INDEX.
1288
1289 * fns.c (base64_encode_1): Handle eight-bit chars correctly.
1290
1291 2002-08-21 Kenichi Handa <handa@etl.go.jp>
1292
1293 * coding.c (coding_set_destination): Fix coding->destination for
1294 the case converting a region.
1295 (encode_coding_utf_8): Encode eight-bit chars as single byte.
1296 (encode_coding_object): Fix coding->dst_pos and
1297 coding->dst_pos_byte for the case converting a region.
1298
1299 * insdel.c (insert_from_gap): Make it work even if PT != GTP.
1300
1301 * character.h (BYTE8_STRING): New macro.
1302
1303 * fns.c (base64_decode_1): Insert eight-bit chars correctly.
1304
1305 2002-08-20 Kenichi Handa <handa@etl.go.jp>
1306
1307 * xdisp.c (get_next_display_element): Don't display unibyte 8-bit
1308 characters by octal form.
1309
1310 * abbrev.c (Fexpand_abbrev): Fix for the multibyte case.
1311
1312 * buffer.h (_fetch_multibyte_char_len): Extern deleted.
1313 (FETCH_MULTIBYTE_CHAR): Don't use _fetch_multibyte_char_len.
1314 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
1315 (FETCH_CHAR_AS_MULTIBYTE): New macro.
1316
1317 * casetab.c (set_canon, set_identity, shuffle): Simplified.
1318
1319 * casefiddle.c (casify_object): Simplified. Handle the case that
1320 the case conversion change the byte length.
1321 (casify_region): Likewise
1322
1323 * character.h (MAKE_CHAR_UNIBYTE, MAKE_CHAR_MULTIBYTE): New
1324 macros.
1325
1326 * character.c (_fetch_multibyte_char_len): This variable deleted.
1327 (syms_of_character): Setup Vprintable_chars.
1328
1329 * editfns.c (Fchar_equal): Fix for the unibyte case.
1330 (Finsert_byte): New function.
1331 (syms_of_editfns): Defsubr it.
1332
1333 * keyboard.c (read_key_sequence): Use ~CHAR_MODIFIER_MASK instead
1334 of direct code 0x3ffff.
1335
1336 * search.c (Freplace_match): Fix for the unibyte case.
1337
1338 2002-08-19 Kenichi Handa <handa@etl.go.jp>
1339
1340 * lread.c (safe_to_load_p): Fix the logic.
1341
1342 * syntax.c (scan_words): Don't treat characters belonging to
1343 different scripts as constituting a word.
1344
1345 * editfns.c (Fformat): Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
1346
1347 * fontset.c (Fset_fontset_font): Treat `ascii' as charset, not
1348 script.
1349
1350 * emacs.c (main): In the case of --unibyte, instead of aborting on
1351 finding non-empty buffer, make it unibyte.
1352
1353 2002-08-18 Kenichi Handa <handa@etl.go.jp>
1354
1355 * xterm.c (x_new_fontset): Call `create-fontset-from-ascii-font'
1356 to create a fontset.
1357
1358 2002-08-18 Dave Love <fx@gnu.org>
1359
1360 * character.c (Funibyte_char_to_multibyte): Doc fix.
1361
1362 * xfns.c [HAVE_STDLIB_H]: Fix last change.
1363
1364 2002-08-15 Kenichi Handa <handa@etl.go.jp>
1365
1366 * fontset.c (fontset_add): Make the type `int'.
1367 (fontset_id_valid_p): Define it if FONTSET_DEBUG is defined.
1368
1369 * character.c (unibyte_char_to_multibyte): Refer to
1370 charset_unibyte, not charset_primary.
1371 (multibyte_char_to_unibyte): Likewise.
1372 (Funibyte_char_to_multibyte): Likewise.
1373
1374 * charset.h: (charset_unibyte): Extern it instead of
1375 charset_primary.
1376
1377 * charset.c (charset_unibyte): Renamed from charset_primary.
1378 (Funibyte_charset): Renamed from Fprimary_charset.
1379 (Fset_unibyte_charset): Renamed from Fset_primary_charset.
1380 (syms_of_charset): Adjusted for the above changes.
1381
1382 * w32term.c (x_produce_glyphs): Use ASCII_CHAR_P, not
1383 SINGLE_BYTE_CHAR_P. Fix the logic of handling non-ASCII char when
1384 it->multibyte_p is zero.
1385
1386 * lisp.h (nonascii_insert_offset, Vnonascii_translation_table):
1387 Extern deleted.
1388
1389 2002-08-08 Kenichi Handa <handa@etl.go.jp>
1390
1391 * coding.c (Fdefine_coding_system_internal): Fix category setting
1392 for a coding system of type iso-2022.
1393
1394 2002-08-02 Kenichi Handa <handa@etl.go.jp>
1395
1396 * fontset.h (FS_LOAD_FONT): Call fs_load_font with the arg CHARSET
1397 -1.
1398
1399 2002-08-01 Kenichi Handa <handa@etl.go.jp>
1400
1401 * syntax.c (Vnext_word_boundary_function_table): New variable.
1402 (syms_of_syntax): Declare it as a Lisp variable.
1403 (scan_words): Call functions in Vnext_word_boundary_function_table
1404 if any.
1405
1406 * xterm.c (x_load_font): Initialize fontp->fontset to -1.
1407
1408 * fontset.c (fs_load_font): If fontp->charset is not negative,
1409 return fontp without setting its members.
1410
1411 2002-07-31 Dave Love <fx@gnu.org>
1412
1413 * config.in: Generated with autoheader.
1414
1415 * xfns.c [HAVE_STDLIB_H]: Change logic (instead of fixing typo).
1416
1417 * m/sparc.h (HAVE_ALLOCA): Delete.
1418
1419 * s/irix6-5.h: Don't include strings.h.
1420 (bcopy, bzero, bcmp): Don't undef.
1421
1422 * s/irix6-0.h (bcopy, bzero, bcmp): Don't undef.
1423
1424 * s/usg5-4.h (NO_SIOCTL_H): Don't define.
1425 (TIOCSIGSEND): Don't test IRIX6.
1426 (bcopy, bzero, bcmp): Define conditionally.
1427
1428 2002-07-31 Kenichi Handa <handa@etl.go.jp>
1429
1430 * buffer.c (Qas, Qmake, Qto): New variables.
1431 (Fset_buffer_multibyte): New optional arg METHOD. Caller changed.
1432 (syms_of_buffer): Intern and staticpro Qas, Qmake, and Qto.
1433
1434 * callproc.c (Fcall_process): Don't call insert_1_both directly if
1435 we are inserting a process output into a multibyte buffer.
1436
1437 * character.h (CHAR_TO_BYTE8): If C is not eight-bit char, call
1438 multibyte_char_to_unibyte.
1439
1440 * character.c (Funibyte_char_to_multibyte): If C can't be decoded
1441 by the primary charset, make it eight-bit char.
1442 (Fmultibyte_char_to_unibyte): Call CHAR_TO_BYTE8.
1443
1444 * charset.c: (charset_eight_bit, Qeight_bit_control): New
1445 variables.
1446 (charset_8_bit__control, charset_8_bit_graphic,
1447 Qeight_bit_control, Qeight_bit_graphic): These variables deleted.
1448 (define_charset_internal): New function.
1449 (syms_of_charset): Call define_charset_internal for pre-defined
1450 charsets.
1451
1452 * charset.h (charset_8_bit): Extern it.
1453
1454 * coding.c (make_conversion_work_buffer): Adjusted for the change
1455 of Fset_buffer_multibyte.
1456 (encode_coding_raw_text): Increment p0 in the loop.
1457
1458 * lisp.h (Fset_buffer_multibyte): Prototype adjusted.
1459
1460 * xdisp.c (setup_echo_area_for_printing, set_message_1): Adjusted
1461 for the change of Fset_buffer_multibyte.
1462
1463 * fns.c (Fstring_to_multibyte): New function.
1464 (syms_of_fns): Declare Fstring_to_multibyte as Lisp subroutine.
1465
1466 2002-07-30 Dave Love <fx@gnu.org>
1467
1468 * xfns.c (x_put_x_image): Declare args.
1469
1470 * xfaces.c (font_name_registry, choose_face_font): Delete unused
1471 vars.
1472 (try_font_list): Declare an arg.
1473
1474 * xdisp.c (message2_nolog, set_message): Declare an arg.
1475
1476 * terminfo.c (tparam): Declare an arg. Use P_ to declare tparm.
1477
1478 * syntax.c (scan_sexps_forward): Declare an arg.
1479
1480 * scroll.c (calculate_scrolling, calculate_direct_scrolling):
1481 Declare an arg.
1482
1483 * lisp.h (Fnew_fontset): Declare.
1484
1485 * keymap.c (push_key_description): Call CHARACTERP correctly.
1486
1487 * fontset.c (fontset_add): Declare args. Call make_number
1488 correctly.
1489 (face_for_char): Delete unused vars.
1490 (Fset_fontset_font): Doc fix. Delete unused vars.
1491
1492 * doc.c (Fsubstitute_command_keys): Delete unused vars.
1493
1494 * composite.c (update_compositions): Declare arg.
1495
1496 * cm.c (calccost, cmgoto): Declare args.
1497
1498 * charset.c: Remove `emacs' conditional. Doc fixes.
1499 (map_char_table_for_charset): Declare.
1500
1501 * character.c (syms_of_character) <translation-table-vector>: Doc
1502 fix.
1503
1504 * ccl.c: Remove `emacs' conditional. Include hash table stuff
1505 from trunk.
1506
1507 2002-07-26 Kenichi Handa <handa@etl.go.jp>
1508
1509 The following changes are to allow specifying multiple font
1510 patterns for a character range (specified by script or charset).
1511
1512 * Makefile.in (abbrev.o): Depend on syntax.h.
1513 (xfaces.o): Depend on charset.h.
1514
1515 * alloc.c (Fmake_string): Use ASCII_CHAR_P, not
1516 SINGLE_BYTE_CHAR_P.
1517
1518 * ccl.c (Fccl_execute_on_string): Add `const' to local variables.
1519
1520 * character.h (Vchar_script_table): Extern it.
1521
1522 * character.c (Vscript_alist): This variable deleted.
1523 (Vchar_script_table, Qchar_script_table): New variable.
1524 (syms_of_character): Declare Vchar_script_table as a lisp variable
1525 and initialize it.
1526
1527 * chartab.c (Fmake_char_table): Doc fixed. If PURPOSE doesn't
1528 have property char-table-extra-slots, make no extra slot.
1529
1530 * dispextern.h (struct face): Member `charset' deleted.
1531 (FACE_SUITABLE_FOR_CHAR_P): Use ASCII_CHAR_P, not
1532 SINGLE_BYTE_CHAR_P.
1533 (FACE_FOR_CHAR): Likewise.
1534 (choose_face_font, lookup_non_ascii_face, font_name_registry): Add
1535 prototypes
1536 (lookup_face, lookup_named_face, lookup_derived_face): Prototype
1537 fixed.
1538 (generate_ascii_font_name): Renamed from generate_ascii_font.
1539
1540 * fontset.h (get_font_repertory_func): New prototype.
1541 (make_fontset_for_ascii_face, fs_load_font): Prototypes fixed.
1542 (FS_LOAD_FONT): Call fs_load_font with the 3rd arg charset_ascii.
1543
1544 * fontset.c (Qprepend, Qappend): New variables.
1545 (FONTSET_CHARSET_ALIST, FONTSET_FACE_ALIST): These macros deleted.
1546 (FONTSET_NOFONT_FACE, FONTSET_REPERTORY): New macros.
1547 (FONTSET_REF): Optimize if FONTSET is Vdefault_fontset.
1548 (FONTSET_REF_AND_RANGE, FONTSET_ADD): New macros.
1549 (fontset_ref_and_range, fontset_add, reorder_font_vector)
1550 (load_font_get_repertory): New functions.
1551 (fontset_set): This function deleted.
1552 (fontset_face): New arg FACE. Return face ID, not face.
1553 Completely re-written to handle new fontset structure. Caller
1554 changed.
1555 (free_face_fontset): Use ASET istead of AREF (X) = Y.
1556 (face_for_char): Don't call lookup_face.
1557 (make_fontset_for_ascii_face): New arg FACE.
1558 (fs_load_font): New arg CHARSET_ID. Don't check
1559 Vfont_encoding_alist here.
1560 (find_font_encoding): New function.
1561 (list_fontsets): Use STRINGP, not ! NILP.
1562 (accumulate_script_ranges): New function.
1563 (Fset_fontset_font, Fnew_fontset, Ffontset_info): Completely
1564 re-written to handle new fontset structure.
1565 (Ffontset_font): Return a copy of element.
1566 (syms_of_fontset): Define symbols Qprepend and Qappend. Fix
1567 docstring of font-encoding-alist.
1568
1569 * lisp.h (CHAR_TABLE_REF): Remove unnecessary check (IDX >= 0).
1570 (Fset_fotset_font): Fix arguments to 5.
1571
1572 * msdos.c (XMenuActivate): Adjuted for the change of
1573 lookup_derived_face.
1574
1575 * xdisp.c (message_dolog, set_message_1, extend_face_to_end_of_line):
1576 Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
1577 (highlight_trailing_whitespace): Adjusted for the change of
1578 lookup_named_face.
1579
1580 * xfaces.c: Include charset.h.
1581 (load_face_font): Argument C deleted. Caller changed.
1582 (generate_ascii_font_name): Renamed from generate_ascii_font.
1583 (font_name_registry): New function.
1584 (cache_face): Store ascii faces before non-ascii faces in buckets.
1585 (lookup_face): Arguments C and BASE_FACE deleted. Caller changed.
1586 Lookup only ascii faces.
1587 (lookup_non_ascii_face): New function.
1588 (lookup_named_face): Argument C deleted. Caller changed.
1589 (lookup_derived_face): Argument C deleted. Caller changed.
1590 (try_font_list): New arg PATTERN. Caller changed. If PATTERN is
1591 a string, just call font_list with it.
1592 (choose_face_font): Arguments FACE and C deleted. New arg
1593 FONT_SPEC. Caller changed.
1594 (realize_face): Arguments C and BASE_FACE deleted. Caller
1595 (realize_x_face): Likewise.
1596 (realize_non_ascii_face): New function.
1597 (realize_x_face): Call load_face_font here.
1598 (realize_tty_face): Argument C deleted. Caller changed.
1599 (compute_char_face): If CH is not ascii, call FACE_FOR_CHAR to
1600 get a face ID.
1601 (dump_realized_face): Don't print charset of FACE.
1602
1603 * xfns.c (x_set_font): Always call x_new_fontset and
1604 store_frame_parameter.
1605 (Fx_create_frame): Call x_new_fontset, not x_new_font.
1606 (syms_of_xfns): Set get_font_repertory_func to
1607 x_get_font_repertory.
1608
1609 * xterm.h (x_get_font_repertory): Extern it.
1610
1611 * xterm.c (x_produce_glyphs): Use ASCII_CHAR_P, not
1612 SINGLE_BYTE_CHAR_P. Fix the logic of handling non-ASCII char when
1613 it->multibyte_p is zero.
1614 (XTread_socket): Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
1615 (x_new_fontset): If FONTSETNAME doesn't match any existing
1616 fontsets, create a new one.
1617 (x_get_font_repertory): New function.
1618
1619 2002-07-25 Kenichi Handa <handa@etl.go.jp>
1620
1621 * coding.c (Ffind_coding_systems_region_internal): Detect an
1622 ASCII only string correctly.
1623
1624 * lread.c (Fload): Don't load with Qload_force_doc_strings t if
1625 version is 0.
1626
1627 2002-07-24 Kenichi Handa <handa@etl.go.jp>
1628
1629 * lread.c: Include "coding.h".
1630 (Qget_emacs_mule_file_char, Qload_force_doc_strings,
1631 load_each_byte, unread_char): New variables.
1632 (readchar_backlog): This variable deleted.
1633 (readchar): Return a character unless load_each_byte is nonzero.
1634 Handle the case that readcharfun is Qget_emacs_mule_file_char or a
1635 cons. If unread_char is not -1, simply return it.
1636 (unreadchar): Handle the case that readcharfun is
1637 Qget_emacs_mule_file_char or a cons. Set unread_char if
1638 necessary.
1639 (read_multibyte): This function deleted.
1640 (readbyte_for_lambda, readbyte_from_file, readbyte_from_string)
1641 (read_emacs_mule_char): New functions.
1642 (Fload): Even if the file doesn't have the extention ".elc", if
1643 safe_to_load_p returns a positive version number, assume that the
1644 file contains bytecompiled code. If the version is less than 22,
1645 load the file while decoding multibyte sequences by emacs-mule.
1646 (readevalloop): Don't use readchar_backlog.
1647 (Fread): Likewise. Pay attention to the case that STREAM is a
1648 cons.
1649 (Fread_from_string): Pay attention to the case that STREAM is a
1650 cons.
1651 (read_escape): The arg BYTEREP deleted.
1652 (read1): Set load_each_byte to 1 temporarily while handling
1653 #@NUMBER. Don't call read_multibyte.
1654 (read_vector): Call Fread with a cons. If readcharfun is
1655 Qget_emacs_mule_file_char, decode the read string by emacs-mule.
1656 (read_list): If doc_reference is 2, make the cdr part string as
1657 unibyte.
1658 (syms_of_lread): Intern and staticpro Qget_emacs_mule_file_char
1659 and Qload_force_doc_strings.
1660
1661 2002-07-23 Kenichi Handa <handa@etl.go.jp>
1662
1663 * xdisp.c (face_before_or_after_it_pos): Call
1664 FETCH_MULTIBYTE_CHAR with byte postion, not char position.
1665
1666 2002-07-22 Kenichi Handa <handa@etl.go.jp>
1667
1668 * character.h (TRAILING_CODE_P): New macro.
1669 (MAYBE_UNIFY_CHAR): Adjusted for the change of Funify_charset.
1670 (string_char_with_unification): Fix prototype.
1671 (Vscript_alist): Extern it.
1672
1673 * character.c (Vscript_alist): New variable.
1674 (string_char_with_unification): Add `const' to local variables.
1675 (str_as_unibyte): Likewise.
1676 (string_escape_byte8): Likewise.
1677 (syms_of_character): Declare script-alist as a Lisp variable.
1678
1679 * charset.h (Vcharset_ordered_list): Extern it.
1680 (charset_ordered_list_tick): Extern it.
1681 (EMACS_MULE_LEADING_CODE_PRIVATE_11)
1682 (EMACS_MULE_LEADING_CODE_PRIVATE_12)
1683 (EMACS_MULE_LEADING_CODE_PRIVATE_21)
1684 (EMACS_MULE_LEADING_CODE_PRIVATE_22): New macros
1685 (Funify_charset): Adjusted for the change of Funify_charset.
1686
1687 * charset.c (charset_ordered_list_tick): New variable.
1688 (Fdefine_charset_internal): Increment charset_ordered_list_tick.
1689 (Funify_charset): New optional arg DEUNIFY. If it is non-nil,
1690 deunify intead of unify a charset.
1691 (string_xstring_p): Add `const' to local variables.
1692 (find_charsets_in_text): Add `const' to arguemnts and local
1693 variables.
1694 (encode_char): Adjusted for the change of Funify_charset. Fix
1695 detecting of invalid code.
1696 (Fset_charset_priority): Increment charset_ordered_list_tick.
1697 (Fmap_charset_chars): Fix handling of default value for FROM_CODE
1698 and TO_CODE.
1699
1700 * coding.c (LEADING_CODE_PRIVATE_11, LEADING_CODE_PRIVATE_12)
1701 (LEADING_CODE_PRIVATE_21, LEADING_CODE_PRIVATE_22): Macros
1702 deleted. Callers changed to use
1703 EMACS_MULE_LEADING_CODE_PRIVATE_11, etc.
1704 (decode_coding_ccl): Add `const' to local variables.
1705 (consume_chars): Likewise.
1706 (Ffind_coding_systems_region_internal): Likewise.
1707 (Fcheck_coding_systems_region): Likewise.
1708
1709 * print.c (print_object): Use octal form for printing the
1710 contents of a bool vector.
1711
1712 2002-07-18 Dave Love <fx@gnu.org>
1713
1714 * lread.c (Fload) <!load_dangerous_libraries>: Don't leak fd.
1715 <version == 20>: Refuse to load.
1716
1717 2002-07-17 Dave Love <fx@gnu.org>
1718
1719 * fns.c: Move coding.h.
1720 (Qcodeset, Qdays, Qmonths): New.
1721 (concat): Use CHARACTERP instead of INTERGERP.
1722 (Flocale_codeset): Deleted.
1723 (Flanginfo): New function.
1724 (syms_of_fns): Changed accordingly.
1725
1726 * coding.c (adjust_coding_eol_type): Fix eol_type/eol_seen mixup.
1727
1728 2002-07-16 Dave Love <fx@gnu.org>
1729
1730 * casetab.c (init_casetab_once, init_casetab_once): Fix
1731 CHAR_TABLE_SET call.
1732
1733 * category.c (Fmodify_category_entry): Fix CATEGORY_MEMBER call.
1734
1735 * character.c (syms_of_character): Fix CHAR_TABLE_SET call.
1736
1737 * charset.c (Fmap_charset_chars): Check args. Convert Lisp types.
1738 (load_charset_map, Fdeclare_equiv_charset, Fencode_char)
1739 (Fset_charset_priority, syms_of_charset): Convert Lisp types.
1740
1741 * charset.h (CHECK_CHARSET_GET_ID): Use XINT on AREF result.
1742
1743 * coding.c (ENCODE_DESIGNATION, decode_eol)
1744 (make_conversion_work_buffer, code_conversion_restore)
1745 (Fdefine_coding_system_internal): Convert Lisp types.
1746 (code_conversion_restore): Use EQ, not ==.
1747 (Fencode_coding_string): Fix code_convert_string call.
1748
1749 * coding.h (code_convert_region): Fix prototype.
1750
1751 * dispextern.h (redraw_frame, redraw_garbaged_frames): Removed.
1752
1753 * fontset.c (fontset_ref, fontset_set, fs_load_font)
1754 (Ffontset_info): Convert Lisp types.
1755
1756 * syntax.h (SYNTAX_ENTRY_INT): Don't use make_number.
1757
1758 * xterm.c (note_mouse_movement): Fix call of window_from_coordinates.
1759
1760 * xdisp.c (display_mode_element): Fix call of Fset_text_properties.
1761
1762 * chartab.c: Include "...h", not <...h> in some cases.
1763
1764 * callproc.c (Fcall_process): Remove unused variables.
1765
1766 2002-07-12 Dave Love <fx@gnu.org>
1767
1768 * coding.c (Fset_coding_system_priority): Allow null arg list.
1769
1770 2002-07-03 Dave Love <fx@gnu.org>
1771
1772 * minibuf.c (Fminibuffer_complete_word): Remove unused var.
1773 (Fself_insert_and_exit): Use CHARACTERP.
1774
1775 * callproc.c (Fcall_process): Remove unused vars.
1776
1777 * xterm.c (XTread_socket): Add extra dead keysyms.
1778
1779 * xdisp.c (decode_mode_spec_coding): Use CHARACTERP.
1780
1781 * dispextern.h: Remove prototypes for redraw_frame,
1782 redraw_garbaged_frames.
1783
1784 * cmds.c (Fself_insert_command): Use CHARACTERP.
1785
1786 * chartab.c (make_sub_char_table): Remove unused var.
1787 (Fset_char_table_default, Fmap_char_table): Doc fix.
1788
1789 * keymap.c (access_keymap): Remove generic char code.
1790 (push_key_description): Use CHARACTERP.
1791
1792 2002-07-01 Dave Love <fx@gnu.org>
1793
1794 * charset.c: Doc fixes.
1795 (Funify_charset): Extra checking.
1796
1797 2002-06-24 Dave Love <fx@gnu.org>
1798
1799 * lread.c: Remove some unused variables.
1800 (safe_to_load_p): If safe, return the magic number version byte.
1801 (Fload): Maybe use load-with-code-conversion.
1802
1803 2002-06-12 Kenichi Handa <handa@etl.go.jp>
1804
1805 * category.c (Fmodify_category_entry): Don't modify the contents
1806 of category_set for characters out of the range. Avoid
1807 unnecessary modification.
1808
1809 * character.h (MAYBE_UNIFY_CHAR): Adjusted for the change of
1810 Vchar_unify_table. The default value of the table is now nil.
1811
1812 * character.c (syms_of_character): Setup Vchar_width_table for
1813 eight-bit-control and raw-byte chars.
1814
1815 * charset.h (enum define_charset_arg_index): Delete
1816 charset_arg_parents and add charset_arg_subset and
1817 charset_arg_superset.
1818 (enum charset_attr_index): Delete charset_parents and add
1819 charset_subset and charset_superset.
1820 (enum charset_method): Delete CHARSET_METHOD_INHERIT and add
1821 CHARSET_METHOD_SUBSET and CHARSET_METHOD_SUPERSET.
1822 (CHARSET_ATTR_PARENTS, CHARSET_PARENTS): Macros deleted.
1823 (CHARSET_ATTR_SUBSET, CHARSET_ATTR_SUPERSET, CHARSET_SUBSET)
1824 (CHARSET_SUPERSET): New macros.
1825 (charset_work): Extern it.
1826 (ENCODE_CHAR): Use charset_work.
1827 (CHAR_CHARSET_P): Adjusted for the change of encoder format.
1828 (map_charset_chars): Extern it.
1829
1830 * charset.c (load_charset_map): Set the default value of encoder
1831 and deunifier char-tables to nil.
1832 (map_charset_chars): Argument changed. Callers changed. Use
1833 map_char_table_for_charset instead of map_char_table.
1834 (Fmap_charset_chars): New optional args from_code and to_code.
1835 (Fdefine_charset_internal): Adjusted for the change of
1836 `define-charset' (:parents -> :subset or :superset).
1837 (charset_work): New variable.
1838 (encode_char): Adjusted for the change of
1839 Fdefine_charset_internal.
1840 (syms_of_charset): Likewise.
1841 (Ffind_charset_string): Setup the vector `charsets' correctly.
1842
1843 * chartab.c (sub_char_table_ref_and_range): New arg defalt. Fix
1844 the previous change.
1845 (char_table_ref_and_range): Adjusted for the above change.
1846 (map_sub_char_table_for_charset): New function.
1847 (map_char_table_for_charset): New function.
1848
1849 * keymap.c (describe_vector): Handle a char-table directly here.
1850 (describe_char_table): Deleted.
1851
1852 * lisp.h (map_charset_chars): Deleted.
1853
1854 2002-06-11 Dave Love <fx@gnu.org>
1855
1856 * fns.c (count_combining): Comment out (unused).
1857 (Flocale_codeset): New.
1858 (syms_of_fns): Defsubr it.
1859
1860 * config.in (HAVE_PTY_H, HAVE_SIZE_T, HAVE_LANGINFO_CODESET): New.
1861 (size_t): Removed.
1862
1863 2002-06-06 Dave Love <fx@gnu.org>
1864
1865 * Makefile.in (chartab.o): Depend on charset.h
1866
1867 2002-06-03 Kenichi Handa <handa@etl.go.jp>
1868
1869 * character.c (syms_of_character): Set the default value of
1870 Vprintable_chars to Qnil.
1871
1872 2002-05-31 Dave Love <fx@gnu.org>
1873
1874 * Makefile.in (lisp, shortlisp): Change indian.elc to indian.el.
1875
1876 2002-05-31 Kenichi Handa <handa@etl.go.jp>
1877
1878 * charset.c (load_charset_map): Handle the case that from < to
1879 correctly.
1880
1881 * coding.c (encode_coding_emacs_mule): Pay attention to raw-8-bit
1882 chars.
1883 (encode_coding_iso_2022): Likewise.
1884 (encode_coding_sjis): Likewise.
1885 (encode_coding_big5): Likewise.
1886 (encode_coding_charset): Likewise.
1887
1888 2002-05-30 Kenichi Handa <handa@etl.go.jp>
1889
1890 * Makefile.in (lisp): Change chinese.elc to chinese.el. They are
1891 not bytecompiled now.
1892 (shortlisp): Likewise.
1893
1894 * charset.c (charset_jisx0201_roman, charset_jisx0208_1978)
1895 (charset_jisx0208): New variables.
1896 (Fdefine_charset_internal): Setup them if appropriate.
1897 (init_charset_once): Initialize them to -1.
1898
1899 * charset.h (charset_jisx0201_roman, charset_jisx0208_1978,
1900 charset_jisx0208): Extern them.
1901
1902 * coding.c (CODING_ISO_FLAG_USE_ROMAN): New macro
1903 (CODING_ISO_FLAG_USE_OLDJIS): New macro.
1904 (CODING_ISO_FLAG_FULL_SUPPORT): Macro definition changed.
1905 (setup_iso_safe_charsets): Fix arguemtns to Fassq.
1906 (DECODE_DESIGNATION): Pay attention to CODING_ISO_FLAG_USE_ROMAN
1907 and CODING_ISO_FLAG_USE_OLDJIS.
1908 (ENCODE_ISO_CHARACTER_DIMENSION1): Likewise.
1909 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
1910 (encode_coding_iso_2022): Change the 1st arg to
1911 ENCODE_ISO_CHARACTER to a variable.
1912
1913 2002-05-29 Kenichi Handa <handa@etl.go.jp>
1914
1915 * charset.h (enum define_charset_arg_index): New enums
1916 charset_arg_min_code and charset_arg_max_code.
1917 (struct charset): New member char_index_offset.
1918
1919 * charset.c (CODE_POINT_TO_INDEX): Take charset->char_index_offset
1920 into account.
1921 (INDEX_TO_CODE_POINT): Likewise.
1922 (Fdefine_charset_internal): Handle args[charset_arg_min_code] and
1923 args[charset_arg_max_code]. Setup charset.char_index_offset.
1924 (syms_of_charset): Fix args to Fdefine_charset_internal.
1925
1926 2002-05-27 Dave Love <fx@gnu.org>
1927
1928 * coding.c (decode_coding_utf_8): Reject overlong sequences.
1929
1930 2002-05-26 Dave Love <fx@gnu.org>
1931
1932 * coding.c: Doc fixes.
1933 (Fcoding_system_aliases): Fix return value.
1934 (Qmac): Remove (duplicated) definition.
1935
1936 2002-05-25 Dave Love <fx@gnu.org>
1937
1938 * charset.c (Fcharset_priority_list, Fset_charset_priority): New
1939 functions.
1940
1941 * character.c (Fstring): Doc fix.
1942
1943 * charset.c (Fdefine_charset_alias): Update Vcharset_list.
1944
1945 * fontset.c (Ffontset_info): Doc fix. Return charset names, not
1946 ids.
1947 (font-encoding-alist): Doc fix.
1948
1949 2002-05-24 Dave Love <fx@gnu.org>
1950
1951 * term.c (costs_set): Declare static, non-initialized for pcc.
1952 (encode_terminal_code): Remove ensued var.
1953
1954 * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal decl
1955 for K&R.
1956
1957 * xterm.c (xlwmenu_window_p): Fix prototype for K&R.
1958
1959 * coding.c (setup_iso_safe_charsets): Fix arg decl for K&R.
1960 (suffixes): Moved out of make_subsidiaries for K&R.
1961
1962 * charset.c (map_charset_chars): Fix c_function declaration for
1963 K&R.
1964
1965 * lisp.h (DEFUN) [!PROTOTYPES]: Remove spurious `args'.
1966
1967 2002-05-23 Dave Love <fx@gnu.org>
1968
1969 * data.c (Fchar_or_string_p): Doc fix. Use CHARACTERP.
1970
1971 * category.c (Fmodify_category_entry): Doc fix. Remove unused
1972 vars.
1973
1974 2002-05-23 Yong Lu <lyongu@asia-infonet.com>
1975
1976 * charset.c (Fdefine_charset_internal): Fix argument to bzero.
1977
1978 * coding.c (Fdefine_coding_system_internal): Fix previous change.
1979 (decode_coding_charset): Workaround for the bug of GCC 2.96.
1980
1981 2002-05-23 Kenichi Handa <handa@etl.go.jp>
1982
1983 * Makefile.in (lisp): Change cyrillic.elc to cyrillic.el,
1984 vietnamese.elc to vietnamese.el. They are not bytecompiled now.
1985 (shortlisp): Likewise.
1986
1987 2002-05-22 Kenichi Handa <handa@etl.go.jp>
1988
1989 * coding.c (decode_coding_charset): Adjusted for the change of
1990 Fdefine_coding_system_internal.
1991 (Fdefine_coding_system_internal): For a coding system of
1992 `charset' type, store a list of charset IDs in
1993 `charset_attr_charset_valids' element of coding attributes.
1994
1995 * charset.c (Fmake_char): Fix previous change.
1996
1997 2002-05-21 Kenichi Handa <handa@etl.go.jp>
1998
1999 * coding.c (ONE_MORE_BYTE_NO_CHECK): Increment consumed_chars.
2000 (emacs_mule_char): New arg src. Delete arg `composition'. Caller
2001 changed. Handle 2-byte and 3-byte charsets correctly.
2002 (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Renamed from
2003 DECODE_EMACS_MULE_COMPOSITION_RULE. Caller changed.
2004 (DECODE_EMACS_MULE_COMPOSITION_RULE_21): New macro.
2005 (DECODE_EMACS_MULE_21_COMPOSITION): Call
2006 DECODE_EMACS_MULE_COMPOSITION_RULE_21. Produce correct annotation
2007 sequence.
2008 (decode_coding_emacs_mule): Handle composition correctly. Rewind
2009 `src' and `consumed_chars' correctly before calling
2010 emacs_mule_char.
2011 (DECODE_COMPOSITION_START): Correctly handle the case of altchar
2012 and alt&rule composition.
2013 (decode_coding_iso_2022): Handle composition correctly.
2014 (init_coding_once): Setup emacs_mule_bytes for private charsets.
2015
2016 * charset.c (Fdefine_charset_internal): Fix bug for the case of
2017 re-defining a charset. If the charset has :emacs-mule-id, setup
2018 emacs_mule_bytes.
2019 (Fmake_char): If CODE1 is nil, use the minimum code of the
2020 charset.
2021
2022 2002-05-20 Kenichi Handa <handa@etl.go.jp>
2023
2024 * coding.c (encode_coding_iso_2022): If coding requires safe
2025 encoding, produce a character specified by
2026 CODING_INHIBIT_CHARACTER_SUBSTITUTION.
2027 (encode_coding_sjis): Likewise.
2028 (encode_coding_big5): Likewise.
2029 (encode_coding_charset): Likewise.
2030
2031 2002-05-17 Dave Love <fx@gnu.org>
2032
2033 * xterm.c (XSetIMValues): Declare.
2034
2035 * process.c: Conditionally include sys/wait.h, pty.h.
2036
2037 * print.c (print_object): Fix print format for 64-bit
2038 systems.
2039
2040 * keyboard.c (modify_event_symbol): Fix print format for 64-bit
2041 systems.
2042
2043 * buffer.c (emacs_strerror): Declare.
2044 (MMAP_ALLOCATED_P, mmap_enlarge, syms_of_buffer): Import changes
2045 from trunk.
2046
2047 * fontset.c (Fclear_face_cache): Declare.
2048 (accumulate_font_info): Commented-out (unused).
2049 (face_for_char, Fset_fontset_font, Ffontset_info): Remove unused
2050 variables.
2051
2052 * character.h (string_escape_byte8): Declare.
2053
2054 * charset.c (load_charset_map, load_charset_map_from_file): Remove
2055 unused vars.
2056 (Fdefine_charset_internal, Fsplit_char, syms_of_charset)
2057 (Fmap_charset_chars): Doc fix.
2058
2059 * coding.c (Vchar_coding_system_table, Qchar_coding_system):
2060 Removed.
2061 (Fset_coding_system_priority, Fset_coding_system_priority)
2062 (Fdefine_coding_system_internal): Doc fix.
2063
2064 2002-05-16 Dave Love <fx@gnu.org>
2065
2066 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Remove -nointrinsics.
2067
2068 2002-05-16 Kenichi Handa <handa@etl.go.jp>
2069
2070 * character.c (string_escape_byte8): Make multibyte string with
2071 correct size.
2072
2073 * charset.c (Fmake_char): Delete unnecessary code.
2074
2075 2002-05-14 Kenichi Handa <handa@etl.go.jp>
2076
2077 * xfns.c (x_encode_text): Allocate coding.destination here, and
2078 call encode_coding_object with dst_object Qnil.
2079
2080 * buffer.c (Fset_buffer_multibyte): Convert 8-bit bytes to
2081 multibyte form correctly.
2082
2083 * fontset.c (fs_load_font): Check fontp->full_name (not fontname)
2084 against Vfont_encoding_alist.
2085
2086 * coding.c (Fdecode_sjis_char): Fix typo (0x7F->0xFF). Fix the
2087 handling of charset list.
2088 (encode_coding_iso_2022): Setup coding->safe_charsets in advance.
2089 (decode_coding_object): Move point to coding->dst_pos before
2090 calling post-read-conversion function.
2091 (encode_coding_object): Give correct arguments to
2092 pre-write-conversion. Ignore the return value of
2093 pre-write-conversion function. Pay attention to the case that
2094 pre-write-conversion changes the current buffer. If dst_object is
2095 Qt, even if coding->src_bytes is zero, allocate at least one byte
2096 to coding->destination.
2097
2098 * coding.h (JIS_TO_SJIS): Fix typo (j1->s1, j2->s2).
2099
2100 * charset.c (Fmake_char): Make it more backward compatible.
2101 (Fmap_charset_chars): Fix docstring.
2102
2103 2002-05-13 Dave Love <fx@gnu.org>
2104
2105 * coding.c: Doc fixes.
2106 (Fdefine_coding_system_alias): Use names, not symbols, in
2107 coding-system-alist.
2108
2109 2002-05-13 Kenichi Handa <handa@etl.go.jp>
2110
2111 * fontset.c (free_realized_fontsets): Call Fclear_face_cache instead
2112 of calling free_realized_face.
2113
2114 2002-05-10 Yong Lu <lyongu@asia-infonet.com>
2115
2116 * charset.c (load_charset_map): Fix previous change.
2117 (read_hex): Don't treat SPC as a comment starter.
2118 (decode_char): If CODE_POINT_TO_INDEX retruns -1, always return
2119 -1.
2120 (Fdecode_char): Fix typo.
2121
2122 2002-05-10 Kenichi Handa <handa@etl.go.jp>
2123
2124 * charset.h (struct charset): New member `code_space_mask'.
2125
2126 * coding.c (coding_set_source): Delete the local variable
2127 beg_byte.
2128 (encode_coding_charset): Delete the local variable charset.
2129 (Fdefine_coding_system_internal): Likewise.
2130 (Fdefine_coding_system_internal): Setup
2131 attrs[coding_attr_charset_valids] correctly.
2132
2133 * charset.c (CODE_POINT_TO_INDEX): Utilize `code_space_mask'
2134 member to check if CODE is valid or not.
2135 (Fdefine_charset_internal): Initialize `code_space_mask' member.
2136 (encode_char): Before calling CODE_POINT_TO_INDEX, check if CODE
2137 is within the range of charset->min_code and carset->max_code.
2138
2139 2002-05-09 Dave Love <fx@gnu.org>
2140
2141 * syntax.h (syntax_temp) [!__GNUC__]: Declare.
2142
2143 * dispextern.h (generate_ascii_font): Fix return type.
2144
2145 * xfaces.c (generate_ascii_font): Fix arg declaration.
2146
2147 * coding.c (coding_inherit_eol_type)
2148 (Fset_terminal_coding_system_internal)
2149 (Fset_safe_terminal_coding_system_internal): Fix arg declarations.
2150
2151 2002-05-08 Kenichi Handa <handa@etl.go.jp>
2152
2153 * coding.c (decode_coding_charset, encode_coding_charset): Handle
2154 multiple charsets correctly.
2155
2156 2002-05-07 Kenichi Handa <handa@etl.go.jp>
2157
2158 * search.c (boyer_moore): Fix handling of mulitbyte character
2159 translation.
2160
2161 * xdisp.c (display_mode_element): When the variable `elt' is
2162 changed, update `this' and `lisp_string'.
2163
2164 2002-05-07 Kenichi Handa <handa@etl.go.jp>
2165
2166 * buffer.c (Fset_buffer_multibyte): Fix 8-bit char handling.
2167
2168 * callproc.c (Fcall_process): Be sure to give the current buffer
2169 to decode_coding_c_string. Update PT and PT_BYTE after the
2170 insertion.
2171
2172 * charset.c (struct charset_map_entries): New struct.
2173 (load_charset_map): Renamed from parse_charset_map. New args
2174 entries and n_entries. Caller changed.
2175 (load_charset_map_from_file): Renamed from load_charset_map.
2176 Caller changed. New arg control_flag. Call load_charset_map at
2177 the tail.
2178 (load_charset_map_from_vector): New function.
2179 (Fdefine_charset_internal): Setup charset.compact_codes_p.
2180 (encode_char): If the charset is compact, change a character index
2181 to a code point.
2182
2183 * coding.c (coding_alloc_by_making_gap): Check the case that the
2184 source and destination are the same correctly.
2185 (decode_coding_raw_text): Set coding->consumed_char and
2186 coding->consumed to 0.
2187 (produce_chars): If coding->chars_at_source is nonzero, update
2188 coding->consumed_char and coding->consumed before calling
2189 alloc_destination.
2190 (Fdefine_coding_system_alias): Register ALIAS in
2191 Vcoding_system_alist.
2192 (syms_of_coding): Define `no-convesion' coding system at the tail.
2193
2194 * fileio.c (Finsert_file_contents): Set coding_system instead of
2195 val. If the current buffer is multibyte, always call
2196 decode_coding_gap.
2197
2198 * xfaces.c (try_font_list): Give higher priority to fontset's
2199 family than face's family.
2200
2201 2002-04-18 Kenichi Handa <handa@etl.go.jp>
2202
2203 * callproc.c (Fcall_process): Be sure to give the current buffer
2204 to decode_coding_c_string.
2205
2206 * xfaces.c (try_font_list): Give a family specified in a fontset
2207 higher priority than a family specified in a face.
2208
2209 2002-04-09 Kenichi Handa <handa@etl.go.jp>
2210
2211 * fileio.c (Finsert_file_contents): Fix calculation of `inserted'.
2212 Fix arguments to insert_from_buffer.
2213
2214 * xdisp.c (display_mode_element): Fix calculation of `bytepos'.
2215
2216 2002-03-11 Kenichi Handa <handa@etl.go.jp>
2217
2218 * coding.c (produce_chars): Set the variable `multibytep' correctly.
2219 (decode_coding_gap): Set coding->dst_multibyte correctly.
2220
2221 2002-03-07 Kenichi Handa <handa@etl.go.jp>
2222
2223 * coding.c (encode_coding_utf_8): Initialize produced_chars to 0.
2224 (decode_coding_utf_16): Fix converting high and low bytes to
2225 code-point.
2226 (encode_coding_utf_16): Substitute coding->default_char for
2227 non-Unicode characters.
2228 (decode_coding): Don't call record_insert here.
2229 (setup_coding_system): Initialize `surrogate' of
2230 coding->spec.utf_16 to 0.
2231 (EMIT_ONE_BYTE): Fix for multibyte case.
2232
2233 * insdel.c (insert_from_gap): Call record_insert.
2234
2235 2002-03-04 Kenichi Handa <handa@etl.go.jp>
2236
2237 * casefiddle.c (casify_region): Fix multibyte case.
2238
2239 * character.c (c_string_width): Add return type `int'.
2240 (char_string_with_unification): Arg ADVANCED deleted.
2241
2242 * character.h (CHAR_VALID_P): Don't call CHARACTERP.
2243 (CHAR_STRING): Adjusted for the change of
2244 char_string_with_unification.
2245 (CHAR_STRING_ADVANCE): Make it do-while statement.
2246
2247 * chartab.c (sub_char_table_set_range): Optimized for the case
2248 DEPTH == 3. Add workaround code for a GCC optimization bug.
2249
2250 * charset.c (parse_charset_map): Remove an unused variable.
2251
2252 * coding.c: Delete unused variables.
2253
2254 * fileio.c (Finsert_file_contents): Set coding_system to Qnil
2255 earlier. If inserted is zero and the coding system doesn't
2256 require flushing, don't call decode_coding_gap.
2257
2258 * syntax.h (SET_RAW_SYNTAX_ENTRY): Don't call make_number.
2259
2260 2002-03-01 Kenichi Handa <handa@etl.go.jp>
2261
2262 The following changes are for using Unicode as an internal
2263 character model, and use UTF-8 format for buffer/string
2264 representation.
2265
2266 * .gdbinit (xchartable): Adjusted for the change of char table
2267 structure.
2268 (xsubchartable, xcoding, xcharset, xcurbuf): New commands.
2269
2270 * Makefile.in (obj): Add character.o and chartab.o.
2271 (lisp, shortlisp): Remove utf-8.elc:
2272 (*.o): For many files, change dependency on charset.h to
2273 character.h, and add dependency on character.h.
2274 (character.o, chartab.o): New targets.
2275
2276 * abbrev.c, bytecode.c, casefiddle.c, cmds.c, dispnew.c, doc.c,
2277 doprnt.c, dosfns.c, frame.c, marker.c, minibuf.c, msdos.c,
2278 w16select.c, w32bdf.c, w32console.c: Include "character.h" instead
2279 of "charset.h".
2280
2281 * dired.c, filelock.c: Include "character.h".
2282
2283 * alloc.c: Include "character.h" instead of "charset.h".
2284 (Fmake_char_table): Moved to chartab.c.
2285 (make_sub_char_table): Likewise.
2286 (syms_of_alloc): Remove defsubr for Smake_char_table.
2287
2288 * buffer.c: Include "character.h" instead of "charset.h", don't
2289 include "coding.h".
2290 (Fset_buffer_multibyte): Adjuted for UTF-8.
2291
2292 * buffer.h: EXFUN Fbuffer_live_p.
2293
2294 * callproc.c: Include "character.h" instead of "charset.h".
2295 (Fcall_process): Big change for the new code-conversion APIs.
2296
2297 * casetab.c: Include "character.h" instead of "charset.h".
2298 (set_canon, set_identity, shuffle): Adjusted for the new
2299 map_char_table spec.
2300 (init_casetab_once): Call CHAR_TABLE_SET instead of directly
2301 accessing the char table structure.
2302
2303 * chartab.c: New file that implements char table.
2304
2305 * category.c: Include "character.h".
2306 (copy_category_entry): New function.
2307 (copy_category_table): Call map_char_table and copy_category_entry.
2308 (Fmake_category_table): Initialize all top-vel slots.
2309 (char_category_set): New function.
2310 (modify_lower_category_set): Deleted.
2311 (Fmodify_category_entry): Call char_table_ref_and_range.
2312
2313 * category.h (CATEGORY_SET): Just call char_category_set.
2314
2315 * ccl.c: Include "character.h".
2316 (Qccl, Qcclp): New variables.
2317 (CCL_WRITE_CHAR): Alway treat the arg CH as a character even if
2318 it's less than 256.
2319 (CCL_WRITE_MULTIBYTE_CHAR): Deleted.
2320 (CCL_WRITE_STRING, CCL_READ_CHAR): Adjusted for the change of SRC
2321 and DST type.
2322 (ccl_driver): Types of arguments changed. Code adjusted for that.
2323 (Fccl_execute, Fccl_execute_on_string): Adjusted for the change of
2324 ccl_driver.
2325 (syms_of_ccl): Intern and staticpro Qccl and Qcclp.
2326
2327 * ccl.h (struct ccl_program): Members eol_type and multibyte
2328 deleted. New members src_multibyte, dst_multibyte, consumed, and
2329 produced.
2330 (struct ccl_spec): Members decoder and encoder deleted. New
2331 memeber ccl.
2332 (CODING_SPEC_CCL_PROGRAM): New macro.
2333 (ccl_driver): Prototype updated.
2334 (Qccl, Qcclp, Fccl_program_p): Extern them.
2335 (CHECK_CCL_PROGRAM): New macro.
2336
2337 * character.c, character.h, chartab.c: New files.
2338
2339 * charset.c: Mostly re-written. Character and multibyte sequence
2340 handling codes are moved to character.c.
2341
2342 * charset.h: Mostly re-written. Character and multibyte sequence
2343 handling codes are moved to character.h.
2344
2345 * coding.c, coding.h: Mostly re-written.
2346
2347 * composite.c: Include "character.h" instead of "charset.h".
2348 (CHAR_WIDTH): Moved to character.h.
2349 (HASH_KEY, HASH_VALUE): Deleted.
2350
2351 * composite.h (enum composition_method): Order of enumeration
2352 symbols changed.
2353
2354 * data.c: Include "character.h" instead of "charset.h".
2355 (Faref): Call CHAR_TABLE_REF for a char table.
2356 (Faset): Call CHAR_TABLE_SET for a char table.
2357
2358 * dispextern.h (free_realized_face, check_face_attribytes,
2359 generate_ascii_font): Extern them.
2360 (free_realized_multibyte_face): Extern deleted.
2361
2362 * disptab.h (DISP_CHAR_VECTOR): Adjusted for the change of char
2363 table structure.
2364
2365 * editfns.c: Include "character.h" instead of "charset.h".
2366 (Fchar_to_string): Always call CHAR_STRING.
2367
2368 * emacs.c (main): Call init_charset_once, init_charset,
2369 syms_of_chartab, and syms_of_character.
2370
2371 * fileio.c: Include "character.h" instead of "charset.h".
2372 (Finsert_file_contents): Big change for the new code-conversion
2373 API.
2374 (choose_write_coding_system): Likewise.
2375 (Fwrite_region): Likewise.
2376 (build_annotations_2): Deleted.
2377 (e_write): Big change for the new code-conversion API.
2378
2379 * fns.c: Include "character.h" instead of "charset.h".
2380 (copy_sub_char_table): Moved to chartab.c.
2381 (Fcopy_sequence): Call copy_char_table for a char table.
2382 (concat): Delete codes calling count_multibyte.
2383 (string_char_to_byte): Adjusted for the new multibyte form.
2384 (string_byte_to_char): Likewise.
2385 (internal_equal): Adjusted for the change of char table structure.
2386 (Fchar_table_subtype, Fchar_table_parent, Fset_char_table_parent,
2387 Fchar_table_extra_slot, Fset_char_table_extra_slot,
2388 Fchar_table_range, Fset_char_table_range, Fset_char_table_default,
2389 char_table_translate, optimize_sub_char_table,
2390 Foptimize_char_table, map_char_table, Fmap_char_table): Moved to
2391 chartab.c.
2392 (char_table_ref_and_index): Deleted.
2393 (HASH_KEY, HASH_VALUE): Moved to lisp.h.
2394 (Fmd5): Call preferred_coding_system instead of accessing
2395 Vcoding_category_list. Adjusted for the new code-conversion API.
2396 (syms_of_fns): Defsubr for char table related functions moved to
2397 chartab.c.
2398
2399 * fontset.c: Mostly re-written.
2400
2401 * fontset.h (struct font_info): Type of the member encoding_type
2402 changed.
2403 (enum FONT_SPEC_INDEX): New enum.
2404 (fontset_font_pattern, fs_load_font): Prototype updated.
2405 (FS_LOAD_FONT): Adjusted for the change of fs_load_font.
2406
2407 * indent.c: Include "character.h" instead of "charset.h".
2408 (MULTIBYTE_BYTES_WIDTH): Call CHAR_WIDTH instead of
2409 WIDTH_BY_CHAR_HEAD.
2410
2411 * insdel.c: Include "character.h" instead of "charset.h".
2412 (copy_text): Don't refer to Vnonascii_translation_table.
2413 (insert_from_gap): New function.
2414
2415 * keyboard.c: Include "character.h" instead of "charset.h".
2416 (command_loop_1): Never call direct_output_forward_char before
2417 a non-ASCII character.
2418 (read_char): If Vkeyboard_translate_table is a char table, always
2419 translated a character.
2420
2421 * keymap.c: Include "character.h".
2422 (store_in_keymap): Handle the case that IDX is a cons.
2423 (Fdefine_key): Handle the case that KEY is a cons and the car part
2424 is also a cons (range).
2425 (push_key_description): Adjusted for the new character code.
2426 (describe_vector): Call describe_char_table for a char table.
2427 (describe_char_table): New function.
2428
2429 * keymap.h (describe_char_table): Extern it.
2430
2431 * lisp.h (enum pvec_type): New member PVEC_SUB_CHAR_TABLE.
2432 (XSUB_CHAR_TABLE, XSETSUB_CHAR_TABLE): New macros.
2433 (CHAR_TABLE_ORDINARY_SLOTS, CHAR_TABLE_SINGLE_BYTE_SLOTS,
2434 SUB_CHAR_TABLE_ORDINARY_SLOTS, SUB_CHAR_TABLE_STANDARD_SLOTS):
2435 Deleted.
2436 (CHAR_TABLE_REF, CHAR_TABLE_SET): Adjusted for the new char table
2437 structure.
2438 (CHAR_TABLE_TRANSLATE): Just call char_table_translate.
2439 (CHARTAB_SIZE_BITS_0, CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2,
2440 CHARTAB_SIZE_BITS_3): New macros.
2441 (chartab_size): Extern it.
2442 (struct Lisp_Char_Table): Re-designed.
2443 (struct Lisp_Sub_Char_Table): New structure.
2444 (HASH_KEY, HASH_VALUE): Moved from fns.c.
2445 (CHARACTERBITS): Defined as 22.
2446 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the above change.
2447 (SUB_CHAR_TABLE_P): Check PVEC_CHAR_TABLE.
2448 (GC_SUB_CHAR_TABLE_P): New macro.
2449 (Fencode_coding_string, Fdecode_coding_string): EXFUN Updated.
2450 (code_convert_string_norecord): Extern deleted.
2451 (init_character_once, syms_of_character, init_charset,
2452 syms_of_composite, Qeq, Fmakehash, insert_from_gap): Extern them.
2453
2454 * lread.c: Include "character.h".
2455 (read_multibyte): New arg NBYTES.
2456 (read_escape): The meaning of returned *BYTEREP changed.
2457 (to_multibyte): Deleted.
2458 (read1): Adjuted the handling of char table and string.
2459
2460 * print.c: Include "character.h" instead of "charset.h".
2461 (print_string): Convert 8-bit raw bytes to octal form by
2462 string_escape_byte8.
2463 (print_object): Adjusted for the new multibyte form. Print 8-bit
2464 raw bytes always in octal form. Handle sub char table correctly.
2465
2466 * process.c: Include "character.h" instead of "charset.h".
2467 (read_process_output): Adjusted for the new code-conversion API.
2468 (send_process): Likewise.
2469
2470 * puresize.h (BASE_PURESIZE): Increased.
2471
2472 * regex.c: Include "character.h" instead of "charset.h".
2473 (BYTE8_TO_CHAR, CHAR_BYTE8_P) [not emacs]: New dummy macros.
2474 (regex_compile): Accept a range whose starting and ending
2475 character have different leading bytes.
2476 (analyse_first): Adjusted for the above change.
2477
2478 * search.c: Include "character.h" instead of "charset.h".
2479 (search_buffer, boyer_moore): Adjusted for the new multibyte form.
2480 (Freplace_match): Adjusted for the change of
2481 multibyte_char_to_unibyte.
2482
2483 * syntax.c: Include "character.h" instead of "charset.h".
2484 (syntax_parent_lookup): Deleted.
2485 (Fmodify_syntax_entry): Accept a cons as CHAR.
2486 (skip_chars): Adjusted for the new multibyte form.
2487 (init_syntax_once): Call char_table_set_range instead of directly
2488 accessing the structure of a char table.
2489
2490 * syntax.h (SET_RAW_SYNTAX_ENTRY): Call CHAR_TABLE_SET.
2491 (SYNTAX_ENTRY_FOLLOW_PARENT): Macro deleted.
2492 (SET_RAW_SYNTAX_ENTRY_RANGE): New macro.
2493 (SYNTAX_ENTRY_INT): Call CHAR_TABLE_REF.
2494
2495 * term.c: Include "buffer.h" and "character.h".
2496 (encode_terminal_code): Adjusted for the new code-conversion API.
2497 (write_glyphs): Likewise.
2498 (produce_glyphs): Call CHAR_WIDTH instead of CHARSET_WIDTH.
2499
2500 * w32term.c (x_new_font): Adjusted for the change of FS_LOAD_FONT.
2501
2502 * xdisp.c: Include "character.h".
2503 (get_next_display_element): Adjusted for the new multibyte form.
2504 (disp_char_vector): Adjusted for the new char table structure.
2505 (decode_mode_spec_coding): Adjusted for the new structure of
2506 coding system.
2507 (decode_mode_spec): Adjusted for the new code-conversion API.
2508
2509 * xfaces.c: Include "character.h" instead of "charset.h".
2510 (load_face_font): Adjusted for the change of choose_face_font and
2511 FS_LOAD_FONT.
2512 (generate_ascii_font): New function.
2513 (set_lface_from_font_name): Adjusted for the change of
2514 FS_LOAD_FONT.
2515 (set_font_frame_param): Adjusted for the change of
2516 choose_face_font.
2517 (free_realized_face): Make it public.
2518 (free_realized_faces_for_fontset): Renamed from
2519 free_realized_multibyte_face. Free also faces realized for ASCII.
2520 (choose_face_font): Argments changed. Adjusted for the change of
2521 fontset_font_pattern and FS_LOAD_FONT.
2522
2523 * xfns.c: Include "character.h".
2524 (x_encode_text): Adjusted for the new code-conversion API.
2525
2526 * xselect.c: Don't include "charset.h".
2527 (selection_data_to_lisp_data): Adjusted for the new code
2528 covnersion API.
2529
2530 * xterm.c: Include "character.h".
2531 (x_encode_char): New argument CHARSET. Caller changed.
2532 (x_get_char_face_and_encoding): Call ENCODE_CHAR instead of
2533 SPLIT_CHAR.
2534 (x_get_glyph_face_and_encoding): Likewise.
2535 (x_produce_glyphs): Don't check Vnonascii_translation_table Call
2536 CHAR_WIDTH instead of CHARSET_WIDTH.
2537 (XTread_socket): Adjusted for the new code-conversion API.
2538 (x_new_font): Adjusted for the change of FS_LOAD_FONT.
2539 (x_load_font): Adjusted for the change of struct font.
2540
2541 ;; Local Variables:
2542 ;; coding: iso-2022-7bit
2543 ;; End:
2544
2545 Copyright (C) 2002 Free Software Foundation, Inc.
2546 Copying and distribution of this file, with or without modification,
2547 are permitted provided the copyright notice and this notice are preserved.