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