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