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