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