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