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