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