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