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