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