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