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