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