cba6146489749a4813ac4386211db8e1fdb81596
[m17n/m17n-lib.git] / src / ChangeLog
1 2004-08-16  Kenichi Handa  <handa@m17n.org>
2
3         * Version 1.1.0 released.
4
5 2004-08-13  Kenichi Handa  <handa@m17n.org>
6
7         * m17n-gui.c (Mx, Mfreetype): Delete it.
8         (m17n_init_win): Don't initialize Mx and Mfreetype here.
9
10         * m17n-gui.h (Mfreetype, Mxft): Extern them.
11         (mfont_resize_ratio): Extern it.
12         (MDrawGlyphInfo): New member logical_width;
13         (MDrawGlyph): New type.
14         (mdraw_glyph_list): Prototype adjusted.
15
16         * m17n-X.c (xfont_open): Set type and fontp members.
17         (xft_open): Likewise.
18
19         * internal-gui.h (Mx, Mfreetype): Delete extern.
20
21         * font.h (struct MRealizedFont): New member type and fontp.
22
23         * font.c (mfont__init): Initialize Mx, Mfreetype, and Mxft.
24         (Mx, Mfreetype): Declare here.
25         (Mxft): New variable.
26         (mfont_resize_ratio): New function.
27
28         * font-ft.c (ft_open): Set type and fontp members.
29
30         * draw.c (mdraw_glyph_list): Argument type changed.  Don't set
31         glyph_code member.
32
33 2004-08-11  Kenichi Handa  <handa@m17n.org>
34
35         * font-ft.c (ft_find_metric): Call FT_Load_Glyph with
36         FT_LOAD_DEFAULT.
37
38 2004-08-06  Kenichi Handa  <handa@m17n.org>
39
40         * font-ft.c (mfont__ft_drive_otf): Fix for the case that no GSUB
41         feature to apply.
42
43         * font-flt.c (run_otf): Print debugging information if necessary.
44
45 2004-08-05  Kenichi Handa  <handa@m17n.org>
46
47         * font-ft.c (mfont__ft_drive_otf): Fix sign of g->yoff.  Support
48         positioning_type 5 and 6.  Switch simplified.
49
50 2004-08-04  Kenichi Handa  <handa@m17n.org>
51
52         * font-ft.c (mfont__ft_drive_otf): Call OTF_drive_gdef.
53
54 2004-08-02  Kenichi Handa  <handa@m17n.org>
55
56         * font.c (mfont__score): If prop is MFONT_FOUNDRY or MFONT_FAMILY,
57         set val to 1 even if it is greater than 1.
58
59         * fontset.c (mfontset_modify_entry): Fix handling of the arg `how'.
60
61 2004-07-29  Kenichi Handa  <handa@m17n.org>
62
63         * font-flt.c (run_rule, run_command, mfont__flt_run): Print more
64         debugging information.
65
66         * internal.h (MDEBUG_PRINT5): New macro.
67
68         * draw.c (layout_glyphs): Don't combine a zero width glyph with
69         the previous one if the zero width glyph has left or right
70         padding.
71
72 2004-07-26  Kenichi Handa  <handa@m17n.org>
73
74         * m17n-X.c (xft_render): Pay attention to members left_padding and
75         right_padding of MGlyph.
76
77         * draw.c (visual_order): Allocate one more elements for arrays as
78         a workaround of fribidi bug.
79         (layout_glyphs): Fix previous change. Check MGlyph->combining_code
80         instead of MGlyph->bidi_sensitive.
81         (layout_glyph_string): Pay attentinon to
82         control->orientation_reversed when padding at the head or tail.
83         Fix adjustment of space glyph width.
84         (get_gstring): If cursor_width or cursor_bidi is changed, don't
85         use a cache.
86
87         * font-ft.c (mfont__ft_drive_otf): Set MGlyph->combining_code
88         instead of MGlyph->bidi_sensitive.
89
90         * internal-gui.h (MGlyph): Delete member bidi_sensitive.
91
92 2004-07-26  Kenichi Handa  <handa@m17n.org>
93
94         * draw.c (visual_order): Don't treat combined glyphs specially.
95         (layout_glyphs): Don't get metrics glyphs that are already ready.
96         Pay attention to MGlyph->bidi_sensitive.  Combine a glyph of zero
97         width with the previous one. 
98         (draw_background): Fix bar cursor position on a r2l glyph.
99
100         * font-flt.c (FontLayoutCmdOTF): Move back from internal-gui.h.
101         (run_rule): Fix place of updating cluster_begin_pos and
102         cluster_end_pos here.
103         (run_otf): Don't set left_padding.
104
105         * font-ft.c (adjust_anchor): Type of argument `code' changed.
106         Caller changed.
107         (mfont__ft_drive_otf): Renamed back from mfont__ft_drive_gsub.
108         Fix handling of GPOS.
109         (mfont__ft_drive_gpos): Delete this function.
110
111         * font.h (mfont__ft_drive_otf): Renamed back from
112         mfont__ft_drive_gsub.
113         (mfont__ft_drive_gpos): Delete extern.
114
115         * internal-gui.h (FontLayoutCmdOTF): Move back to font-flt.c.
116         (MGlyph): Delete member otf_cmd, add member bidi_sensitive.
117
118 2004-07-23  Kenichi Handa  <handa@m17n.org>
119
120         * draw.c (layout_glyphs): Call mfont__ft_drive_gpos with glyphs of
121         the same bidi level.
122
123         * font-ft.c (mfont__ft_drive_gpos): Check bidi-level.
124
125 2004-07-22  Kenichi Handa  <handa@m17n.org>
126
127         * font-flt.c (load_flt): Treat the symbol Mend as end-of-file.
128
129 2004-07-20  Kenichi Handa  <handa@m17n.org>
130
131         * draw.c (render_glyphs): Fix checking of g->code validity.
132
133         * face.c (mface__realize): Set g.type.
134
135 2004-07-18  Kenichi Handa  <handa@m17n.org>
136
137         * Makefile.am: Prepend ${top_srcdir} to all *.la in
138         *_LIBADD/*_LDADD.
139
140         * m17n-gui.c (mframe): Print error message give by dlopen to
141         stderr.
142
143 2004-07-16  Kenichi Handa  <handa@m17n.org>
144
145         * draw.c (compose_glyph_string): Improve the way of deciding a
146         script.  For a character that doesn't have script property, use
147         the last non-latin script.
148
149         * font-ft.c (fc_list): Cancel previous change.
150         (mfont__ft_init): Add more entries in ft_to_prop_name.
151
152 2004-07-15  Kenichi Handa  <handa@m17n.org>
153
154         * draw.c (mdraw_glyph_list): Add the width of padding glyphs to
155         previous or next character glyphs.
156
157 2004-07-14  Kenichi Handa  <handa@m17n.org>
158
159         * draw.c (compose_glyph_string): Be sure to set codes for glyphs
160         of type GLYPH_SPACE.
161
162         * fontset.c (mfont__lookup_fontset): If glyph type is
163         GLYPH_SPACE, get codes for SPACE.
164
165         * internal-gui.h (Mfont): Delete extern.
166
167         * m17n-gui.h (Mfont): Delete duplicated extern.
168
169 2004-07-13  Kenichi Handa  <handa@m17n.org>
170
171         * font-ft.c (DEVICE_DELTA): New macro.
172         (adjust_anchor): New function.
173         (mfont__ft_drive_gsub): Renamed from mfont__ft_drive_otf.  Drive
174         only GSUB.
175         (mfont__ft_drive_gpos): New function.
176
177         * font-flt.c (FontLayoutCmdOTF): Moved to internal-gui.h.
178         (FontLayoutContext): Delete member `rfont'.
179         (run_otf): Set g->otf_cmd.  Call 
180         (mfont__flt_run): Don't set ctx.rfont.  Call mfont__ft_decode_otf
181         only whne HAVE_OTF is defined.
182
183         * fontset.c: Include "config.h".
184
185         * internal-gui.h (FontLayoutCmdOTF): Moved from font-flt.c.
186         (MGlyph): New member otf_cmd.
187
188         * font.h (mfont__ft_drive_gsub): Changed from mfont__ft_drive_otf.
189         (mfont__ft_drive_gpos): Extern it.
190
191         * face.c: Include "config.h".
192
193         * draw.c (layout_glyphs): Call mfont__ft_drive_gpos.
194
195         * input-gui.c: Include "config.h".
196
197         * plist.c: Include "config.h".
198
199 2004-07-06  Kenichi Handa  <handa@m17n.org>
200
201         * m17n-gui.c, m17n-gui.h, m17n-gd.c, m17n-X.h, m17n-X.c,
202         internal-gui.h: Cancel previous changes.
203
204         * m17n-gd.h: Delete it.
205
206         * Makefile.am (libm17n_core_la_LIBADD): New variable.
207         (libm17n_core_la_LDFLAGS): Add -export-dynamic, move
208         @XML2_LD_FLAGS@ to above.
209         (libm17n_la_LIBADD): Add -ldl.
210         (libm17n_la_LDFLAGS): Add -export-dynamic.
211         (X_LD_FLAGS): Fix the order of linking.
212         (libm17n_gui_la_LIBADD): Add ${OPTIONAL_LD_FLAGS}.
213         (libm17n_gui_la_LDFLAGS): Add -export-dynamic, delete above.
214         (libm17n_X_la_LDFLAGS): Add -module.
215         (libm17n_gd_la_SOURCES): Delete m17n-gd.h.
216         (libm17n_gd_la_LIBADD): Add @GD_LD_FLAGS@.
217         (libm17n_gd_la_LDFLAGS): Add -module.
218         (include_HEADERS): Delete m17n-gd.h.
219
220 2004-06-30  Kenichi Handa  <handa@m17n.org>
221
222         * m17n-gui.c: Adjusted for the change of struct MDeviceDriver.
223         (MDeviceLibraryInterface): Delete it.
224         (register_device_library): Delete it.
225         (m17n__device_library_list): Renamed from device_library_list.
226
227         * m17n-gui.h (M17N_INIT_X, M17N_INIT_GD): New macros.
228         (m17n_init_win): Adjust prototype.
229
230         * m17n-gd.c: Adjusted for the change of struct MDeviceDriver.
231         (m17n_init_gd): New function. 
232
233         * m17n-gd.h: New file.
234
235         * m17n-X.h: Include <m17n-gui.h>.
236         (m17n_init_X): Extern it.
237         (M17N_INIT): Redefine it.
238
239         * m17n-X.c: Adjusted for the change of struct MDeviceDriver.
240         (m17n_init_X): New function.
241
242         * internal-gui.h (m17n__device_library_list): Extern it.
243         (struct MDeviceDriver): New members initialized, init, and fini.
244
245         * Makefile.am (libm17n_X_la_LIBADD): Add ${X_LD_FLAGS} and
246         @XFT2_LD_FLAGS@.
247         (libm17n_X_la_LIBADD): Delete aboves.
248         (libm17n_gd_la_SOURCES): Add m17n-gd.h.
249         (libm17n_gd_la_LIBADD): Add @GD_LD_FLAGS@.
250         (libm17n_gd_la_LDFLAGS): Delete it.
251         (include_HEADERS): Add m17n-gd.h.
252
253 2004-06-25  Kenichi Handa  <handa@m17n.org>
254
255         * Makefile.am (libm17n_X_la_LDFLAGS): Cancel previous change.
256         (libm17n_gd_la_LDFLAGS): Cancel previous change.
257
258         * m17n-gd.c (gd_render): Don't call FT_Get_Char_Index.
259
260         * font-ft.c (fc_list): If FcFontList finds no font, try
261         FcFontMatch.
262
263         * draw.c (compose_glyph_string): Terminate the last loop after
264         doing default combining if necessary.
265
266 2004-06-24  Kenichi Handa  <handa@m17n.org>
267
268         * draw.c (mdraw_glyph_list): Unref gstring->top at the tail.
269
270         * character.c (mchar_define_property): Add const to an arg.
271
272         * charset.c (mchar_define_charset): Add const to an arg.
273
274         * coding.c (MCodingSystem): Add const to an arg or decoder.
275         (finish_decoding): Add const to an arg.
276         (decode_coding_charset, decode_coding_utf_8)
277         (decode_coding_utf_16, decode_coding_utf_32)
278         (decode_coding_iso_2022, decode_coding_sjis)
279         (mconv_define_coding): Likewise.
280
281         * m17n-X.c (xft_find_metric): Delete unused variable.
282
283         * m17n-core.h (mchar_define_property, mtext_from_data): Adjust
284         prototypes.
285
286         * m17n.h (mchar_define_charset, mconv_define_coding): Adjust
287         prototypes.
288
289         * mtext.c (count_utf_8_chars, count_utf_16_chars)
290         (mtext__from_data, mtext_from_data): Add `const' to an arg.
291
292         * mtext.h (mtext__from_data): Ajust prototype.
293
294 2004-06-23  Kenichi Handa  <handa@m17n.org>
295
296         * draw.c (compose_glyph_string): Always get glyph codes by
297         mface__for_char.
298         (mdraw_glyph_info): Set info->glyph_code and info->logical_width.
299         (mdraw_glyph_list): New function.
300
301         * font-flt.c (mfont__flt_run): Be sure to call
302         rfont->driver->encode_char.
303
304         * font-ft.c (ft_find_metric): Don't call FT_Get_Char_Index.
305         (ft_encode_char): Delete arg C.
306         (ft_render): Don't call FT_Get_Char_Index.
307
308         * font.c (mfont__encodable_p): Delete it.
309         (mfont__encode_char): Be sure to call rfont->driver->encode_char.
310
311         * font.h (struct MFontDriver): Delete arg C of encode_char.
312         (mfont__encodable_p): Delete extern.
313
314         * m17n-X.c (xfont_encode_char): Delete arg C.
315         (xft_find_metric): Don't cal FT_Get_Char_Index.
316         (xft_render): Likewise.
317
318         * m17n-gui.h (MDrawGlyphInfo): New members glyph_code and
319         logical_width.
320         (mdraw_glyph_list): Extern it.
321
322         * Makefile.am (libm17n_X_la_LDFLAGS): Don't include ${X_LD_FLAGS}.
323
324 2004-06-22  Kenichi Handa  <handa@m17n.org>
325
326         * m17n-gui.h (mfontset_lookup): Extern it.
327
328         * m17n-gui.c (m17n_init_win): Delete unnecessary printing.
329
330         * fontset.c (realize_fontset_elements)
331         (free_realized_fontset_elements, update_fontset_elements): New
332         functions.
333         (mfont__realize_fontset): Call realize_fontset_elements.
334         (mfont__free_realized_fontset): Call free_realized_fontset_elements.
335         (mfont__lookup_fontset): If a fontset was modified, update
336         the realized fontset.
337         (mfontset_modify_entry): Increment fontset->tick.
338         (mfontset_lookup): New function.
339
340 2004-06-21  Kenichi Handa  <handa@m17n.org>
341
342         * font-ft.c (mfont__ft_parse_name): Cast the arg to FcNameParse.
343
344         * mtext.c (mtext_dup, mtext_cat, mtext_ncat, mtext_cpy)
345         (mtext_ncpy, mtext_duplicate): Pay attention to the case that the
346         length of source text 0.
347
348 2004-06-21  Kenichi Handa  <handa@m17n.org>
349
350         * mtext.c (INC_POSITION): Use CHAR_UNITS_BY_HEAD_UTF16.
351         (compare): Pay attention to format other than utf-8.
352         (copy): Delete this function.
353         (count_by_utf_8, count_by_utf_16, insert): New functions.
354         (count_utf_16_chars): Fix handling of a surrogate pair.
355         (find_char_forward, find_char_backward): Likewise.
356         (mtext__from_data): Delete unnecessary check.  Fix number of
357         allocated bytes.
358         (mtext_from_data): Don't count items.
359         (mtext_ref_char): Optimize the code.
360         (mtext_set_char): Pay attention to format other than utf-8.
361         (mtext_cat_char): Likewise.
362         (mtext_dup): Don't call copy, instead do allocation here.
363         (mtext_cat): Call insert instead of copy.
364         (mtext_ncat): Likewise.
365         (mtext_cpy): Delete character at first and call insert instead of
366         copy.
367         (mtext_ncpy): Likewise.
368         (mtext_copy): Likewise.
369         (mtext_duplicate): Call insert instead of copy.
370         (mtext_del): Pay attention to format other than utf-8.
371         (mtext_ins): Simply call insert.
372         (mtext_ins_char): Pay attention to format other than utf-8.
373         (mtext_tok): Call insert instead of copy.
374         (mtext_text): Call UNIT_BYTES.
375
376         * textprop.c (mtext__adjust_plist_for_change): New function.
377
378         * character.h (USHORT_SIZE, UINT_SIZE, UNIT_BYTES): New macros.
379         (CHAR_UNITS_UTF16, CHAR_UNITS): Simplified.
380         (CHAR_UNITS_AT): Fix typo.
381         (CHAR_UNITS_BY_HEAD): Fix typo.
382         (STRING_CHAR_AND_UNITS): Fix typo.
383
384         * internal.h (MTEXT_READ_ONLY_P): New macro. 
385
386         * mtext.h (mtext__replace): Delete the extern.
387         (mtext__adjust_foramt): Adjust prototype.
388
389         * plist.c (mplist_deserialize): Adjust the format of MT to utf-8
390         if possible.  Otherwise make a copy of mmt.
391
392         * coding.c (mconv_decode, mconv_gets): Adjust the format of MT to
393         utf-8.
394
395 2004-06-18  Kenichi Handa  <handa@m17n.org>
396
397         * character.h (CHAR_STRING_UTF16): Fix syntax.
398
399 2004-06-16  Kenichi Handa  <handa@m17n.org>
400
401         * Makefile.am (libm17n_gd_la_LIBADD): Delete it.
402         (libm17n_X_la_LIBADD): Delete it.
403         (libm17n_gd_la_LDFLAGS): Don't include @GD_LD_FLAGS@.
404
405         * m17n-X.c (device_open): Add parens in `if' condition.
406
407         * mtext.c (INC_POSITION): Handle format other than utf8 and utf16.
408         (DEC_POSITION): Likewise.
409         (compare): Fix case that mt1->format is MTEXT_FORMAT_UTF_8.
410
411 2004-06-15  Kenichi Handa  <handa@m17n.org>
412
413         * fontset.c (mfont__lookup_fontset): Fix selection of font groups
414         by language.
415
416         * draw.c (compose_glyph_string): If langauge is specified, call
417         mface__for_chars even if a text is all latin.  Fix condition for
418         setting non_ascii_found.
419
420         * m17n-X.c (xft_find_metric): Fix setting of g->lbrearing.
421
422         * m17n.h (minput_char_to_key): Delete extern.
423
424         * m17n-gui.h (minput_event_to_key): Cancel previous change.
425
426         * m17n-gui.c (null_device_open): Set several members of frame.
427
428 2004-06-14  Kenichi Handa  <handa@m17n.org>
429
430         * m17n-gui.h (minput_event_to_key): Delete extern.
431
432         * symbol.h (struct MSymbolStruct): Renamed from MSymbol.
433
434         * m17n-core.h (MSymbol): Defined as "struct MSymbolStruct *".
435
436         * Makefile.am (AM_CPPFLAGS): Refer to @M17NDIR@.
437
438 2004-06-08  Kenichi Handa  <handa@m17n.org>
439
440         * character.c (mchar_put_prop): Don't increment the ref-count of
441         record->table.
442
443 2004-06-04  Kenichi Handa  <handa@m17n.org>
444
445         * m17n-core.c (mdebug__register_object): New function.
446         (mdebug__unregister_object): Likewise.
447
448         * internal.h (mdebug__register_object, mdebug__unregister_object):
449         Extern them.
450         (M17N_OBJECT_REGISTER, M17N_OBJECT_UNREGISTER): Call them
451         respectively.
452
453         * charset.c (mcharset__load_from_database): Don't call
454         mconv__register_charset_coding here.
455
456         * coding.c (find_coding): Get a real name from an element of
457         coding_definition_list.
458         (mconv__register_charset_coding): Set the real name at the top of
459         param.
460         (mcoding__load_from_database): Likewise.
461         (mconv_list_codings): Adjusted for the above change.
462
463 2004-06-03  Kenichi Handa  <handa@m17n.org>
464
465         * coding.c (find_coding): Find by canonicalized name.  Don't have
466         to modify the element of coding_definition_list by
467         mplist__from_plist.
468         (mconv__define_coding_from_charset): Delete it.
469         (mconv__register_charset_coding): Canonicalize sym.
470         (mcoding__load_from_database): Register plist modified by
471         mplist__from_plist.
472
473         * coding.h (mconv__define_coding_from_charset): Don't extern it.
474
475         * font-ft.c (ft_open): Fix setting of rfont->descent.
476
477 2004-06-02  Kenichi Handa  <handa@m17n.org>
478
479         * font.c (enum xlfd_field_idx): Moved from m17n-X.c.
480         (xlfd_parse_name): Merge split_font_name and xfont_parse_name.
481         (xlfd_unparse_name): Renamed from xfont_build_name.
482         (mfont__init): Initialized Mfontconfig.
483         (mfont__free_realized): Unconditionally unref rfont->info.
484         (mfont__select): Free `this' if it's not best.
485         (mfont__open): Don't check frame->realized_font_list.
486         (mfont__parse_name_into_font): New function.
487         (Mfontconfig): New variable.
488         (mfont_from_name): Call mfont_parse_name.
489         (mfont_name): Call mfont_unparse_name.
490         (mdebug_dump_font): Likewise.
491
492         * font.h (struct MFontDriver): Delete members parse_name and
493         build_name.
494         (mfont__ft_parse_name, mfont__ft_unparse_name): Extern them.
495         (mfont__parse_name_into_font): Extern it.
496
497         * font-ft.c: Include "symbol.h".
498         (close_ft): Unconditionally free filename and charmap_list of
499         ft_into.
500         (ft_open): Duplicate base->filename.  Increment ref-count of
501         ft_info->charmap_list.  Free ft_info->charmap_list and
502         ft_info->filename on error.
503         (mfont__ft_parse_name, mfont__ft_unparse_name): New functions.
504
505         * m17n-X.c (xfont_driver): Don't include xfont_parse_name and
506         xfont_build_name.
507         (enum xlfd_field_idx): Moved to font.c.
508         (split_font_name, build_font_name): Likewise.
509         (build_font_list): Call mfont__parse_name_info_font.
510         (xfont_open): Call mfont__unparse_name.  Free name.
511         (xfont_parse_name, xfont_build_name): Moved to font.c
512         (xft_select): Prototype deleted.
513         (device_open): Check HAVE_FREETYPE on using mfont__ft_driver.
514         Call mfont_pase_name.
515
516         * m17n-gui.c (free_frame): Unref frame->font_driver_list.
517         (m17n_fini_win): Add check HAVE_FREETYPE on using null_interface.
518         (mframe): Likewise.
519
520         * m17n-gui.h (mfont_parse_name, mfont_unparse_name, Mfontconfig):
521         Extern them.
522
523         * Makefile.am (linkgui_LDADD): Add libm17n-X.la and libm17n-gd.la.
524
525 2004-06-01  Kenichi Handa  <handa@m17n.org>
526
527         * fontset.c (mfontset_modify_entry): Pay attention to the case
528         that fontset->font_spec_list is NULL.
529
530 2004-05-31  Kenichi Handa  <handa@m17n.org>
531
532         * m17n-gui.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
533
534         * input.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
535
536         * font.c (mfont__select): Print score the a font for debugging.
537
538         * Makefile.am (libm17n_la_LIBADD): Delete -ldl.
539
540         * coding.c (reset_coding_sjis): Check kanji and kana instead of
541         kanji_sym and kana_sym.
542
543 2004-05-28  Kenichi Handa  <handa@m17n.org>
544
545         * Makefile.am (VINFO): New variable.
546         (libm17n_core_la_LDFLAGS, libm17n_la_LDFLAGS)
547         (libm17n_gd_la_LDFLAGS): Include ${VINFO}.
548
549 2004-05-27  Kenichi Handa  <handa@m17n.org>
550
551         The following chanages are to make device dependent functions
552         accessible only from MDeviceDriver structure, and to add GD and
553         null device drivers.  Font drivers get also device dependent.
554
555         * m17n.c (m17n_init): Increament shell_initialized.
556         (m17n_fini): Decremented shell_initialized.
557
558         * m17n-misc.h (enum MErrorCode): New element MERROR_GD.
559
560         * m17n-gui.h (Mdevice, Mdisplay, Mscreen, Mdrawable, Mdepth)
561         (Mwidget, Mcolormap, Mx): Extern them.
562
563         * m17n-gui.c: Include <dlfcn.h> and "config.h".
564         (free_frame): Call frame->driver->close instead of
565         mwin__close_device.
566         (DLOPEN_SHLIB_EXT): New macro.
567         (MDeviceLibraryInterface): New type.
568         (device_library_list): New variable.
569         (register_device_library): New function.
570         (null_device): New variable.
571         (null_device_close, null_device_get_prop)
572         (null_device_realize_face, null_device_free_realized_face): New
573         function.
574         (null_driver): New variable.
575         (null_device_init, null_device_fini, null_device_open): New
576         functions.
577         (null_interface): New variable.
578         (Mfreetype, Mdevice): Declare them.
579         (m17n_init_win): Increment win_initialized.  Initialize Mx, Mgd,
580         Mfreetype, Mdevice, Mdisplay, Mscreen, Mdrawable, Mdevice, and
581         Mwin__Close_Device.  Register drivers for Mx and Mgd.
582         (m17n_fini_win): Decremented win_initialized.  Call "fini"
583         function of all opened devices.  Don't call mwin__fini.
584         (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap):
585         Declare them here.
586         (mframe): Handle Mdevice key of PLIST.
587         (mframe_get_prop): Call frame->device->get_prop instead of
588         mwin__device_get_prop.
589
590         * m17n-gd.c: New file.
591
592         * m17n-core.h (M17NLIB_MAJOR_VERSION, M17NLIB_MINOR_VERSION)
593         (M17NLIB_PATCH_LEVEL, M17NLIB_VERSION_NAME): Updated to 1.1.0.
594
595         * m17n-core.c (m17n_init_core): Increate core_initialized.
596         (m17n_fini_core): Decremented core_initialized.
597
598         * m17n-X.h (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget)
599         (Mcolormap): Don't extern them here.
600
601         * m17n-X.c (FRAME_DEVICE): New macro.
602         (FRAME_DISPLAY, FRAME_SCREEN, FRAME_CMAP): Use FRAME_DEVICE.
603         (free_display_info): Use MPLIST_DO.
604         (free_device): Free rface->info.
605         (xft_close): Delete it.
606         (device_init): Renamed from mwin__init.
607         (device_fini): Renamed from mwin__fini.
608         (device_open): Renamed from mwin__open_device.
609         (x_driver): New variable.
610         (MXFontInfo): Delete member frame, add member display.
611         (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap, Mxim):
612         Don't declare them here.
613
614         * internal-gui.h (MDeviceType): New enum.
615         (MWDefice): Delete it.
616         (struct MFrame): Change type of device to void *.  New members
617         device_type, driver, font_driver_list.
618         (M_CHECK_WRITABLE, M_CHECK_READABLE): New macros.
619         (MDeviceDriver): New type.
620         (Mx, Mgd, Mfreetype): Extern them.
621         (mwin__XXX): Delete all of them.
622
623         * input-gui.c (win_create_ic): Call frame->driver->XXX instead of
624         mwin__XXX.
625         (win_destroy_ic): Likewise.
626         (adjust_window_and_draw): Likewise.
627         (win_callback): Likewise.
628         (Mxim): Declare it here.
629         (minput_event_to_key): Call M_CHECK_READABLE.
630
631         * fontset.c (mfont__lookup_fontset): Delete local variable
632         font_group.
633
634         * font.h (struct MFontDriver): Delete member close, add members
635         parse_name and build_name.
636         (mfont__driver_list): Delete extern.
637         (mfont__close): Delete extern.
638
639         * font.c (mfont__init): Don't set mfont__driver_list.
640         (mfont__fini): Don't unref mfont__driver_list.
641         (mfont__select): Try font drivers in frame->font_driver_list.  Set
642         driver member of a realized font.
643         (mfont__close): Delete it.
644         (mfont_from_name, mfont_name, mdebug_dump_font): Call driver
645         functions of the default frame.
646
647         * font-ft.c (close_ft): Check ft_info->ft_face and work
648         differently.
649         (add_font_info): Allocate ft_info by M17N_OBJECT.
650         (ft_close): Delete it.
651         (mfont__ft_driver): Don't set ft_close.
652         (ft_select): Increment ref-count of best_font.
653         (ft_open): Decremented ref-count of base.  On error, call
654         FT_Done_Face and free ft_info.
655         (ft_find_metric): Always use XXX_MONO in load_flags.
656         (ft_render): Fix setting of width.  Call
657         frame->driver->draw_points instead of mwin__draw_points.
658         (ft_to_prop): Don't set mfont__driver_list.
659         (mfont__ft_fini): Just unref ft_info.
660
661         * face.c (mface__init): Exchange foreground and background of
662         mface__default.  Call mface_put_prop to set hline of
663         mface_underline,
664         (mface__realize): Call frame->driver->XXX instead of mwin__XXX.
665         (mface__free_realized): Don't call mwin__free_realized_face.
666
667         * draw.c (Mdepth): Don't declare it here.
668         (draw_background): Call frame->driver->XXX instead of mwin__XXX.
669         (render_glyphs, render_glyph_string): Likewise.
670         (mdraw__init): Don't set Mdepth.
671         (mdraw_text, mdraw_image_text, mdraw_text_with_control): Call
672         M_CHECK_WRITABLE.
673         (mdraw_text_per_char_extents): Return 0 on success and -1 on
674         error.
675         (mdraw_text_items): Check FRAME is writable.
676         (mdraw_per_char_extents): Implement body.
677
678         * Makefile.am (lib_LTLIBRARIES): Include libm17n-gui.la and
679         libm17n-gd.la.
680         (OPTIONAL_LD_FLAGS): Include @FONTCONFIG_LD_FLAGS@.
681         (GUI_SOURCES): Delete it.
682         (libm17n_X_la_SOURCES): Don't include ${GUI_SOURCES}.
683         (libm17n_gui_la_SOURCES, libm17n_gui_la_LIBADD)
684         (libm17n_gui_la_LDFLAGS, libm17n_gd_la_SOURCES)
685         (libm17n_gd_la_LIBADD, libm17n_gd_la_LDFLAGS): New targets.
686         (linkgui_LDADD): Set to libm17n-gui.la
687         (linkgui_LDFLAGS): New target.
688         (SRC): Include ${libm17n_gui_la_SOURCES} and
689         ${libm17n_gd_la_SOURCES}.
690
691 2004-05-24  Kenichi Handa  <handa@m17n.org>
692
693         * draw.c (draw_background): Don't draw background even if
694         rface->face.property[MFACE_BACKGROUND] is not Mnil.
695
696 2004-05-22  Kenichi Handa  <handa@m17n.org>
697
698         * m17n-X.c (xft_open_font): Fix anti_alias setting.
699
700 2004-05-20  Kenichi Handa  <handa@m17n.org>
701
702         * m17n-gui.h (MFaceHookFunc): Change this function type to void.
703
704         * m17n-gui.c: Include "plist.h".
705         (mframe): If PLIST is NULL, initialize it to emply plist.
706
707         * m17n-X.c (build_font_list): Don't set property[MFONT_TYPE].
708         (xft_driver): New variable.
709         (xft_select, close_xft, xft_open_font, xft_open, xft_close)
710         (xft_find_metric, xft_render): New function.
711         (mwin__init): Adjusted for the new mfont__driver_list.
712         (mwin__open_device): Assume arg PARAM is not NULL.  Push a newly
713         generated face to PARAM.
714         (mwin__realize_face): Fix setting of box colors.  Don't call hook
715         function here.
716         (mwin__draw_hline): New function.
717         (mwin__xft_close, mwin__xft_open, mwin__xft_get_metric)
718         (mwin__xft_render): Delete these function.
719
720         * internal-gui.h (struct MFrame): New member tick.
721         (struct MGlyphString): New member tick.
722         (mwin__draw_rect, mwin__draw_empty_boxes): Extern them.
723         (mwin__xft_open, mwin__xft_close, mwin__xft_get_metric)
724         (mwin__xft_render): Delete extern.
725
726         * fontset.c (mfont__lookup_fontset): Make the code simpler.
727         (mfontset): Always increment the reference count of returned
728         object.
729
730         * font-ft.c (mfont__ft_fini): Don't include <otf.h> here.
731         (MFTInfo): Moved to font.h.
732         (ft_iso8859_1_font_list): Delete this variable.
733         (set_font_info): Don't set font->property[MFONT_TYPE].
734         (set_font_info): Don't udpate ft_iso8859_1_font_list.
735         (add_font_info): Change type to void.
736         (fc_list): Change anme from xft_list.  Caller changed.  Include
737         FC_FOUNDRY and FC_PIXEL_SIZE in FcObjectSet.
738         (mfont__ft_driver): Change name from ft_driver.  Caller changed.
739         (ft_select): Check HAVE_FONTCONFIG instead of HAVE_XFT2.
740         (close_ft): Don't call mwin__xft_close.  Unref
741         ft_info->extra_info.
742         (ft_open): Don't setup ft_info->fontname.  Don't call
743         mwin__xft_open.
744         (ft_find_metric): Don't call mwin__xft_get_metric.
745         (ft_encode_char): Call rfont->driver->open instead of ft_open.
746         (ft_render): Don't check HAVE_XFT2.  Don't call mwin__xft_render.
747         (mfont__ft_init): Adjusted for new mfont__driver_list.
748         (mfont__ft_fini): Don't unref ft_iso8859_1_font_list.
749
750         * font.c (mfont__driver_list): Make it MPlist.
751         (mfont__init): Adjust initialization of mfont__driver_list.
752         (mfont__fini): Free mfont__driver_list.
753         (mfont__set_spec_from_face): Don't set spec->property[MFONT_TYPE].
754         (mfont__select): Adjusted for the new mfont__driver_list.
755
756         * font.h (enum MFontProperty): Delete MFONT_TYPE.
757         (mfont__drirver_list): Adjust prototype.
758         (MFTInfo): Move to here from fron.c.  Deleve member fontname.
759
760         * face.h (struct MFace): Delete member realized_face_list, add
761         member frame_list.
762         (struct MRealizedFace): Delete member need_update
763         andnofont_rface, add member non_ascii_list.
764         (mface__update_frame_face): Extern it.
765
766         * face.c (hline_prop_list, box_prop_list, noop_hook): New
767         variables.
768         (get_hline_create, get_box_create): New functions.
769         (find_realized_face): Cancel previous change.  Arg RFONT deleted.
770         Use memcmp.
771         (free_face): Cancep previous change.  Free face->frame_list.
772         (serialize_hline): Do nothing if hline->width is zero.
773         (serialize_box): Do nothing if box->width is zero.
774         (mface__init): Setup all properties of mface__default.
775         (mface__fini): Free hline_prop_list and box_prop_list.
776         (mface__realize): Cancel previous change.  Update
777         face->frame_list.  Setup rface->non_ascii_list.
778         (mface__for_chars): Update rface->non_ascii_list.
779         (mface__free_realized): Free rface->non_ascii_list.
780         (mface__update_frame_face): New function.
781         (mface): Initialize face->frame_list.
782         (mface_copy): Likewise.  Just copy MFACE_HLINE and MFACE_BOX
783         properties.
784         (mface_merge): Likewise.
785         (mface_put_prop): If key is Mhline or Mbox, get value by
786         get_hline_create or get_box_create respectively.
787         (mface_put_prop): Update frame->tick and call
788         mface__update_frame_face if necessary.
789         (mface_update): Do nothing if func is noop_hook.
790
791         * draw.c (render_glyphs): If a font is not found, use
792         mwin__draw_empty_boxes.
793         (alloc_gstring): Initialize gstring->tick.
794         (get_gstring): Check gstring->tick.
795
796 2004-05-17  Kenichi Handa  <handa@m17n.org>
797
798         * face.c (find_realized_face): Return value changed.  If RFONT is
799         NULL, avoid unnecessary checking.
800         (free_face): Free face->realized_face_list.
801         (mface__realize): Adjusted for the change of find_realized_face.
802         If it returns a realized face that needs update, free it and
803         realize a new one.  Push a new realized face to
804         frame->realized_face_list instead of appending.
805         (mface__for_chars): Adjusted for the change of find_realized_face.
806         Short cut if the required font is in rface->ascii_rface.
807         (mface_put_prop): Free old value if necessary.  Set need_update
808         member of realized faces to 1.
809
810         * face.h (struct MFace): Delete member tick, add member
811         realized_face_list.
812         (struct MRealizedFace): Delete member tick, add member
813         need_update.
814
815 2004-05-13  Kenichi Handa  <handa@m17n.org>
816
817         * m17n-X.c (mwin__xft_open): Destroy unnecessary patterns.
818
819 2004-05-12  Kenichi Handa  <handa@m17n.org>
820
821         * internal-gui.h (mwin__xft_open): Arguemnt name changed.
822
823         * m17n-X.c (mwin__xft_open): Argument changed to fontname and
824         parse it XftNameParse.
825
826         * font-ft.c (MFTInfo) [HAVE_XFT2]: New member fontname.
827         (all_fonts_scaned): New variable.
828         (set_font_info): FAMILY may be Mnil.
829         (add_font_info): Argument changed.
830         (xft_list): Call add_font_info in it.
831         (ft_list): Likewise.
832         (ft_select): Make it work in the case family is Mnil.
833         (ft_open) [HAVE_XFT2]: Setup ft_info->fontname.
834         (mfont__ft_fini): Set all_fonts_scaned to 0.
835
836         * fontset.c (mfont__lookup_fontset): Don't repeatedly try a font
837         that is failed to open.
838
839 2004-05-10  Kenichi Handa  <handa@m17n.org>
840
841         * m17n-X.c (mwin__xft_render): Don't use anti-alias if the
842         device's depth is 1 (i.e. monochrome).
843
844         * Makefile.am (OPTIONAL_LD_FLAGS): Change the order of elements
845         to work around the problem of libtool.
846
847         * font-ft.c: Include <freetype/ftbdf.h>.
848         (Municode_bmp, Municode_full, Miso10646_1, Miso8859_1): New
849         variables.
850         (mfont__ft_init): Initialize them.
851         (ft_iso8859_1_font_list): New variable.
852         (set_font_info): Detect a font containing iso8859-1 glyphs and
853         register it in ft_iso8859_1_font_list.  If the font is not
854         scalable, assume it as BDF or PCF font and setup SIZE and RESY
855         properties of the font from its properties.
856         (add_font_list): If the font is not scalable, check if it is BDF
857         or PCF font.  If not, ignore it.
858         (ft_select): If FAMILY is Mnil, return NULL only if the requested
859         registry is not iso8859-1.
860         (ft_select) [not HAVE_XFT2]: If FAMILY is Mnil, select one from
861         ft_iso8859_1_font_list.
862         (ft_find_metric): If the font is not scalable, assume it as BDF
863         or PCF, and get a metric from its properties.
864         (mfont__ft_fini): Free ft_iso8859_1_font_list.
865
866 2004-05-07  Kenichi Handa  <handa@redhat.m17n.org>
867
868         * Makefile.am (libm17n_la_LIBADD): Include -ldl.
869         (libm17n_la_LDFLAGS): Delete it.
870         (noinst_PROGRAMS): Renamed from bin_PROGRAMS.
871         (install-binPROGRAMS, uninstall-binPROGRAMS): Delete them.
872
873 2004-05-06  Kenichi Handa  <handa@m17n.org>
874
875         * draw.c (compose_glyph_string): Fix previous change.
876
877 2004-04-30  Kenichi Handa  <handa@m17n.org>
878
879         * font-ft.c (ft_list): Delete unused variable `result'.
880         (ft_render): Fix for the case that bitmap.pitch < bitmap.width.
881
882 2004-04-27  Kenichi Handa  <handa@m17n.org>
883
884         * m17n-X.c: Include config.h
885         [HAVE_XFT2]: Include <X11/Xft/Xft.h>.
886         (GCInfo) [HAVE_XFT2]: New member xft_color_fore, xft_color_back.
887         (MWDevice) [HAVE_XFT2]: New member xft_draw.
888         (FRAME_CMAP, FRAME_VISUAL): New macros.
889         (free_device) [HAVE_XFT2]: Destroy device->xft_draw.
890         (xfont_driver): Make it static.
891         (mwin__open_device) [HAVE_XFT2]: Setup device->xft_draw.
892         (mwin__realize_face) [HAVE_XFT2]: Setup info->xft_color_fore and
893         info->xft_color_back.
894         (MXftFontInfo) [HAVE_XFT2]: New type.
895         (mwin__xft_close) [HAVE_XFT2]: New function.
896         (mwin__xft_open) [HAVE_XFT2]: New function.
897         (mwin__xft_get_metric) [HAVE_XFT2]: New function.
898         (mwin__xft_render) [HAVE_XFT2]: New function.
899
900         * internal-gui.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
901         (mwin__xft_open, mwin__xft_close) [HAVE_FREETYPE]: New externs.
902         (mwin__xft_get_metric, mwin__xft_render) [HAVE_FREETYPE]: New
903         externs.
904
905         * font.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
906
907         * font-ft.c: Don't include FT_FREETYPE_H here.
908         [HAVE_XFT2]: Include <fontconfig/fontconfig.h>.
909         (fontconfig_initialized, fc_config) [HAVE_XFT2]: New variables.
910         (MFTInfo): New member charmap_index.
911         (MFTInfo) [HAVE_XFT2]: New member xft_info.
912         (check_otf_filename): Renamed from check_filename.  Return value
913         changed.
914         (ft_set_property): This function deleted.
915         (set_font_info): New function.
916         (add_font_list): Argument changed.  Add multiple fonts.
917         (xft_list) [HAVE_XFT2]: New function.
918         (ft_list) [not HAVE_XFT2]: New function.
919         (ft_select): Add code for Xft.
920         (close_ft): Likewise.
921         (ft_open): Likewise.
922         (ft_find_metric): Likewise.
923         (ft_encode_char): Likewise.
924         (ft_render): Likewise.
925
926         * makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@.
927
928 2004-04-26  Kenichi Handa  <handa@m17n.org>
929
930         * textprop.c (mtext_attach_property): Declare the return type as
931         `int'.
932
933 2004-04-21  Kenichi Handa  <handa@m17n.org>
934
935         * Makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@
936
937 2004-04-09  Kenichi Handa  <handa@m17n.org>
938
939         * font-flt.c (struct): New members seq_beg, seq_end, seq_from,
940         seq_to.
941         (load_command): Setup above members.
942
943 2004-04-05  Kenichi Handa  <handa@m17n.org>
944
945         * m17n-X.c (xfont_encode_char): Fix checking of byte1 and byte2.
946
947 2004-03-30  Kenichi Handa  <handa@m17n.org>
948
949         * m17n-X.c (xfont_encode_char): Return MCHAR_INVALID_CODE if code
950         >= 0x10000.
951
952         * m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 2.
953         (M17NLIB_VERSION_NAME): Changed to 1.0.2.
954
955 2004-03-29  Kenichi Handa  <handa@m17n.org>
956
957         * Version 1.0 Patch Level 2 released.
958
959 2004-03-29  Kenichi Handa  <handa@m17n.org>
960
961         * charset.c (make_charset): Set charset->fully_loaded and
962         charset->simple correctly.  Don't try to get charset->min_char and
963         charset->max_char for a charset of method subset and superset.
964         Don't load a mapping file here.
965         (mcharset__init): Set unified_max.
966         (mcharset__load_from_database): Free a working plist.
967
968         * coding.c (mcoding__fini): Free all malloced data.
969
970         * input-gui.c (win_create_ic): Set control.as_image for preediting
971         to 0.
972
973         * internal.h (M17N_OBJECT_REGISTER): Check the member `used' (not
974         `count') to initialize the array.
975
976         * locale.c (mlocale_set): Fix the order of M17N_OBJECT_REF and
977         M17N_OBJECT_UNREF.
978
979         * m17n-X.c (xfont_render): If rface->rfont is null, draw a
980         rectangle.
981         (mwin__create_window): Fix bug of setting a background pixel of a
982         new window.
983         (mwin__adjust_window): Clear the window before drawing.
984
985         * m17n-core.c (mdebug__report_object): Free array->objectes if
986         necessary.
987         (m17n_init_core): Don't set report_header_printed to 0 here.
988         Fix debugging information.
989         (m17n_fini_core): Set report_header_printed to 0 here.
990
991         * m17n-core.h (mplist_deserialize): Extern it.
992
993         * m17n-gui.c (m17n_fini_win): Fix debugging information.
994
995         * m17n.c (m17n_fini): Fix debugging information.
996
997         * mtext.c (mtext__adjust_foramt): New function.
998
999         * mtext.h (mtext__adjust_foramt): Extern it.
1000
1001         * plist.c (mplist_deserialize): Renamed from mplist__deserialize.
1002
1003         * plist.h (mplist__deserialize): Don't extern it.
1004
1005         * symbol.c (msymbol__fini): Set freed_symbols to 0.  Set all
1006         elements of symbol_table to NULL.  Report about created and freed
1007         symbols if MDEBUG_FINI is set.
1008
1009 2004-03-22  Kenichi Handa  <handa@m17n.org>
1010
1011         * m17n-core.c (m17n_init_core): Set merror_code to MERROR_NONE.
1012
1013         * m17n.c (m17n_init): Fix the way of checking merror_code.
1014
1015         * m17n-gui.c (m17n_init_win): Fix the way of checking merror_code.
1016
1017 2004-03-22  Kenichi Handa  <handa@m17n.org>
1018
1019         * fontset.c (realize_font_group): Adjust the font size by
1020         mfont__resize before selecting a font.
1021
1022         * font-ft.c (mfont__ft_init): Add oblique and boldoblique.
1023
1024 2004-03-19  Kenichi Handa  <handa@m17n.org>
1025
1026         * Version 1.0 Patch Level 1 released.
1027
1028 2004-03-19  Kenichi Handa  <handa@m17n.org>
1029
1030         * m17n-core.h (M17NLIB_PATCH_LEVEL): New macro.
1031
1032         * m17n-core.c (M17NLIB_PATCH_LEVEL): Describe it.
1033
1034 2004-03-19  Kenichi Handa  <handa@m17n.org>
1035
1036         Re-apply the changes forgotten in the released version.
1037
1038         * charset.c (mcharset__load_from_database): Call
1039         mchar_define_charset.
1040
1041         * coding.c (encode_unsupporeted_char): Put Mcoding text property.
1042         (mconv_encode_range): Put Mcoding text property.
1043
1044 2004-03-18  Kenichi Handa  <handa@m17n.org>
1045
1046         * draw.c (Mdepth): New variable.
1047         (visual_order): Delete unused local var `pos'.
1048         (compose_glyph_string): Fix for the case that gstring->glyphs is
1049         realloced.  Stop generating glyphs at TO.  Fix handling of
1050         control charaters.
1051         (layout_glyphs): Get metrics of all glyphs in advance.  Set
1052         lbearing and rbearing of base of composition glyph correctly.
1053         Handle left-overhang glyphs correctly.
1054         (alloc_gstring): New arg frame.  Set gstring->anti_alias.  Caller
1055         changed.
1056         (dump_combining_code): Change the defualt off_x character to ".".
1057         (mdraw__init): Initialize Mdepth.
1058
1059         * face.c (work_gstring): New variable
1060         (mface__init): Initialize work_gstring.
1061         (mface__fini): Free work_gstring.glyphs.
1062         (mface__realize): Don't handle videomode property here.  Adjusted
1063         for the change of mfont__get_metric.
1064         (mface__for_chars): Adjusted for the change of mfont__get_metric.
1065
1066         * face.h (enum face_gc): Moved to m17n-X.c.
1067
1068         * font.h (struct MFontDriver): Arguments of find_metric changed.
1069         (mfont__select): Prototype adjusted.
1070         (mfont__get_metric): Likewise.
1071         (mfont__ft_drive_otf): Likewise.
1072         (mfont__flt_run): Likewise.
1073         
1074         * font.c (mfont__select): New argument layouter.  If layouter is
1075         different in the registered font, make a new copy of realized
1076         font.
1077         (mfont__get_metric): Argument changed.  Get metrics of multiple
1078         glyphs.
1079         (mfont_find): Call mfont__select with layouter as Mnil.
1080
1081         * font-flt.c (FontLayoutContext): New member rfont.
1082         (run_otf): Adjusted for the change of mfont__ft_drive_otf.
1083         (mfont__flt_run): Argument changed.  Initialize ctx.rfont.
1084
1085         * font-ft.c (ft_find_metric): Arguments changed.  Get metrics of
1086         multiple glyphs.
1087         (NUM_POINTS): New macro.
1088         (MPointTable): New type.
1089         (ft_render): Use mwin__draw_points instead of mwin__draw_bitmap.
1090         (mfont__ft_drive_otf): New argument rfont.
1091
1092         * fontset.c (realize_font_group): Adjusted for the changed of
1093         mfont__select.
1094         (check_fontset_element): This function deleted.
1095
1096         * input-gui.c (adjust_window_and_draw): Locate a preedit window
1097         off the parent window if the preedit text is zero length.
1098
1099         * internal-gui.h (struct MFrame): New members foreground,
1100         background, videomode, font.
1101         (struct MGlyphString): New member anti_alias.
1102         (MDrawPoint): New type.
1103         (mwin__draw_bitmap): Prototype deleted.
1104         (mwin__draw_points): Prototype added.
1105
1106         * m17n-gui.h (MDrawControl): New member anti_alias.
1107
1108         * m17n-gui.c (free_frame): Free frame->font.
1109         (mframe): Set the fontset of frame->face to the default fontset.
1110
1111         * m17n-X.c (RGB_GC): New type.
1112         (enum gc_index): Renamed from enum face_gc.  Member names changed.
1113         (GCInfo): New typel
1114         (struct MWDevice): Members foreground and background deleted.  New
1115         member scratch_gc, gc_list.
1116         (DEFAULT_FONT, FALLBACK_FONT): New macros.
1117         (free_device): Free GCs in device->gc_list.
1118         (get_rgb_gc): New function.
1119         (get_gc): Renamed and argument changed from get_color.
1120         (get_gc_for_anti_alias): New function.
1121         (xfont_find_metric): Arguments changed.  Get metrics of multiple
1122         glyphs.
1123         (set_region): Argument changed.  Caller changed.
1124         (xfont_render): Allways set a font in gc.
1125         (x_error_handler, x_io_error_handler): Define only if
1126         X_SET_ERROR_HANDLER is defined.
1127         (mwin__open_device): Create device->scratch_gc.  Set members
1128         foreground, background, and videomode of frame.  Call
1129         XSetErrorHandler and XSetIOErrorHandler only if
1130         X_SET_ERROR_HANDLER is defined.
1131         (struct gc_list): Deleted.
1132         (REGISTER_GC, UNREGISTER_GC): These macros deleted.
1133         (mwin__realize_face): Adjusted for the change of the format of
1134         rface->info and the charge of set_region.
1135         (mwin__free_realized_face, mwin__fill_space, mwin__draw_hline)
1136         (mwin__draw_box): Likewise.
1137         (mwin__draw_bitmap): This function deleted.
1138         (mwin__draw_points): New function.
1139         (mwin__verify_region): Adjusted for the change of the format of
1140         rface->info and the charge of set_region.
1141         (mwin__create_window): Inherit backgound pixel from parent.
1142         (mwin__dump_gc): Adjusted for the change of the format of
1143         rface->info.
1144
1145 2004-03-16  Kenichi Handa  <handa@m17n.org>
1146
1147         * m17n-X.c (mwin__parse_event): Fix handling of modifier keys.
1148
1149         * input.c (M_key_alias): New variable.
1150         (handle_key): Try M_key_alias property of a key too.
1151         (minput__init): Initialize M_key_alias.  Give that property to
1152         symbols in one_char_symbol.  Fix bug of initializing
1153         one_char_symbol.
1154
1155         * draw.c (compose_glyph_string): Don't handle
1156         ignore_formatting_char here.  Include formatting characters in the
1157         range processed by a FTL.
1158         (layout_glyph_string): Handle ignore_formatting_char here.
1159
1160 2004-03-12  Kenichi Handa  <handa@m17n.org>
1161
1162         * input-gui.c (win_create_ic): Enable bidi in status control.
1163
1164         * draw.c (visual_order): Avoid re-ordering of combining glyphs only.
1165
1166 2004-03-09  Kenichi Handa  <handa@m17n.org>
1167
1168         * input.c (load_input_method): If title is not specified, use the
1169         input method name as title.
1170
1171         * m17n-X.c (get_color): Make it static.
1172         (xim_create_ic, xim_destroy_ic, x_error_handler)
1173         (x_io_error_handler): Likewise.
1174
1175 2004-03-01  Kenichi Handa  <handa@m17n.org>
1176
1177         * Version 1.0 released.
1178
1179 \f
1180 Copyright (C) 2003, 2004
1181   National Institute of Advanced Industrial Science and Technology (AIST)
1182   Registration Number H15PRO112
1183
1184 This file is part of the m17n library.
1185
1186 The m17n library is free software; you can redistribute it and/or
1187 modify it under the terms of the GNU Lesser General Public License
1188 as published by the Free Software Foundation; either version 2.1 of
1189 the License, or (at your option) any later version.
1190
1191 The m17n library is distributed in the hope that it will be useful,
1192 but WITHOUT ANY WARRANTY; without even the implied warranty of
1193 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1194 Lesser General Public License for more details.
1195
1196 You should have received a copy of the GNU Lesser General Public
1197 License along with the m17n library; if not, write to the Free
1198 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1199 02111-1307, USA.