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