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