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