]> code.delx.au - gnu-emacs/blob - src/ChangeLog.unicode
Changes from arch/CVS synchronization
[gnu-emacs] / src / ChangeLog.unicode
1 2006-10-31 Kenichi Handa <handa@m17n.org>
2
3 (get_next_display_element): Set it->face_id for the
4 first component of a composition.
5 (x_produce_glyphs): Check if the font is changed or not for
6 composition.
7
8 2006-10-30 Kenichi Handa <handa@m17n.org>
9
10 * fontset.c (Qlatin): New variable.
11 (syms_of_fontset): Define it as a lisp symbol.
12 (Fset_fontset_font): If TARGET is `latin', use FONT_SPEC for
13 ASCII.
14
15 2006-10-27 Kenichi Handa <handa@m17n.org>
16
17 * font.c (font_unparse_fcname): Pay attention to the case that
18 some of font property is a null string.
19
20 2006-10-26 Kenichi Handa <handa@m17n.org>
21
22 * term.c: Include "composite.h".
23 (encode_terminal_code): Output all components of composition.
24 Check the size of encode_terminal_src.
25 (produce_glyphs): For compostion, call produce_composite_glyph.
26 (append_composite_glyph, produce_composite_glyph): New functions.
27
28 * xdisp.c (x_produce_glyphs): In handling composition, if a font
29 is not found, get font_info from the current ascii face.
30
31 2006-10-23 Kenichi Handa <handa@m17n.org>
32
33 * fileio.c (Finsert_file_contents): On replacing, temporarily bind
34 buffer-file-name to Qnil before calling insert_from_buffer.
35
36 * font.c (font_unparse_fcname): Pay attention to the case that
37 foundry is a null string.
38
39 2006-10-17 Kenichi Handa <handa@m17n.org>
40
41 * ftfont.c (ftfont_list): Allow registry "unicode-sip".
42
43 * font.c (Qunicode_sip): New variable.
44 (syms_of_font): Declare it as a Lisp symbol.
45
46 * font.h (Qunicode_sip): Extern it.
47
48 2006-10-16 Kenichi Handa <handa@m17n.org>
49
50 * composite.c (get_composition_id): Pay attention to TAB
51 component.
52
53 * xterm.c (x_draw_composite_glyph_string_foreground): Don't draw
54 TAB. Adjusted for the change of s->char2b which always points to
55 the first elememnt of allocated memory.
56
57 * xftfont.c (xftfont_text_extents): Fix calculation of descent
58 value.
59
60 * xdisp.c (handle_composition_prop): Set it->c to the first
61 non-TAB component.
62 (fill_composite_glyph_string): Argument changed.
63 (BUILD_COMPOSITE_GLYPH_STRING): Adjusted for the above change.
64 (x_produce_glyphs): Fix handling of left/right padding.
65
66 2006-10-04 Kenichi Handa <handa@m17n.org>
67
68 * regex.c (analyse_first): Cancel the change for synching with
69 HEAD.
70
71 2006-08-28 Kenichi Handa <handa@m17n.org>
72
73 * coding.c (detect_coding_system): Fix for handling off
74 inhibit_iso_escape_detection. Fix for the case that no coding
75 system is defined for a specific coding category.
76
77 2006-08-21 Kenichi Handa <handa@m17n.org>
78
79 * font.c (font_matching_entity): Dolete unused local var.
80
81 * xftfont.c (xftfont_open): Call XftDefaultSubstitute before
82 opening a font.
83
84 * fileio.c (Finsert_file_contents): On recovering a file, assume
85 Unix-like eol.
86 (choose_write_coding_system): On auto-saving a file, force
87 Unix-like eol.
88
89 * coding.c (setup_coding_system): Fix setting of
90 coding->common_flags based on eol_type.
91 (coding_inherit_eol_type): If PARENT is not nil, be sure to
92 inherit from it.
93
94 2006-08-04 Kenichi Handa <handa@m17n.org>
95
96 * alloc.c (NSTATICS): Increased to 0x600.
97
98 2006-08-01 Kenichi Handa <handa@m17n.org>
99
100 * ftfont.c (ftfont_driver): Set ftfont_driver.match to
101 ftfont_match.
102 (ftfont_list): Don't check :name property.
103 (ftfont_match): New function.
104 (ftfont_pattern_entity): If the pattern doesn't contain
105 FC_SPACING, don't assuce FC_MONO.
106
107 * font.h (struct font_driver): New member `match'.
108 (font_update_drivers): Prototype adjusted.
109
110 * font.c (font_parse_fcname): Don't change :name property of FONT.
111 (font_parse_name): Likewise.
112 (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE, check_gstring): Define
113 them unconditionally.
114 (font_matching_entity): New function.
115 (font_open_by_name): Try font_matching_entity if exact match is
116 not found.
117 (font_update_drivers): Delete the arg FONT. Return a list of
118 actually used backends. Don't free faces, font caches here.
119 Don't store data in frame parameters. Don't call x_set_font.
120 (Ffont_spec): Store :name property as is.
121 (Ffont_get): Check HAVE_LIBOTF before calling font_otf_capability.
122 (Ffont_otf_gsub): Call font->driver->otf_gsub instead of
123 font_otf_gsub.
124 (Ffont_otf_gpos): Call font->driver->otf_gpos instead of
125 font_otf_gpos.
126 (Ffont_otf_alternates): Check if the driver has otf_gsub function.
127 Call font->driver->otf_gsub instead of font_otf_gsub.
128
129 * frame.c (x_set_font_backend): Do more works that were done in
130 font_update_drivers before.
131
132 * xfont.c (xfont_match): New function.
133 (xfont_driver): Set xfont_driver.match to xfont_match.
134 (xfont_draw): Set font in GC if necessary.
135
136 * ftxfont.c (ftxfont_match): New function.
137 (syms_of_ftxfont): Set ftxfont_driver.match to ftxfont_match.
138
139 * xftfont.c (xftfont_match): New function.
140 (syms_of_xftfont): Set xftfont_driver.match to xftfont_match.
141
142 2006-07-28 Kenichi Handa <handa@m17n.org>
143
144 * font.h (struct font): New member scalable.
145 (struct font_driver): New arg ALTERANTE_SUBST to otf_gsub.
146 (font_otf_gsub): Prototype adjusted.
147
148 * font.c (font_otf_capability): Fix handling of the default
149 langsys.
150 (parse_gsub_gpos_spec): Type changed to void. New arg nbytes.
151 Check the contents of SPEC.
152 (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE): New macros.
153 (check_gstring): New function.
154 (REPLACEMENT_CHARACTER): New macro.
155 (font_otf_gsub): New arg alternate_subst. Be sure to set all
156 glyph codes of GSTRING.
157 (font_otf_gpos): Be sure to set all glyph codes of GSTRING.
158 (font_prepare_composition): Set cmp->glyph_len.
159 (font_open_entity): Set font->scalable.
160 (Ffont_get): Handle :otf property.
161 (Ffont_otf_gsub, Ffont_otf_gpos, Ffont_otf_alternates): New
162 functions.
163 (Fquery_font): Use font->font.full_name.
164 (syms_of_font): Defsubr Sfont_otf_gsub, Sfont_otf_gpos, and
165 Sfont_otf_alternates.
166
167 * ftfont.c (ftfont_open): Set font->font.full_name and
168 font->font.name properly. Fix calculation of font->font.height
169 and font->min_width.
170
171 * ftxfont.c (ftxfont_create_gcs): New function.
172 (ftxfont_draw_bitmap): Fix arg to ftfont_driver.get_bitmap.
173 (ftxfont_draw_backgrond): Fix filling region.
174 (ftxfont_default_fid): New function.
175 (ftxfont_open): Set xfotn->fid to the return value of
176 ftxfont_default_fid.
177 (ftxfont_prepare_face): Use ftxfont_create_gcs to create GCs.
178 (ftxfont_done_face): Free only GCs that are created by
179 ftxfont_create_gcs.
180 (ftxfont_draw): If face->gc != s->gc, create proper GCs.
181
182 * xterm.c (x_set_glyph_string_clipping_exactly) [USE_FONT_BACKEND]:
183 Clip to src->width, etc (not src->clip_XXX).
184
185 * xfns.c (x_create_tip_frame) [USE_FONT_BACKEND]: Handle
186 FontBackend frame parameter.
187
188 2006-07-26 Kenichi Handa <handa@m17n.org>
189
190 * font.h (struct font_driver_list): New member `on'.
191 (Fclear_font_cache): EXFUN it.
192 (font_update_drivers): Extern it.
193
194 * font.c (font_unparse_fcname): Fix typo (swidth->width).
195 (font_list_entities): Check driver_list->on.
196 (register_font_driver): Initalize `on' member to 0.
197 (font_update_drivers): New function.
198 (Fclear_font_cache): Check driver_list->on.
199
200 * frame.h (Qfont_backend): Extern it.
201 (x_set_font_backend): Extern it.
202
203 * frame.c (Qfont_backend): New variable.
204 (frame_parms): New element for font-backend.
205 (x_set_font_backend): New function.
206
207 * xfns.c (Fx_create_frame) [USE_FONT_BACKEND]: Handle
208 FontBackend frame parameter.
209 (x_frame_parm_handlers) [USE_FONT_BACKEND]: New element
210 x_set_font_backend.
211
212 * xfont.c (xfont_list): Don't try listing by :name property if the
213 name is not for XLFD.
214
215 2006-07-24 Kenichi Handa <handa@m17n.org>
216
217 * font.h (LGLYPH_FROM, LGLYPH_TO, LGLYPH_SET_FROM)
218 (LGLYPH_SET_TO): New macros.
219 (LGLYPH_XOFF, LGLYPH_YOFF, LGLYPH_WADJUST): Check if adjustment
220 element of G is vector or not.
221 (font_at): Extern it.
222
223 * font.c: Include window.h.
224 (font_lispy_object): New function.
225 (font_prepare_composition): Check LGLYPH_FORM (g) to detect the
226 end of valid glyph.
227 (font_close_object): Fix getting (struct font *).
228 (font_at): New function.
229 (Ffont_get): If FONT is a font-object, get entity from it.
230 (Ffont_make_gstring): Initialize elements of glyphs with nil.
231 (Ffont_fill_gstring): Use macro LGSTRING_XXX and LGLYPH_XXX. Fix
232 range check.
233 (Ffont_at): New function.
234 (syms_of_font): Defsubr Sfont_at.
235
236 * xdisp.c (it_props): Move the entry for Qauto_composed to just
237 before the entry for Qcompostion.
238 (handle_auto_composed_prop): Call auto-composition-function with 4
239 args.
240 (handle_composition_prop) [USE_FONT_BACKEND]: Set it->face_id from
241 the font in gstring.
242 (fill_composite_glyph_string) [USE_FONT_BACKEND]: Check
243 LGLYPH_FORM (g) to detect the end of valid glyph.
244 (x_produce_glyphs) [USE_FONT_BACKEND]: Don't update it->face_id if
245 we are composing with gstring.
246
247 * xterm.c (x_draw_composite_glyph_string_foreground) [USE_FONT_BACKEND]:
248 Check if adjustment is vector or not.
249
250 * Makefile.in (font.o): Make it depends on window.h.
251
252 2006-07-24 Kenichi Handa <handa@m17n.org>
253
254 * xterm.c (x_draw_composite_glyph_string_foreground): Check if
255 adjustment is vector or not.
256
257 2006-07-20 Kenichi Handa <handa@m17n.org>
258
259 * casefiddle.c (casify_object): Sync with HEAD.
260
261 2006-07-18 Miles Bader <miles@gnu.org>
262
263 * character.h (CHECK_CHARACTER): Redefine in terms of CHECK_TYPE.
264
265 2006-07-14 Kenichi Handa <handa@m17n.org>
266
267 * font.h (LGLYPH_XOFF, LGLYPH_YOFF, LGLYPH_WIDTH, LGLYPH_WADJUST)
268 (LGLYPH_SET_WIDTH): Adjusted for the change of LGLYPH format.
269 (LGLYPH_ADJUSTMENT, LGLYPH_SET_ADJUSTMENT): New macros.
270
271 * font.c (font_merge_old_spec): Treat '*' in foundry as a wild
272 card.
273 (DEVICE_DELTA): Fix typo.
274 (font_otf_gpos): Adjusted for the change of LGLYPH format.
275 (font_prepare_composition): Likewise.
276
277 * xterm.c (x_draw_composite_glyph_string_foreground): Adjusted for
278 the change of LGLYPH format.
279
280 2006-07-07 Kenichi Handa <handa@m17n.org>
281
282 * ftfont.c (ftfont_list): Fix typo.
283 (ftfont_build_basic_charsets): Don't include letters with
284 diactrics.
285
286 2006-07-09 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
287
288 * xfaces.c (realize_non_ascii_face): Set face->extra to NULL.
289
290 * xftfont.c (xftfont_done_face): Call XftDrawDestroy only if
291 xftface_info is non-NULL.
292
293 2006-07-07 Kenichi Handa <handa@m17n.org>
294
295 * ftfont.c (ftfont_list): Fix typo.
296 (ftfont_build_basic_charsets): Don't include letters with
297 diactrics.
298
299 2006-07-05 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
300
301 * ftfont.c (ftfont_list): Move misplaced #endif
302
303 2006-07-05 Kenichi Handa <handa@m17n.org>
304
305 * ftfont.c (ftfont_list): Pay attention to the case that
306 FC_CAPABILITY is not defined.
307
308 2006-07-03 Kenichi Handa <handa@m17n.org>
309
310 * xftfont.c (xftfont_open): Set charset related members to -1.
311
312 * ftfont.c (ftfont_list): Handle QCotf property. Handling of
313 QCname fixed.
314 (ftfont_open): Set charset related members to -1.
315
316 * fontset.c (Votf_script_alist): New variable.
317 (syms_of_fontset): Initialize it.
318 (fontset_font): Delete unused variable.
319
320 * fontset.h (Votf_script_alist): Extern it.
321
322 * font.c (font_find_for_lface): Code optimized.
323
324 * font.h (font_close_object, font_merge_old_spec): Extern them.
325
326 2006-06-28 Kenichi Handa <handa@m17n.org>
327
328 * font.c (QCscalable, Qc, Qm, Qp, Qd): New variables.
329 (syms_of_font): Initialize them.
330 (font_pixel_size): Allow float value in dpi.
331 (font_prop_validate_type): Deleted.
332 (font_prop_validate_symbol, font_prop_validate_style): Argument
333 changed. Caller changed.
334 (font_prop_validate_non_neg): Renamed from
335 font_prop_validate_size.
336 (font_prop_validate_extra): Deleted.
337 (font_prop_validate_spacing): New function.
338 (font_property_table): Add elements for all known properties.
339 (get_font_prop_index): Renamed from check_font_prop_name. New
340 argument FROM. Caller changed.
341 (font_prop_validate): Validate all known properties.
342 (font_put_extra): Argument force deleted. Caller changed.
343 (font_expand_wildcards): Make it static. Fix the way of shrinking
344 the possible range.
345 (font_parse_xlfd): Arguemnt merge deleted. Fix handling of RESX,
346 RESY, SPACING, and AVGWIDTH. Don't validate property values here.
347 Caller changed.
348 (font_unparse_xlfd): Handle dpi, spacing, and scalable properties.
349 (font_parse_fcname): Arguemnt merge deleted. Fix parsing of point
350 size. Don't validate properties values here. Caller changed.
351 (font_unparse_fcname): Handle dpi, spacing, and scalable
352 properties.
353 (font_open_by_name): Delete unused variable.
354 (Ffont_spec): Likewise. Validate property values.
355 (Ffont_match_p): New function.
356
357 * font.h (QCscalable): Extern it.
358 (font_parse_xlfd, font_parse_fcname): Prototype adjusted.
359
360 * ftfont.c (ftfont_list): Handle properties dpi, spacing, and
361 scalable.
362
363 * xfont.c (xfont_query_font): Adjusted for the change of
364 font_parse_xlfd.
365 (xfont_list_pattern): New function.
366 (xfont_list): Use xfont_list_pattern.
367
368 * xftfont.c (xftfont_prepare_face): Cancel previous change.
369 (xftfont_done_face): Likewise.
370
371 2006-06-26 Kenichi Handa <handa@m17n.org>
372
373 * font.h (Flist_fonts): EXFUN it.
374
375 2006-06-25 Jason Rumney <jasonr@gnu.org>
376
377 * w32term.c (w32_initialize): Add back smoothing_type and
378 smoothing_enabled definitions.
379
380 2006-06-23 Kenichi Handa <handa@m17n.org>
381
382 * xterm.c (x_draw_glyph_string) [USE_FONT_BACKEND]: Check
383 s->face->font on determining underline position.
384
385 2006-06-21 Kenichi Handa <handa@m17n.org>
386
387 * font.c (font_parse_xlfd): Fix generating of CHARSET_REGISTRY field.
388 (font_has_char): Accept font-object too.
389 (font_find_for_lface): Try at first with a size specified in face.
390
391 * xftfont.c (xftfont_prepare_face): Make non-ascii face share
392 face->extra with ascii face.
393 (xftfont_done_face): Don't free face->extra of non-ascii face.
394
395 2006-06-20 Kenichi Handa <handa@m17n.org>
396
397 * frame.c (x_set_font) [USE_FONT_BACKEND]: Fix argument to
398 font_open_by_name.
399
400 2006-06-19 Kenichi Handa <handa@m17n.org>
401
402 * font.h (QCspacing, QCdpi): Extern them.
403 (enum font_spacing): New enum.
404 (FONT_PIXEL_SIZE_QUANTUM): New macro.
405
406 * font.c (POINT_TO_PIXEL): Don't divice POINT by 10.
407 (QCspacing, QCdpi): New variables.
408 (syms_of_font): Initialize them.
409 (font_pixel_size): New function.
410 (font_put_extra): New function.
411 (font_parse_xlfd): Fix handling of font size. Add QCdpi property
412 in FONT_EXTRA.
413 (font_parse_fcname): Handle enumenrated values (e.g. bold). Fix
414 handling font size. Add QCname property that contains only
415 unknown properties.
416 (font_score): Change argument. Caller changed. Pay attention to
417 FONT_PIXEL_SIZE_QUANTUM.
418 (font_sort_entites): Fix handling of font size.
419 (font_list_entities): Likewise.
420 (font_find_for_lface): Likewise.
421 (font_open_for_lface): Likewise.
422 (font_open_by_name): Likewise.
423 (Ffont_spec): Add QCname property that contains only unknown
424 properties.
425
426 * ftfont.c (ftfont_list): Use assq_no_quit, not Fassq. Don't
427 include weight in listing pattern, instead check weight of each
428 listed font. Don't include scalable in pattern. Pay attention to
429 FONT_PIXEL_SIZE_QUANTUM.
430
431 2006-06-19 Kenichi Handa <handa@m17n.org>
432
433 * lread.c (read_escape): Fix the code synched with HEAD.
434
435 * font.c (font_parse_fcname): Fix parsing of point-size.
436 (font_unparse_fcname): Produce symbolic names for style
437 properties.
438 (font_list_entities): Handle float size correctly.
439 (font_open_by_name): Prefer `normal' property values if the name
440 doesn't specify them.
441
442 * fontset.c (Finternal_char_font): Use font_get_name, not
443 Ffont_xlfd_name.
444
445 * ftfont.c (ftfont_pattern_entity): Use the numeric value 100 for
446 FC_WEIGHT_REGULAR. Exclude FC_SIZE and FC_PIXEL_SIZE from listing
447 pattern. Don't force scalable.
448
449 * xftfont.c (xftfont_open): For generating a name, start from
450 96-byte buffer.
451
452 2006-06-16 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
453
454 * frame.h (x_new_fontset2): Fix prototype.
455
456 2006-06-16 Kenichi Handa <handa@m17n.org>
457
458 * font.h (struct font_driver): Member parse_name deleted.
459 (font_match_p, font_get_spec, font_parse_fcname)
460 (font_unparse_fcname): Extern them.
461 (font_get_name): Prototype adjusted.
462
463 * font.c (XLFD_SMALLNUM_MASK): Delete this macro.
464 (XLFD_LARGENUM_MASK): Delete XLFD_ENCODING_MASK from it.
465 (font_expand_wildcards): Fix handling ENCODING field. Avoid
466 unnecessary checks for weight, slant, and swidth.
467 (font_parse_fcname): New function.
468 (font_unparse_fcname): New function.
469 (font_parse_name): New function.
470 (font_match_p): New function.
471 (font_get_name): Return value changed to Lisp string.
472 (font_get_spec): New function.
473 (Qunspecified, Qignore_defface): Don't extern them.
474 (font_find_for_lface): Assume that LFACE is fully specified.
475 (font_load_for_face): If lface[LFACE_FONT_INDEX] is an font
476 object, use it for FACE.
477 (font_open_by_name): Call Ffont_spec with QCname prop. Don't call
478 driver->parse_name.
479 (Ffont_spec): Call font_parse_name, not font_parse_xlfd.
480
481 * fontset.h (new_fontset_from_font) [USE_FONT_BACKEND]: Prototype
482 adjusted.
483
484 * fontset.c (new_fontset_from_font) [USE_FONT_BACKEND]: Argument F
485 deleted. Don't call Fnew_fontset. Instead, directly call
486 make_fontset.
487
488 * frame.h (x_new_fontset2) [USE_FONT_BACKEND]: Prototype adjusted.
489
490 * frame.c (x_set_font) [USE_FONT_BACKEND]: Adjusted for the change
491 of x_new_fontset2.
492
493 * ftfont.c (Qmonospace, Qsans_serif, Qserif, Qmono, Qsans)
494 (Qsans__serif): New variables.
495 (ftfont_generic_family_list): New variable.
496 (syms_of_ftfont): Initialize the above variables.
497 (ftfont_pattern_entity): Argument NAME deleted.
498 (ftfont_list_generic_family): New function.
499 (ftfont_parse_name): Delete this function.
500 (ftfont_list): Try generic family only when FcFontList found no
501 font.
502 (ftfont_list_family): Fix args to FcObjectSetBuild.
503
504 * xfaces.c (check_lface_attrs) [USE_FONT_BACKEND]: Accept font
505 object in attrs[LFACE_FONT_INDEX].
506 (set_lface_from_font_name): Cancel all changes for font-backend.
507 (set_lface_from_font_and_fontset) [USE_FONT_BACKEND]: New
508 function.
509 (Finternal_set_lisp_face_attribute) [USE_FONT_BACKEND]: Accept a
510 font object in QCfont attribute.
511 (set_font_frame_param) [USE_FONT_BACKEND]: Likewise.
512 (realize_default_face) [USE_FONT_BACKEND]: Call
513 set_lface_from_font_and_fontset.
514
515 * xfns.c (x_default_font_parameter) [USE_FONT_BACKEND]: Try also
516 "fixed", and signal error here if no suitable font was found.
517
518 * xfont.c (xfont_parse_name): Delete this function.
519
520 * xftfont.c (xftfont_open): Change coding style of error
521 handling. Generate fontconfig's fontname pattern.
522
523 * xterm.h (struct x_output) [USE_FONT_BACKEND]: New member fontp.
524 (FRAME_FONT_OBJECT) [USE_FONT_BACKEND]: New macro.
525
526 * xterm.c (x_new_fontset2) [USE_FONT_BACKEND]: Change arguments.
527 Both args FONTSET and FONT_OBJECT must be existing ones.
528
529 2006-06-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
530
531 * macterm.c (mac_set_unicode_keystroke_event): Don't use MAKE_CHAR.
532
533 2006-06-14 Kenichi Handa <handa@m17n.org>
534
535 * xfont.c (xfont_open, xfont_encode_char): Fix typo.
536
537 * font.h (struct font): Fix typo.
538
539 * font.c (enum xlfd_field_index): Rename XLFD_XXX_SIZE_INDEX to
540 XLFD_XXX_INDEX.
541 (enum xlfd_field_mask): New enum.
542 (intern_font_field): Argument changed. Caller changed. If digits
543 are followed by non-digits, return a symbol.
544 (font_expand_wildcards): New function.
545 (font_parse_xlfd): Fix wildcard handling.
546 (Ffont_spec): If :name is specified, reflect the info in the other
547 properties.
548
549 * ftfont.c (ftfont_pattern_entity): Fix typo.
550 (ftfont_list): Enforce FC_LANG in PATTERN to cancel the effect of
551 locale.
552
553 2006-06-09 Kenichi Handa <handa@m17n.org>
554
555 * font.h (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Extern them.
556
557 * font.c (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Moved from
558 ftfont.c.
559 (font_unparse_xlfd): Fix argument type declaration. Append "*" if
560 registry doesn't specify encoding part.
561 (font_find_for_lface): Pay attention to LFACE_FONT_INDEX.
562 (font_open_by_name): At first try parsing the name.
563 (syms_of_font): Declare Qiso8859_1, Qiso10646_1, and Qunicode_bmp
564 as Lisp symbols.
565
566 * fontset.c (reorder_font_vector): Pay attention to the case that
567 the 3rd element of font_def is nil.
568 (fontset_font): For the default fontset, append one more fontset
569 elements for a script-based font specification. Don't add script
570 attribute on finding a font.
571 (new_fontset_from_font): Unconditionally set FONTSET_ASCII to the
572 font name.
573 (fontset_ascii_font): If a font can't be opened, return nil.
574
575 * ftfont.c (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Moved to
576 font.c.
577 (ftfont_pattern_entity): New function.
578 (ftfont_get_cache): Assume that freetype_font_cache is already
579 initialized.
580 (ftfont_list): Handle the case that a file is specified in font
581 name. Use ftfont_pattern_entity to generate entities.
582 (ftfont_has_char): Check if the pattern contains FC_CHARSET.
583 (syms_of_ftfont): Initialize freetype_font_cache.
584
585 * xftfont.c (xftfont_open): Make the font name fontconfig's
586 style. Add BLOCK_INPUT and UNBLOCK_INPUT.
587 (xftfont_close): Free font->font.name if not NULL.
588
589 * xfont.c (xfont_list): If script is specified for a font, return
590 null_vector.
591 (xfont_list_family): Declare argument type.
592
593 * xfaces.c (set_lface_from_font_name): If a font doesn't have a
594 name, set LFACE_FONT (lface) to nil.
595
596 * xterm.c (x_new_fontset2): If an ASCII font couldn't be loaded,
597 return Qnil.
598
599 2006-06-08 Jason Rumney <jasonr@gnu.org>
600
601 * w32term.c (w32_initialize): Manually sync 2006-06-05 change from
602 HEAD.
603
604 2006-06-08 Kenichi Handa <handa@m17n.org>
605
606 * emacs.c (main): Check -enable-font-backend arg after the check
607 of -nl.
608 (standard_args): Add "-enable-font-backend".
609
610 * coding.c (Ffind_operation_coding_system): Sync with HEAD.
611
612 * callproc.c (Fcall_process): Sync with HEAD.
613
614 * coding.h (CODING_REQUIRE_ENCODING): Comment sync with HEAD.
615
616 2006-06-07 Kenichi Handa <handa@m17n.org>
617
618 * xftfont.c (xftfont_default_fid): Set fid_known to 1.
619 (struct xftdraw_list, xftdraw_list): Delete them.
620 (register_xftdraw, check_xftdraw): Delete them.
621 (xftfont_prepare_face): Don't call register_xftdraw.
622 (xftfont_done_face): Don't call check_xftdraw.
623 (xftfont_draw): Get backroudn color only when with_background is
624 nonzero.
625
626 * xfont.c (xfont_encode_char): Fix calculation of char2b.
627
628 2006-06-06 Kenichi Handa <handa@m17n.org>
629
630 These changes are for the new font handling codes.
631
632 * Makefile.in (ALL_CFLAGS): Add @FREETYPE_CFLAGS@,
633 @FONTCONFIG_CFLAGS@, and @LIBOTF_CFLAGS@.
634 (LIB_X11_LIB): If HAVE_XFT is defined, set to @XFT_LIBS@.
635 (FONTSRC, FONTOBJ): New variables.
636 (obj): Add $(FONTOBJ).
637 (SOME_MACHINE_OBJECTS): Lib_X11_Lib.
638 (LIBES): Add @FREETYPE_LIBS@, @FONTCONFIG_LIBS@, and
639 @LIBOTF_LIBS@.
640 (font.o, ftfont.o, xfont.o, xftfont.o, ftxfont.o): New targets.
641 (fontset.o, xdisp.o, xfaces.o, xfns.o, xterm.o): Depends on
642 $(FONTSRC).
643
644 * font.h, font.c, xfont.c, ftfont.c, xftfont.c, ftxfont.c: New
645 files.
646
647 * character.h (Vscript_representative_chars): Extern it.
648
649 * character.c (Vscript_representative_chars): New variable.
650 (syms_of_character): Declare it as a Lisp variable.
651
652 * composite.c (get_composition_id) [USE_FONT_BACKEND]: If
653 enable_font_backend is nonzero, accept the composition method
654 COMPOSITION_WITH_GLYPH_STRING.
655
656 * composite.h (enum composition_method) [USE_FONT_BACKEND]: New
657 enumeration COMPOSITION_WITH_GLYPH_STRING.
658
659 * config.in: Re-generated.
660
661 * dispextern.h (struct glyph_string) [USE_FONT_BACKEND]: New
662 members clip_x, clip_y, clip_width, and clip_height.
663 (struct face) [USE_FONT_BACKEND]: New members font_info and extra.
664
665 * emacs.c (main) [USE_FONT_BACKEND]: Handle arg
666 --enable-font-backend. Call syms_of_font.
667
668 * fns.c (assoc_no_quit): New function.
669
670 * fontset.h (FONT_INFO_FROM_FACE): New macro.
671 (face_for_font, new_fontset_from_font)
672 (fontset_ascii_font) [USE_FONT_BACKEND]: Extern them.
673
674 * fontset.c [USE_FONT_BACKEND]: Include "font.h".
675 (fontset_font, fontset_ascii, face_for_char)
676 (make_fontset_for_ascii_face, Ffont_info)
677 (Finternal_char_font) [USE_FONT_BACKEND]: If enable_font_backend
678 is nonzero, use font-backend mechanism.
679 (find_font_encoding): Make it non-static.
680 (new_fontset_from_font, fontset_ascii_font) [USE_FONT_BACKEND]:
681 New functions.
682
683 * frame.h (struct frame): New members resx and resy.
684 (struct frame) [USE_FONT_BACKEND]: New member font_driver_list.
685 (x_new_fontset2) [USE_FONT_BACKEND]: Extern it.
686
687 * frame.c [USE_FONT_BACKEND]: Include "font.h".
688 (make_frame, x_set_font) [USE_FONT_BACKEND]: Use font-backend
689 mechanism.
690
691 * lisp.h (assoc_no_quit): Extern it.
692
693 * xdisp.c: If USE_FONT_BACKEND is defined, include "font.h".
694 Through out the file, use FONT_INFO_FROM_FACE instead of
695 FONT_INFO_FROM_ID, use get_per_char_metric instead of
696 rif->per_char_metric.
697 (handle_composition_prop) [USE_FONT_BACKEND]: If the composition
698 method is COMPOSITION_WITH_GLYPH_STRING, just set it->c to ' '.
699 (get_glyph_face_and_encoding, fill_composite_glyph_string)
700 (get_char_face_and_encoding, BUILD_COMPOSITE_GLYPH_STRING)
701 (x_produce_glyphs) [USE_FONT_BACKEND]: If enable_font_backend is
702 nonzero, use font-backend mechanism.
703 (get_per_char_metric): New function.
704
705 * xfaces.c [USE_FONT_BACKEND]: Include "font.h".
706 (set_lface_from_font_name)
707 (set_font_frame_param, free_realized_face)
708 (prepare_face_for_display, clear_face_gcs)
709 (Finternal_set_font_selection_order, realize_x_face)
710 [USE_FONT_BACKEND]: If enable_font_backend is nonzero, use
711 font-backend mechanism.
712 (clear_face_cache) [USE_FONT_BACKEND]: Don't call
713 clear_font_table.
714 (load_face_font) [USE_FONT_BACKEND]: Abort.
715 (face_symbolic_value, face_symbolic_weight, face_symbolic_slant)
716 (face_symbolic_swidth, face_for_font) [USE_FONT_BACKEND]: New
717 functions.
718
719 * xfns.c [USE_FONT_BACKEND]: Include "font.h".
720 (x_default_font_parameter) [USE_FONT_BACKEND]: New function.
721 (Fx_create_frame) [USE_FONT_BACKEND]: If enable_font_backend is
722 nonzero, register all available font drivers. Call
723 x_default_font_parameter for deciding a font.
724 (x_create_tip_frame) [USE_FONT_BACKEND]: Likewise.
725
726 * xterm.c [USE_FONT_BACKEND]: Include "font.h".
727 (x_set_mouse_face_gc, x_set_glyph_string_clipping)
728 (x_set_glyph_string_clipping_exactly)
729 (x_compute_glyph_string_overhangs)
730 (x_draw_glyph_string_foreground)
731 (x_draw_composite_glyph_string_foreground, x_draw_glyph_string)
732 (x_free_frame_resources) [USE_FONT_BACKEND]: If
733 enable_font_backend is nonzero, use font-backend mechanism.
734 (x_new_fontset2) [USE_FONT_BACKEND]: New function.
735
736 2006-05-15 Kenichi Handa <handa@m17n.org>
737
738 * coding.h (system_eol_type): Fix synching with HEAD.
739
740 * coding.c (system_eol_type): Sync with HEAD.
741 (coding_inherit_eol_type): If PARENT is nil, inherit from
742 system_eol_type.
743 (syms_of_coding): Initialize system_eol_type.
744
745 * callproc.c (Fcall_process): Sync with HEAD.
746
747 * process.c (setup_process_coding_systems): Fix synching with
748 HEAD.
749 (read_process_output): Likewise.
750 (Fset_process_coding_system): Inherit system's eol format if
751 necessary.
752
753 * fileio.c (choose_write_coding_system): Fix synching with HEAD.
754
755 * keymap.c (push_key_description): Fix synching with HEAD.
756
757 2006-05-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
758
759 * macgui.h (USE_ATSUI): Don't enable on emacs-unicode-2 branch.
760
761 2006-04-07 Kenichi Handa <handa@m17n.org>
762
763 * coding.c (decode_eol): Pay attention to buffer relocation in
764 del_range_2.
765 (decode_coding): Call decode_eol before restoring undo_list.
766
767 2006-03-20 Kenichi Handa <handa@m17n.org>
768
769 * charset.c (Fdefine_charset_internal): Fix setting of
770 emacs_mule_bytes.
771
772 2006-03-14 Kenichi Handa <handa@m17n.org>
773
774 * keyboard.c (read_char): Check if C is a character or not before
775 looking up Vkeyboard_translate_table.
776
777 2006-03-10 Kenichi Handa <handa@m17n.org>
778
779 * coding.c (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION): Fix
780 condition to terminate the loop.
781
782 2006-03-09 Kenichi Handa <handa@m17n.org>
783
784 * coding.c (produce_composition): Compare charbuf[i] instead of
785 args[i] against 0.
786 (Fterminal_coding_system): Use EQ to compare Lisp objects.
787
788 2006-03-07 Kenichi Handa <handa@m17n.org>
789
790 * coding.c (DECODE_COMPOSITION_START): If the source is short, set
791 coding->result to CODING_RESULT_INSUFFICIENT_SRC.
792 (decode_coding_gap): Set CODING_MODE_LAST_BLOCK after the call of
793 detect_coding.
794 (emacs_mule_char): Handle old style (Emacs 20) component character
795 of a composition.
796 (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Fix parsing a composition
797 rule.
798 (DECODE_EMACS_MULE_20_RULEBASE_COMPOSITION): Likewise.
799 (decode_coding_emacs_mule): Handle invalid bytes correctly.
800
801 2006-03-04 Kenichi Handa <handa@m17n.org>
802
803 * coding.c (encode_coding_ccl): Allocate destination dynamically
804 when necessary.
805
806 2006-03-03 Kenichi Handa <handa@m17n.org>
807
808 * ccl.c (Fccl_execute_on_string): Fix the condition of terminating
809 the loop. When quitted, show a proper error message.
810
811 2006-03-02 Kenichi Handa <handa@m17n.org>
812
813 * coding.c (decode_coding): Fix previous change.
814
815 * xterm.c (x_set_glyph_string_clipping_exactly): Set
816 src->clip_head and src->clip_tail temporarily instead of src->hl.
817
818 * ccl.c (CCL_WRITE_STRING): Handle a flag bit for multibyte
819 character sequence.
820 (Fccl_execute_on_string): Use ASET, not XSET.
821
822 2006-03-01 Kenichi Handa <handa@m17n.org>
823
824 * search.c (search_buffer): Fix handling of "\\" in a trivial
825 regexp.
826
827 2006-02-28 Kenichi Handa <handa@m17n.org>
828
829 * coding.c (decode_coding): Fix the condition of terminating the
830 decoding loop.
831
832 2006-02-27 Kenichi Handa <handa@m17n.org>
833
834 * data.c (Faset): On setting a character bigger than 255 in a
835 unibyte string, signal an error instead of make the string
836 multibyte.
837
838 2006-02-22 Kenichi Handa <handa@m17n.org>
839
840 * charset.c (map_charset_chars): Fix for ascii-compatible charset
841 made by a mapping table.
842
843 2006-02-21 Kenichi Handa <handa@m17n.org>
844
845 * xdisp.c (fill_composite_glyph_string): Check s->face is NULL or
846 not.
847 (BUILD_COMPOSITE_GLYPH_STRING): If C is TAB, set s->face to NULL.
848 (x_produce_glyphs): If CH is TAB, set cmp->offsets properly.
849
850 * xterm.c (x_draw_composite_glyph_string_foreground): Check
851 s->face is NULL or not.
852
853 2006-02-20 Kenichi Handa <handa@m17n.org>
854
855 * xterm.c (x_set_glyph_string_clipping_exactly): New function.
856 (x_draw_glyph_string): Fix drawing of right_overhang and
857 left_overhang around/on cursor.
858
859 * xdisp.c (draw_glyphs): Fix inclusion of right_overwriting
860 glyphs.
861
862 * term.c (produce_glyphs): Sync to HEAD.
863
864 2006-02-15 Kenichi Handa <handa@m17n.org>
865
866 * xdisp.c (x_produce_glyphs): Handle composition with TAB.
867
868 2006-02-05 Kenichi Handa <handa@m17n.org>
869
870 * coding.c: Cancel incorrect synching with HEAD.
871
872 2006-02-03 Kenichi Handa <handa@m17n.org>
873
874 * coding.c (Fdefine_coding_system_internal): Avoid a duplicated
875 element in Vcoding_system_alist.
876 (Fdefine_coding_system_alias): Likewise.
877
878 2006-01-19 Kenichi Handa <handa@m17n.org>
879
880 * xterm.c (handle_one_xevent): Handle keysyms 0x1000000..0x10000FF.
881
882 * coding.c: Sync to HEAD for handling autoload-coding-system.
883 (Qcoding_system_define_form): New variable.
884 (syms_of_coding): Intern and staticpro it.
885 (Fcoding_system_p): Check Qcoding_system_define_form.
886 (Fcheck_coding_system): Try to autoload the definition of
887 CODING-SYSTEM.
888
889 * coding.h (CODING_SYSTEM_P): If ID is not available, call
890 Fcoding_system_p.
891 (CHECK_CODING_SYSTEM): If ID is not available, call
892 Fcheck_coding_system.
893 (CHECK_CODING_SYSTEM_GET_SPEC): Try also Fcheck_coding_system.
894 (CHECK_CODING_SYSTEM_GET_ID): Likewise.
895
896 2006-01-17 Kenichi Handa <handa@m17n.org>
897
898 * xterm.c (handle_one_xevent): Delete unnecessary code inserted by
899 sync with HEAD.
900
901 * coding.c (code_conversion_restore): GCPRO arg.
902
903 2005-12-28 Kenichi Handa <handa@m17n.org>
904
905 * character.c (lisp_string_width): Check multibyteness of STRING.
906
907 2005-10-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
908
909 * macterm.c (mac_encode_char): Call ccl_driver with the last arg
910 Qnil. Use JIS_TO_SJIS instead of ENCODE_SJIS.
911 (decode_mac_font_name): Use decode_coding_c_string instead of
912 decode_coding.
913 (x_load_font): Initialize fontp->fontset to -1. Set
914 fontp->encoding_type.
915
916 2005-10-17 Kenichi Handa <handa@m17n.org>
917
918 * search.c (search_buffer): Give up BM search on case-fold-search
919 if one of a target character has a case-equivalence of different
920 byte length even if that target charcter is an ASCII.
921 (simple_search): Fix culculation of byte length of matched text.
922 (boyer_moore): Fix handling of case-equivalent multibyte
923 characters.
924
925 2005-10-15 Kenichi Handa <handa@m17n.org>
926
927 * coding.c (decode_coding): Fix handling of invalid bytes.
928
929 2005-10-06 Kenichi Handa <handa@m17n.org>
930
931 * xterm.c (handle_one_xevent): Handle keysyms directly mapped to
932 Unicode characters.
933
934 2005-09-23 Kenichi Handa <handa@m17n.org>
935
936 * coding.c (encode_coding_object): If a pre-write-conversion
937 function makes a new buffer, kill it.
938
939 2005-07-29 Kenichi Handa <handa@m17n.org>
940
941 * coding.c (QCascii_compatible_p): New variable.
942 (syms_of_coding): Initialize it.
943 (ONE_MORE_BYTE): Decrement `src' before calling string_char.
944 (ONE_MORE_BYTE_NO_CHECK): Likewise.
945 (record_conversion_result): Add `default:' case.
946 (coding_charset_list): Delete unused variable `coding_type'.
947 (Fdefine_coding_system_internal): Add `ascii-compatible-p'
948 property in the plist of the coding system.
949 (Fcoding_system_put): Check QCascii_compatible_p.
950
951 2005-06-09 Kenichi Handa <handa@m17n.org>
952
953 * xdisp.c (get_next_display_element): Sync with the change in
954 HEAD (2005-06-08).
955
956 2005-06-06 Kenichi Handa <handa@m17n.org>
957
958 * callproc.c (Fcall_process): Sync with the change in
959 HEAD (2005-06-04).
960
961 2005-06-05 Miles Bader <miles@gnu.org>
962
963 * xfaces.c (Finternal_lisp_face_equal_p): Restore previously
964 removed calculation of frame `f', as it's now used.
965
966 2005-05-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
967
968 * macterm.c (x_font_name_to_mac_font_name): Sync with trunk
969 for the case that does not require code conversion.
970
971 2005-05-11 Kenichi Handa <handa@m17n.org>
972
973 * Makefile.in (shortlisp): Cancel previous change.
974 (RUN_TEMACS): Include "-nl" if HAVE_SHM is defined.
975 (emacs${EXEEXT}): Run $(RUN_TEMACS) unconditionally.
976 (UNIDATA): New variable.
977 (${lispsource}international/charprop.el): Depends on ${UNIDATA}.
978 (bootstrap-emacs${EXEEXT}): Depends on charprop.el. Run
979 $(RUN_TEMACS) unconditionally.
980
981 2005-05-10 Kenichi Handa <handa@m17n.org>
982
983 * Makefile.in (shortlisp): Add ../lisp/international/charprop.el.
984 (temacs${EXEEXT}): Build charprop.el if necessary.
985 (admindir): New variable.
986 ($(lispsource)international/charprop.el): New target.
987
988 2005-05-04 Miles Bader <miles@gnu.org>
989
990 * character.c (chars-in-region): Obsolete function removed.
991 (syms_of_character): Remove its initialization.
992
993 2005-04-28 Benjamin Riefenstahl <b.riefenstahl@turtle-trading.net>
994
995 * w32select.c (validate_coding_system)
996 (setup_windows_coding_system): New functions.
997 (convert_to_handle_as_coded, Fw32_get_clipboard_data): Use
998 setup_windows_coding_system.
999 (setup_config, Fw32_get_clipboard_data): Use
1000 validate_coding_system.
1001 (Fx_selection_exists): Move call to setup_config to a place
1002 were signals are allowed.
1003
1004 * lisp.h (Fcoding_system_base, Fcoding_system_eol_type)
1005 (Fcheck_coding_system): Add declarations.
1006
1007 2005-04-28 Kenichi Handa <handa@m17n.org>
1008
1009 * s/ms-w32.h (STDC_HEADERS): Sync with the change in
1010 HEAD (2005-04-23).
1011
1012 2005-04-25 Kenichi Handa <handa@m17n.org>
1013
1014 * charset.c (load_charset_map_from_vector): Fix for the first
1015 iteration.
1016
1017 2005-04-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1018
1019 * macfns.c (Fx_create_frame, x_create_tip_frame): Pass Lisp
1020 string as the second argument for x_new_fontset.
1021
1022 2005-04-18 Kenichi Handa <handa@m17n.org>
1023
1024 * fns.c (Fstring_as_multibyte): Fix the change for syncing with
1025 CVS head.
1026
1027 2005-04-09 Kenichi Handa <handa@m17n.org>
1028
1029 * search.c (search_buffer): Fix the change for syncing with CVS
1030 head.
1031 (search_buffer): Likewise.
1032
1033 2005-03-31 Kenichi Handa <handa@m17n.org>
1034
1035 * xdisp.c (get_next_display_element): Sync with CVS head.
1036
1037 2005-03-29 Kenichi Handa <handa@m17n.org>
1038
1039 * coding.c (decode_coding_object): Use safe_call1 instead of call1.
1040 (encode_coding_object): Use safe_call instead of call2.
1041
1042 2005-03-14 Kenichi Handa <handa@m17n.org>
1043
1044 * fontset.c (set_default_ascii_font): Fix the change for
1045 syncing with CVS head.
1046
1047 2005-01-30 Kenichi Handa <handa@m17n.org>
1048
1049 * fontset.c (Fset_fontset_font): Check family element of a given
1050 vector.
1051
1052 * Makefile.in (lisp): Include charprop.el.
1053
1054 2005-01-17 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1055
1056 * macfns.c (Fx_create_frame, x_create_tip_frame): Fix crash.
1057 Not sure if it's unnecessary.
1058
1059 2005-01-16 Steven Tamm <steventamm@mac.com>
1060
1061 * macfns.c (Fx_create_frame, x_create_tip_frame): ifdef'd out
1062 some possibly unnecessary fontset checking code that crashed
1063 when creating a new frame
1064
1065 2005-01-17 Kenichi Handa <handa@m17n.org>
1066
1067 * xfaces.c (merge_faces): Fix argument to lookup_derived_face and
1068 lookup_face.
1069
1070 * xdisp.c (Fformat_mode_line): Fix argument to lookup_named_face.
1071
1072 * fringe.c (draw_fringe_bitmap_1): Fix argument to
1073 lookup_named_face.
1074
1075 2004-12-25 Kenichi Handa <handa@m17n.org>
1076
1077 * xdisp.c (get_next_display_element): Sync to the change in HEAD
1078 on 2004-12-21.
1079
1080 2004-12-11 Kenichi Handa <handa@m17n.org>
1081
1082 * search.c: Sync to the change in HEAD on 2004-11-19, 20.
1083
1084 * w32console.c: Sync to the change in HEAD on 2004-12-01.
1085
1086 * coding.c: Cancel the change done in HEAD on 2004-11-30.
1087 (coding_charset_list): New function.
1088
1089 * coding.h (coding_charset_list): Extern it.
1090
1091 * term.c: Sync to the change in HEAD on 2004-11-30.
1092
1093 2004-12-09 Kenichi Handa <handa@m17n.org>
1094
1095 * fontset.c (Fset_fontset_font): Call find_font_encoding with
1096 concatenation of family and registry.
1097
1098 2004-12-06 Kenichi Handa <handa@m17n.org>
1099
1100 * character.h (BYTE8_STRING): Fix typo.
1101
1102 * editfns.c (Ftranslate_region_internal): Don't convert unibyte
1103 string to multibyte (sync to HEAD).
1104
1105 * casefiddle.c (casify_region): Handle changes in byte-length
1106 using replace_range_2 (sync to HEAD).
1107
1108 2004-11-24 Andreas Schwab <schwab@suse.de>
1109
1110 * chartab.c (map_char_table): GCPRO table and arg.
1111
1112 2004-10-29 Kenichi Handa <handa@m17n.org>
1113
1114 * syntax.c (skip_syntaxes): Return lispy 0 (not nil) if point is
1115 already at limit.
1116
1117 2004-10-23 Kenichi Handa <handa@m17n.org>
1118
1119 * fontset.c (fs_load_font): Use fast_string_match_ignore_case
1120 instead of fast_c_string_match_ignore_case.
1121 (find_font_encoding): Argument changed to Lisp_Object. Use
1122 fast_string_match_ignore_case instead of
1123 fast_c_string_match_ignore_case. Caller changed.
1124
1125 2004-10-15 Kenichi Handa <handa@m17n.org>
1126
1127 * xdisp.c (get_next_display_element): In unibyte case, decide to
1128 display in octal form by checking a chacter by
1129 UNIBYTE_CHAR_HAS_MULTIBYTE_P.
1130
1131 * charset.c (Fset_unibyte_charset): Setup
1132 unibyte_has_multibyte_table.
1133
1134 * character.c (unibyte_has_multibyte_table): New variable.
1135
1136 * character.h (unibyte_has_multibyte_table): Extern it.
1137 (UNIBYTE_CHAR_HAS_MULTIBYTE_P): New macro.
1138
1139 2004-10-14 Kenichi Handa <handa@m17n.org>
1140
1141 * callproc.c (Fcall_process): Fix merging of 2004-10-13 change.
1142
1143 2004-10-13 Kenichi Handa <handa@m17n.org>
1144
1145 * coding.c (encode_coding_iso_2022): Fix handling of charset
1146 annotation.
1147
1148 2004-10-12 Kenichi Handa <handa@m17n.org>
1149
1150 * coding.c (setup_coding_system): If coding_system is nil, use
1151 Qundecided.
1152 (Fterminal_coding_system): Return nil if terminal coding system is
1153 `undecided'.
1154 (syms_of_coding): Define coding-system `undecided' here. Setup
1155 terminal_coding as `undecided'.
1156
1157 2004-10-04 Kenichi Handa <handa@m17n.org>
1158
1159 * xdisp.c (message_dolog, set_message_1): Call
1160 unibyte_char_to_multibyte with arg type int.
1161
1162 * fileio.c (Fsubstitute_in_file_name): Fix previous change.
1163
1164 * lread.c (read1): Fix reading of a char-table.
1165
1166 * print.c (print_object): Include sub char-table in cicularities
1167 detection.
1168
1169 2004-10-01 Kenichi Handa <handa@m17n.org>
1170
1171 * keymap.c (where_is_internal_2): Fix for the case that KEY is a
1172 cons. Append the found sequences in car of ARGS instead of
1173 prepending.
1174
1175 2004-09-28 Kenichi Handa <handa@m17n.org>
1176
1177 * fileio.c (report_file_error): Make a unibyte string from
1178 strerror (errorno).
1179 (Fsubstitute_in_file_name): Fix the arg to
1180 unibyte_char_to_multibyte. It is evaluated twice.
1181
1182 2004-09-19 Kenichi Handa <handa@m17n.org>
1183
1184 * charset.h (CHAR_CHARSET): Shortcut for ASCII case.
1185
1186 2004-09-14 Kenichi Handa <handa@m17n.org>
1187
1188 * coding.c (detect_coding): Fix previous change.
1189
1190 2004-09-13 Kenichi Handa <handa@m17n.org>
1191
1192 * coding.c (detect_coding_utf_16): Don't set detect_info->found if
1193 BOM is not found.
1194 (detect_coding): Optimization for ISO-2022 when no 8-bit data is
1195 found.
1196 (detect_coding_system): Likewise.
1197
1198 2004-09-01 Jason Rumney <jasonr@gnu.org>
1199
1200 * w32fns.c (x_to_w32_font): Update to use new coding struct.
1201
1202 2004-08-17 Kenichi Handa <handa@m17n.org>
1203
1204 * charset.c (Fdeclare_equiv_charset): Fix handing of CHARS.
1205 (Fiso_charset): Likewise.
1206
1207 2004-08-03 Steven Tamm <steventamm@mac.com>
1208
1209 * macterm.c (mac_encode_char): Add charset argument and update
1210 to use encoding_type
1211 (x_new_font,x_new_fontset): Merge in changes from xterm.c;
1212 switch to pure fontset
1213 (decode_mac_font_name): Temporarily remove decoding
1214 (x_font_name_to_mac_font_name): Temporarily remove encoding
1215 (x_load_font): Temporarily remove encoding
1216
1217 2004-06-30 Kenichi Handa <handa@m17n.org>
1218
1219 * xfaces.c (Fface_font): If frame is not on a window system,
1220 ignore CHARACTER arg. If HAVE_WINDOW_SYSTEM is not defined, don't
1221 refer to face->font.
1222 (split_font_name_into_vector, build_font_name_from_vector)
1223 (lookup_non_ascii_face, realize_non_ascii_face): Define them only
1224 whne HAVE_WINDOW_SYSTEM is defined.
1225
1226 2004-05-29 Kenichi Handa <handa@m17n.org>
1227
1228 * xdisp.c (BUILD_GLYPH_STRINGS): Check if s is NULL.
1229 (x_produce_glyphs): Fix setting of members of cmp in case
1230 cmp->glyph_len is zero,
1231
1232 * fontset.c (Fset_fontset_font): Docstring fixed.
1233 (Ffontset_info): Make it backward compatible. New arg ALL.
1234
1235 2004-05-11 Kim F. Storm <storm@cua.dk>
1236
1237 * process.c (read_process_output): Grow decoding_buf when needed;
1238 this could cause a crash in allocate_string and compact_small_strings.
1239
1240 2004-04-29 Kenichi Handa <handa@m17n.org>
1241
1242 * fileio.c (WRITE_BUF_SIZE): This macro deleted.
1243 (e_write): Fix previous change.
1244
1245 2004-04-28 Kenichi Handa <handa@m17n.org>
1246
1247 * coding.c (setup_coding_system): Set coding->common_flags
1248 correctly for raw-text.
1249 (consume_chars): On encoding unibyte text by raw-text, don't check
1250 multibyte form.
1251 (encode_coding): On encoding by raw-text, never use translation
1252 tables.
1253
1254 * fileio.c (e_write): Short cut for the case of no encoding.
1255
1256 2004-04-20 Kenichi Handa <handa@m17n.org>
1257
1258 * coding.c (detect_coding): Delete unused variables.
1259 (detect_coding_system): Likewise.
1260
1261 2004-04-18 Kenichi Handa <handa@m17n.org>
1262
1263 * coding.c (encode_coding_utf_8): Fix handling of raw-byte char.
1264 (consume_chars): Fix handling of 8-bit bytes in unibyte source.
1265
1266 2004-04-14 Kenichi Handa <handa@m17n.org>
1267
1268 Sync all files to HEAD.
1269
1270 2004-04-14 Kenichi Handa <handa@m17n.org>
1271
1272 * coding.c (Ffind_coding_systems_region_internal): Include
1273 raw-text and no-conversion in the result.
1274
1275 * fontset.h: Sync to HEAD.
1276
1277 * fontset.c: Sync to HEAD.
1278
1279 2004-04-14 Kenichi Handa <handa@m17n.org>
1280
1281 * fontset.c (find_font_encoding): Return `ascii' for unknown
1282 encoding.
1283 (load_font_get_repertory): Delete unnecessary check of ENCODING of
1284 FONT_DEF.
1285 (font_def_arg, add_arg, from_arg, to_arg): New args.
1286 (set_fontset_font): Argument changed.
1287 (Fset_fontset_font): Fix for the case that TARGET is a script
1288 name and charset name.
1289 (new_fontset_from_font_name): Fix argument to Fnew_fontset.
1290
1291 2004-04-13 Kenichi Handa <handa@m17n.org>
1292
1293 * fontset.c (fontset_font): Renamed from fontset_face. Return
1294 value changed.
1295 (face_suitable_for_char_p): Adjusted for the change of
1296 fontset_font.
1297 (face_for_char): Likewise.
1298 (make_fontset_for_ascii_face): Fix setting of the fontset element
1299 for ASCII.
1300 (Finternal_char_font): Use fontset_font instead of FACE_FOR_CHAR
1301 to get a font name.
1302 (Ffontset_info): Adjusted for the change of fontset_font.
1303
1304 * composite.c: Sync to HEAD.
1305
1306 * search.c: Sync to HEAD.
1307
1308 * coding.c: Sync to HEAD.
1309 (emacs_mule_char): Check invalid code more regidly.
1310
1311 * coding.h: Sync to HEAD.
1312
1313 * charset.c: Sync to HEAD.
1314
1315 * charset.h: Sync to HEAD.
1316
1317 * character.h (LEADING_CODE_LATIN_1_MIN)
1318 (LEADING_CODE_LATIN_1_MAX): Delete these macros.
1319
1320 2004-04-08 Kenichi Handa <handa@m17n.org>
1321
1322 * category.h: Sync to HEAD.
1323
1324 * category.c: Sync to HEAD.
1325
1326 * syntax.h: Sync to HEAD.
1327
1328 * syntax.c: Sync to HEAD.
1329
1330 * regex.h: Sync to HEAD.
1331
1332 * regex.c: Sync to HEAD.
1333
1334 2004-04-07 Kenichi Handa <handa@m17n.org>
1335
1336 * editfns.c: Sync to HEAD.
1337 (check_translation): New function.
1338 (Ftranslate_region_internal): Handle M:N mapping.
1339
1340 2004-04-06 Kenichi Handa <handa@m17n.org>
1341
1342 * xfaces.c (xlfd_point_size): Set font->numeric[XLFD_PIXEL_SIZE].
1343
1344 2004-03-30 Kenichi Handa <handa@m17n.org>
1345
1346 * coding.c (DECODE_DESIGNATION): Set chars_96 to -1 instead of
1347 goto invalid_code.
1348 (decode_coding_iso_2022): Fix handling of invalid designation.
1349
1350 * fileio.c (Finsert_file_contents): Be sure to call unbind_to
1351 after calling code_conversion_save.
1352
1353 2004-03-11 Kenichi Handa <handa@m17n.org>
1354
1355 * xdisp.c (handle_auto_composed_prop): Fix Lisp_Object/int mixup.
1356
1357 * print.c (print_prune_string_charset): Fix Lisp_Object/int mixup.
1358
1359 * fontset.c: Include "intervals.h".
1360 (fontset_face): Fix comparing of Lisp_Objects.
1361 (free_face_fontset): Fix Lisp_Object/int mixup.
1362 (new_fontset_from_font_name): Likewise.
1363
1364 * editfns.c (Ftranslate_region_internal): Fix Lisp_Object/int mixup.
1365
1366 * coding.c: Add many prototypes for static functions.
1367 (get_translation_table): Allow max_lookup to be NULL.
1368 (decode_coding): Call get_translation_table with max_lookup NULL.
1369 (Ffind_coding_systems_region_internal): Likewise.
1370 (Funencodable_char_position, Fcheck_coding_systems_region):
1371 Likewise.
1372
1373 2004-03-11 Kenichi Handa <handa@m17n.org>
1374
1375 * coding.c (get_translation_table): Declare it as Lisp_Object.
1376 (LOOKUP_TRANSLATION_TABLE): New macro.
1377 (produce_chars): Use LOOKUP_TRANSLATION_TABLE instead of
1378 CHAR_TABLE_REF.
1379 (consume_chars): Likewise.
1380
1381 2004-03-11 Kenichi Handa <handa@m17n.org>
1382
1383 * coding.c (MAX_ANNOTATION_LENGTH): Adjusted for the change of
1384 annotation data format.
1385 (ADD_ANNOTATION_DATA, ADD_COMPOSITION_DATA, ADD_CHARSET_DATA):
1386 Change arguments FROM and TO to single argument NCHARS. Caller
1387 changed.
1388 (decode_coding_utf_8): Pay attention to coding->charbuf_used.
1389 (decode_coding_utf_16, decode_coding_emacs_mule)
1390 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
1391 (decode_coding_ccl, decode_coding_charset): Likewise.
1392 (get_translation): New function.
1393 (produce_chars): New arguments translation_table and last_block.
1394 Translate characters here. Return number of carryover chars.
1395 Caller changed.
1396 (produce_composition): New argument pos. Caller changed.
1397 Adjusted for the change of annotation data format.
1398 (produce_charset, produce_annotation): Likewise.
1399 (decode_coding, encode_coding): Don't call translate_chars.
1400 (consume_chars): New arg translation_table. Caller changed.
1401 (translate_chars): Deleted.
1402 (syms_of_coding): Make translation-table's number of extra slots
1403 2.
1404
1405 2004-03-09 Kenichi Handa <handa@m17n.org>
1406
1407 * search.c (simple_search): Fix setting this_pos_byte in backward
1408 search.
1409
1410 * coding.c (detect_coding_emacs_mule): Fix counting of encoded
1411 byte sequence.
1412 (detect_coding_ccl): Fix setting of the variable valids.
1413
1414 2004-03-04 Kenichi Handa <handa@m17n.org>
1415
1416 * xterm.c (x_list_fonts): Fix the detection of an auto-scaled font.
1417
1418 * coding.c (decode_coding_utf_16): Fix handling of surrogate pair.
1419
1420 * editfns.c (Ftranslate_region_internal): Renamed from
1421 Ftranslate_region. Accept a char-table in TABLE.
1422 (syms_of_editfns): Defsubr Stranslate_region_internal.
1423
1424 * xfaces.c (set_lface_from_font_name): If a font is specified for
1425 a frame, generate a fontset from the font.
1426 (build_scalable_font_name): If the scalable font is requested for
1427 a specific size, don't change that size.
1428 (try_font_list): Try a scalable font also in the case that a
1429 pattern string is specified,
1430
1431
1432 2004-03-03 Kenichi Handa <handa@m17n.org>
1433
1434 * xfaces.c (Fface_font): New optional arg CHARACTER.
1435
1436 2004-02-17 Kenichi Handa <handa@m17n.org>
1437
1438 * charset.h (CHARSET_OFFSET): New macro.
1439
1440 2004-02-13 Kenichi Handa <handa@m17n.org>
1441
1442 * xterm.c (x_get_font_repertory): Fix for non-Unicode-bmp charset.
1443
1444 * fontset.c (fontset_face): Handle the case that repertory is a
1445 char-table.
1446 (find_font_encoding): Return nil for unknown encoding.
1447 (Fset_fontset_font): Ignore a font of unknown encoding.
1448
1449 2004-02-09 Kenichi Handa <handa@m17n.org>
1450
1451 * keymap.c (describe_vector): Handle default value of a char
1452 table.
1453
1454 * fontset.c (fontset_face): Handle fallback fonts correctly.
1455 (Ffontset_info): Return infomation about fallback fonts.
1456
1457 2004-02-06 Kenichi Handa <handa@m17n.org>
1458
1459 * fontset.c (FONTSET_DEFAULT): New macro.
1460 (FONTSET_ADD): Handle the case that range is nil.
1461 (fontset_add): Likewise.
1462 (Fset_fontset_font): Change the 2nd arg name to TARGET, and handle
1463 the case that it is nil.
1464 (dump_fontset): Call FONTSET_DEFAULT, not FONTSET_FALLBACK.
1465 (syms_of_fontset): Set char-table-extra-slots property of fontset
1466 to 9.
1467
1468 * charset.h (CHAR_CHARSET_P): Fix for the case that the method is
1469 subset or superset.
1470
1471 2004-01-30 Kenichi Handa <handa@m17n.org>
1472
1473 * emacs.c (main): Call init_charset after syms_of_XXX.
1474
1475 * charset.c (Vcharset_map_directory): Deleted.
1476 (Vcharset_map_path): New variable
1477 (load_charset_map_from_file): Use Vcharset_map_path instead.
1478 (init_charset): Initialize Vcharset_map_path.
1479 (syms_of_charset): Delete declaration of "charset-map-directory",
1480 add declaration of "charset-map-path".
1481
1482 2004-01-29 Kenichi Handa <handa@m17n.org>
1483
1484 * fns.c (string_char_to_byte): Optimize for ASCII only string.
1485 (string_byte_to_char): Likewise.
1486
1487 * fileio.c (Finsert_file_contents): Avoid detecting a code twice.
1488
1489 * coding.c (detect_coding_iso_2022): Fix handling of SS2 and SS3.
1490 (detect_coding): Treat '\0' as normal ASCII byte..
1491 (detect_coding_system): Likewise.
1492
1493 2004-01-27 Kenichi Handa <handa@m17n.org>
1494
1495 * coding.h (SJIS_TO_JIS2, JIS_TO_SJIS2): New macros.
1496
1497 * coding.c (QCmnemonic, QCdefalut_char)
1498 (QCdecode_translation_table, QCencode_translation_table)
1499 (QCpost_read_conversion, QCpre_write_conversion): New variables.
1500 (get_translation_table): Return a list of translation tables if
1501 necessary.
1502 (decode_coding): Call get_translation_table with ENCODEP 0.
1503 (char_encodable_p): If translation_table is non-nil, always call
1504 translate_char.
1505 (Fdefine_coding_system_internal): Accept list of translation
1506 tables as :encode-translation-table and :decode-translation-table.
1507 (Fcoding_system_put): New function.
1508 (syms_of_coding): Declare new symbols. Defsubr
1509 Scoding_system_put.
1510 (decode_coding_sjis): Handle 4th charset (typically JISX0212).
1511 (encode_coding_sjis): Likewise.
1512
1513 * charset.c (map_charset_chars): Fix arg to map_charset_chars in
1514 when the charset is superset type.
1515
1516 * character.c (translate_char): Accept list of translation tables.
1517
1518 2004-01-25 Kenichi Handa <handa@m17n.org>
1519
1520 * coding.h (enum coding_attr_index): New member
1521 coding_attr_trans_tbl.
1522 (CODING_ATTR_TRANS_TBL): New macro.
1523
1524 * coding.c (get_translation_table): New function.
1525 (translate_chars): Fix the bug of skipping annotation data.
1526 (decode_coding): Utilze get_translation_table.
1527 (encode_coding): Likewise.
1528 (char_encodable_p): Translate char if necessary.
1529 (Funencodable_char_position): Likewise.
1530 (Ffind_coding_systems_region_internal): Setup translation table
1531 for encode in a coding system attribute vector in advance.
1532 (Fcheck_coding_systems_region): Likewise.
1533 (Fdefine_coding_system_internal): Allow a symbol as translation
1534 table. For shift-jis type coding system, allow 4th charset.
1535
1536 2004-01-24 Kenichi Handa <handa@m17n.org>
1537
1538 * coding.c (decode_coding_sjis): Check the first byte rigidly.
1539
1540 * xdisp.c (get_next_display_element): Pass -1 as POS to
1541 FACE_FOR_CHAR if displaying a C-string.
1542
1543 2004-01-23 Kenichi Handa <handa@m17n.org>
1544
1545 * composite.c (get_composition_id): Handle xoff and yoff in a
1546 composition rule.
1547
1548 * composite.h (COMPOSITION_DECODE_RULE): New arg xoff and yoff.
1549 (struct composition): New member lbearing and rbearing.
1550
1551 * xdisp.c (move_it_to): Optimize for the case (op & MOVE_TO_Y).
1552 (x_get_glyph_overhangs): Handle a composition glyph.
1553 (x_produce_glyphs): Setup lbearing and rbreaing for a composition
1554 glyph.
1555
1556 * xterm.c (x_compute_glyph_string_overhangs): Handle also a
1557 composition glyph.
1558
1559 2004-01-18 Kenichi Handa <handa@m17n.org>
1560
1561 * print.c: Include charset.h.
1562 (Vprint_charset_text_property): New variable.
1563 (Qdefault): Extern it.
1564 (PRINT_STRING_NON_CHARSET_FOUND)
1565 (PRINT_STRING_UNSAFE_CHARSET_FOUND): New macros.
1566 (print_check_string_result): New variable.
1567 (print_check_string_charset_prop): New function.
1568 (print_prune_charset_plist): New variable.
1569 (print_prune_string_charset): New function.
1570 (print_object): Call print_prune_string_charset if
1571 Vprint_charset_text_property is not t.
1572 (print_interval): Print nothing if itnerval->plist is nil.
1573 (syms_of_print): Declare Vprint_charset_text_property as a lisp
1574 variable. Init and staticpro print_prune_charset_plist.
1575
1576 2004-01-15 Kenichi Handa <handa@m17n.org>
1577
1578 * fontset.c (new_fontset_from_font_name): Use the specified font
1579 for all characters in the new fontset.
1580
1581 * macterm.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
1582 OBJECT args.
1583
1584 * xdisp.c (x_produce_glyphs): Call FACE_FOR_CHAR with POS and
1585 OBJECT args for composition too.
1586
1587 * w32term.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
1588 OBJECT args.
1589
1590 2004-01-13 Kenichi Handa <handa@m17n.org>
1591
1592 * dispextern.h (FACE_FOR_CHAR): New args POS and OBJECT.
1593
1594 * fontset.c (reorder_font_vector): Adjusted for the change of
1595 FONT_DEF format.
1596 (fontset_face): New arg id. Caller changed.
1597 (face_for_char): New args pos and object.
1598 (make_fontset_for_ascii_face): Adjusted for the change of FONT_DEF
1599 format.n
1600 (fs_query_fontset): Check NAME by Fassoc too.
1601 (Fset_fontset_font): Allow non-XLFD font name.
1602 (Ffontset_info): Adjusted for the change of FONT_DEF format.
1603
1604 * fontset.h (face_for_char): Prototype adjusted.
1605
1606 * xdisp.c (face_before_or_after_it_pos): Call FACE_FOR_CHAR with
1607 POS and OBJECT args.
1608 (get_next_display_element): Likewise.
1609 (append_space): Likewise.
1610 (extend_face_to_end_of_line): Likewise.
1611 (get_char_face_and_encoding): Likewise.
1612 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
1613 (x_produce_glyphs): Likewise.
1614
1615 * xfaces.c (compute_char_face): Call FACE_FOR_CHAR with
1616 POS and OBJECT args.
1617
1618 * xterm.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with
1619 POS and OBJECT args.
1620
1621 2004-01-03 Jason Rumney <jasonr@gnu.org>
1622
1623 * w32select.c (Fw32_set_clipboard_data): Avoid potential realloc
1624 of GlobalAlloc'ed memory.
1625
1626 2003-12-29 Kenichi Handa <handa@m17n.org>
1627
1628 * ccl.c (Fccl_execute_on_string): Fix the condition of loop.
1629
1630 * charset.h (charset_table_used): Delete extern.
1631
1632 * charset.c (charset_table_used): Make it static.
1633 (map_charset_chars): Fix args to c_function with.
1634
1635 * chartab.c (map_sub_char_table_for_charset): Fix args to
1636 c_function with.
1637
1638 * coding.h (enum coding_result_code): Delete
1639 CODING_RESULT_INSUFFICIENT_CMP, add CODING_RESULT_INVALID_SRC.
1640
1641 * coding.c (Qinsufficient_source, Qinconsistent_eol)
1642 (Qinvalid_source, Qinterrupted, Qinsufficient_memory): New
1643 variables.
1644 (Vlast_code_conversion_error): New variables.
1645 (syms_of_coding): DEFSYM or DEFVAR_LISP them.
1646 (ONE_MORE_BYTE): Record error if any instead of signaling an
1647 error. If non-ASCII multibyte char is found, return the negative
1648 value of the code. All callers changed to check it.
1649 (ONE_MORE_BYTE_NO_CHECK): Likewise.
1650 (record_conversion_result): New function. All codes setting
1651 coding->result are changed to call this function.
1652 (detect_coding_utf_8): Don't use the local variable incomplete.
1653 (decode_coding_utf_8): Likewise.
1654 (emacs_mule_char): Change the second arg to `const'.
1655 (detect_coding_emacs_mule): Don't use the local variable
1656 incomplete.
1657 (detect_coding_sjis): Likewise.
1658 (detect_coding_big5): Likewise.
1659 (decode_coding): Fix of flushing out unprocessed data.
1660 (make_conversion_work_buffer): Fix making of a work buffer.
1661 (decode_coding_object): Return coding->dst_object;
1662
1663 * fontset.c (set_fontset_font): Fix args.
1664
1665 * lisp.h (CHARACTERBITS): Define as 22.
1666
1667 * process.c (send_process): Be sure to set coding->src_multibyte.
1668
1669 * xdisp.c (handle_auto_composed_prop): Fix setting of limit.
1670
1671 2003-12-02 Kenichi Handa <handa@m17n.org>
1672
1673 * xdisp.c (handle_auto_composed_prop): Give limit to
1674 Fnext_single_char_property_change.
1675
1676 2003-12-02 Kenichi Handa <handa@m17n.org>
1677
1678 * coding.c (detect_coding): Fix previous change.
1679 (detect_coding_system): Likewise.
1680
1681 2003-12-02 Kenichi Handa <handa@m17n.org>
1682
1683 * composite.c (syms_of_composite): Don't make the compostion hash
1684 table week.
1685
1686 * fontset.c (Fset_fontset_font): Fix docstring.
1687
1688 * lisp.h (detect_coding_system): Adjust prototype.
1689
1690 * fileio.c (kill_workbuf_unwind): Delete this function.
1691 (Finsert_file_contents): Adjust the call of detect_coding_system.
1692 Get conversion_buffer by code_conversion_save. Use the macor
1693 CODING_MAY_REQUIRE_DECODING. After decoding, update
1694 coding_system.
1695
1696 * coding.h (make_conversion_work_buffer): Delete extern.
1697 (code_conversion_save): Extern it.
1698
1699 * coding.c (enum iso_code_class_type): Delete ISO_carriage_return.
1700 (CODING_GET_INFO): Delete argument eol_type. Callers changed.
1701 (decode_coding_utf_8): Don't do eol converion.
1702 (detect_coding_utf_16): Check coding->src_chars, not
1703 coding->src_bytes. Add heuristics for those that have no
1704 signature.
1705 (decode_coding_emacs_mule): Don't do eol converion.
1706 (decode_coding_iso_2022): Likewise.
1707 (decode_coding_sjis): Likewise.
1708 (decode_coding_big5): Likewise.
1709 (decode_coding_charset): Likewise.
1710 (adjust_coding_eol_type): Return a new coding system.
1711 (detect_coding): Don't detect eol. Fix for utf-16 detection.
1712 (decode_eol): In case of CRLF->LF conversion, use del_range_2 on
1713 each change.
1714 (decode_coding): Pay attention to undo_list. Do eol convesion for
1715 all types of coding-systems (if necessary).
1716 (Vcode_conversion_work_buf_list): Delete it.
1717 (Vcode_conversion_reused_workbuf): Renamed from
1718 Vcode_conversion_reused_work_buf.
1719 (Vcode_conversion_workbuf_name): New variable.
1720 (reused_workbuf_in_use): New variable.
1721 (make_conversion_work_buffer): Delete the arg DEPTH.
1722 (code_conversion_restore): Argument changed to cons.
1723 (code_conversion_save): Delete the argument BUFFER. Callers
1724 changed.
1725 (detect_coding_system): New argument src_chars. Callers changed.
1726 Fix for utf-16 detection.
1727 (init_coding_once): Don't use ISO_carriage_return.
1728 (syms_of_coding): Initialized Vcode_conversion_workbuf_name and
1729 reused_workbuf_in_use.
1730
1731 2003-11-24 Kenichi Handa <handa@m17n.org>
1732
1733 * keymap.c (store_in_keymap): Pay attention to the case that idx
1734 is a cons specifying a character range.
1735
1736 * coding.c (Fdefine_coding_system_internal): Fix previous change.
1737
1738 2003-11-23 Kenichi Handa <handa@m17n.org>
1739
1740 * xdisp.c (handle_auto_composed_prop): Fix the case of returning
1741 HANDLED_RECOMPUTE_PROPS.
1742
1743 * coding.c (Fdefine_coding_system_internal): Fix checking of
1744 ascii compatibility.
1745
1746 2003-11-22 Kenichi Handa <handa@m17n.org>
1747
1748 * charset.c (find_charsets_in_text): Delete unused locale
1749 variable.
1750 (Fset_charset_priority): Update Vemacs_mule_charset_list too.
1751
1752 * coding.c (encode_coding_emacs_mule): Emit bytes with MSB.
1753 Resync charset_list to Vemacs_mule_charset_list.
1754
1755 * keymap.c (store_in_keymap): Pay attention to the case that idx
1756 is a cons specifying a character range.
1757
1758 2003-11-18 Kenichi Handa <handa@m17n.org>
1759
1760 * composite.c (update_compositions): Bind inhibit-read-only, etc
1761 to t before calling remove-list-of-text-properties.
1762
1763 * print.c (print_object): Always print ASCII chars as is.
1764
1765 2003-11-17 Kenichi Handa <handa@m17n.org>
1766
1767 * keymap.c (Fdefine_key): Fix handling of Lucid style event type
1768 list.
1769
1770 * fns.c (Fmapconcat): Signal an error if SEQUENCE is a char table.
1771 (Fmapcar): Likewise.
1772 (Fmapc): Likewise.
1773
1774 2003-11-15 Kenichi Handa <handa@m17n.org>
1775
1776 * syntax.c (skip_chars): Be sure to alloca char_ranges when
1777 necessary.
1778
1779 2003-11-14 Kenichi Handa <handa@m17n.org>
1780
1781 * xfaces.c (set_lface_from_font_name): Fix for the case that
1782 FONTNAME is not fontset name.
1783
1784 2003-11-13 Kenichi Handa <handa@m17n.org>
1785
1786 * fns.c (base64_encode_1): Fix previous change.
1787
1788 2003-11-08 Kenichi Handa <handa@m17n.org>
1789
1790 * fontset.c (set_fontset_font): New function.
1791 (Fset_fontset_font): If a font is specified for a charset, use
1792 map_charset_chars to store the font spec in a fontset.
1793
1794 2003-10-29 Kenichi Handa <handa@m17n.org>
1795
1796 * fontset.c (fontset_face): Create a fallback fontset on demand
1797 (make_fontset): Don't create a fallback fontset here.
1798 (free_face_fontset): Free a fallback fontset (if any) too.
1799 (n_auto_fontsets): Delete this variable.
1800 (auto_fontset_alist): New variable.
1801 (new_fontset_from_font_name): Check auto_fontset_alist.
1802 (dump_fontset) [FONTSET_DEBUG]: Fully re-written.
1803 (Ffontset_list_all) [FONTSET_DEBUG]: New function.
1804 (syms_of_fontset): Initialize and staticpro auto_fontset_alist.
1805 Defsubr Sfontset_list_all.
1806
1807 2003-10-24 Kenichi Handa <handa@m17n.org>
1808
1809 * xterm.c (x_list_fonts): Fix excluding of auto-scaled fonts.
1810
1811 2003-10-23 Kenichi Handa <handa@m17n.org>
1812
1813 * fontset.c (Fnew_fontset): Check NAME more rigidly.
1814
1815 2003-10-17 Kenichi Handa <handa@m17n.org>
1816
1817 * editfns.c (Fgoto_char): Fix docstring.
1818
1819 2003-10-16 Kenichi Handa <handa@m17n.org>
1820
1821 * insdel.c (insert_from_gap): Adjust intervals correctly.
1822
1823 2003-10-12 Jason Rumney <jasonr@gnu.org>
1824
1825 * w32term.c (GLYPHSET, WCRANGE): Define if system headers don't.
1826 (pfnGetFontUnicodeRanges): New dynamically loaded function.
1827 (w32_initialize): Try to load it.
1828 (x_get_font_repertory): Use it if available.
1829 (w32_encode_char): Add shortcut for unicode output.
1830
1831 * w32fns.c (w32_load_system_font): Default charset to -1.
1832 (x_to_w32_charset): Match all fonts for unicode.
1833 (w32_to_x_charset): New parameter matching. Don't return partial
1834 or wildcard charsets.
1835 (w32_to_all_x_charsets): Don't return partial or wildcard charsets.
1836 (w32_codepage_for_font): Return CP_UNICODE for unicode.
1837 (w32_to_x_font): Match charset to real charset.
1838 (enum_font_cb2): Always list unicode versions.
1839
1840 * makefile.w32-in (temacs): Increase EMHEAP.
1841
1842 2003-10-11 Jason Rumney <jasonr@gnu.org>
1843
1844 * w32term.c (w32_encode_char): New charset parameter.
1845 font_info.encoding becomes encoding_type.
1846 (x_get_font_repertory): New function. Warning: stub only!
1847 (x_new_font): Return quickly if font already set.
1848 (x_new_fontset): fontsetname parameter is Lisp_Object.
1849 Use new fs_query_fontset. Try new_fontset_from_font_name. Use
1850 fontset_name for return value.
1851
1852 * w32term.h: Declare x_get_font_repertory.
1853
1854 * w32select.c (Fw32_set_clipboard_data): Use string_x_string_p in
1855 place of find_charset_in_text. Use encode_coding_object in place
1856 of encode_coding.
1857 (Fw32_get_clipboard_data): Use decode_coding_c_string in place of
1858 decode_coding.
1859
1860 * w32fns.c (Fx_create_frame, x_create_tip_frame): Use new version
1861 of x_new_fontset.
1862 (w32_load_system_font): Initialize charset as unicode.
1863 font_info.encoding becomes encoding_type.
1864 (w32_to_x_font): Use decode_coding_c_string in place of
1865 decode_coding.
1866 (x_to_w32_font): Use encode_coding_object in place of
1867 encode_coding.
1868 (syms_of_w32fns): Set get_font_repertory_func.
1869
1870 * w32console.c: Include character.h. Use terminal_encode_buffer
1871 from term.c.
1872 (write_glyphs): Use new version of encode_terminal_code. Use
1873 encode_coding_object in place of encode_coding.
1874
1875 * w32bdf.c (w32_load_bdf_font): Clear font_info before filling.
1876 encoding becomes encoding_type.
1877
1878 * term.c (terminal_encode_buffer): Make externally visible.
1879
1880 * makefile.w32-in: Add character.h dependancies.
1881 (character.o, chartab.o): New targets.
1882
1883 2003-10-10 Kenichi Handa <handa@m17n.org>
1884
1885 * fileio.c (Finsert_file_contents) [DOS_NT]: Use the macro
1886 CODING_ID_EOL_TYPE..
1887
1888 2003-10-07 Andreas Schwab <schwab@suse.de>
1889
1890 * coding.c (produce_chars): Revert last change.
1891
1892 2003-10-06 Kenichi Handa <handa@m17n.org>
1893
1894 * charset.h (charset_unicode): Extern it.
1895
1896 * charset.c (string_xstring_p): Check by (C >= 0x100).
1897 (find_charsets_in_text): Format of the arc CHARSETS changed. New
1898 arg MULTIBYTE.
1899 (Ffind_charset_region, Ffind_charset_string): Adjusted for the
1900 change of find_charsets_in_text.
1901 (Fsplit_char): Fix doc. Never return unknown.
1902
1903 * chartab.c (char_table_translate): Use CHARACTERP, not INETEGERP.
1904
1905 * coding.c (Fdefine_coding_system_alias): Update
1906 Vcoding_system_list.
1907
1908 * fontset.c (load_font_get_repertory): Pay attention to the case
1909 that ENCODING of a font is specified by a char-table.
1910
1911 * xterm.c (x_get_font_repertory): Handle the case that the
1912 encoding of font is other than Unicode.
1913
1914 2003-10-02 Kenichi Handa <handa@m17n.org>
1915
1916 * term.c (encode_terminal_code): Don't handle glyph-table. Check
1917 if a character is encodable by the terminal coding system. If
1918 not, produces proper number of `?'s. Update
1919 terminal_encode_buffer and terminal_encode_buf_size if necessary.
1920 (produce_glyphs): Check by CHAR_BYTE8_P, not SINGLE_BYTE_CHAR_P.
1921
1922 2003-10-01 Kenichi Handa <handa@m17n.org>
1923
1924 * term.c (terminal_encode_buffer, terminal_encode_buf_size): New
1925 variables.
1926 (encode_terminal_code): Argument changed. Encode multiple
1927 characters at once. Store the result of encoding in
1928 terminal_encode_buffer.
1929 (write_glyphs): Adjusted for the change of encode_terminal_code.
1930 (insert_glyphs): Likewise.
1931 (term_init): Initialize terminal_encode_buffer and
1932 terminal_encode_buf_size.
1933
1934 * coding.c (consume_chars): If coding->src_object is nil, don't
1935 check annotation.
1936
1937 2003-09-30 Kenichi Handa <handa@m17n.org>
1938
1939 * character.c (char_string): Use ASCII_CHAR_P instead of
1940 SINGLE_BYTE_CHAR_P.
1941
1942 2003-09-30 Kenichi Handa <handa@m17n.org>
1943
1944 * xdisp.c (handle_auto_composed_prop): Check if the last
1945 characters of auto-composed region is newly composed with the
1946 following characters.
1947 (handle_composition_prop): Fix checking of point being inside
1948 composition.
1949
1950 2003-09-26 Kenichi Handa <handa@m17n.org>
1951
1952 * fns.c (concat): Don't change multibyteness of the result by
1953 concatenating an 8-bit character.
1954
1955 * data.c (Faset): Check newelt by CHECK_CHARACTER. Don't change
1956 multibyteness of the result when newelt is an 8-bit character.
1957
1958 2003-09-29 Dave Love <fx@gnu.org>
1959
1960 * xmenu.c (find_and_call_menu_selection): Make menu_bar_items_used
1961 EMACS_INT.
1962
1963 * xfns.c (DefaultDepthOfScreen, x_encode_text): Remove unused vars.
1964
1965 * xfaces.c (face_numeric_value): Declare dim size_t.
1966 (Finternal_lisp_face_equal_p): Remove unused f.
1967
1968 * xdisp.c (BUILD_CHAR_GLYPH_STRINGS, display_and_set_cursor)
1969 (MATRIX_ROW): Remove unused vars.
1970 (draw_glyphs, x_insert_glyphs, fast_find_position)
1971 (fast_find_position, fast_find_string_pos): Use EMACS_INT for
1972 byte/char counts.
1973
1974 * regex.c (regex_compile): Remove unused var.
1975
1976 * minibuf.c (Fminibuffer_complete_word): Remove unused var.
1977
1978 * keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap)
1979 (Faccessible_keymaps, where_is_internal): Remove unused vars.
1980
1981 * keyboard.c (cancel_hourglass_unwind): Return Qnil.
1982
1983 * frame.c (frame_name_fnn_p): Make len EMACS_INT.
1984
1985 * fileio.c (Fwrite_region): Remove unused var.
1986
1987 * dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
1988 (adjust_frame_glyphs_for_window_redisplay): Remove unused ch_dim.
1989
1990 * composite.c (Fremove_list_of_text_properties): Declare.
1991
1992 * coding.c (inhibit_pre_post_conversion): Removed (unused).
1993 (alloc_destination, produce_chars): Use EMACS_INT for byte/char
1994 counts.
1995 (coding_inherit_eol_type): Remove unused attrs.
1996 (detect_coding): Cast arg of detect_eol.
1997
1998 * charset.c (syms_of_charset): Remove unused var p.
1999 (find_charsets_in_text, Ffind_charset_region): Use EMACS_INT for
2000 byte/char counts.
2001
2002 * casetab.c (set_case_table): Remove unused var.
2003
2004 * window.c (Fdisplay_buffer, Fframe_selected_window): Remove
2005 unsued vars.
2006
2007 2003-09-26 Dave Love <fx@gnu.org>
2008
2009 * xterm.c (x_bitmap_mask): Declare.
2010
2011 2003-09-17 Dave Love <fx@gnu.org>
2012
2013 * xterm.c (x_term_init): Fix type error.
2014
2015 * lisp.h: Add Funibyte_char_to_multibyte.
2016
2017 * coding.c (Fread_coding_system): Fix arg of XSETSTRING.
2018 (Fset_coding_system_priority): Doc fix.
2019
2020 * alloc.c: Sync with HEAD version.
2021
2022 * ccl.c (ccl_driver): Fix arg of CHARACTERP.
2023
2024 * indent.c (check_composition): Make start and end EMACS_INT.
2025
2026 * character.c (lisp_string_width): Make ignore and end EMACS_INT.
2027
2028 * xdisp.c (handle_composition_prop, check_point_in_composition):
2029 Make buffer positions EMACS_INT.
2030
2031 * composite.c (find_composition, run_composition_function)
2032 (update_compositions, Ffind_composition_internal): Make buffer
2033 positions EMACS_INT.
2034
2035 * composite.h (find_composition, update_compositions): Make
2036 position args EMACS_INT.
2037
2038 * keyboard.c (adjust_point_for_property): Make beg and end
2039 EMACS_INT.
2040
2041 * intervals.c (get_property_and_range)
2042 * intervals.h (get_property_and_range): Make start and end EMACS_INT.
2043
2044 * unexalpha.c: Don't include varargs.h.
2045
2046 2003-09-16 Dave Love <fx@gnu.org>
2047
2048 * coding.h (ENCODE_UTF_8): New.
2049
2050 * Makefile.in (gtkutil.o): Depend on coding.h.
2051
2052 * coding.c (Fset_coding_system_priority): Doc fix.
2053
2054 2003-09-16 Kenichi Handa <handa@m17n.org>
2055
2056 * fileio.c (Finsert_file_contents): Call setup_coding_system in
2057 the case of auto saving.
2058
2059 2003-09-10 Andreas Schwab <schwab@suse.de>
2060
2061 * chartab.c (map_char_table): Protect `range' from GC.
2062 (map_char_table_for_charset): Likewise.
2063
2064 2003-07-09 Kenichi Handa <handa@m17n.org>
2065
2066 * coding.c (decode_coding_sjis): Check bytes more rigidly.
2067
2068 2003-06-26 Kenichi Handa <handa@m17n.org>
2069
2070 * fileio.c (choose_write_coding_system): Return a decided coding
2071 system.
2072 (Fwrite_region): Set Vlast_coding_system_used to the return value
2073 of choose_write_coding_system.
2074
2075 2003-06-06 Kenichi Handa <handa@m17n.org>
2076
2077 * charset.c (Fset_charset_priority): Pay attention to duplicated
2078 arguments.
2079
2080 * coding.c (QCcategory): New variable.
2081 (syms_of_coding): Defsym it. Set all elements of
2082 Vcoding_category_table and their symbol values.
2083 (Fset_coding_system_priority): Doc fix. Update symbol qvalues of
2084 coding-category-XXX, and coding-category-list.
2085 (Fdefine_coding_system_internal): Add category in the plist.
2086
2087 2003-06-05 Kenichi Handa <handa@m17n.org>
2088
2089 * callproc.c (Fcall_process): Handle carryover correctly.
2090
2091 * coding.c (decode_coding_iso_2022): Fix handling of invalid
2092 bytes.
2093 (raw_text_coding_system): Check NILP (coding_system).
2094 (coding_inherit_eol_type): Check NILP (coding_system) and
2095 NILP (parent).
2096 (consume_chars): Fix for the case of raw-text.
2097
2098 * process.c (read_process_output): Handle carryover correctly.
2099
2100 2003-06-02 Dave Love <fx@gnu.org>
2101
2102 * regex.c (re_search_2): Fix last change.
2103
2104 2003-05-30 Kenichi Handa <handa@m17n.org>
2105
2106 * regex.c (GET_CHAR_BEFORE_2): Check multibyte, not
2107 target_multibyte. Even in a unibyte case, return a converted
2108 multibyte char.
2109 (GET_CHAR_AFTER): New macro.
2110 (PATFETCH): Translate via multibyte char.
2111 (HANDLE_UNIBYTE_RANGE): Delete this macro.
2112 (SETUP_MULTIBYTE_RANGE): New macro.
2113 (regex_compile): Setup compiled code so that its multibyteness
2114 matches that of a target. Fix the handling of "[X-YZ]" using
2115 SETUP_MULTIBYTE_RANGE.
2116 (analyse_first) <charset>: For filling fastmap for all multibyte
2117 characters, don't check by BASE_LEADING_CODE_P.
2118 (re_search_2): Don't check RE_TARGET_MULTIBYTE_P (bufp). It is
2119 the same as RE_MULTIBYTE_P (bufp) now.
2120 (mutually_exclusive_p): Check by (! multibyte ||
2121 IS_REAL_ASCII (c)).
2122 (TARGET_CHAR_AND_LENGTH): Delete this macro.
2123 (TRANSLATE_VIA_MULTIBYTE): New macro.
2124 (re_match_2_internal): Don't check RE_TARGET_MULTIBYTE_P (bufp).
2125 It is the same as RE_MULTIBYTE_P (bufp) now.
2126 <exactn>: Translate via multibyte.
2127 <anychar>: Fetch a character by RE_STRING_CHAR_AND_LENGTH. Don't
2128 translate it.
2129 <charset, charset_not>: Fetch a character by
2130 RE_STRING_CHAR_AND_LENGTH. Translate via multibyte.
2131 <duplicate>: Call bcmp_translate with the last arg `multibyte'.
2132 <wordbound, notwordbound, wordbeg, wordend, syntaxspec,
2133 notsyntaxspec, categoryspec, notcategoryspec> Fetch a character
2134 by GET_CHAR_AFTER.
2135 (bcmp_translate): Likewise.
2136
2137 * search.c (compile_pattern): Check the member target_multibyte,
2138 not the member multibyte of buf.
2139
2140 * lread.c (read1): While reading a string, set force_singlebyte
2141 and force_multibyte correctly.
2142
2143 * charset.c (Fset_unibyte_charset): Fix setting up of
2144 unibyte_to_multibyte_table.
2145 (init_charset_once): Likewise.
2146
2147 2003-05-29 Kenichi Handa <handa@m17n.org>
2148
2149 * coding.c (setup_coding_system): If coding has
2150 post-read-conversion or pre-write-conversion, set
2151 CODING_REQUIRE_DECODING_MASK and CODING_REQUIRE_ENCODING_MASK
2152 respectively.
2153 (decode_coding_gap): Run post-read-conversion if any.
2154
2155 * fileio.c (Finsert_file_contents): Even if we read into a
2156 unibyte buffer, check if we must decode the result or not.
2157
2158 2003-05-29 Kenichi Handa <handa@m17n.org>
2159
2160 * coding.c (make_conversion_work_buffer): Change the work buffer
2161 name to the same one as that of Emacs 21.
2162
2163 2003-05-28 Kenichi Handa <handa@m17n.org>
2164
2165 * coding.h (make_conversion_work_buffer): Prototype adjusted.
2166 (code_conversion_restore): Don't extern it.
2167
2168 * coding.c (detected_mask): Delete unused variable.
2169 (decode_coding_iso_2022): Pay attention to the byte sequence of
2170 CTEXT extended segment, and retain those bytes as is.
2171 (decode_coding_ccl): Delete unused variable `valids'.
2172 (setup_coding_system): Delete unused variable `category'.
2173 (consume_chars): Delete unused variable `category'. Make it work
2174 for non-multibyte case.
2175 (make_conversion_work_buffer): Argument changed.
2176 (saved_coding): Delete unused variable.
2177 (code_conversion_restore): Don't check saved_coding->destination.
2178 (code_conversion_save): New function.
2179 (decode_coding_gap, encode_coding_gap): Call code_conversion_save
2180 instead of record_unwind_protect.
2181 (decode_coding_object, encode_coding_object): Likewise. Recover
2182 PT.
2183 (detect_coding_system): Delete unused variable `mask'.
2184 (Fdefine_coding_system_internal): Delete unsed vaiable id;
2185
2186 * fileio.c (kill_workbuf_unwind): New function.
2187 (Finsert_file_contents): On replacing, call
2188 make_conversion_work_buffer with correct args, and call
2189 record_unwind_protect with the first arg kill_workbuf_unwind.
2190
2191 * lisp.h (Fgenerate_new_buffer_name): EXFUN it.
2192
2193 2003-05-20 Kenichi Handa <handa@m17n.org>
2194
2195 * fontset.c (BASE_FONTSET_P): Check FONTSET_BASE, not
2196 FONTSET_NAME.
2197 (fontset_add): Fix for the case that TO is less than TO1.
2198 (Ffontset_info): Don't use fallback fontset on checking the
2199 default fontset.
2200 (dump_fontset): New function for debugging.
2201
2202 * coding.c (Fdefine_coding_system_internal): Fix for the case that
2203 coding_type is Qcharset.
2204
2205 2003-05-07 Kenichi Handa <handa@m17n.org>
2206
2207 * chartab.c (map_sub_char_table): New argument DEFAULT_VAL.
2208 (map_char_table): Don't inherit the value from the parent on
2209 initializing VAL. Adjusted for the above change.
2210
2211 2003-05-06 Kenichi Handa <handa@m17n.org>
2212
2213 * coding.c (Qsignature, Qendian): Delete these variables.
2214 (syms_of_coding): Don't initialize them.
2215 (CATEGORY_MASK_UTF_16_AUTO): New macro.
2216 (detect_coding_utf_16): Add CATEGORY_MASK_UTF_16_AUTO in
2217 detect_info->found.
2218 (decode_coding_utf_16): Don't detect BOM here.
2219 (encode_coding_utf_16): Produce BOM if CODING_UTF_16_BOM (coding)
2220 is NOT utf_16_without_bom.
2221 (setup_coding_system): For a coding system of type utf-16, check
2222 if the attribute :endian is Qbig or not (not nil or not), and set
2223 CODING_REQUIRE_DETECTION_MASK if BOM detection is required.
2224 (detect_coding): If coding type is utf-16 and BOM detection is
2225 required, detect it.
2226 (Fdefine_coding_system_internal): For a coding system of type
2227 utf-16, check if the attribute :endian is Qbig or not (not nil or
2228 not).
2229
2230 2003-05-06 Kenichi Handa <handa@m17n.org>
2231
2232 * coding.c (coding_set_source): Fix for the case that the current
2233 buffer is different from coding->src_object.
2234 (decode_coding_object): Don't use the conversion work buffer if
2235 DST_OBJECT is a buffer.
2236
2237 2003-05-04 Dave Love <fx@gnu.org>
2238
2239 * lread.c (read_emacs_mule_char) [len==2]: Index
2240 emacs_mule_charset correctly.
2241
2242 2003-02-16 Dave Love <fx@gnu.org>
2243
2244 * coding.c (Qbig5, Vbig5_coding_system, CATEGORY_MASK_BIG5)
2245 (detect_coding_big5, decode_coding_big5, encode_coding_big5)
2246 (Fdecode_big5_char, Fencode_big5_char): Deleted. (Big5 no longer
2247 treated specially.)
2248 (setup_coding_system, coding_category, CATEGORY_MASK_ANY)
2249 (detected_mask): Remove Big5 bits.
2250
2251 2003-04-09 Kenichi Handa <handa@m17n.org>
2252
2253 The following changes are to make the font rescaling facility
2254 compatible with Emacs 21.
2255
2256 * xfaces.c (Vface_font_rescale_alist): Renamed from
2257 Vface_resizing_fonts.
2258 (struct font_name): Rename member resizing_ratio to rescale_ratio.
2259 (font_rescale_ratio): Renamed from font_resizing_ratio.
2260 (split_font_name): Set font->rescale_ratio.
2261 (better_font_p): Pay attention to font->rescale_ratio.
2262 (build_scalable_font_name): Likewise. Change RESX, and RESY
2263 fields.
2264 (syms_of_xfaces): Declare Vface_font_rescale_alist as a Lisp
2265 variable.
2266
2267 2003-03-28 Kenichi Handa <handa@m17n.org>
2268
2269 * coding.c (Qutf_16_be_nosig, Qutf_16_be, Qutf_16_le_nosig)
2270 (Qutf_16_le): Remove these variables.
2271 (syms_of_coding): Don't DEFSYM them.
2272 (decode_coding_utf_16): Fix handling of BOM.
2273 (encode_coding_utf_16): Fix handling of BOM.
2274
2275 2003-03-14 Kenichi Handa <handa@m17n.org>
2276
2277 * fileio.c (Finsert_file_contents): On replacing, before decoding
2278 the file into the work buffer, set point of the work buffer to the
2279 end.
2280
2281 2003-02-13 Dave Love <fx@gnu.org>
2282
2283 * coding.c (Fcheck_coding_systems_region): Fix type errors.
2284
2285 2003-02-04 Dave Love <fx@gnu.org>
2286
2287 * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
2288 and fix C types.
2289
2290 2003-01-31 Kenichi Handa <handa@m17n.org>
2291
2292 * xdisp.c (SKIP_GLYPHS): New macro.
2293 (set_cursor_from_row): Pay attention to string display properties.
2294
2295 * category.c (copy_category_entry): Fix for the case that RANGE
2296 is an integer.
2297
2298 * xterm.c (x_encode_char): Call ccl_driver with the last arg Qnil.
2299
2300 * w32term.c (w32_encode_char): Call ccl_driver with the last arg
2301 Qnil.
2302
2303 2003-01-30 Kenichi Handa <handa@m17n.org>
2304
2305 * charset.c (Fcharset_id_internal): New function.
2306 (syms_of_charset): Defsubr it.
2307
2308 * coding.c (decode_coding_ccl, encode_coding_ccl): Call ccl_driver
2309 with the last arg charset_list acquired from coding.
2310 (Fdefine_coding_system_internal): For ccl-based coding system, fix
2311 the attribute coding_attr_ccl_valids.
2312
2313 * coding.h (enum define_coding_ccl_arg_index): Set the first
2314 member coding_arg_ccl_decoder to coding_arg_max.
2315
2316 * ccl.h (ccl_driver): Prototype adjusted.
2317
2318 * ccl.c (CCL_DECODE_CHAR, CCL_ENCODE_CHAR): New macros.
2319 (ccl_driver): New arg CHARSET_LIST. Use the above macros instead
2320 of DECODE_CAHR, ENCODE_CHAR, CHAR_CHARSET.
2321 (Fccl_execute): Call ccl_driver with the last arg Qnil.
2322 (Fccl_execute_on_string): Likewise.
2323
2324 2003-01-11 Kenichi Handa <handa@m17n.org>
2325
2326 * charset.h (ENCODE_CHAR): If the method is SUBSET or SUPERSET,
2327 call encode_char.
2328
2329 * charset.c (encode_char): Fix handling of methods SUBSET and
2330 SUPERSET.
2331
2332 * xterm.c (x_new_fontset): Fix previous change.
2333
2334 2003-01-10 Dave Love <fx@gnu.org>
2335
2336 * composite.c (syms_of_composite): Make composition_hash_table
2337 weak.
2338
2339 2003-01-10 Kenichi Handa <handa@m17n.org>
2340
2341 * dispextern.h (check_face_attributes, generate_ascii_font_name)
2342 (font_name_registry): Don't extern them.
2343 (split_font_name_into_vector, build_font_name_from_vector): Extern
2344 them.
2345
2346 * fontset.h (Qfontset): Don't extern it.
2347 (new_fontset_from_font_name): Extern it.
2348
2349 * fontset.c: Give 8 extra slots to fontset objects.
2350 (Qfontset_info): New variable.
2351 (syms_of_fontset): Defsym it.
2352 (FONTSET_FALLBACK): New macro.
2353 (fontset_face): Try also the default fontset.
2354 (make_fontset): Realize a fallback fontset from the default
2355 fontset.
2356 (generate_ascii_font_name): Moved from xfaces.c. Rewritten by
2357 using split_font_name_into_vector and build_font_name_from_vector.
2358 (Fset_fontset_font): Access the elements of font_spec by enum
2359 FONT_SPEC_INDEX. If font_spec is a string, extract the registry
2360 name by using split_font_name_into_vector.
2361 (Fnew_fontset): If no ASCII font is specified in FONTLIST,
2362 generate a proper font name from the fontset name. Update
2363 Vfontset_alias_alist.
2364 (n_auto_fontsets): New variable.
2365 (new_fontset_from_font_name): New function.
2366 (Ffont_info): Store the information about fonts generated from the
2367 default fontset in the first extra slot of the returned
2368 char-table.
2369
2370 * xfaces.c (generate_ascii_font_name): Moved to fontset.c.
2371 (font_name_registry): Function deleted.
2372 (split_font_name_into_vector): New function.
2373 (build_font_name_from_vector): New function.
2374 (font_list): The argument REGISTRY is now a list of registry
2375 names.
2376 (choose_face_font): If we are choosing an ASCII font, and ATTRS
2377 specifies an explicit font name, return the name as is. Make a
2378 list of registy names.
2379
2380 * xfns.c (x_set_font, x_create_tip_frame): Adjusted to the change
2381 of x_new_fontset.
2382 (Fx_create_frame): Don't call x_new_fontset here. Just use
2383 x_list_fonts to check the existence of fonts.
2384
2385 * xterm.h (x_new_fontset): Prototype adjusted.
2386
2387 * xterm.c (x_new_fontset): Change the arg FONTSETNAME to Lisp
2388 string. Use new_fontset_from_font_name to create a fontset from a
2389 font name.
2390
2391 2003-01-07 Dave Love <fx@gnu.org>
2392
2393 * Makefile.in: Fix some dependencies.
2394
2395 * keymap.c (Fapropos_internal): Don't gcpro apropos_predicate but
2396 set it to nil before returning.
2397
2398 * composite.c (update_compositions): Fix type error.
2399
2400 * syntax.c (skip_chars, skip_syntaxes): Fix type errors.
2401
2402 2003-01-07 Kenichi Handa <handa@m17n.org>
2403
2404 * xterm.c (x_new_font): Optimize for the case that the font is
2405 already set for the frame.
2406
2407 2003-01-06 Kenichi Handa <handa@m17n.org>
2408
2409 * chartab.c (char_table_ascii): Check if the char table contents
2410 is sub-char-table or not.
2411 (char_table_set): Fix argument to char_table_ascii.
2412 (char_table_set_range): Likewise.
2413
2414 * coding.c (CATEGORY_MASK_RAW_TEXT): New macro.
2415 (detect_coding_utf_8, detect_coding_utf_16)
2416 (detect_coding_emacs_mule, detect_coding_iso_2022)
2417 (detect_coding_sjis, detect_coding_big5)
2418 (detect_coding_ccl, detect_coding_charset): Change argument MASK
2419 to DETECT_INFO. Update DETECT_INFO and return 1 if the byte
2420 sequence is valid in this coding system. Callers changed.
2421 (MAX_ANNOTATION_LENGTH): New macro.
2422 (ADD_ANNOTATION_DATA): New macro.
2423 (ADD_COMPOSITION_DATA): Argument changed. Callers changed. Call
2424 ADD_ANNOTATION_DATA. The format of annotation data changed.
2425 (ADD_CHARSET_DATA): New macro.
2426 (emacs_mule_char): New argument ID. Callers changed.
2427 (decode_coding_emacs_mule, decode_coding_iso_2022)
2428 (decode_coding_sjis, decode_coding_big5, decode_coding_charset):
2429 Produce charset annotation data in coding->charbuf.
2430 (encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
2431 to charset annotation data in coding->charbuf.
2432 (setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
2433 coding->common_flags if the coding system is iso-2022 based and
2434 uses designation.
2435 (produce_composition): Adjusted for the new annotation data
2436 format.
2437 (produce_charset): New function.
2438 (produce_annotation): Handle charset annotation.
2439 (handle_composition_annotation, handle_charset_annotation): New
2440 functions.
2441 (consume_chars): Handle charset annotation. Utilize the above two
2442 functions.
2443 (encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
2444 buffer, get the deleted text as a string and set
2445 coding->src_object to that string.
2446 (detect_coding, detect_coding_system): Use the new struct
2447 coding_detection_info.
2448
2449 * coding.h (struct coding_detection_info): New structure.
2450 (struct coding_system): Prototype of the member `detector'
2451 adjusted.
2452 (CODING_ANNOTATE_CHARSET_MASK): New macro.
2453
2454 2003-01-06 Kenichi Handa <handa@m17n.org>
2455
2456 * insdel.c (insert_from_gap): Fix argument to offset_intervals.
2457
2458 2003-01-03 Dave Love <fx@gnu.org>
2459
2460 * keymap.c (apropos_predicate, apropos_accumulate): Declare
2461 static.
2462 (Fapropos_internal): Don't gcpro apropos_accumulate. Set result
2463 to new local and nullify apropos_accumulate before returning.
2464 (syms_of_keymap): Staticpro and initialize apropos_accumulate.
2465
2466 2002-12-05 Kenichi Handa <handa@m17n.org>
2467
2468 * charset.c (Fdefine_charset_internal): Setup charset.fast_map
2469 correctly.
2470
2471 2002-11-26 Dave Love <fx@gnu.org>
2472
2473 * fns.c (Flanginfo): Call synchronize_system_time_locale.
2474
2475 2002-11-07 Kenichi Handa <handa@m17n.org>
2476
2477 The following changes are to make character composition happen
2478 automatically on displaying.
2479
2480 * Makefile.in (lisp, shortlisp): Add composite.elc
2481
2482 * composite.h (Qauto_composed, Vauto_composition_function,
2483 Qauto_composition_function): Extern them.
2484
2485 * composite.c (Vcomposition_function_table,
2486 Qcomposition_function_table): Delete variables.
2487 (Qauto_composed, Vauto_composition_function,
2488 Qauto_composition_function): New variables.
2489 (run_composition_function): Don't call
2490 compose-chars-after-function.
2491 (update_compositions): Clear `auto-composed' text property.
2492 (compose_chars_in_text): Delete this function.
2493 (syms_of_composite): Staticpro Qauto_composed and
2494 Qauto_composition_function. Declare Vauto_composition_function as
2495 a Lisp variable.
2496
2497 * dispextern.h (enum prop_idx): Add member AUTO_COMPOSED_PROP_IDX.
2498
2499 * xdisp.c (it_props): Add an entry for Qauto_composed.
2500 (handle_auto_composed_prop): New function.
2501
2502 * xselect.c (selection_data_to_lisp_data): Don't call
2503 compose_chars_in_text.
2504
2505 2002-11-06 Dave Love <fx@gnu.org>
2506
2507 * keyboard.c (read_char): Modify checking around use of
2508 Vkeyboard_translate_table.
2509
2510 * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
2511 and fix C types.
2512
2513 2002-11-06 Kenichi Handa <handa@m17n.org>
2514
2515 * coding.c (decode_coding_utf_8): When eol_type is Qdos, handle
2516 the case that the last byte is '\r' correctly.
2517 (decode_coding_emacs_mule): Likewise.
2518 (decode_coding_iso_2022): Likewise.
2519 (decode_coding_sjis): Likewise.
2520 (decode_coding_big5): Likewise.
2521 (decode_coding_charset): Likewise.
2522 (produce_chars): Likewise.
2523 (decode_coding): Flushing out the unprocessed data correctly.
2524 (decode_coding_gap): Set CODING_MODE_LAST_BLOCK bit of
2525 coding->mode.
2526
2527 2002-10-31 Dave Love <fx@gnu.org>
2528
2529 * xterm.c (XTread_socket): Fix changes for defined keysyms. Add
2530 XK_ISO... case.
2531 (xaw_scroll_callback): Revert last change.
2532
2533 2002-10-30 Kenichi Handa <handa@m17n.org>
2534
2535 * charset.c (Fset_charset_priority): Update
2536 Viso_2022_charset_list.
2537
2538 2002-10-29 Kenichi Handa <handa@m17n.org>
2539
2540 * xfaces.c (Vface_resizing_fonts): New variable.
2541 (struct font_name): New member `resizing_ratio'.
2542 (font_resizing_ratio): New function.
2543 (split_font_name): Set font->resizing_ratio.
2544 (better_font_p): Pay attention to font->resizing_ratio.
2545 (build_scalable_font_name): Likewise. Don't change POINT_SIZE,
2546 RESX, and RESY fields.
2547 (try_alternative_families): Try scalable fonts if
2548 Vscalable_fonts_allowed is not Qt.
2549 (syms_of_xfaces): Declare Vface_resizing_fonts as a Lisp variable.
2550
2551 2002-10-29 Dave Love <fx@gnu.org>
2552
2553 * xterm.c (xaw_scroll_callback): Cast correctly.
2554
2555 2002-10-28 Dave Love <fx@gnu.org>
2556
2557 * keyboard.c (lispy_accent_codes, lispy_accent_keys): Extend.
2558 (lispy_kana_keys): Comment out.
2559 (make_lispy_event) [XK_kana_A]: Comment out.
2560
2561 * xterm.c (xaw_scroll_callback): Cast call_data.
2562 (XTread_socket): Deal with ASCII keysyms.
2563 (syms_of_xterm) <Vx_keysym_table>: Fix args of make_hash_table.
2564
2565 2002-10-27 Dave Love <fx@gnu.org>
2566
2567 * xterm.c (Vx_keysym_table): New.
2568 (syms_of_xterm): Initialize it.
2569 (XTread_socket): Use it.
2570 From head: Eliminate incorrect optimization that tried to avoid
2571 decoding the output of X*LookupString.
2572 (x_get_font_repertory): Delete charset declaration.
2573
2574 2002-10-16 Kenichi Handa <handa@m17n.org>
2575
2576 * coding.c (detect_coding): Fix previous change.
2577 (detect_coding_charset): If only ASCII bytes are found, return 0.
2578 (detect_coding_system): Fix previous change.
2579 (Fdefine_coding_system_internal): Setup CODING_ATTR_ASCII_COMPAT
2580 (attrs) correctly.
2581
2582 2002-10-15 Dave Love <fx@gnu.org>
2583
2584 * coding.c (Fcheck_coding_system): Doc fix.
2585
2586 * editfns.c (Finsert_byte): Return a proper value.
2587
2588 2002-10-14 Kenichi Handa <handa@m17n.org>
2589
2590 * coding.c (decode_coding): Fix args to translate_chars. Pay
2591 attention to Vstandard_translation_table_for_decode.
2592 (encode_coding): Fix args to translate_chars. Pay attention to
2593 Vstandard_translation_table_for_encode.
2594
2595 * data.c (Faset): Check NEWELT by ASCII_CHAR_P, not by
2596 SINGLE_BYTE_CHAR_P.
2597
2598 * editfns.c (general_insert_function): Check VAL by ASCII_CHAR_P,
2599 not by SINGLE_BYTE_CHAR_P.
2600
2601 * fns.c (concat): Check CH by ASCII_CHAR_P, not by
2602 SINGLE_BYTE_CHAR_P.
2603
2604 * insdel.c (copy_text): Check C by ASCII_CHAR_P, not by
2605 SINGLE_BYTE_CHAR_P.
2606
2607 * keymap.c (Ftext_char_description): Check C by ASCII_CHAR_P, not
2608 by SINGLE_BYTE_CHAR_P.
2609
2610 * search.c (Freplace_match): Check C by ASCII_CHAR_P, not by
2611 SINGLE_BYTE_CHAR_P.
2612
2613 2002-10-14 Dave Love <fx@gnu.org>
2614
2615 * fns.c (Fstring_as_multibyte, Fstring_to_multibyte): Doc fix.
2616
2617 2002-10-10 Dave Love <fx@gnu.org>
2618
2619 * fns.c (Flanginfo): Fix typo.
2620
2621 * unexelf.c (unexec): Make last change conditional on Irix 6.5.
2622
2623 2002-10-10 Kenichi Handa <handa@m17n.org>
2624
2625 * coding.c (detect_coding_utf_8): Check incomplete byte sequence.
2626 Don't update *mask when correctly detected.
2627 (detect_coding_utf_16): Likewise.
2628 (detect_coding_emacs_mule): Likewise.
2629 (detect_coding_iso_2022): Likewise.
2630 (detect_coding_sjis): Likewise.
2631 (detect_coding_big5): Likewise.
2632 (detect_coding_ccl): Likewise.
2633 (decode_coding_sjis): Fix decoding of katakana-jisx0201.
2634 (detect_eol): Delete the argument CODING, and add the argument
2635 CATEGORY.
2636 (detect_coding): Adjusted for the changes above.
2637 (detect_coding_system): Likewise.
2638
2639 2002-10-09 Kenichi Handa <handa@m17n.org>
2640
2641 * character.c (char_string): Renamed from
2642 char_string_with_unification. Pay attention to
2643 CHAR_MODIFIER_MASK.
2644 (string_char): Renamed from string_char.
2645
2646 * character.h (CHAR_STRING): Call char_string if C is greater than
2647 MAX_3_BYTE_CHAR.
2648 (CHAR_STRING_ADVANCE): Likewise.
2649 (STRING_CHAR): Call string_char instead of
2650 string_char_with_unification.
2651 (STRING_CHAR_AND_LENGTH): Likewise.
2652 (STRING_CHAR_ADVANCE): Likewise.
2653
2654 2002-10-09 Dave Love <fx@gnu.org>
2655
2656 * coding.c (decode_coding_utf_8): Treat surrogates as invalid.
2657
2658 2002-10-07 Kenichi Handa <handa@m17n.org>
2659
2660 * keymap.c (push_key_description): Pay attention to
2661 force_multibyte.
2662
2663 * regex.c (re_search_2): Fix for the case of unibyte buffer.
2664
2665 2002-10-06 Dave Love <fx@gnu.org>
2666
2667 * charset.c (define_charset_internal): Rename `supprementary'.
2668
2669 * Makefile.in (lisp, shortlisp): Remove latin-N.
2670
2671 2002-10-05 Dave Love <fx@gnu.org>
2672
2673 * xfns.c (x_window, x_window): Use use_xim.
2674
2675 * xterm.c (use_xim): Initialize.
2676 (xim_open_dpy, xim_initialize, xim_close_dpy): Use use_xim.
2677 (x_term_init): Maybe set use_xim.
2678
2679 * xterm.h (use_xim) [HAVE_X_I18N]: Declare.
2680
2681 2002-10-01 Kenichi Handa <handa@m17n.org>
2682
2683 * search.c (search_buffer): Fix case-fold-search of multibyte
2684 characters.
2685 (boyer_moore): Rename the last argument to char_high_bits.
2686
2687 2002-09-27 Kenichi Handa <handa@m17n.org>
2688
2689 * xdisp.c (display_string): Fix for the case of zero width glyph.
2690
2691 * xfns.c (x_set_font): Change the error message of the case that
2692 x_new_fontset returns Qt.
2693
2694 * xfaces.c (set_lface_from_font_name): Reject the default fontset.
2695 (Finternal_set_lisp_face_attribute): Use signal_error for the
2696 error of invalid fontset.
2697
2698 * xterm.c (x_new_fontset): If FONTSETNAME specifies the default
2699 fontset, return Qt.
2700
2701 2002-09-19 Kenichi Handa <handa@m17n.org>
2702
2703 * regex.c (re_search_2): Fix previous change.
2704
2705 2002-09-18 Kenichi Handa <handa@m17n.org>
2706
2707 * syntax.c (skip_syntaxes): Fix previous change.
2708
2709 2002-09-13 Kenichi Handa <handa@m17n.org>
2710
2711 * syntax.c (skip_chars): Fix previous change.
2712 (skip_syntaxes): Fix previous change.
2713
2714 2002-09-06 Dave Love <fx@gnu.org>
2715
2716 * config.in: Restore it.
2717
2718 2002-09-05 Dave Love <fx@gnu.org>
2719
2720 * config.in: Removed (now auto-generated).
2721
2722 * s/usg5-4.h: Fix last change.
2723
2724 * unexelf.c (unexec): Make .got handling not SGI-specific.
2725
2726 * syntax.c (syms_of_syntax) <multibyte-syntax-as-symbol>: Doc fix.
2727
2728 * regex.c: Use `ifdef HAVE_ALLOCA_H', not `if HAVE_ALLOCA_H'.
2729
2730 * keyboard.c (read_key_sequence): Fix type error.
2731
2732 * buffer.c (Fset_buffer_multibyte, Fset_buffer_multibyte): Fix
2733 type error.
2734
2735 * fontset.c (fontset_add): Return Lisp_Object.
2736
2737 2002-09-03 Dave Love <fx@gnu.org>
2738
2739 * charset.h (charset_ordered_list_tick): Declare extern.
2740
2741 2002-09-03 Kenichi Handa <handa@m17n.org>
2742
2743 The following changes (and some of 2002-08-20 changes of mine) are
2744 for handling syntax, category, and case conversion for unibyte
2745 characters by converting them to multibyte on the fly. With these
2746 changes, we don't have to setup syntax and case tables for unibyte
2747 characters in each language environment.
2748
2749 * abbrev.c (Fexpand_abbrev): Convert a unibyte character to
2750 multibyte if necessary.
2751
2752 * bytecode.c (Fbyte_code): Likewise.
2753
2754 * character.h (LEADING_CODE_LATIN_1_MIN)
2755 (LEADING_CODE_LATIN_1_MAX): New macros.
2756 (unibyte_to_multibyte_table): Extern it.
2757 (unibyte_char_to_multibyte): New macro.
2758 (MAKE_CHAR_MULTIBYTE): Use unibyte_to_multibyte_table.
2759 (CHAR_LEADING_CODE): New macro.
2760 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE): New macro.
2761
2762 * character.c (unibyte_to_multibyte_table): New variable.
2763 (unibyte_char_to_multibyte): Move to character.h and defined as
2764 macro.
2765 (multibyte_char_to_unibyte): If C is an eight-bit character,
2766 convert it to the corresponding byte value.
2767
2768 * charset.c (Fset_unibyte_charset): If the dimension of CHARSET is
2769 not 1, singals an error. Update the elements of
2770 unibyte_to_multibyte_table.
2771 (init_charset_once): Initialize unibyte_to_multibyte_table.
2772 (syms_of_charset): Define the charset `iso-8859-1'.
2773
2774 * casefiddle.c (casify_object): Fix previous change.
2775
2776 * cmds.c (internal_self_insert): In a multibyte buffer, insert C
2777 as is without converting it to unibyte. In a unibyte buffer,
2778 convert C to multibyte before checking the syntax.
2779
2780 * lisp.h (unibyte_char_to_multibyte): Extern deleted.
2781
2782 * minibuf.c (Fminibuffer_complete_word): Use the macro
2783 FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
2784
2785 * regex.h (struct re_pattern_buffer): New member target_multibyte.
2786
2787 * regex.c (RE_TARGET_MULTIBYTE_P): New macro.
2788 (GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte. If
2789 that is zero, convert an eight-bit char to multibyte.
2790 (MAKE_CHAR_MULTIBYTE, CHAR_LEADING_CODE): New dummy new macros for
2791 non-emacs case.
2792 (PATFETCH): Convert an eight-bit char to multibyte.
2793 (HANDLE_UNIBYTE_RANGE): New macro.
2794 (regex_compile): Setup the compiled pattern for multibyte chars
2795 even if the given regex string is unibyte. Use PATFETCH_RAW
2796 instead of PATFETCH in many places. To handle `charset'
2797 specification of unibyte, call HANDLE_UNIBYTE_RANGE. Use bitmap
2798 only for ASCII chars.
2799 (analyse_first) <exactn>: Simplified because the compiled pattern
2800 is multibyte.
2801 <charset_not>: Setup fastmap from bitmap only for ASCII chars.
2802 <charset>: Use CHAR_LEADING_CODE to get leading codes.
2803 <categoryspec>: If multibyte, setup fastmap only for ASCII chars
2804 here.
2805 (re_compile_fastmap) [emacs]: Call analyse_first with the arg
2806 multibyte always 1.
2807 (re_search_2) In emacs, set the locale variable multibyte to 1,
2808 otherwise to 0. New local variable target_multibyte. Check it
2809 to decide the multibyteness of STR1 and STR2. If
2810 target_multibyte is zero, convert unibyte chars to multibyte
2811 before translating and checking fastmap.
2812 (TARGET_CHAR_AND_LENGTH): New macro.
2813 (re_match_2_internal): In emacs, set the locale variable multibyte
2814 to 1, otherwise to 0. New local variable target_multibyte. Check
2815 it to decide the multibyteness of STR1 and STR2. Use
2816 TARGET_CHAR_AND_LENGTH to fetch a character from D.
2817 <charset, charset_not>: If multibyte is nonzero, check fastmap
2818 only for ASCII chars. Call bcmp_translate with
2819 target_multibyte, not with multibyte.
2820 <begline>: Declare the local variable C as `unsigned'.
2821 (bcmp_translate): Change the last arg name to target_multibyte.
2822
2823 * search.c (compile_pattern_1): Don't adjust the multibyteness of
2824 the regexp pattern and the matching target. Set cp->buf.multibyte
2825 to the multibyteness of the regexp pattern. Set
2826 cp->but.target_multibyte to the multibyteness of the matching
2827 target.
2828 (wordify): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE instead of
2829 FETCH_STRING_CHAR_ADVANCE.
2830 (Freplace_match): Convert unibyte chars to multibyte.
2831
2832 * syntax.c (char_quoted): Use FETCH_CHAR_AS_MULTIBYTE to convert
2833 unibyte chars to multibyte.
2834 (back_comment): Likewise.
2835 (scan_words): Likewise.
2836 (skip_chars): The arg syntaxp is deleted, and the code for
2837 handling syntaxes is moved to skip_syntaxes. Callers changed.
2838 Fix the case that the multibyteness of STRING and the current
2839 buffer doesn't match.
2840 (skip_syntaxes): New function.
2841 (SYNTAX_WITH_MULTIBYTE_CHECK): Check C by ASCII_CHAR_P, not by
2842 SINGLE_BYTE_CHAR_P.
2843 (Fforward_comment): Use FETCH_CHAR_AS_MULTIBYTE to convert unibyte
2844 chars to multibyte.
2845 (scan_lists): Likewise.
2846 (Fbackward_prefix_chars): Likewise.
2847 (scan_sexps_forward): Likewise.
2848
2849 2002-08-23 Kenichi Handa <handa@m17n.org>
2850
2851 * xfaces.c (QCfontset): New variable.
2852 (LFACE_FONTSET): New macro.
2853 (check_lface_attrs): Check also LFACE_FONTSET_INDEX.
2854 (set_lface_from_font_name): Setup LFACE_FONTSET (lface).
2855 (Finternal_set_lisp_face_attribute): Handle QCfontset.
2856 (Finternal_get_lisp_face_attribute): Likewise.
2857 (lface_same_font_attributes_p): Fix checking of LFACE_FONT_INDEX,
2858 check also LFACE_FONTSET_INDEX.
2859 (face_fontset): Check attrs[LFACE_FONTSET_INDEX], not
2860 attrs[LFACE_FONT_INDEX].
2861 (syms_of_xfaces): Intern and staticpro QCfontset.
2862
2863 * dispextern.h (enum lface_attribute_index): New member
2864 LFACE_FONTSET_INDEX.
2865
2866 * fns.c (base64_encode_1): Handle eight-bit chars correctly.
2867
2868 2002-08-21 Kenichi Handa <handa@m17n.org>
2869
2870 * coding.c (coding_set_destination): Fix coding->destination for
2871 the case converting a region.
2872 (encode_coding_utf_8): Encode eight-bit chars as single byte.
2873 (encode_coding_object): Fix coding->dst_pos and
2874 coding->dst_pos_byte for the case converting a region.
2875
2876 * insdel.c (insert_from_gap): Make it work even if PT != GTP.
2877
2878 * character.h (BYTE8_STRING): New macro.
2879
2880 * fns.c (base64_decode_1): Insert eight-bit chars correctly.
2881
2882 2002-08-20 Kenichi Handa <handa@m17n.org>
2883
2884 * xdisp.c (get_next_display_element): Don't display unibyte 8-bit
2885 characters by octal form.
2886
2887 * abbrev.c (Fexpand_abbrev): Fix for the multibyte case.
2888
2889 * buffer.h (_fetch_multibyte_char_len): Extern deleted.
2890 (FETCH_MULTIBYTE_CHAR): Don't use _fetch_multibyte_char_len.
2891 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
2892 (FETCH_CHAR_AS_MULTIBYTE): New macro.
2893
2894 * casetab.c (set_canon, set_identity, shuffle): Simplified.
2895
2896 * casefiddle.c (casify_object): Simplified. Handle the case that
2897 the case conversion change the byte length.
2898 (casify_region): Likewise
2899
2900 * character.h (MAKE_CHAR_UNIBYTE, MAKE_CHAR_MULTIBYTE): New
2901 macros.
2902
2903 * character.c (_fetch_multibyte_char_len): This variable deleted.
2904 (syms_of_character): Setup Vprintable_chars.
2905
2906 * editfns.c (Fchar_equal): Fix for the unibyte case.
2907 (Finsert_byte): New function.
2908 (syms_of_editfns): Defsubr it.
2909
2910 * keyboard.c (read_key_sequence): Use ~CHAR_MODIFIER_MASK instead
2911 of direct code 0x3ffff.
2912
2913 * search.c (Freplace_match): Fix for the unibyte case.
2914
2915 2002-08-19 Kenichi Handa <handa@m17n.org>
2916
2917 * lread.c (safe_to_load_p): Fix the logic.
2918
2919 * syntax.c (scan_words): Don't treat characters belonging to
2920 different scripts as constituting a word.
2921
2922 * editfns.c (Fformat): Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
2923
2924 * fontset.c (Fset_fontset_font): Treat `ascii' as charset, not
2925 script.
2926
2927 * emacs.c (main): In the case of --unibyte, instead of aborting on
2928 finding non-empty buffer, make it unibyte.
2929
2930 2002-08-18 Kenichi Handa <handa@m17n.org>
2931
2932 * xterm.c (x_new_fontset): Call `create-fontset-from-ascii-font'
2933 to create a fontset.
2934
2935 2002-08-18 Dave Love <fx@gnu.org>
2936
2937 * character.c (Funibyte_char_to_multibyte): Doc fix.
2938
2939 * xfns.c [HAVE_STDLIB_H]: Fix last change.
2940
2941 2002-08-15 Kenichi Handa <handa@m17n.org>
2942
2943 * fontset.c (fontset_add): Make the type `int'.
2944 (fontset_id_valid_p): Define it if FONTSET_DEBUG is defined.
2945
2946 * character.c (unibyte_char_to_multibyte): Refer to
2947 charset_unibyte, not charset_primary.
2948 (multibyte_char_to_unibyte): Likewise.
2949 (Funibyte_char_to_multibyte): Likewise.
2950
2951 * charset.h: (charset_unibyte): Extern it instead of
2952 charset_primary.
2953
2954 * charset.c (charset_unibyte): Renamed from charset_primary.
2955 (Funibyte_charset): Renamed from Fprimary_charset.
2956 (Fset_unibyte_charset): Renamed from Fset_primary_charset.
2957 (syms_of_charset): Adjusted for the above changes.
2958
2959 * w32term.c (x_produce_glyphs): Use ASCII_CHAR_P, not
2960 SINGLE_BYTE_CHAR_P. Fix the logic of handling non-ASCII char when
2961 it->multibyte_p is zero.
2962
2963 * lisp.h (nonascii_insert_offset, Vnonascii_translation_table):
2964 Extern deleted.
2965
2966 2002-08-08 Kenichi Handa <handa@m17n.org>
2967
2968 * coding.c (Fdefine_coding_system_internal): Fix category setting
2969 for a coding system of type iso-2022.
2970
2971 2002-08-02 Kenichi Handa <handa@m17n.org>
2972
2973 * fontset.h (FS_LOAD_FONT): Call fs_load_font with the arg CHARSET
2974 -1.
2975
2976 2002-08-01 Kenichi Handa <handa@m17n.org>
2977
2978 * syntax.c (Vnext_word_boundary_function_table): New variable.
2979 (syms_of_syntax): Declare it as a Lisp variable.
2980 (scan_words): Call functions in Vnext_word_boundary_function_table
2981 if any.
2982
2983 * xterm.c (x_load_font): Initialize fontp->fontset to -1.
2984
2985 * fontset.c (fs_load_font): If fontp->charset is not negative,
2986 return fontp without setting its members.
2987
2988 2002-07-31 Dave Love <fx@gnu.org>
2989
2990 * config.in: Generated with autoheader.
2991
2992 * xfns.c [HAVE_STDLIB_H]: Change logic (instead of fixing typo).
2993
2994 * m/sparc.h (HAVE_ALLOCA): Delete.
2995
2996 * s/irix6-5.h: Don't include strings.h.
2997 (bcopy, bzero, bcmp): Don't undef.
2998
2999 * s/irix6-0.h (bcopy, bzero, bcmp): Don't undef.
3000
3001 * s/usg5-4.h (NO_SIOCTL_H): Don't define.
3002 (TIOCSIGSEND): Don't test IRIX6.
3003 (bcopy, bzero, bcmp): Define conditionally.
3004
3005 2002-07-31 Kenichi Handa <handa@m17n.org>
3006
3007 * buffer.c (Qas, Qmake, Qto): New variables.
3008 (Fset_buffer_multibyte): New optional arg METHOD. Caller changed.
3009 (syms_of_buffer): Intern and staticpro Qas, Qmake, and Qto.
3010
3011 * callproc.c (Fcall_process): Don't call insert_1_both directly if
3012 we are inserting a process output into a multibyte buffer.
3013
3014 * character.h (CHAR_TO_BYTE8): If C is not eight-bit char, call
3015 multibyte_char_to_unibyte.
3016
3017 * character.c (Funibyte_char_to_multibyte): If C can't be decoded
3018 by the primary charset, make it eight-bit char.
3019 (Fmultibyte_char_to_unibyte): Call CHAR_TO_BYTE8.
3020
3021 * charset.c: (charset_eight_bit, Qeight_bit_control): New
3022 variables.
3023 (charset_8_bit__control, charset_8_bit_graphic,
3024 Qeight_bit_control, Qeight_bit_graphic): These variables deleted.
3025 (define_charset_internal): New function.
3026 (syms_of_charset): Call define_charset_internal for pre-defined
3027 charsets.
3028
3029 * charset.h (charset_8_bit): Extern it.
3030
3031 * coding.c (make_conversion_work_buffer): Adjusted for the change
3032 of Fset_buffer_multibyte.
3033 (encode_coding_raw_text): Increment p0 in the loop.
3034
3035 * lisp.h (Fset_buffer_multibyte): Prototype adjusted.
3036
3037 * xdisp.c (setup_echo_area_for_printing, set_message_1): Adjusted
3038 for the change of Fset_buffer_multibyte.
3039
3040 * fns.c (Fstring_to_multibyte): New function.
3041 (syms_of_fns): Declare Fstring_to_multibyte as Lisp subroutine.
3042
3043 2002-07-30 Dave Love <fx@gnu.org>
3044
3045 * xfns.c (x_put_x_image): Declare args.
3046
3047 * xfaces.c (font_name_registry, choose_face_font): Delete unused
3048 vars.
3049 (try_font_list): Declare an arg.
3050
3051 * xdisp.c (message2_nolog, set_message): Declare an arg.
3052
3053 * terminfo.c (tparam): Declare an arg. Use P_ to declare tparm.
3054
3055 * syntax.c (scan_sexps_forward): Declare an arg.
3056
3057 * scroll.c (calculate_scrolling, calculate_direct_scrolling):
3058 Declare an arg.
3059
3060 * lisp.h (Fnew_fontset): Declare.
3061
3062 * keymap.c (push_key_description): Call CHARACTERP correctly.
3063
3064 * fontset.c (fontset_add): Declare args. Call make_number
3065 correctly.
3066 (face_for_char): Delete unused vars.
3067 (Fset_fontset_font): Doc fix. Delete unused vars.
3068
3069 * doc.c (Fsubstitute_command_keys): Delete unused vars.
3070
3071 * composite.c (update_compositions): Declare arg.
3072
3073 * cm.c (calccost, cmgoto): Declare args.
3074
3075 * charset.c: Remove `emacs' conditional. Doc fixes.
3076 (map_char_table_for_charset): Declare.
3077
3078 * character.c (syms_of_character) <translation-table-vector>: Doc
3079 fix.
3080
3081 * ccl.c: Remove `emacs' conditional. Include hash table stuff
3082 from trunk.
3083
3084 2002-07-26 Kenichi Handa <handa@m17n.org>
3085
3086 The following changes are to allow specifying multiple font
3087 patterns for a character range (specified by script or charset).
3088
3089 * Makefile.in (abbrev.o): Depend on syntax.h.
3090 (xfaces.o): Depend on charset.h.
3091
3092 * alloc.c (Fmake_string): Use ASCII_CHAR_P, not
3093 SINGLE_BYTE_CHAR_P.
3094
3095 * ccl.c (Fccl_execute_on_string): Add `const' to local variables.
3096
3097 * character.h (Vchar_script_table): Extern it.
3098
3099 * character.c (Vscript_alist): This variable deleted.
3100 (Vchar_script_table, Qchar_script_table): New variable.
3101 (syms_of_character): Declare Vchar_script_table as a lisp variable
3102 and initialize it.
3103
3104 * chartab.c (Fmake_char_table): Doc fixed. If PURPOSE doesn't
3105 have property char-table-extra-slots, make no extra slot.
3106
3107 * dispextern.h (struct face): Member `charset' deleted.
3108 (FACE_SUITABLE_FOR_CHAR_P): Use ASCII_CHAR_P, not
3109 SINGLE_BYTE_CHAR_P.
3110 (FACE_FOR_CHAR): Likewise.
3111 (choose_face_font, lookup_non_ascii_face, font_name_registry): Add
3112 prototypes
3113 (lookup_face, lookup_named_face, lookup_derived_face): Prototype
3114 fixed.
3115 (generate_ascii_font_name): Renamed from generate_ascii_font.
3116
3117 * fontset.h (get_font_repertory_func): New prototype.
3118 (make_fontset_for_ascii_face, fs_load_font): Prototypes fixed.
3119 (FS_LOAD_FONT): Call fs_load_font with the 3rd arg charset_ascii.
3120
3121 * fontset.c (Qprepend, Qappend): New variables.
3122 (FONTSET_CHARSET_ALIST, FONTSET_FACE_ALIST): These macros deleted.
3123 (FONTSET_NOFONT_FACE, FONTSET_REPERTORY): New macros.
3124 (FONTSET_REF): Optimize if FONTSET is Vdefault_fontset.
3125 (FONTSET_REF_AND_RANGE, FONTSET_ADD): New macros.
3126 (fontset_ref_and_range, fontset_add, reorder_font_vector)
3127 (load_font_get_repertory): New functions.
3128 (fontset_set): This function deleted.
3129 (fontset_face): New arg FACE. Return face ID, not face.
3130 Completely re-written to handle new fontset structure. Caller
3131 changed.
3132 (free_face_fontset): Use ASET istead of AREF (X) = Y.
3133 (face_for_char): Don't call lookup_face.
3134 (make_fontset_for_ascii_face): New arg FACE.
3135 (fs_load_font): New arg CHARSET_ID. Don't check
3136 Vfont_encoding_alist here.
3137 (find_font_encoding): New function.
3138 (list_fontsets): Use STRINGP, not ! NILP.
3139 (accumulate_script_ranges): New function.
3140 (Fset_fontset_font, Fnew_fontset, Ffontset_info): Completely
3141 re-written to handle new fontset structure.
3142 (Ffontset_font): Return a copy of element.
3143 (syms_of_fontset): Define symbols Qprepend and Qappend. Fix
3144 docstring of font-encoding-alist.
3145
3146 * lisp.h (CHAR_TABLE_REF): Remove unnecessary check (IDX >= 0).
3147 (Fset_fotset_font): Fix arguments to 5.
3148
3149 * msdos.c (XMenuActivate): Adjuted for the change of
3150 lookup_derived_face.
3151
3152 * xdisp.c (message_dolog, set_message_1, extend_face_to_end_of_line):
3153 Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
3154 (highlight_trailing_whitespace): Adjusted for the change of
3155 lookup_named_face.
3156
3157 * xfaces.c: Include charset.h.
3158 (load_face_font): Argument C deleted. Caller changed.
3159 (generate_ascii_font_name): Renamed from generate_ascii_font.
3160 (font_name_registry): New function.
3161 (cache_face): Store ascii faces before non-ascii faces in buckets.
3162 (lookup_face): Arguments C and BASE_FACE deleted. Caller changed.
3163 Lookup only ascii faces.
3164 (lookup_non_ascii_face): New function.
3165 (lookup_named_face): Argument C deleted. Caller changed.
3166 (lookup_derived_face): Argument C deleted. Caller changed.
3167 (try_font_list): New arg PATTERN. Caller changed. If PATTERN is
3168 a string, just call font_list with it.
3169 (choose_face_font): Arguments FACE and C deleted. New arg
3170 FONT_SPEC. Caller changed.
3171 (realize_face): Arguments C and BASE_FACE deleted. Caller
3172 (realize_x_face): Likewise.
3173 (realize_non_ascii_face): New function.
3174 (realize_x_face): Call load_face_font here.
3175 (realize_tty_face): Argument C deleted. Caller changed.
3176 (compute_char_face): If CH is not ascii, call FACE_FOR_CHAR to
3177 get a face ID.
3178 (dump_realized_face): Don't print charset of FACE.
3179
3180 * xfns.c (x_set_font): Always call x_new_fontset and
3181 store_frame_parameter.
3182 (Fx_create_frame): Call x_new_fontset, not x_new_font.
3183 (syms_of_xfns): Set get_font_repertory_func to
3184 x_get_font_repertory.
3185
3186 * xterm.h (x_get_font_repertory): Extern it.
3187
3188 * xterm.c (x_produce_glyphs): Use ASCII_CHAR_P, not
3189 SINGLE_BYTE_CHAR_P. Fix the logic of handling non-ASCII char when
3190 it->multibyte_p is zero.
3191 (XTread_socket): Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
3192 (x_new_fontset): If FONTSETNAME doesn't match any existing
3193 fontsets, create a new one.
3194 (x_get_font_repertory): New function.
3195
3196 2002-07-25 Kenichi Handa <handa@m17n.org>
3197
3198 * coding.c (Ffind_coding_systems_region_internal): Detect an
3199 ASCII only string correctly.
3200
3201 * lread.c (Fload): Don't load with Qload_force_doc_strings t if
3202 version is 0.
3203
3204 2002-07-24 Kenichi Handa <handa@m17n.org>
3205
3206 * lread.c: Include "coding.h".
3207 (Qget_emacs_mule_file_char, Qload_force_doc_strings,
3208 load_each_byte, unread_char): New variables.
3209 (readchar_backlog): This variable deleted.
3210 (readchar): Return a character unless load_each_byte is nonzero.
3211 Handle the case that readcharfun is Qget_emacs_mule_file_char or a
3212 cons. If unread_char is not -1, simply return it.
3213 (unreadchar): Handle the case that readcharfun is
3214 Qget_emacs_mule_file_char or a cons. Set unread_char if
3215 necessary.
3216 (read_multibyte): This function deleted.
3217 (readbyte_for_lambda, readbyte_from_file, readbyte_from_string)
3218 (read_emacs_mule_char): New functions.
3219 (Fload): Even if the file doesn't have the extention ".elc", if
3220 safe_to_load_p returns a positive version number, assume that the
3221 file contains bytecompiled code. If the version is less than 22,
3222 load the file while decoding multibyte sequences by emacs-mule.
3223 (readevalloop): Don't use readchar_backlog.
3224 (Fread): Likewise. Pay attention to the case that STREAM is a
3225 cons.
3226 (Fread_from_string): Pay attention to the case that STREAM is a
3227 cons.
3228 (read_escape): The arg BYTEREP deleted.
3229 (read1): Set load_each_byte to 1 temporarily while handling
3230 #@NUMBER. Don't call read_multibyte.
3231 (read_vector): Call Fread with a cons. If readcharfun is
3232 Qget_emacs_mule_file_char, decode the read string by emacs-mule.
3233 (read_list): If doc_reference is 2, make the cdr part string as
3234 unibyte.
3235 (syms_of_lread): Intern and staticpro Qget_emacs_mule_file_char
3236 and Qload_force_doc_strings.
3237
3238 2002-07-23 Kenichi Handa <handa@m17n.org>
3239
3240 * xdisp.c (face_before_or_after_it_pos): Call
3241 FETCH_MULTIBYTE_CHAR with byte postion, not char position.
3242
3243 2002-07-22 Kenichi Handa <handa@m17n.org>
3244
3245 * character.h (TRAILING_CODE_P): New macro.
3246 (MAYBE_UNIFY_CHAR): Adjusted for the change of Funify_charset.
3247 (string_char_with_unification): Fix prototype.
3248 (Vscript_alist): Extern it.
3249
3250 * character.c (Vscript_alist): New variable.
3251 (string_char_with_unification): Add `const' to local variables.
3252 (str_as_unibyte): Likewise.
3253 (string_escape_byte8): Likewise.
3254 (syms_of_character): Declare script-alist as a Lisp variable.
3255
3256 * charset.h (Vcharset_ordered_list): Extern it.
3257 (charset_ordered_list_tick): Extern it.
3258 (EMACS_MULE_LEADING_CODE_PRIVATE_11)
3259 (EMACS_MULE_LEADING_CODE_PRIVATE_12)
3260 (EMACS_MULE_LEADING_CODE_PRIVATE_21)
3261 (EMACS_MULE_LEADING_CODE_PRIVATE_22): New macros
3262 (Funify_charset): Adjusted for the change of Funify_charset.
3263
3264 * charset.c (charset_ordered_list_tick): New variable.
3265 (Fdefine_charset_internal): Increment charset_ordered_list_tick.
3266 (Funify_charset): New optional arg DEUNIFY. If it is non-nil,
3267 deunify intead of unify a charset.
3268 (string_xstring_p): Add `const' to local variables.
3269 (find_charsets_in_text): Add `const' to arguemnts and local
3270 variables.
3271 (encode_char): Adjusted for the change of Funify_charset. Fix
3272 detecting of invalid code.
3273 (Fset_charset_priority): Increment charset_ordered_list_tick.
3274 (Fmap_charset_chars): Fix handling of default value for FROM_CODE
3275 and TO_CODE.
3276
3277 * coding.c (LEADING_CODE_PRIVATE_11, LEADING_CODE_PRIVATE_12)
3278 (LEADING_CODE_PRIVATE_21, LEADING_CODE_PRIVATE_22): Macros
3279 deleted. Callers changed to use
3280 EMACS_MULE_LEADING_CODE_PRIVATE_11, etc.
3281 (decode_coding_ccl): Add `const' to local variables.
3282 (consume_chars): Likewise.
3283 (Ffind_coding_systems_region_internal): Likewise.
3284 (Fcheck_coding_systems_region): Likewise.
3285
3286 * print.c (print_object): Use octal form for printing the
3287 contents of a bool vector.
3288
3289 2002-07-18 Dave Love <fx@gnu.org>
3290
3291 * lread.c (Fload) <!load_dangerous_libraries>: Don't leak fd.
3292 <version == 20>: Refuse to load.
3293
3294 2002-07-17 Dave Love <fx@gnu.org>
3295
3296 * fns.c: Move coding.h.
3297 (Qcodeset, Qdays, Qmonths): New.
3298 (concat): Use CHARACTERP instead of INTERGERP.
3299 (Flocale_codeset): Deleted.
3300 (Flanginfo): New function.
3301 (syms_of_fns): Changed accordingly.
3302
3303 * coding.c (adjust_coding_eol_type): Fix eol_type/eol_seen mixup.
3304
3305 2002-07-16 Dave Love <fx@gnu.org>
3306
3307 * casetab.c (init_casetab_once, init_casetab_once): Fix
3308 CHAR_TABLE_SET call.
3309
3310 * category.c (Fmodify_category_entry): Fix CATEGORY_MEMBER call.
3311
3312 * character.c (syms_of_character): Fix CHAR_TABLE_SET call.
3313
3314 * charset.c (Fmap_charset_chars): Check args. Convert Lisp types.
3315 (load_charset_map, Fdeclare_equiv_charset, Fencode_char)
3316 (Fset_charset_priority, syms_of_charset): Convert Lisp types.
3317
3318 * charset.h (CHECK_CHARSET_GET_ID): Use XINT on AREF result.
3319
3320 * coding.c (ENCODE_DESIGNATION, decode_eol)
3321 (make_conversion_work_buffer, code_conversion_restore)
3322 (Fdefine_coding_system_internal): Convert Lisp types.
3323 (code_conversion_restore): Use EQ, not ==.
3324 (Fencode_coding_string): Fix code_convert_string call.
3325
3326 * coding.h (code_convert_region): Fix prototype.
3327
3328 * dispextern.h (redraw_frame, redraw_garbaged_frames): Removed.
3329
3330 * fontset.c (fontset_ref, fontset_set, fs_load_font)
3331 (Ffontset_info): Convert Lisp types.
3332
3333 * syntax.h (SYNTAX_ENTRY_INT): Don't use make_number.
3334
3335 * xterm.c (note_mouse_movement): Fix call of window_from_coordinates.
3336
3337 * xdisp.c (display_mode_element): Fix call of Fset_text_properties.
3338
3339 * chartab.c: Include "...h", not <...h> in some cases.
3340
3341 * callproc.c (Fcall_process): Remove unused variables.
3342
3343 2002-07-12 Dave Love <fx@gnu.org>
3344
3345 * coding.c (Fset_coding_system_priority): Allow null arg list.
3346
3347 2002-07-03 Dave Love <fx@gnu.org>
3348
3349 * minibuf.c (Fminibuffer_complete_word): Remove unused var.
3350 (Fself_insert_and_exit): Use CHARACTERP.
3351
3352 * callproc.c (Fcall_process): Remove unused vars.
3353
3354 * xterm.c (XTread_socket): Add extra dead keysyms.
3355
3356 * xdisp.c (decode_mode_spec_coding): Use CHARACTERP.
3357
3358 * dispextern.h: Remove prototypes for redraw_frame,
3359 redraw_garbaged_frames.
3360
3361 * cmds.c (Fself_insert_command): Use CHARACTERP.
3362
3363 * chartab.c (make_sub_char_table): Remove unused var.
3364 (Fset_char_table_default, Fmap_char_table): Doc fix.
3365
3366 * keymap.c (access_keymap): Remove generic char code.
3367 (push_key_description): Use CHARACTERP.
3368
3369 2002-07-01 Dave Love <fx@gnu.org>
3370
3371 * charset.c: Doc fixes.
3372 (Funify_charset): Extra checking.
3373
3374 2002-06-24 Dave Love <fx@gnu.org>
3375
3376 * lread.c: Remove some unused variables.
3377 (safe_to_load_p): If safe, return the magic number version byte.
3378 (Fload): Maybe use load-with-code-conversion.
3379
3380 2002-06-12 Kenichi Handa <handa@m17n.org>
3381
3382 * category.c (Fmodify_category_entry): Don't modify the contents
3383 of category_set for characters out of the range. Avoid
3384 unnecessary modification.
3385
3386 * character.h (MAYBE_UNIFY_CHAR): Adjusted for the change of
3387 Vchar_unify_table. The default value of the table is now nil.
3388
3389 * character.c (syms_of_character): Setup Vchar_width_table for
3390 eight-bit-control and raw-byte chars.
3391
3392 * charset.h (enum define_charset_arg_index): Delete
3393 charset_arg_parents and add charset_arg_subset and
3394 charset_arg_superset.
3395 (enum charset_attr_index): Delete charset_parents and add
3396 charset_subset and charset_superset.
3397 (enum charset_method): Delete CHARSET_METHOD_INHERIT and add
3398 CHARSET_METHOD_SUBSET and CHARSET_METHOD_SUPERSET.
3399 (CHARSET_ATTR_PARENTS, CHARSET_PARENTS): Macros deleted.
3400 (CHARSET_ATTR_SUBSET, CHARSET_ATTR_SUPERSET, CHARSET_SUBSET)
3401 (CHARSET_SUPERSET): New macros.
3402 (charset_work): Extern it.
3403 (ENCODE_CHAR): Use charset_work.
3404 (CHAR_CHARSET_P): Adjusted for the change of encoder format.
3405 (map_charset_chars): Extern it.
3406
3407 * charset.c (load_charset_map): Set the default value of encoder
3408 and deunifier char-tables to nil.
3409 (map_charset_chars): Argument changed. Callers changed. Use
3410 map_char_table_for_charset instead of map_char_table.
3411 (Fmap_charset_chars): New optional args from_code and to_code.
3412 (Fdefine_charset_internal): Adjusted for the change of
3413 `define-charset' (:parents -> :subset or :superset).
3414 (charset_work): New variable.
3415 (encode_char): Adjusted for the change of
3416 Fdefine_charset_internal.
3417 (syms_of_charset): Likewise.
3418 (Ffind_charset_string): Setup the vector `charsets' correctly.
3419
3420 * chartab.c (sub_char_table_ref_and_range): New arg defalt. Fix
3421 the previous change.
3422 (char_table_ref_and_range): Adjusted for the above change.
3423 (map_sub_char_table_for_charset): New function.
3424 (map_char_table_for_charset): New function.
3425
3426 * keymap.c (describe_vector): Handle a char-table directly here.
3427 (describe_char_table): Deleted.
3428
3429 * lisp.h (map_charset_chars): Deleted.
3430
3431 2002-06-11 Dave Love <fx@gnu.org>
3432
3433 * fns.c (count_combining): Comment out (unused).
3434 (Flocale_codeset): New.
3435 (syms_of_fns): Defsubr it.
3436
3437 * config.in (HAVE_PTY_H, HAVE_SIZE_T, HAVE_LANGINFO_CODESET): New.
3438 (size_t): Removed.
3439
3440 2002-06-06 Dave Love <fx@gnu.org>
3441
3442 * Makefile.in (chartab.o): Depend on charset.h
3443
3444 2002-06-03 Kenichi Handa <handa@m17n.org>
3445
3446 * character.c (syms_of_character): Set the default value of
3447 Vprintable_chars to Qnil.
3448
3449 2002-05-31 Dave Love <fx@gnu.org>
3450
3451 * Makefile.in (lisp, shortlisp): Change indian.elc to indian.el.
3452
3453 2002-05-31 Kenichi Handa <handa@m17n.org>
3454
3455 * charset.c (load_charset_map): Handle the case that from < to
3456 correctly.
3457
3458 * coding.c (encode_coding_emacs_mule): Pay attention to raw-8-bit
3459 chars.
3460 (encode_coding_iso_2022): Likewise.
3461 (encode_coding_sjis): Likewise.
3462 (encode_coding_big5): Likewise.
3463 (encode_coding_charset): Likewise.
3464
3465 2002-05-30 Kenichi Handa <handa@m17n.org>
3466
3467 * Makefile.in (lisp): Change chinese.elc to chinese.el. They are
3468 not bytecompiled now.
3469 (shortlisp): Likewise.
3470
3471 * charset.c (charset_jisx0201_roman, charset_jisx0208_1978)
3472 (charset_jisx0208): New variables.
3473 (Fdefine_charset_internal): Setup them if appropriate.
3474 (init_charset_once): Initialize them to -1.
3475
3476 * charset.h (charset_jisx0201_roman, charset_jisx0208_1978,
3477 charset_jisx0208): Extern them.
3478
3479 * coding.c (CODING_ISO_FLAG_USE_ROMAN): New macro
3480 (CODING_ISO_FLAG_USE_OLDJIS): New macro.
3481 (CODING_ISO_FLAG_FULL_SUPPORT): Macro definition changed.
3482 (setup_iso_safe_charsets): Fix arguemtns to Fassq.
3483 (DECODE_DESIGNATION): Pay attention to CODING_ISO_FLAG_USE_ROMAN
3484 and CODING_ISO_FLAG_USE_OLDJIS.
3485 (ENCODE_ISO_CHARACTER_DIMENSION1): Likewise.
3486 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
3487 (encode_coding_iso_2022): Change the 1st arg to
3488 ENCODE_ISO_CHARACTER to a variable.
3489
3490 2002-05-29 Kenichi Handa <handa@m17n.org>
3491
3492 * charset.h (enum define_charset_arg_index): New enums
3493 charset_arg_min_code and charset_arg_max_code.
3494 (struct charset): New member char_index_offset.
3495
3496 * charset.c (CODE_POINT_TO_INDEX): Take charset->char_index_offset
3497 into account.
3498 (INDEX_TO_CODE_POINT): Likewise.
3499 (Fdefine_charset_internal): Handle args[charset_arg_min_code] and
3500 args[charset_arg_max_code]. Setup charset.char_index_offset.
3501 (syms_of_charset): Fix args to Fdefine_charset_internal.
3502
3503 2002-05-27 Dave Love <fx@gnu.org>
3504
3505 * coding.c (decode_coding_utf_8): Reject overlong sequences.
3506
3507 2002-05-26 Dave Love <fx@gnu.org>
3508
3509 * coding.c: Doc fixes.
3510 (Fcoding_system_aliases): Fix return value.
3511 (Qmac): Remove (duplicated) definition.
3512
3513 2002-05-25 Dave Love <fx@gnu.org>
3514
3515 * charset.c (Fcharset_priority_list, Fset_charset_priority): New
3516 functions.
3517
3518 * character.c (Fstring): Doc fix.
3519
3520 * charset.c (Fdefine_charset_alias): Update Vcharset_list.
3521
3522 * fontset.c (Ffontset_info): Doc fix. Return charset names, not
3523 ids.
3524 (font-encoding-alist): Doc fix.
3525
3526 2002-05-24 Dave Love <fx@gnu.org>
3527
3528 * term.c (costs_set): Declare static, non-initialized for pcc.
3529 (encode_terminal_code): Remove ensued var.
3530
3531 * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal decl
3532 for K&R.
3533
3534 * xterm.c (xlwmenu_window_p): Fix prototype for K&R.
3535
3536 * coding.c (setup_iso_safe_charsets): Fix arg decl for K&R.
3537 (suffixes): Moved out of make_subsidiaries for K&R.
3538
3539 * charset.c (map_charset_chars): Fix c_function declaration for
3540 K&R.
3541
3542 * lisp.h (DEFUN) [!PROTOTYPES]: Remove spurious `args'.
3543
3544 2002-05-23 Dave Love <fx@gnu.org>
3545
3546 * data.c (Fchar_or_string_p): Doc fix. Use CHARACTERP.
3547
3548 * category.c (Fmodify_category_entry): Doc fix. Remove unused
3549 vars.
3550
3551 2002-05-23 Yong Lu <lyongu@asia-infonet.com>
3552
3553 * charset.c (Fdefine_charset_internal): Fix argument to bzero.
3554
3555 * coding.c (Fdefine_coding_system_internal): Fix previous change.
3556 (decode_coding_charset): Workaround for the bug of GCC 2.96.
3557
3558 2002-05-23 Kenichi Handa <handa@m17n.org>
3559
3560 * Makefile.in (lisp): Change cyrillic.elc to cyrillic.el,
3561 vietnamese.elc to vietnamese.el. They are not bytecompiled now.
3562 (shortlisp): Likewise.
3563
3564 2002-05-22 Kenichi Handa <handa@m17n.org>
3565
3566 * coding.c (decode_coding_charset): Adjusted for the change of
3567 Fdefine_coding_system_internal.
3568 (Fdefine_coding_system_internal): For a coding system of
3569 `charset' type, store a list of charset IDs in
3570 `charset_attr_charset_valids' element of coding attributes.
3571
3572 * charset.c (Fmake_char): Fix previous change.
3573
3574 2002-05-21 Kenichi Handa <handa@m17n.org>
3575
3576 * coding.c (ONE_MORE_BYTE_NO_CHECK): Increment consumed_chars.
3577 (emacs_mule_char): New arg src. Delete arg `composition'. Caller
3578 changed. Handle 2-byte and 3-byte charsets correctly.
3579 (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Renamed from
3580 DECODE_EMACS_MULE_COMPOSITION_RULE. Caller changed.
3581 (DECODE_EMACS_MULE_COMPOSITION_RULE_21): New macro.
3582 (DECODE_EMACS_MULE_21_COMPOSITION): Call
3583 DECODE_EMACS_MULE_COMPOSITION_RULE_21. Produce correct annotation
3584 sequence.
3585 (decode_coding_emacs_mule): Handle composition correctly. Rewind
3586 `src' and `consumed_chars' correctly before calling
3587 emacs_mule_char.
3588 (DECODE_COMPOSITION_START): Correctly handle the case of altchar
3589 and alt&rule composition.
3590 (decode_coding_iso_2022): Handle composition correctly.
3591 (init_coding_once): Setup emacs_mule_bytes for private charsets.
3592
3593 * charset.c (Fdefine_charset_internal): Fix bug for the case of
3594 re-defining a charset. If the charset has :emacs-mule-id, setup
3595 emacs_mule_bytes.
3596 (Fmake_char): If CODE1 is nil, use the minimum code of the
3597 charset.
3598
3599 2002-05-20 Kenichi Handa <handa@m17n.org>
3600
3601 * coding.c (encode_coding_iso_2022): If coding requires safe
3602 encoding, produce a character specified by
3603 CODING_INHIBIT_CHARACTER_SUBSTITUTION.
3604 (encode_coding_sjis): Likewise.
3605 (encode_coding_big5): Likewise.
3606 (encode_coding_charset): Likewise.
3607
3608 2002-05-17 Dave Love <fx@gnu.org>
3609
3610 * xterm.c (XSetIMValues): Declare.
3611
3612 * process.c: Conditionally include sys/wait.h, pty.h.
3613
3614 * print.c (print_object): Fix print format for 64-bit
3615 systems.
3616
3617 * keyboard.c (modify_event_symbol): Fix print format for 64-bit
3618 systems.
3619
3620 * buffer.c (emacs_strerror): Declare.
3621 (MMAP_ALLOCATED_P, mmap_enlarge, syms_of_buffer): Import changes
3622 from trunk.
3623
3624 * fontset.c (Fclear_face_cache): Declare.
3625 (accumulate_font_info): Commented-out (unused).
3626 (face_for_char, Fset_fontset_font, Ffontset_info): Remove unused
3627 variables.
3628
3629 * character.h (string_escape_byte8): Declare.
3630
3631 * charset.c (load_charset_map, load_charset_map_from_file): Remove
3632 unused vars.
3633 (Fdefine_charset_internal, Fsplit_char, syms_of_charset)
3634 (Fmap_charset_chars): Doc fix.
3635
3636 * coding.c (Vchar_coding_system_table, Qchar_coding_system):
3637 Removed.
3638 (Fset_coding_system_priority, Fset_coding_system_priority)
3639 (Fdefine_coding_system_internal): Doc fix.
3640
3641 2002-05-16 Dave Love <fx@gnu.org>
3642
3643 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Remove -nointrinsics.
3644
3645 2002-05-16 Kenichi Handa <handa@m17n.org>
3646
3647 * character.c (string_escape_byte8): Make multibyte string with
3648 correct size.
3649
3650 * charset.c (Fmake_char): Delete unnecessary code.
3651
3652 2002-05-14 Kenichi Handa <handa@m17n.org>
3653
3654 * xfns.c (x_encode_text): Allocate coding.destination here, and
3655 call encode_coding_object with dst_object Qnil.
3656
3657 * buffer.c (Fset_buffer_multibyte): Convert 8-bit bytes to
3658 multibyte form correctly.
3659
3660 * fontset.c (fs_load_font): Check fontp->full_name (not fontname)
3661 against Vfont_encoding_alist.
3662
3663 * coding.c (Fdecode_sjis_char): Fix typo (0x7F->0xFF). Fix the
3664 handling of charset list.
3665 (encode_coding_iso_2022): Setup coding->safe_charsets in advance.
3666 (decode_coding_object): Move point to coding->dst_pos before
3667 calling post-read-conversion function.
3668 (encode_coding_object): Give correct arguments to
3669 pre-write-conversion. Ignore the return value of
3670 pre-write-conversion function. Pay attention to the case that
3671 pre-write-conversion changes the current buffer. If dst_object is
3672 Qt, even if coding->src_bytes is zero, allocate at least one byte
3673 to coding->destination.
3674
3675 * coding.h (JIS_TO_SJIS): Fix typo (j1->s1, j2->s2).
3676
3677 * charset.c (Fmake_char): Make it more backward compatible.
3678 (Fmap_charset_chars): Fix docstring.
3679
3680 2002-05-13 Dave Love <fx@gnu.org>
3681
3682 * coding.c: Doc fixes.
3683 (Fdefine_coding_system_alias): Use names, not symbols, in
3684 coding-system-alist.
3685
3686 2002-05-13 Kenichi Handa <handa@m17n.org>
3687
3688 * fontset.c (free_realized_fontsets): Call Fclear_face_cache instead
3689 of calling free_realized_face.
3690
3691 2002-05-10 Yong Lu <lyongu@asia-infonet.com>
3692
3693 * charset.c (load_charset_map): Fix previous change.
3694 (read_hex): Don't treat SPC as a comment starter.
3695 (decode_char): If CODE_POINT_TO_INDEX retruns -1, always return
3696 -1.
3697 (Fdecode_char): Fix typo.
3698
3699 2002-05-10 Kenichi Handa <handa@m17n.org>
3700
3701 * charset.h (struct charset): New member `code_space_mask'.
3702
3703 * coding.c (coding_set_source): Delete the local variable
3704 beg_byte.
3705 (encode_coding_charset): Delete the local variable charset.
3706 (Fdefine_coding_system_internal): Likewise.
3707 (Fdefine_coding_system_internal): Setup
3708 attrs[coding_attr_charset_valids] correctly.
3709
3710 * charset.c (CODE_POINT_TO_INDEX): Utilize `code_space_mask'
3711 member to check if CODE is valid or not.
3712 (Fdefine_charset_internal): Initialize `code_space_mask' member.
3713 (encode_char): Before calling CODE_POINT_TO_INDEX, check if CODE
3714 is within the range of charset->min_code and carset->max_code.
3715
3716 2002-05-09 Dave Love <fx@gnu.org>
3717
3718 * syntax.h (syntax_temp) [!__GNUC__]: Declare.
3719
3720 * dispextern.h (generate_ascii_font): Fix return type.
3721
3722 * xfaces.c (generate_ascii_font): Fix arg declaration.
3723
3724 * coding.c (coding_inherit_eol_type)
3725 (Fset_terminal_coding_system_internal)
3726 (Fset_safe_terminal_coding_system_internal): Fix arg declarations.
3727
3728 2002-05-08 Kenichi Handa <handa@m17n.org>
3729
3730 * coding.c (decode_coding_charset, encode_coding_charset): Handle
3731 multiple charsets correctly.
3732
3733 2002-05-07 Kenichi Handa <handa@m17n.org>
3734
3735 * search.c (boyer_moore): Fix handling of mulitbyte character
3736 translation.
3737
3738 * xdisp.c (display_mode_element): When the variable `elt' is
3739 changed, update `this' and `lisp_string'.
3740
3741 2002-05-07 Kenichi Handa <handa@m17n.org>
3742
3743 * buffer.c (Fset_buffer_multibyte): Fix 8-bit char handling.
3744
3745 * callproc.c (Fcall_process): Be sure to give the current buffer
3746 to decode_coding_c_string. Update PT and PT_BYTE after the
3747 insertion.
3748
3749 * charset.c (struct charset_map_entries): New struct.
3750 (load_charset_map): Renamed from parse_charset_map. New args
3751 entries and n_entries. Caller changed.
3752 (load_charset_map_from_file): Renamed from load_charset_map.
3753 Caller changed. New arg control_flag. Call load_charset_map at
3754 the tail.
3755 (load_charset_map_from_vector): New function.
3756 (Fdefine_charset_internal): Setup charset.compact_codes_p.
3757 (encode_char): If the charset is compact, change a character index
3758 to a code point.
3759
3760 * coding.c (coding_alloc_by_making_gap): Check the case that the
3761 source and destination are the same correctly.
3762 (decode_coding_raw_text): Set coding->consumed_char and
3763 coding->consumed to 0.
3764 (produce_chars): If coding->chars_at_source is nonzero, update
3765 coding->consumed_char and coding->consumed before calling
3766 alloc_destination.
3767 (Fdefine_coding_system_alias): Register ALIAS in
3768 Vcoding_system_alist.
3769 (syms_of_coding): Define `no-convesion' coding system at the tail.
3770
3771 * fileio.c (Finsert_file_contents): Set coding_system instead of
3772 val. If the current buffer is multibyte, always call
3773 decode_coding_gap.
3774
3775 * xfaces.c (try_font_list): Give higher priority to fontset's
3776 family than face's family.
3777
3778 2002-04-18 Kenichi Handa <handa@m17n.org>
3779
3780 * callproc.c (Fcall_process): Be sure to give the current buffer
3781 to decode_coding_c_string.
3782
3783 * xfaces.c (try_font_list): Give a family specified in a fontset
3784 higher priority than a family specified in a face.
3785
3786 2002-04-09 Kenichi Handa <handa@m17n.org>
3787
3788 * fileio.c (Finsert_file_contents): Fix calculation of `inserted'.
3789 Fix arguments to insert_from_buffer.
3790
3791 * xdisp.c (display_mode_element): Fix calculation of `bytepos'.
3792
3793 2002-03-11 Kenichi Handa <handa@m17n.org>
3794
3795 * coding.c (produce_chars): Set the variable `multibytep' correctly.
3796 (decode_coding_gap): Set coding->dst_multibyte correctly.
3797
3798 2002-03-07 Kenichi Handa <handa@m17n.org>
3799
3800 * coding.c (encode_coding_utf_8): Initialize produced_chars to 0.
3801 (decode_coding_utf_16): Fix converting high and low bytes to
3802 code-point.
3803 (encode_coding_utf_16): Substitute coding->default_char for
3804 non-Unicode characters.
3805 (decode_coding): Don't call record_insert here.
3806 (setup_coding_system): Initialize `surrogate' of
3807 coding->spec.utf_16 to 0.
3808 (EMIT_ONE_BYTE): Fix for multibyte case.
3809
3810 * insdel.c (insert_from_gap): Call record_insert.
3811
3812 2002-03-04 Kenichi Handa <handa@m17n.org>
3813
3814 * casefiddle.c (casify_region): Fix multibyte case.
3815
3816 * character.c (c_string_width): Add return type `int'.
3817 (char_string_with_unification): Arg ADVANCED deleted.
3818
3819 * character.h (CHAR_VALID_P): Don't call CHARACTERP.
3820 (CHAR_STRING): Adjusted for the change of
3821 char_string_with_unification.
3822 (CHAR_STRING_ADVANCE): Make it do-while statement.
3823
3824 * chartab.c (sub_char_table_set_range): Optimized for the case
3825 DEPTH == 3. Add workaround code for a GCC optimization bug.
3826
3827 * charset.c (parse_charset_map): Remove an unused variable.
3828
3829 * coding.c: Delete unused variables.
3830
3831 * fileio.c (Finsert_file_contents): Set coding_system to Qnil
3832 earlier. If inserted is zero and the coding system doesn't
3833 require flushing, don't call decode_coding_gap.
3834
3835 * syntax.h (SET_RAW_SYNTAX_ENTRY): Don't call make_number.
3836
3837 2002-03-01 Kenichi Handa <handa@m17n.org>
3838
3839 The following changes are for using Unicode as an internal
3840 character model, and use UTF-8 format for buffer/string
3841 representation.
3842
3843 * .gdbinit (xchartable): Adjusted for the change of char table
3844 structure.
3845 (xsubchartable, xcoding, xcharset, xcurbuf): New commands.
3846
3847 * Makefile.in (obj): Add character.o and chartab.o.
3848 (lisp, shortlisp): Remove utf-8.elc:
3849 (*.o): For many files, change dependency on charset.h to
3850 character.h, and add dependency on character.h.
3851 (character.o, chartab.o): New targets.
3852
3853 * abbrev.c, bytecode.c, casefiddle.c, cmds.c, dispnew.c, doc.c,
3854 doprnt.c, dosfns.c, frame.c, marker.c, minibuf.c, msdos.c,
3855 w16select.c, w32bdf.c, w32console.c: Include "character.h" instead
3856 of "charset.h".
3857
3858 * dired.c, filelock.c: Include "character.h".
3859
3860 * alloc.c: Include "character.h" instead of "charset.h".
3861 (Fmake_char_table): Moved to chartab.c.
3862 (make_sub_char_table): Likewise.
3863 (syms_of_alloc): Remove defsubr for Smake_char_table.
3864
3865 * buffer.c: Include "character.h" instead of "charset.h", don't
3866 include "coding.h".
3867 (Fset_buffer_multibyte): Adjuted for UTF-8.
3868
3869 * buffer.h: EXFUN Fbuffer_live_p.
3870
3871 * callproc.c: Include "character.h" instead of "charset.h".
3872 (Fcall_process): Big change for the new code-conversion APIs.
3873
3874 * casetab.c: Include "character.h" instead of "charset.h".
3875 (set_canon, set_identity, shuffle): Adjusted for the new
3876 map_char_table spec.
3877 (init_casetab_once): Call CHAR_TABLE_SET instead of directly
3878 accessing the char table structure.
3879
3880 * chartab.c: New file that implements char table.
3881
3882 * category.c: Include "character.h".
3883 (copy_category_entry): New function.
3884 (copy_category_table): Call map_char_table and copy_category_entry.
3885 (Fmake_category_table): Initialize all top-vel slots.
3886 (char_category_set): New function.
3887 (modify_lower_category_set): Deleted.
3888 (Fmodify_category_entry): Call char_table_ref_and_range.
3889
3890 * category.h (CATEGORY_SET): Just call char_category_set.
3891
3892 * ccl.c: Include "character.h".
3893 (Qccl, Qcclp): New variables.
3894 (CCL_WRITE_CHAR): Alway treat the arg CH as a character even if
3895 it's less than 256.
3896 (CCL_WRITE_MULTIBYTE_CHAR): Deleted.
3897 (CCL_WRITE_STRING, CCL_READ_CHAR): Adjusted for the change of SRC
3898 and DST type.
3899 (ccl_driver): Types of arguments changed. Code adjusted for that.
3900 (Fccl_execute, Fccl_execute_on_string): Adjusted for the change of
3901 ccl_driver.
3902 (syms_of_ccl): Intern and staticpro Qccl and Qcclp.
3903
3904 * ccl.h (struct ccl_program): Members eol_type and multibyte
3905 deleted. New members src_multibyte, dst_multibyte, consumed, and
3906 produced.
3907 (struct ccl_spec): Members decoder and encoder deleted. New
3908 memeber ccl.
3909 (CODING_SPEC_CCL_PROGRAM): New macro.
3910 (ccl_driver): Prototype updated.
3911 (Qccl, Qcclp, Fccl_program_p): Extern them.
3912 (CHECK_CCL_PROGRAM): New macro.
3913
3914 * character.c, character.h, chartab.c: New files.
3915
3916 * charset.c: Mostly re-written. Character and multibyte sequence
3917 handling codes are moved to character.c.
3918
3919 * charset.h: Mostly re-written. Character and multibyte sequence
3920 handling codes are moved to character.h.
3921
3922 * coding.c, coding.h: Mostly re-written.
3923
3924 * composite.c: Include "character.h" instead of "charset.h".
3925 (CHAR_WIDTH): Moved to character.h.
3926 (HASH_KEY, HASH_VALUE): Deleted.
3927
3928 * composite.h (enum composition_method): Order of enumeration
3929 symbols changed.
3930
3931 * data.c: Include "character.h" instead of "charset.h".
3932 (Faref): Call CHAR_TABLE_REF for a char table.
3933 (Faset): Call CHAR_TABLE_SET for a char table.
3934
3935 * dispextern.h (free_realized_face, check_face_attribytes,
3936 generate_ascii_font): Extern them.
3937 (free_realized_multibyte_face): Extern deleted.
3938
3939 * disptab.h (DISP_CHAR_VECTOR): Adjusted for the change of char
3940 table structure.
3941
3942 * editfns.c: Include "character.h" instead of "charset.h".
3943 (Fchar_to_string): Always call CHAR_STRING.
3944
3945 * emacs.c (main): Call init_charset_once, init_charset,
3946 syms_of_chartab, and syms_of_character.
3947
3948 * fileio.c: Include "character.h" instead of "charset.h".
3949 (Finsert_file_contents): Big change for the new code-conversion
3950 API.
3951 (choose_write_coding_system): Likewise.
3952 (Fwrite_region): Likewise.
3953 (build_annotations_2): Deleted.
3954 (e_write): Big change for the new code-conversion API.
3955
3956 * fns.c: Include "character.h" instead of "charset.h".
3957 (copy_sub_char_table): Moved to chartab.c.
3958 (Fcopy_sequence): Call copy_char_table for a char table.
3959 (concat): Delete codes calling count_multibyte.
3960 (string_char_to_byte): Adjusted for the new multibyte form.
3961 (string_byte_to_char): Likewise.
3962 (internal_equal): Adjusted for the change of char table structure.
3963 (Fchar_table_subtype, Fchar_table_parent, Fset_char_table_parent,
3964 Fchar_table_extra_slot, Fset_char_table_extra_slot,
3965 Fchar_table_range, Fset_char_table_range, Fset_char_table_default,
3966 char_table_translate, optimize_sub_char_table,
3967 Foptimize_char_table, map_char_table, Fmap_char_table): Moved to
3968 chartab.c.
3969 (char_table_ref_and_index): Deleted.
3970 (HASH_KEY, HASH_VALUE): Moved to lisp.h.
3971 (Fmd5): Call preferred_coding_system instead of accessing
3972 Vcoding_category_list. Adjusted for the new code-conversion API.
3973 (syms_of_fns): Defsubr for char table related functions moved to
3974 chartab.c.
3975
3976 * fontset.c: Mostly re-written.
3977
3978 * fontset.h (struct font_info): Type of the member encoding_type
3979 changed.
3980 (enum FONT_SPEC_INDEX): New enum.
3981 (fontset_font_pattern, fs_load_font): Prototype updated.
3982 (FS_LOAD_FONT): Adjusted for the change of fs_load_font.
3983
3984 * indent.c: Include "character.h" instead of "charset.h".
3985 (MULTIBYTE_BYTES_WIDTH): Call CHAR_WIDTH instead of
3986 WIDTH_BY_CHAR_HEAD.
3987
3988 * insdel.c: Include "character.h" instead of "charset.h".
3989 (copy_text): Don't refer to Vnonascii_translation_table.
3990 (insert_from_gap): New function.
3991
3992 * keyboard.c: Include "character.h" instead of "charset.h".
3993 (command_loop_1): Never call direct_output_forward_char before
3994 a non-ASCII character.
3995 (read_char): If Vkeyboard_translate_table is a char table, always
3996 translated a character.
3997
3998 * keymap.c: Include "character.h".
3999 (store_in_keymap): Handle the case that IDX is a cons.
4000 (Fdefine_key): Handle the case that KEY is a cons and the car part
4001 is also a cons (range).
4002 (push_key_description): Adjusted for the new character code.
4003 (describe_vector): Call describe_char_table for a char table.
4004 (describe_char_table): New function.
4005
4006 * keymap.h (describe_char_table): Extern it.
4007
4008 * lisp.h (enum pvec_type): New member PVEC_SUB_CHAR_TABLE.
4009 (XSUB_CHAR_TABLE, XSETSUB_CHAR_TABLE): New macros.
4010 (CHAR_TABLE_ORDINARY_SLOTS, CHAR_TABLE_SINGLE_BYTE_SLOTS,
4011 SUB_CHAR_TABLE_ORDINARY_SLOTS, SUB_CHAR_TABLE_STANDARD_SLOTS):
4012 Deleted.
4013 (CHAR_TABLE_REF, CHAR_TABLE_SET): Adjusted for the new char table
4014 structure.
4015 (CHAR_TABLE_TRANSLATE): Just call char_table_translate.
4016 (CHARTAB_SIZE_BITS_0, CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2,
4017 CHARTAB_SIZE_BITS_3): New macros.
4018 (chartab_size): Extern it.
4019 (struct Lisp_Char_Table): Re-designed.
4020 (struct Lisp_Sub_Char_Table): New structure.
4021 (HASH_KEY, HASH_VALUE): Moved from fns.c.
4022 (CHARACTERBITS): Defined as 22.
4023 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the above change.
4024 (SUB_CHAR_TABLE_P): Check PVEC_CHAR_TABLE.
4025 (GC_SUB_CHAR_TABLE_P): New macro.
4026 (Fencode_coding_string, Fdecode_coding_string): EXFUN Updated.
4027 (code_convert_string_norecord): Extern deleted.
4028 (init_character_once, syms_of_character, init_charset,
4029 syms_of_composite, Qeq, Fmakehash, insert_from_gap): Extern them.
4030
4031 * lread.c: Include "character.h".
4032 (read_multibyte): New arg NBYTES.
4033 (read_escape): The meaning of returned *BYTEREP changed.
4034 (to_multibyte): Deleted.
4035 (read1): Adjuted the handling of char table and string.
4036
4037 * print.c: Include "character.h" instead of "charset.h".
4038 (print_string): Convert 8-bit raw bytes to octal form by
4039 string_escape_byte8.
4040 (print_object): Adjusted for the new multibyte form. Print 8-bit
4041 raw bytes always in octal form. Handle sub char table correctly.
4042
4043 * process.c: Include "character.h" instead of "charset.h".
4044 (read_process_output): Adjusted for the new code-conversion API.
4045 (send_process): Likewise.
4046
4047 * puresize.h (BASE_PURESIZE): Increased.
4048
4049 * regex.c: Include "character.h" instead of "charset.h".
4050 (BYTE8_TO_CHAR, CHAR_BYTE8_P) [not emacs]: New dummy macros.
4051 (regex_compile): Accept a range whose starting and ending
4052 character have different leading bytes.
4053 (analyse_first): Adjusted for the above change.
4054
4055 * search.c: Include "character.h" instead of "charset.h".
4056 (search_buffer, boyer_moore): Adjusted for the new multibyte form.
4057 (Freplace_match): Adjusted for the change of
4058 multibyte_char_to_unibyte.
4059
4060 * syntax.c: Include "character.h" instead of "charset.h".
4061 (syntax_parent_lookup): Deleted.
4062 (Fmodify_syntax_entry): Accept a cons as CHAR.
4063 (skip_chars): Adjusted for the new multibyte form.
4064 (init_syntax_once): Call char_table_set_range instead of directly
4065 accessing the structure of a char table.
4066
4067 * syntax.h (SET_RAW_SYNTAX_ENTRY): Call CHAR_TABLE_SET.
4068 (SYNTAX_ENTRY_FOLLOW_PARENT): Macro deleted.
4069 (SET_RAW_SYNTAX_ENTRY_RANGE): New macro.
4070 (SYNTAX_ENTRY_INT): Call CHAR_TABLE_REF.
4071
4072 * term.c: Include "buffer.h" and "character.h".
4073 (encode_terminal_code): Adjusted for the new code-conversion API.
4074 (write_glyphs): Likewise.
4075 (produce_glyphs): Call CHAR_WIDTH instead of CHARSET_WIDTH.
4076
4077 * w32term.c (x_new_font): Adjusted for the change of FS_LOAD_FONT.
4078
4079 * xdisp.c: Include "character.h".
4080 (get_next_display_element): Adjusted for the new multibyte form.
4081 (disp_char_vector): Adjusted for the new char table structure.
4082 (decode_mode_spec_coding): Adjusted for the new structure of
4083 coding system.
4084 (decode_mode_spec): Adjusted for the new code-conversion API.
4085
4086 * xfaces.c: Include "character.h" instead of "charset.h".
4087 (load_face_font): Adjusted for the change of choose_face_font and
4088 FS_LOAD_FONT.
4089 (generate_ascii_font): New function.
4090 (set_lface_from_font_name): Adjusted for the change of
4091 FS_LOAD_FONT.
4092 (set_font_frame_param): Adjusted for the change of
4093 choose_face_font.
4094 (free_realized_face): Make it public.
4095 (free_realized_faces_for_fontset): Renamed from
4096 free_realized_multibyte_face. Free also faces realized for ASCII.
4097 (choose_face_font): Argments changed. Adjusted for the change of
4098 fontset_font_pattern and FS_LOAD_FONT.
4099
4100 * xfns.c: Include "character.h".
4101 (x_encode_text): Adjusted for the new code-conversion API.
4102
4103 * xselect.c: Don't include "charset.h".
4104 (selection_data_to_lisp_data): Adjusted for the new code
4105 covnersion API.
4106
4107 * xterm.c: Include "character.h".
4108 (x_encode_char): New argument CHARSET. Caller changed.
4109 (x_get_char_face_and_encoding): Call ENCODE_CHAR instead of
4110 SPLIT_CHAR.
4111 (x_get_glyph_face_and_encoding): Likewise.
4112 (x_produce_glyphs): Don't check Vnonascii_translation_table Call
4113 CHAR_WIDTH instead of CHARSET_WIDTH.
4114 (XTread_socket): Adjusted for the new code-conversion API.
4115 (x_new_font): Adjusted for the change of FS_LOAD_FONT.
4116 (x_load_font): Adjusted for the change of struct font.
4117
4118 ;; Local Variables:
4119 ;; coding: iso-2022-7bit
4120 ;; End:
4121
4122 Copyright (C) 2002 Free Software Foundation, Inc.
4123 Copying and distribution of this file, with or without modification,
4124 are permitted provided the copyright notice and this notice are preserved.
4125
4126 ;;; arch-tag: 1bff38bd-2030-46ae-9d18-f15e6006b665