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