*** empty log message ***
[m17n/m17n-lib.git] / src / ChangeLog
1 2005-02-17  Kenichi Handa  <handa@m17n.org>
2
3         * input.c: Include <sys/types.h>, <dirent.h>, and "database.h".
4         (M_description, M_command, M_variable): New variables.
5         (load_im_info_keys): New variables.
6         (load_im_info, check_command_keyseq, get_description_advance)
7         (parse_command_list, get_command_list, parse_variable_list)
8         (get_variable_list, input_method_hook): New functions.
9         (command_list, variable_list): New variables.
10         (minput__init): Put input_method_hook to Minput_method.
11         Initialize M_description, M_command, M_variable, Mdetail_text,
12         load_im_info_keys, command_list, variable_list.
13         (minput__fini): Unref command_list, variable_list, load_im_info_keys.
14         (Mdetail_text): New variable.
15         (minput_get_description, minput_get_commands)
16         (minput_assign_command_keys, minput_get_variables)
17         (minput_set_variable): New functions.
18
19         * m17n.h (Mdetail_text, minput_get_description, minput_get_commands)
20         (minput_assign_command_keys, minput_get_variables)
21         (minput_set_variable): Extern them.
22
23         * plist.c (UNGETC): Just decrement st->p.
24         (read_mtext_element): New arg skip.
25         (read_integer_element): Likewise.
26         (read_symbol_element): Likewise.
27         (read_element): New arg KEYS.
28         (mplist__from_plist): Don't increment ref-count of NULL object.
29         (mplist__from_file): New arg KEYS.
30         (mplist_put): Don't increment ref-count of NULL object.
31         (mplist_add): Likewise.
32         (mplist_push): Likewise.
33         (mplist_set): Likewise.  Call M17N_OBJECT_UNREF unconditionally.
34
35         * plist.h (mplist__from_file): Prototype adjusted.
36
37         * database.c (mdatabase__dir_list): Renamed from mdb_dir_list.
38         (get_database_stream): New function.
39         (load_database): Use get_database_stream.
40         (M_database_hook): New variable
41         (mdatabase__init): Initialize M_database_hook.
42         (mdatabase__load_for_keys): New function.
43         (mdatabase_find, mdatabase_list, mdatabase_define): Check hook
44         function.
45         (mdatabase_define): Free mdb->extra_info if necessary.
46
47         * database.h (mdatabase__dir_list, M_database_hook)
48         (mdatabase__load_for_keys): Extern them.
49         (MDatabaseHookFunc): New type.
50
51         * internal.h (M17N_OBJECT_UNREF): When freed, set OBJECT to NULL.
52
53 2004-12-27  Kenichi Handa  <handa@m17n.org>
54
55         * Version 1.2.0 released.
56
57 2004-12-27  Kenichi Handa  <handa@m17n.org>
58
59         * input.c (minput_filter): Don't reset ic->xxx_changed.
60
61         * mtext.c (mtext_from_data): Fix documentation.
62
63 2004-12-25  Kenichi Handa  <handa@m17n.org>
64
65         * m17n-core.h (M17NLIB_MINOR_VERSION): Update to 2.
66         (M17NLIB_VERSION_NAME): Update to "1.2.".
67
68 2004-12-24  Kenichi Handa  <handa@m17n.org>
69
70         * input.c (reset_ic): Set key_unhandled to 0.
71
72 2004-12-21  Kenichi Handa  <handa@m17n.org>
73
74         * m17n-gui.h (mfont_from_spec): Delete extern.
75
76         * input-gui.c (win_callback): Handle Minput_reset.
77         (minput__win_init): Register reset_ic as a callback for
78         Minput_reset.
79
80         * input.c (reset_ic): New arg IGNORE which is ignored.  Caller
81         changed.  At first, shift to the initial state.
82         (minput__init): Initialize Minput_reset.  Register reset_ic as a
83         callback for Minput_reset.
84         (Minput_reset): New variable.
85         (minput_filter): Always set ic->xxx_changed to 0.
86         (minput_reset_ic): New function.
87         (integer_value): Fix typo ('>' -> '<') and calculation of length
88         of preedit text.
89
90         * m17n-core.c (merror_code): Change type to `int'.
91
92         * m17n-misc.h (merror_code): Adjust type.
93
94         * m17n.h (Minput_reset, minput_reset_ic): Extern them.
95
96         * m17n-core.h (MTEXT_FORMAT_UTF_16, MTEXT_FORMAT_UTF_32): Adjust types.
97         (mtext_change_prop): Delete extern.
98
99         * mtext.c (MTEXT_FORMAT_UTF_16, MTEXT_FORMAT_UTF_32): Change types
100         to `int'.  Move the documents to m17n-core.h.
101
102 2004-12-13  Kenichi Handa  <handa@m17n.org>
103
104         * m17n-core.h (m17n_object): Rename extern from m17n_object_setup.
105         (MTextProperty): Document it.
106
107 2004-12-09  Kenichi Handa  <handa@m17n.org>
108
109         * m17n-core.h: Fix typo (MTextStatus -> M17NStatus).
110
111 2004-12-03  Kenichi Handa  <handa@m17n.org>
112
113         * internal.h (m17n__core_initialized, m17n__shell_initialized,
114         m17n__gui_initialized): New externs.
115
116         * m17n-core.h (enum M17NStatus): New enum.
117         (m17n_status): Extern it.
118
119         * m17n-core.c (core_initialized): Delete this variable.
120         (m17n__core_initialized, m17n__shell_initialized,
121         m17n__gui_initialized): New variables.
122         (m17n_init_core, m17n_fini_core): Check m17n__core_initialized
123         instead of core_initialized.
124         (m17n_status): New function.
125
126         * m17n.c (shell_initialized): Delete this variable.
127         (m17n_init, m17n_fini): Check m17n__shell_initialized instead of
128         shell_initialized.
129
130         * m17n-gui.h (m17n_init_win): Adjust the prototype.
131
132         * m17n-gui.c (win_initialized): Delete this variable.
133         (m17n_init_win, m17n_fini_win): Check m17n__gui_initialized
134         instead of gui_initialized.
135
136 2004-11-19  Kenichi Handa  <handa@m17n.org>
137
138         * input.c (reset_ic): Check if ic_info->state is NULL.
139         (filter): If ic_info->state is NULL, return 0.
140         (load_input_method): Don't unref `maps' it it's not created.
141
142 2004-11-15  Kenichi Handa  <handa@m17n.org>
143
144         * input.c (find_candidates_group): If INDEX is -1, find the last
145         candidate group.
146         (take_action_list): If the previous of the first candidate is
147         requested, select the last candidate.
148
149 2004-11-08  Kenichi Handa  <handa@m17n.org>
150
151         * m17n-X.c (device_open): Try at most 32 fonts to find a
152         non-autoscaled font.
153
154         * font.c (xlfd_parse_name): Fix previous change.
155
156 2004-11-05  Kenichi Handa  <handa@m17n.org>
157
158         * font.c: (commont_style): Include dummy elements "slanted" and
159         "rslanted" to prefer "o" to "r" if "i" is requested.
160
161         * font-ft.c (ft_to_prop): Fix "oblique" entry.
162
163 2004-10-29  Kenichi Handa  <handa@m17n.org>
164
165         * font.c (xlfd_parse_name): If avgwidth is 0, set the size to 0.
166
167         * m17n-X.c (MXFont): Change type of the member `sizes' to int.
168         New members smallest and larger.
169         (SET_SIZE, HAVE_SIZE): Adjusted for the above change.
170         (xfont_registry_list): Likewise.
171         (xfont_select): Likewise.
172         
173
174 2004-10-28  Kenichi Handa  <handa@m17n.org>
175
176         * m17n-X.c (xfont_registry_list): Include '-' before PIXEL_SIZE in
177         font name comparison.
178         (xfont_select): Fix logic for selecting a larger size font.
179
180 2004-10-25  Kenichi Handa  <handa@m17n.org>
181
182         * input.c (take_action_list): Initialize `ret' to 0 for "=", "<",
183         ">" actions.
184
185 2004-10-22  Kenichi Handa  <handa@m17n.org>
186
187         * input.c (update_candidate): Renamed from udpate_candidate.
188         (take_action_list): Show more debugging info on arithmetic commands.
189
190         * m17n-X.c (device_open): Fix previous change.
191
192         * draw.c (compose_glyph_string): Don't get face property at the
193         end of M-text.
194
195 2004-10-21  Kenichi Handa  <handa@m17n.org>
196
197         * draw.c (compose_glyph_string): Fix for the case of category
198         being Mnil.
199
200 2004-10-19  Kenichi Handa  <handa@m17n.org>
201
202         * input.c (mdebug_mask): New variable.
203         (shift_state): Print debug information.
204         (take_action_list): Likewise.
205         (handle_key): Likewise.
206
207 2004-10-14  Kenichi Handa  <handa@m17n.org>
208
209         * m17n-X.c (device_open): Accept Mxft as the value of key Mfont.
210
211 2004-10-13  Kenichi Handa  <handa@m17n.org>
212
213         * m17n-X.c (device_open): Be sure to register at least one font
214         driver.
215
216         * font-ft.c: Include <freetype/ftbdf.h> conditionally.  Check
217         HAVE_FTBDF_H before calling FT_Get_BDF_Property.
218
219 2004-10-12  Kenichi Handa  <handa@m17n.org>
220
221         * draw.c (alloc_gstring): Fix previous change.
222
223         * font-ft.c (ft_list_generic): Fix for the case of not
224         HAVE_FONTCONFIG.
225
226         * m17n-X.c (mwin__parse_event): Fix for non-ASCII keys.
227
228         * font.c (mfont_list): If no font is found, return NULL.
229         (load_font_encoding_table): Put entries of nil registry first.
230         (find_encoding): Adjust for the above change.
231
232 2004-10-11  Kenichi Handa  <handa@m17n.org>
233
234         * m17n-gui.h (mfont_list): Adjust prototype.
235
236         * m17n-X.c (xfont_list): New arg maxnum.
237
238         * font.h (struct MFontDriver): Change prototype of <list>.
239
240         * font-ft.c (fc_generic_family_list): Delete it.
241         (Mserif, Msans_serif, Mmonospace): Delete them.
242         (M_generic_family_info): New variable.
243         (enum GenericFamilyType): New enum.
244         (struct GenericFamilyInfo): New struct.
245         (generic_family_table): New variable.
246         (set_font_info): New arg style. Don't check 0xA0..0xBF to decide
247         iso8859-1.
248         (add_font_info): Get style here.
249         (ft_list_family): Don't initialize fc_config here.  Don't list
250         generic families.
251         (ft_list_generic): New function.
252         (ft_select): Pay attention to generic familes here.
253         (ft_open): Fix calculation of ascent and descent.
254         (ft_list): Pay attention to generic families.
255         (mfont__ft_init): Initialize M_generic_family_info,
256         generic_family_table, and fc_config..
257         (mfont__ft_fini): Finalize generic_family_table.
258
259         * draw.c (compose_glyph_string): Use more constant font for
260         glyphs.  Adjust for the member change in MGlyph.
261         (layout_glyph_string): Adjust for the member change in MGlyph.
262         (alloc_gstring): Intilize scracth_glyph to avoid
263         compose_glyph_string on it.
264         (get_gstring): Don't call compose_glyph_string on scracth_glyph.
265         (mdraw_coordinates_position): Fix previous change.
266
267         * internal-gui.h (glyph_category): New enum.
268         (MGlyph): Change type of <category> to enum glyph_category.
269
270         * face.c (mface__realize): Delete args langauge and charset.
271         (mface__for_chars): Fix for the case that glyphs have different
272         rfaces.
273         (mface__update_frame_face): Adjust for mface__realize change.
274
275         * face.h (mface__realize): Adjust prototype.
276
277 2004-10-05  Kenichi Handa  <handa@m17n.org>
278
279         * language.c (mlang__init): Add Akan.
280
281 2004-10-04  Kenichi Handa  <handa@m17n.org>
282
283         * font-ft.c (add_font_info): Add instead of push the element.
284         (ft_list_family): For generic fonts, try all
285         substituted. families.
286
287         * font-flt.c (UPDATE_CLUSTER_RANGE): New macro.
288         (run_rule): Don't update cluster range here.
289         (run_command): Update cluster range on appending a glyph.
290         (run_otf): Update cluster range for glyphs generated by OTF.
291
292 2004-10-02  Kenichi Handa  <handa@m17n.org>
293
294         * m17n-X.c (device_open): Handle Mfont key in PLIST.
295
296 2004-09-30  Kenichi Handa  <handa@m17n.org>
297
298         * font-ft.c (ft_select): Ignore family on calling mfont__score.
299
300 2004-09-30  Kenichi Handa  <handa@m17n.org>
301
302         * font.h: Include <fontconfig/fontconfig.h>.
303         (MFTInfo): New member langset.
304         (mfont__encoding_list): Extern it.
305
306         * font.c (mfont__encoding_list): New function.
307         (mdebug_dump_font_list): New function.
308
309         * font-ft.c: Don't include <fontconfig/fontconfig.h> here.
310         (Mserif, Msans_serif, Mmonospace, Mmedium, Mr, Mnull): New
311         variables.
312         (ft_family_list): New variable.
313         (set_font_info): New arg basep.  Callers changed.
314         (fc_list): Check the return value of FcPatternGetString.
315         (add_font_info): New arg plist.  Callers changed. Update
316         ft_family_list.
317         (ft_list_family): New function (merged fc_list and ft_list_all).
318         (ft_select): Use ft_list_family.
319         (ft_list): Likewise.  If FONT is not NULL, check all fonts.  Fix
320         typo (== -> !=).
321         (mfont__ft_init): Initialize above new variables.
322         (mfont__ft_fini): Free ft_family_list.
323         (STRDUP_LOWER): New macro.
324         (set_font_info): Use STRDUP_LOWER.
325         (ft_list_family): Avoid duplicate addition of font path.  Use
326         STRDUP_LOWER.
327         (fc_decode_prop): Fix typo.
328
329         * m17n-X.c (MDisplayInfo): New member all_fonts_scaned.
330         (xfont_registry_list): Change argument disp_info to frame.
331         Callers changed.
332         (xfont_list_all): New function.
333         (xfont_list): If FONT is not NULL, check all fonts.
334
335 2004-09-28  Kenichi Handa  <handa@m17n.org>
336
337         * m17n-X.c (MXFont, MXFontList): New types.
338         (MDisplayInfo): Delete members font_registry_list,
339         iso8859_1_family_list, iso10646_1_family_list, new members
340         font_list, base_font_list.
341         (free_display_info): Adusted for the change of MDisplayInfo.
342         (xfont_driver): Initialize with xfont_list.
343         (font_compare): New function.
344         (build_font_list): Deleted.
345         (xfont_registry_list): New function.
346         (xfont_select): Use xfont_registry_list.
347         (xfont_list): New function.
348         (device_open): Adusted for the change of MDisplayInfo.
349
350         * font-ft.c (add_font_info): New arg languages.  Callers changed.
351         (fc_list): Get languages from fonts..
352         (ft_list_all): Renamed from ft_list.  Callers changed.
353         (ft_list): New function.
354         (mfont__ft_driver): Initalize with ft_list.
355
356         * font.c (mfont_list): New function.
357
358         * font.h (struct MFontDriver): New member `list'.
359         (MFTInfo): New member languages.
360
361         * m17n-gui.h (mfont_list): Extern it.
362
363 2004-09-27  Kenichi Handa  <handa@m17n.org>
364
365         * internal-gui.h (struct MGlyphString): Delete members mt,
366         sub_width, sub_lbrearing, sub_rbearing, and region.
367
368         * draw.c (MSubTextExtents): New type.
369         (layout_glyphs): New arg extents.  Set its members.
370         (layout_glyph_string): Adjusted for the above change.
371         (alloc_gstring): Don't set gstring->mt.
372         (truncate_gstring): Call line_break function with mt instead of
373         gstring->mt.
374
375 2004-09-22  Kenichi Handa  <handa@m17n.org>
376
377         * mtext.c (count_utf_16_chars): Count each code of invalid
378         surrogates as one.
379
380 2004-09-19  Kenichi Handa  <handa@m17n.org>
381
382         * mtext.c (default_utf_16, default_utf_32): Rename them to
383         MTEXT_FORMAT_UTF_16 and MTEXT_FORMAT_UTF_32 respectively.  Caller
384         changed.
385
386         * m17n-core.h (MTEXT_FORMAT_UTF_16, MTEXT_FORMAT_UTF_32): Extern
387         them.
388
389 2004-09-13  Kenichi Handa  <handa@m17n.org>
390
391         * draw.c (Mlatin): Don't declare it here.
392         (visual_order): Fix reordering of combining characters.
393         (compose_glyph_string): Fix detection of script.
394         (layout_glyphs): Don't fix reordering of combining characters
395         here.
396         (layout_glyph_string): Pay attention to
397         control->disable_overlapping_adjustment.
398         (truncate_gstring): Include at least on character in a line.
399         (get_gstring): Always scan one full line.
400         (mdraw__init): Don't initialize Mlatin here.
401         (mdraw_text_per_char_extents): Fix iteration.  If a glyph doesn't
402         have a font, use ascent/descent of an ASCII font.  Allow
403         ink_array_return and logical_array_return to be NULL.
404         (mdraw_coordinates_position): Fix iteration.
405
406         * font-ft.c (MFTtoProp): Member completely changed.
407         (ft_to_prop): Adjusted for the above change.
408         (ft_to_prop_size): Likewise.
409         (set_font_info): Adjusted for the change of MFTtoProp.
410         (fc_generic_family_list): New variable.
411         (fc_list): Add special handling of generic font names.
412         (mfont__ft_init): Adjusted for the change of MFTtoProp.
413         Initialize fc_generic_family_list.
414         (mfont__ft_fini): Don't free ft_to_prop.  Free
415         fc_generic_family_list.
416         (FC_vs_M17N_font_prop): New type.
417         (fc_weight_table, fc_slant_table, fc_width_table): New variables.
418         (fc_decode_prop, fc_encode_prop): New functions.
419         (mfont__ft_parse_name): Use fc_decode_prop.
420         (mfont__ft_unparse_name): Use fc_encode_prop.
421
422         * m17n-X.c (MDisplayInfo): Delete member realized_font_list.
423         (MWDevice): Add member realized_font_list.
424         (free_display_info): Don't free disp_info->realized_font_list.
425         (free_device): Free device->realized_fontset_list.
426         (xft_find_metric): Use gstring->frame instead of rfont->frame.
427         (device_open): Don't initialize disp_info->realized_font_list.
428         (device_open): Initialize device->realized_font_list and set it to
429         frame->realized_font_list.
430
431         * fontset.c (try_font_group): New function.
432         (mfont__lookup_fontset): Use try_font_group.
433
434         * font.c (common_weight): Change the order of "regular".
435
436         * face.c (Mlatin): Don't make it static.
437         (mface__realize): Be sure to set work_gstring.frame.
438         (mface__for_chars): Likewise.
439
440         * mtext.c (mdebug_dump_mtext): Fix for the case of mt->format >
441         MTEXT_FORMAT_UTF_8.
442
443         * internal-gui.h (Mlatin): Extern it.
444
445         * m17n-gui.h (MDrawControl): New member
446         disable_overlapping_adjustment.
447
448 2004-09-06  Kenichi Handa  <handa@m17n.org>
449
450         * font-flt.c (run_otf): Fix typo ('}'->']').
451
452         * internal-gui.h (MAKE_PRECOMPUTED_COMBINDING_CODE)
453         (COMBINING_PRECOMPUTED_P): New macros.
454
455         * draw.c (layout_glyphs): Handle precomputed combining code.
456
457         * font-ft.c (mfont__ft_drive_otf): Set g->combining_code to a
458         precomupted combining code.
459
460 2004-09-03  Kenichi Handa  <handa@m17n.org>
461
462         * font-ft.c (mfont__ft_drive_otf): Use malloc and free for
463         otf_gstring.glyphs.
464
465 2004-08-27  Kenichi Handa  <handa@m17n.org>
466
467         * face.c (mface_put_prop): If the new value is the same as the
468         current one, don't increment frame->tick.
469
470 2004-08-25  Kenichi Handa  <handa@m17n.org>
471
472         * fontset.c (mfontset): Initialize font_spec_list member.
473         (mfontset_copy): Load fontset if necessary.
474
475         * m17n-gui.h (MDrawGlyphInfo): Change the member name 'this' to
476         'metrics' to for C++.
477
478         * draw.c (mdraw_glyph_info): Adjusted for the member name change
479         (this -> metics).
480
481 2004-08-16  Kenichi Handa  <handa@m17n.org>
482
483         * Version 1.1.0 released.
484
485 2004-08-13  Kenichi Handa  <handa@m17n.org>
486
487         * language.c (mlang__init): Add Dhivehi.
488
489         * m17n-gui.c (Mx, Mfreetype): Delete it.
490         (m17n_init_win): Don't initialize Mx and Mfreetype here.
491
492         * m17n-gui.h (Mfreetype, Mxft): Extern them.
493         (mfont_resize_ratio): Extern it.
494         (MDrawGlyphInfo): New member logical_width;
495         (MDrawGlyph): New type.
496         (mdraw_glyph_list): Prototype adjusted.
497
498         * m17n-X.c (xfont_open): Set type and fontp members.
499         (xft_open): Likewise.
500
501         * internal-gui.h (Mx, Mfreetype): Delete extern.
502
503         * font.h (struct MRealizedFont): New member type and fontp.
504
505         * font.c (mfont__init): Initialize Mx, Mfreetype, and Mxft.
506         (Mx, Mfreetype): Declare here.
507         (Mxft): New variable.
508         (mfont_resize_ratio): New function.
509
510         * font-ft.c (ft_open): Set type and fontp members.
511
512         * draw.c (mdraw_glyph_list): Argument type changed.  Don't set
513         glyph_code member.
514
515 2004-08-11  Kenichi Handa  <handa@m17n.org>
516
517         * font-ft.c (ft_find_metric): Call FT_Load_Glyph with
518         FT_LOAD_DEFAULT.
519
520 2004-08-06  Kenichi Handa  <handa@m17n.org>
521
522         * font-ft.c (mfont__ft_drive_otf): Fix for the case that no GSUB
523         feature to apply.
524
525         * font-flt.c (run_otf): Print debugging information if necessary.
526
527 2004-08-05  Kenichi Handa  <handa@m17n.org>
528
529         * font-ft.c (mfont__ft_drive_otf): Fix sign of g->yoff.  Support
530         positioning_type 5 and 6.  Switch simplified.
531
532 2004-08-04  Kenichi Handa  <handa@m17n.org>
533
534         * font-ft.c (mfont__ft_drive_otf): Call OTF_drive_gdef.
535
536 2004-08-02  Kenichi Handa  <handa@m17n.org>
537
538         * font.c (mfont__score): If prop is MFONT_FOUNDRY or MFONT_FAMILY,
539         set val to 1 even if it is greater than 1.
540
541         * fontset.c (mfontset_modify_entry): Fix handling of the arg `how'.
542
543 2004-07-29  Kenichi Handa  <handa@m17n.org>
544
545         * font-flt.c (run_rule, run_command, mfont__flt_run): Print more
546         debugging information.
547
548         * internal.h (MDEBUG_PRINT5): New macro.
549
550         * draw.c (layout_glyphs): Don't combine a zero width glyph with
551         the previous one if the zero width glyph has left or right
552         padding.
553
554 2004-07-26  Kenichi Handa  <handa@m17n.org>
555
556         * m17n-X.c (xft_render): Pay attention to members left_padding and
557         right_padding of MGlyph.
558
559         * draw.c (visual_order): Allocate one more elements for arrays as
560         a workaround of fribidi bug.
561         (layout_glyphs): Fix previous change. Check MGlyph->combining_code
562         instead of MGlyph->bidi_sensitive.
563         (layout_glyph_string): Pay attentinon to
564         control->orientation_reversed when padding at the head or tail.
565         Fix adjustment of space glyph width.
566         (get_gstring): If cursor_width or cursor_bidi is changed, don't
567         use a cache.
568
569         * font-ft.c (mfont__ft_drive_otf): Set MGlyph->combining_code
570         instead of MGlyph->bidi_sensitive.
571
572         * internal-gui.h (MGlyph): Delete member bidi_sensitive.
573
574 2004-07-26  Kenichi Handa  <handa@m17n.org>
575
576         * draw.c (visual_order): Don't treat combined glyphs specially.
577         (layout_glyphs): Don't get metrics glyphs that are already ready.
578         Pay attention to MGlyph->bidi_sensitive.  Combine a glyph of zero
579         width with the previous one. 
580         (draw_background): Fix bar cursor position on a r2l glyph.
581
582         * font-flt.c (FontLayoutCmdOTF): Move back from internal-gui.h.
583         (run_rule): Fix place of updating cluster_begin_pos and
584         cluster_end_pos here.
585         (run_otf): Don't set left_padding.
586
587         * font-ft.c (adjust_anchor): Type of argument `code' changed.
588         Caller changed.
589         (mfont__ft_drive_otf): Renamed back from mfont__ft_drive_gsub.
590         Fix handling of GPOS.
591         (mfont__ft_drive_gpos): Delete this function.
592
593         * font.h (mfont__ft_drive_otf): Renamed back from
594         mfont__ft_drive_gsub.
595         (mfont__ft_drive_gpos): Delete extern.
596
597         * internal-gui.h (FontLayoutCmdOTF): Move back to font-flt.c.
598         (MGlyph): Delete member otf_cmd, add member bidi_sensitive.
599
600 2004-07-23  Kenichi Handa  <handa@m17n.org>
601
602         * draw.c (layout_glyphs): Call mfont__ft_drive_gpos with glyphs of
603         the same bidi level.
604
605         * font-ft.c (mfont__ft_drive_gpos): Check bidi-level.
606
607 2004-07-22  Kenichi Handa  <handa@m17n.org>
608
609         * font-flt.c (load_flt): Treat the symbol Mend as end-of-file.
610
611 2004-07-20  Kenichi Handa  <handa@m17n.org>
612
613         * draw.c (render_glyphs): Fix checking of g->code validity.
614
615         * face.c (mface__realize): Set g.type.
616
617 2004-07-18  Kenichi Handa  <handa@m17n.org>
618
619         * Makefile.am: Prepend ${top_srcdir} to all *.la in
620         *_LIBADD/*_LDADD.
621
622         * m17n-gui.c (mframe): Print error message give by dlopen to
623         stderr.
624
625 2004-07-16  Kenichi Handa  <handa@m17n.org>
626
627         * draw.c (compose_glyph_string): Improve the way of deciding a
628         script.  For a character that doesn't have script property, use
629         the last non-latin script.
630
631         * font-ft.c (fc_list): Cancel previous change.
632         (mfont__ft_init): Add more entries in ft_to_prop_name.
633
634 2004-07-15  Kenichi Handa  <handa@m17n.org>
635
636         * draw.c (mdraw_glyph_list): Add the width of padding glyphs to
637         previous or next character glyphs.
638
639 2004-07-14  Kenichi Handa  <handa@m17n.org>
640
641         * draw.c (compose_glyph_string): Be sure to set codes for glyphs
642         of type GLYPH_SPACE.
643
644         * fontset.c (mfont__lookup_fontset): If glyph type is
645         GLYPH_SPACE, get codes for SPACE.
646
647         * internal-gui.h (Mfont): Delete extern.
648
649         * m17n-gui.h (Mfont): Delete duplicated extern.
650
651 2004-07-13  Kenichi Handa  <handa@m17n.org>
652
653         * font-ft.c (DEVICE_DELTA): New macro.
654         (adjust_anchor): New function.
655         (mfont__ft_drive_gsub): Renamed from mfont__ft_drive_otf.  Drive
656         only GSUB.
657         (mfont__ft_drive_gpos): New function.
658
659         * font-flt.c (FontLayoutCmdOTF): Moved to internal-gui.h.
660         (FontLayoutContext): Delete member `rfont'.
661         (run_otf): Set g->otf_cmd.  Call 
662         (mfont__flt_run): Don't set ctx.rfont.  Call mfont__ft_decode_otf
663         only whne HAVE_OTF is defined.
664
665         * fontset.c: Include "config.h".
666
667         * internal-gui.h (FontLayoutCmdOTF): Moved from font-flt.c.
668         (MGlyph): New member otf_cmd.
669
670         * font.h (mfont__ft_drive_gsub): Changed from mfont__ft_drive_otf.
671         (mfont__ft_drive_gpos): Extern it.
672
673         * face.c: Include "config.h".
674
675         * draw.c (layout_glyphs): Call mfont__ft_drive_gpos.
676
677         * input-gui.c: Include "config.h".
678
679         * plist.c: Include "config.h".
680
681 2004-07-06  Kenichi Handa  <handa@m17n.org>
682
683         * m17n-gui.c, m17n-gui.h, m17n-gd.c, m17n-X.h, m17n-X.c,
684         internal-gui.h: Cancel previous changes.
685
686         * m17n-gd.h: Delete it.
687
688         * Makefile.am (libm17n_core_la_LIBADD): New variable.
689         (libm17n_core_la_LDFLAGS): Add -export-dynamic, move
690         @XML2_LD_FLAGS@ to above.
691         (libm17n_la_LIBADD): Add -ldl.
692         (libm17n_la_LDFLAGS): Add -export-dynamic.
693         (X_LD_FLAGS): Fix the order of linking.
694         (libm17n_gui_la_LIBADD): Add ${OPTIONAL_LD_FLAGS}.
695         (libm17n_gui_la_LDFLAGS): Add -export-dynamic, delete above.
696         (libm17n_X_la_LDFLAGS): Add -module.
697         (libm17n_gd_la_SOURCES): Delete m17n-gd.h.
698         (libm17n_gd_la_LIBADD): Add @GD_LD_FLAGS@.
699         (libm17n_gd_la_LDFLAGS): Add -module.
700         (include_HEADERS): Delete m17n-gd.h.
701
702 2004-06-30  Kenichi Handa  <handa@m17n.org>
703
704         * m17n-gui.c: Adjusted for the change of struct MDeviceDriver.
705         (MDeviceLibraryInterface): Delete it.
706         (register_device_library): Delete it.
707         (m17n__device_library_list): Renamed from device_library_list.
708
709         * m17n-gui.h (M17N_INIT_X, M17N_INIT_GD): New macros.
710         (m17n_init_win): Adjust prototype.
711
712         * m17n-gd.c: Adjusted for the change of struct MDeviceDriver.
713         (m17n_init_gd): New function. 
714
715         * m17n-gd.h: New file.
716
717         * m17n-X.h: Include <m17n-gui.h>.
718         (m17n_init_X): Extern it.
719         (M17N_INIT): Redefine it.
720
721         * m17n-X.c: Adjusted for the change of struct MDeviceDriver.
722         (m17n_init_X): New function.
723
724         * internal-gui.h (m17n__device_library_list): Extern it.
725         (struct MDeviceDriver): New members initialized, init, and fini.
726
727         * Makefile.am (libm17n_X_la_LIBADD): Add ${X_LD_FLAGS} and
728         @XFT2_LD_FLAGS@.
729         (libm17n_X_la_LIBADD): Delete aboves.
730         (libm17n_gd_la_SOURCES): Add m17n-gd.h.
731         (libm17n_gd_la_LIBADD): Add @GD_LD_FLAGS@.
732         (libm17n_gd_la_LDFLAGS): Delete it.
733         (include_HEADERS): Add m17n-gd.h.
734
735 2004-06-25  Kenichi Handa  <handa@m17n.org>
736
737         * Makefile.am (libm17n_X_la_LDFLAGS): Cancel previous change.
738         (libm17n_gd_la_LDFLAGS): Cancel previous change.
739
740         * m17n-gd.c (gd_render): Don't call FT_Get_Char_Index.
741
742         * font-ft.c (fc_list): If FcFontList finds no font, try
743         FcFontMatch.
744
745         * draw.c (compose_glyph_string): Terminate the last loop after
746         doing default combining if necessary.
747
748 2004-06-24  Kenichi Handa  <handa@m17n.org>
749
750         * draw.c (mdraw_glyph_list): Unref gstring->top at the tail.
751
752         * character.c (mchar_define_property): Add const to an arg.
753
754         * charset.c (mchar_define_charset): Add const to an arg.
755
756         * coding.c (MCodingSystem): Add const to an arg or decoder.
757         (finish_decoding): Add const to an arg.
758         (decode_coding_charset, decode_coding_utf_8)
759         (decode_coding_utf_16, decode_coding_utf_32)
760         (decode_coding_iso_2022, decode_coding_sjis)
761         (mconv_define_coding): Likewise.
762
763         * m17n-X.c (xft_find_metric): Delete unused variable.
764
765         * m17n-core.h (mchar_define_property, mtext_from_data): Adjust
766         prototypes.
767
768         * m17n.h (mchar_define_charset, mconv_define_coding): Adjust
769         prototypes.
770
771         * mtext.c (count_utf_8_chars, count_utf_16_chars)
772         (mtext__from_data, mtext_from_data): Add `const' to an arg.
773
774         * mtext.h (mtext__from_data): Ajust prototype.
775
776 2004-06-23  Kenichi Handa  <handa@m17n.org>
777
778         * draw.c (compose_glyph_string): Always get glyph codes by
779         mface__for_char.
780         (mdraw_glyph_info): Set info->glyph_code and info->logical_width.
781         (mdraw_glyph_list): New function.
782
783         * font-flt.c (mfont__flt_run): Be sure to call
784         rfont->driver->encode_char.
785
786         * font-ft.c (ft_find_metric): Don't call FT_Get_Char_Index.
787         (ft_encode_char): Delete arg C.
788         (ft_render): Don't call FT_Get_Char_Index.
789
790         * font.c (mfont__encodable_p): Delete it.
791         (mfont__encode_char): Be sure to call rfont->driver->encode_char.
792
793         * font.h (struct MFontDriver): Delete arg C of encode_char.
794         (mfont__encodable_p): Delete extern.
795
796         * m17n-X.c (xfont_encode_char): Delete arg C.
797         (xft_find_metric): Don't cal FT_Get_Char_Index.
798         (xft_render): Likewise.
799
800         * m17n-gui.h (MDrawGlyphInfo): New members glyph_code and
801         logical_width.
802         (mdraw_glyph_list): Extern it.
803
804         * Makefile.am (libm17n_X_la_LDFLAGS): Don't include ${X_LD_FLAGS}.
805
806 2004-06-22  Kenichi Handa  <handa@m17n.org>
807
808         * m17n-gui.h (mfontset_lookup): Extern it.
809
810         * m17n-gui.c (m17n_init_win): Delete unnecessary printing.
811
812         * fontset.c (realize_fontset_elements)
813         (free_realized_fontset_elements, update_fontset_elements): New
814         functions.
815         (mfont__realize_fontset): Call realize_fontset_elements.
816         (mfont__free_realized_fontset): Call free_realized_fontset_elements.
817         (mfont__lookup_fontset): If a fontset was modified, update
818         the realized fontset.
819         (mfontset_modify_entry): Increment fontset->tick.
820         (mfontset_lookup): New function.
821
822 2004-06-21  Kenichi Handa  <handa@m17n.org>
823
824         * font-ft.c (mfont__ft_parse_name): Cast the arg to FcNameParse.
825
826         * mtext.c (mtext_dup, mtext_cat, mtext_ncat, mtext_cpy)
827         (mtext_ncpy, mtext_duplicate): Pay attention to the case that the
828         length of source text 0.
829
830 2004-06-21  Kenichi Handa  <handa@m17n.org>
831
832         * mtext.c (INC_POSITION): Use CHAR_UNITS_BY_HEAD_UTF16.
833         (compare): Pay attention to format other than utf-8.
834         (copy): Delete this function.
835         (count_by_utf_8, count_by_utf_16, insert): New functions.
836         (count_utf_16_chars): Fix handling of a surrogate pair.
837         (find_char_forward, find_char_backward): Likewise.
838         (mtext__from_data): Delete unnecessary check.  Fix number of
839         allocated bytes.
840         (mtext_from_data): Don't count items.
841         (mtext_ref_char): Optimize the code.
842         (mtext_set_char): Pay attention to format other than utf-8.
843         (mtext_cat_char): Likewise.
844         (mtext_dup): Don't call copy, instead do allocation here.
845         (mtext_cat): Call insert instead of copy.
846         (mtext_ncat): Likewise.
847         (mtext_cpy): Delete character at first and call insert instead of
848         copy.
849         (mtext_ncpy): Likewise.
850         (mtext_copy): Likewise.
851         (mtext_duplicate): Call insert instead of copy.
852         (mtext_del): Pay attention to format other than utf-8.
853         (mtext_ins): Simply call insert.
854         (mtext_ins_char): Pay attention to format other than utf-8.
855         (mtext_tok): Call insert instead of copy.
856         (mtext_text): Call UNIT_BYTES.
857
858         * textprop.c (mtext__adjust_plist_for_change): New function.
859
860         * character.h (USHORT_SIZE, UINT_SIZE, UNIT_BYTES): New macros.
861         (CHAR_UNITS_UTF16, CHAR_UNITS): Simplified.
862         (CHAR_UNITS_AT): Fix typo.
863         (CHAR_UNITS_BY_HEAD): Fix typo.
864         (STRING_CHAR_AND_UNITS): Fix typo.
865
866         * internal.h (MTEXT_READ_ONLY_P): New macro. 
867
868         * mtext.h (mtext__replace): Delete the extern.
869         (mtext__adjust_foramt): Adjust prototype.
870
871         * plist.c (mplist_deserialize): Adjust the format of MT to utf-8
872         if possible.  Otherwise make a copy of mmt.
873
874         * coding.c (mconv_decode, mconv_gets): Adjust the format of MT to
875         utf-8.
876
877 2004-06-18  Kenichi Handa  <handa@m17n.org>
878
879         * character.h (CHAR_STRING_UTF16): Fix syntax.
880
881 2004-06-16  Kenichi Handa  <handa@m17n.org>
882
883         * Makefile.am (libm17n_gd_la_LIBADD): Delete it.
884         (libm17n_X_la_LIBADD): Delete it.
885         (libm17n_gd_la_LDFLAGS): Don't include @GD_LD_FLAGS@.
886
887         * m17n-X.c (device_open): Add parens in `if' condition.
888
889         * mtext.c (INC_POSITION): Handle format other than utf8 and utf16.
890         (DEC_POSITION): Likewise.
891         (compare): Fix case that mt1->format is MTEXT_FORMAT_UTF_8.
892
893 2004-06-15  Kenichi Handa  <handa@m17n.org>
894
895         * fontset.c (mfont__lookup_fontset): Fix selection of font groups
896         by language.
897
898         * draw.c (compose_glyph_string): If langauge is specified, call
899         mface__for_chars even if a text is all latin.  Fix condition for
900         setting non_ascii_found.
901
902         * m17n-X.c (xft_find_metric): Fix setting of g->lbrearing.
903
904         * m17n.h (minput_char_to_key): Delete extern.
905
906         * m17n-gui.h (minput_event_to_key): Cancel previous change.
907
908         * m17n-gui.c (null_device_open): Set several members of frame.
909
910 2004-06-14  Kenichi Handa  <handa@m17n.org>
911
912         * m17n-gui.h (minput_event_to_key): Delete extern.
913
914         * symbol.h (struct MSymbolStruct): Renamed from MSymbol.
915
916         * m17n-core.h (MSymbol): Defined as "struct MSymbolStruct *".
917
918         * Makefile.am (AM_CPPFLAGS): Refer to @M17NDIR@.
919
920 2004-06-08  Kenichi Handa  <handa@m17n.org>
921
922         * character.c (mchar_put_prop): Don't increment the ref-count of
923         record->table.
924
925 2004-06-04  Kenichi Handa  <handa@m17n.org>
926
927         * m17n-core.c (mdebug__register_object): New function.
928         (mdebug__unregister_object): Likewise.
929
930         * internal.h (mdebug__register_object, mdebug__unregister_object):
931         Extern them.
932         (M17N_OBJECT_REGISTER, M17N_OBJECT_UNREGISTER): Call them
933         respectively.
934
935         * charset.c (mcharset__load_from_database): Don't call
936         mconv__register_charset_coding here.
937
938         * coding.c (find_coding): Get a real name from an element of
939         coding_definition_list.
940         (mconv__register_charset_coding): Set the real name at the top of
941         param.
942         (mcoding__load_from_database): Likewise.
943         (mconv_list_codings): Adjusted for the above change.
944
945 2004-06-03  Kenichi Handa  <handa@m17n.org>
946
947         * coding.c (find_coding): Find by canonicalized name.  Don't have
948         to modify the element of coding_definition_list by
949         mplist__from_plist.
950         (mconv__define_coding_from_charset): Delete it.
951         (mconv__register_charset_coding): Canonicalize sym.
952         (mcoding__load_from_database): Register plist modified by
953         mplist__from_plist.
954
955         * coding.h (mconv__define_coding_from_charset): Don't extern it.
956
957         * font-ft.c (ft_open): Fix setting of rfont->descent.
958
959 2004-06-02  Kenichi Handa  <handa@m17n.org>
960
961         * font.c (enum xlfd_field_idx): Moved from m17n-X.c.
962         (xlfd_parse_name): Merge split_font_name and xfont_parse_name.
963         (xlfd_unparse_name): Renamed from xfont_build_name.
964         (mfont__init): Initialized Mfontconfig.
965         (mfont__free_realized): Unconditionally unref rfont->info.
966         (mfont__select): Free `this' if it's not best.
967         (mfont__open): Don't check frame->realized_font_list.
968         (mfont__parse_name_into_font): New function.
969         (Mfontconfig): New variable.
970         (mfont_from_name): Call mfont_parse_name.
971         (mfont_name): Call mfont_unparse_name.
972         (mdebug_dump_font): Likewise.
973
974         * font.h (struct MFontDriver): Delete members parse_name and
975         build_name.
976         (mfont__ft_parse_name, mfont__ft_unparse_name): Extern them.
977         (mfont__parse_name_into_font): Extern it.
978
979         * font-ft.c: Include "symbol.h".
980         (close_ft): Unconditionally free filename and charmap_list of
981         ft_into.
982         (ft_open): Duplicate base->filename.  Increment ref-count of
983         ft_info->charmap_list.  Free ft_info->charmap_list and
984         ft_info->filename on error.
985         (mfont__ft_parse_name, mfont__ft_unparse_name): New functions.
986
987         * m17n-X.c (xfont_driver): Don't include xfont_parse_name and
988         xfont_build_name.
989         (enum xlfd_field_idx): Moved to font.c.
990         (split_font_name, build_font_name): Likewise.
991         (build_font_list): Call mfont__parse_name_info_font.
992         (xfont_open): Call mfont__unparse_name.  Free name.
993         (xfont_parse_name, xfont_build_name): Moved to font.c
994         (xft_select): Prototype deleted.
995         (device_open): Check HAVE_FREETYPE on using mfont__ft_driver.
996         Call mfont_pase_name.
997
998         * m17n-gui.c (free_frame): Unref frame->font_driver_list.
999         (m17n_fini_win): Add check HAVE_FREETYPE on using null_interface.
1000         (mframe): Likewise.
1001
1002         * m17n-gui.h (mfont_parse_name, mfont_unparse_name, Mfontconfig):
1003         Extern them.
1004
1005         * Makefile.am (linkgui_LDADD): Add libm17n-X.la and libm17n-gd.la.
1006
1007 2004-06-01  Kenichi Handa  <handa@m17n.org>
1008
1009         * fontset.c (mfontset_modify_entry): Pay attention to the case
1010         that fontset->font_spec_list is NULL.
1011
1012 2004-05-31  Kenichi Handa  <handa@m17n.org>
1013
1014         * m17n-gui.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
1015
1016         * input.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
1017
1018         * font.c (mfont__select): Print score the a font for debugging.
1019
1020         * Makefile.am (libm17n_la_LIBADD): Delete -ldl.
1021
1022         * coding.c (reset_coding_sjis): Check kanji and kana instead of
1023         kanji_sym and kana_sym.
1024
1025 2004-05-28  Kenichi Handa  <handa@m17n.org>
1026
1027         * Makefile.am (VINFO): New variable.
1028         (libm17n_core_la_LDFLAGS, libm17n_la_LDFLAGS)
1029         (libm17n_gd_la_LDFLAGS): Include ${VINFO}.
1030
1031 2004-05-27  Kenichi Handa  <handa@m17n.org>
1032
1033         The following chanages are to make device dependent functions
1034         accessible only from MDeviceDriver structure, and to add GD and
1035         null device drivers.  Font drivers get also device dependent.
1036
1037         * m17n.c (m17n_init): Increament shell_initialized.
1038         (m17n_fini): Decremented shell_initialized.
1039
1040         * m17n-misc.h (enum MErrorCode): New element MERROR_GD.
1041
1042         * m17n-gui.h (Mdevice, Mdisplay, Mscreen, Mdrawable, Mdepth)
1043         (Mwidget, Mcolormap, Mx): Extern them.
1044
1045         * m17n-gui.c: Include <dlfcn.h> and "config.h".
1046         (free_frame): Call frame->driver->close instead of
1047         mwin__close_device.
1048         (DLOPEN_SHLIB_EXT): New macro.
1049         (MDeviceLibraryInterface): New type.
1050         (device_library_list): New variable.
1051         (register_device_library): New function.
1052         (null_device): New variable.
1053         (null_device_close, null_device_get_prop)
1054         (null_device_realize_face, null_device_free_realized_face): New
1055         function.
1056         (null_driver): New variable.
1057         (null_device_init, null_device_fini, null_device_open): New
1058         functions.
1059         (null_interface): New variable.
1060         (Mfreetype, Mdevice): Declare them.
1061         (m17n_init_win): Increment win_initialized.  Initialize Mx, Mgd,
1062         Mfreetype, Mdevice, Mdisplay, Mscreen, Mdrawable, Mdevice, and
1063         Mwin__Close_Device.  Register drivers for Mx and Mgd.
1064         (m17n_fini_win): Decremented win_initialized.  Call "fini"
1065         function of all opened devices.  Don't call mwin__fini.
1066         (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap):
1067         Declare them here.
1068         (mframe): Handle Mdevice key of PLIST.
1069         (mframe_get_prop): Call frame->device->get_prop instead of
1070         mwin__device_get_prop.
1071
1072         * m17n-gd.c: New file.
1073
1074         * m17n-core.h (M17NLIB_MAJOR_VERSION, M17NLIB_MINOR_VERSION)
1075         (M17NLIB_PATCH_LEVEL, M17NLIB_VERSION_NAME): Updated to 1.1.0.
1076
1077         * m17n-core.c (m17n_init_core): Increate core_initialized.
1078         (m17n_fini_core): Decremented core_initialized.
1079
1080         * m17n-X.h (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget)
1081         (Mcolormap): Don't extern them here.
1082
1083         * m17n-X.c (FRAME_DEVICE): New macro.
1084         (FRAME_DISPLAY, FRAME_SCREEN, FRAME_CMAP): Use FRAME_DEVICE.
1085         (free_display_info): Use MPLIST_DO.
1086         (free_device): Free rface->info.
1087         (xft_close): Delete it.
1088         (device_init): Renamed from mwin__init.
1089         (device_fini): Renamed from mwin__fini.
1090         (device_open): Renamed from mwin__open_device.
1091         (x_driver): New variable.
1092         (MXFontInfo): Delete member frame, add member display.
1093         (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap, Mxim):
1094         Don't declare them here.
1095
1096         * internal-gui.h (MDeviceType): New enum.
1097         (MWDefice): Delete it.
1098         (struct MFrame): Change type of device to void *.  New members
1099         device_type, driver, font_driver_list.
1100         (M_CHECK_WRITABLE, M_CHECK_READABLE): New macros.
1101         (MDeviceDriver): New type.
1102         (Mx, Mgd, Mfreetype): Extern them.
1103         (mwin__XXX): Delete all of them.
1104
1105         * input-gui.c (win_create_ic): Call frame->driver->XXX instead of
1106         mwin__XXX.
1107         (win_destroy_ic): Likewise.
1108         (adjust_window_and_draw): Likewise.
1109         (win_callback): Likewise.
1110         (Mxim): Declare it here.
1111         (minput_event_to_key): Call M_CHECK_READABLE.
1112
1113         * fontset.c (mfont__lookup_fontset): Delete local variable
1114         font_group.
1115
1116         * font.h (struct MFontDriver): Delete member close, add members
1117         parse_name and build_name.
1118         (mfont__driver_list): Delete extern.
1119         (mfont__close): Delete extern.
1120
1121         * font.c (mfont__init): Don't set mfont__driver_list.
1122         (mfont__fini): Don't unref mfont__driver_list.
1123         (mfont__select): Try font drivers in frame->font_driver_list.  Set
1124         driver member of a realized font.
1125         (mfont__close): Delete it.
1126         (mfont_from_name, mfont_name, mdebug_dump_font): Call driver
1127         functions of the default frame.
1128
1129         * font-ft.c (close_ft): Check ft_info->ft_face and work
1130         differently.
1131         (add_font_info): Allocate ft_info by M17N_OBJECT.
1132         (ft_close): Delete it.
1133         (mfont__ft_driver): Don't set ft_close.
1134         (ft_select): Increment ref-count of best_font.
1135         (ft_open): Decremented ref-count of base.  On error, call
1136         FT_Done_Face and free ft_info.
1137         (ft_find_metric): Always use XXX_MONO in load_flags.
1138         (ft_render): Fix setting of width.  Call
1139         frame->driver->draw_points instead of mwin__draw_points.
1140         (ft_to_prop): Don't set mfont__driver_list.
1141         (mfont__ft_fini): Just unref ft_info.
1142
1143         * face.c (mface__init): Exchange foreground and background of
1144         mface__default.  Call mface_put_prop to set hline of
1145         mface_underline,
1146         (mface__realize): Call frame->driver->XXX instead of mwin__XXX.
1147         (mface__free_realized): Don't call mwin__free_realized_face.
1148
1149         * draw.c (Mdepth): Don't declare it here.
1150         (draw_background): Call frame->driver->XXX instead of mwin__XXX.
1151         (render_glyphs, render_glyph_string): Likewise.
1152         (mdraw__init): Don't set Mdepth.
1153         (mdraw_text, mdraw_image_text, mdraw_text_with_control): Call
1154         M_CHECK_WRITABLE.
1155         (mdraw_text_per_char_extents): Return 0 on success and -1 on
1156         error.
1157         (mdraw_text_items): Check FRAME is writable.
1158         (mdraw_per_char_extents): Implement body.
1159
1160         * Makefile.am (lib_LTLIBRARIES): Include libm17n-gui.la and
1161         libm17n-gd.la.
1162         (OPTIONAL_LD_FLAGS): Include @FONTCONFIG_LD_FLAGS@.
1163         (GUI_SOURCES): Delete it.
1164         (libm17n_X_la_SOURCES): Don't include ${GUI_SOURCES}.
1165         (libm17n_gui_la_SOURCES, libm17n_gui_la_LIBADD)
1166         (libm17n_gui_la_LDFLAGS, libm17n_gd_la_SOURCES)
1167         (libm17n_gd_la_LIBADD, libm17n_gd_la_LDFLAGS): New targets.
1168         (linkgui_LDADD): Set to libm17n-gui.la
1169         (linkgui_LDFLAGS): New target.
1170         (SRC): Include ${libm17n_gui_la_SOURCES} and
1171         ${libm17n_gd_la_SOURCES}.
1172
1173 2004-05-24  Kenichi Handa  <handa@m17n.org>
1174
1175         * draw.c (draw_background): Don't draw background even if
1176         rface->face.property[MFACE_BACKGROUND] is not Mnil.
1177
1178 2004-05-22  Kenichi Handa  <handa@m17n.org>
1179
1180         * m17n-X.c (xft_open_font): Fix anti_alias setting.
1181
1182 2004-05-20  Kenichi Handa  <handa@m17n.org>
1183
1184         * m17n-gui.h (MFaceHookFunc): Change this function type to void.
1185
1186         * m17n-gui.c: Include "plist.h".
1187         (mframe): If PLIST is NULL, initialize it to emply plist.
1188
1189         * m17n-X.c (build_font_list): Don't set property[MFONT_TYPE].
1190         (xft_driver): New variable.
1191         (xft_select, close_xft, xft_open_font, xft_open, xft_close)
1192         (xft_find_metric, xft_render): New function.
1193         (mwin__init): Adjusted for the new mfont__driver_list.
1194         (mwin__open_device): Assume arg PARAM is not NULL.  Push a newly
1195         generated face to PARAM.
1196         (mwin__realize_face): Fix setting of box colors.  Don't call hook
1197         function here.
1198         (mwin__draw_hline): New function.
1199         (mwin__xft_close, mwin__xft_open, mwin__xft_get_metric)
1200         (mwin__xft_render): Delete these function.
1201
1202         * internal-gui.h (struct MFrame): New member tick.
1203         (struct MGlyphString): New member tick.
1204         (mwin__draw_rect, mwin__draw_empty_boxes): Extern them.
1205         (mwin__xft_open, mwin__xft_close, mwin__xft_get_metric)
1206         (mwin__xft_render): Delete extern.
1207
1208         * fontset.c (mfont__lookup_fontset): Make the code simpler.
1209         (mfontset): Always increment the reference count of returned
1210         object.
1211
1212         * font-ft.c (mfont__ft_fini): Don't include <otf.h> here.
1213         (MFTInfo): Moved to font.h.
1214         (ft_iso8859_1_font_list): Delete this variable.
1215         (set_font_info): Don't set font->property[MFONT_TYPE].
1216         (set_font_info): Don't udpate ft_iso8859_1_font_list.
1217         (add_font_info): Change type to void.
1218         (fc_list): Change anme from xft_list.  Caller changed.  Include
1219         FC_FOUNDRY and FC_PIXEL_SIZE in FcObjectSet.
1220         (mfont__ft_driver): Change name from ft_driver.  Caller changed.
1221         (ft_select): Check HAVE_FONTCONFIG instead of HAVE_XFT2.
1222         (close_ft): Don't call mwin__xft_close.  Unref
1223         ft_info->extra_info.
1224         (ft_open): Don't setup ft_info->fontname.  Don't call
1225         mwin__xft_open.
1226         (ft_find_metric): Don't call mwin__xft_get_metric.
1227         (ft_encode_char): Call rfont->driver->open instead of ft_open.
1228         (ft_render): Don't check HAVE_XFT2.  Don't call mwin__xft_render.
1229         (mfont__ft_init): Adjusted for new mfont__driver_list.
1230         (mfont__ft_fini): Don't unref ft_iso8859_1_font_list.
1231
1232         * font.c (mfont__driver_list): Make it MPlist.
1233         (mfont__init): Adjust initialization of mfont__driver_list.
1234         (mfont__fini): Free mfont__driver_list.
1235         (mfont__set_spec_from_face): Don't set spec->property[MFONT_TYPE].
1236         (mfont__select): Adjusted for the new mfont__driver_list.
1237
1238         * font.h (enum MFontProperty): Delete MFONT_TYPE.
1239         (mfont__drirver_list): Adjust prototype.
1240         (MFTInfo): Move to here from fron.c.  Deleve member fontname.
1241
1242         * face.h (struct MFace): Delete member realized_face_list, add
1243         member frame_list.
1244         (struct MRealizedFace): Delete member need_update
1245         andnofont_rface, add member non_ascii_list.
1246         (mface__update_frame_face): Extern it.
1247
1248         * face.c (hline_prop_list, box_prop_list, noop_hook): New
1249         variables.
1250         (get_hline_create, get_box_create): New functions.
1251         (find_realized_face): Cancel previous change.  Arg RFONT deleted.
1252         Use memcmp.
1253         (free_face): Cancep previous change.  Free face->frame_list.
1254         (serialize_hline): Do nothing if hline->width is zero.
1255         (serialize_box): Do nothing if box->width is zero.
1256         (mface__init): Setup all properties of mface__default.
1257         (mface__fini): Free hline_prop_list and box_prop_list.
1258         (mface__realize): Cancel previous change.  Update
1259         face->frame_list.  Setup rface->non_ascii_list.
1260         (mface__for_chars): Update rface->non_ascii_list.
1261         (mface__free_realized): Free rface->non_ascii_list.
1262         (mface__update_frame_face): New function.
1263         (mface): Initialize face->frame_list.
1264         (mface_copy): Likewise.  Just copy MFACE_HLINE and MFACE_BOX
1265         properties.
1266         (mface_merge): Likewise.
1267         (mface_put_prop): If key is Mhline or Mbox, get value by
1268         get_hline_create or get_box_create respectively.
1269         (mface_put_prop): Update frame->tick and call
1270         mface__update_frame_face if necessary.
1271         (mface_update): Do nothing if func is noop_hook.
1272
1273         * draw.c (render_glyphs): If a font is not found, use
1274         mwin__draw_empty_boxes.
1275         (alloc_gstring): Initialize gstring->tick.
1276         (get_gstring): Check gstring->tick.
1277
1278 2004-05-17  Kenichi Handa  <handa@m17n.org>
1279
1280         * face.c (find_realized_face): Return value changed.  If RFONT is
1281         NULL, avoid unnecessary checking.
1282         (free_face): Free face->realized_face_list.
1283         (mface__realize): Adjusted for the change of find_realized_face.
1284         If it returns a realized face that needs update, free it and
1285         realize a new one.  Push a new realized face to
1286         frame->realized_face_list instead of appending.
1287         (mface__for_chars): Adjusted for the change of find_realized_face.
1288         Short cut if the required font is in rface->ascii_rface.
1289         (mface_put_prop): Free old value if necessary.  Set need_update
1290         member of realized faces to 1.
1291
1292         * face.h (struct MFace): Delete member tick, add member
1293         realized_face_list.
1294         (struct MRealizedFace): Delete member tick, add member
1295         need_update.
1296
1297 2004-05-13  Kenichi Handa  <handa@m17n.org>
1298
1299         * m17n-X.c (mwin__xft_open): Destroy unnecessary patterns.
1300
1301 2004-05-12  Kenichi Handa  <handa@m17n.org>
1302
1303         * internal-gui.h (mwin__xft_open): Arguemnt name changed.
1304
1305         * m17n-X.c (mwin__xft_open): Argument changed to fontname and
1306         parse it XftNameParse.
1307
1308         * font-ft.c (MFTInfo) [HAVE_XFT2]: New member fontname.
1309         (all_fonts_scaned): New variable.
1310         (set_font_info): FAMILY may be Mnil.
1311         (add_font_info): Argument changed.
1312         (xft_list): Call add_font_info in it.
1313         (ft_list): Likewise.
1314         (ft_select): Make it work in the case family is Mnil.
1315         (ft_open) [HAVE_XFT2]: Setup ft_info->fontname.
1316         (mfont__ft_fini): Set all_fonts_scaned to 0.
1317
1318         * fontset.c (mfont__lookup_fontset): Don't repeatedly try a font
1319         that is failed to open.
1320
1321 2004-05-10  Kenichi Handa  <handa@m17n.org>
1322
1323         * m17n-X.c (mwin__xft_render): Don't use anti-alias if the
1324         device's depth is 1 (i.e. monochrome).
1325
1326         * Makefile.am (OPTIONAL_LD_FLAGS): Change the order of elements
1327         to work around the problem of libtool.
1328
1329         * font-ft.c: Include <freetype/ftbdf.h>.
1330         (Municode_bmp, Municode_full, Miso10646_1, Miso8859_1): New
1331         variables.
1332         (mfont__ft_init): Initialize them.
1333         (ft_iso8859_1_font_list): New variable.
1334         (set_font_info): Detect a font containing iso8859-1 glyphs and
1335         register it in ft_iso8859_1_font_list.  If the font is not
1336         scalable, assume it as BDF or PCF font and setup SIZE and RESY
1337         properties of the font from its properties.
1338         (add_font_list): If the font is not scalable, check if it is BDF
1339         or PCF font.  If not, ignore it.
1340         (ft_select): If FAMILY is Mnil, return NULL only if the requested
1341         registry is not iso8859-1.
1342         (ft_select) [not HAVE_XFT2]: If FAMILY is Mnil, select one from
1343         ft_iso8859_1_font_list.
1344         (ft_find_metric): If the font is not scalable, assume it as BDF
1345         or PCF, and get a metric from its properties.
1346         (mfont__ft_fini): Free ft_iso8859_1_font_list.
1347
1348 2004-05-07  Kenichi Handa  <handa@redhat.m17n.org>
1349
1350         * Makefile.am (libm17n_la_LIBADD): Include -ldl.
1351         (libm17n_la_LDFLAGS): Delete it.
1352         (noinst_PROGRAMS): Renamed from bin_PROGRAMS.
1353         (install-binPROGRAMS, uninstall-binPROGRAMS): Delete them.
1354
1355 2004-05-06  Kenichi Handa  <handa@m17n.org>
1356
1357         * draw.c (compose_glyph_string): Fix previous change.
1358
1359 2004-04-30  Kenichi Handa  <handa@m17n.org>
1360
1361         * font-ft.c (ft_list): Delete unused variable `result'.
1362         (ft_render): Fix for the case that bitmap.pitch < bitmap.width.
1363
1364 2004-04-27  Kenichi Handa  <handa@m17n.org>
1365
1366         * m17n-X.c: Include config.h
1367         [HAVE_XFT2]: Include <X11/Xft/Xft.h>.
1368         (GCInfo) [HAVE_XFT2]: New member xft_color_fore, xft_color_back.
1369         (MWDevice) [HAVE_XFT2]: New member xft_draw.
1370         (FRAME_CMAP, FRAME_VISUAL): New macros.
1371         (free_device) [HAVE_XFT2]: Destroy device->xft_draw.
1372         (xfont_driver): Make it static.
1373         (mwin__open_device) [HAVE_XFT2]: Setup device->xft_draw.
1374         (mwin__realize_face) [HAVE_XFT2]: Setup info->xft_color_fore and
1375         info->xft_color_back.
1376         (MXftFontInfo) [HAVE_XFT2]: New type.
1377         (mwin__xft_close) [HAVE_XFT2]: New function.
1378         (mwin__xft_open) [HAVE_XFT2]: New function.
1379         (mwin__xft_get_metric) [HAVE_XFT2]: New function.
1380         (mwin__xft_render) [HAVE_XFT2]: New function.
1381
1382         * internal-gui.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
1383         (mwin__xft_open, mwin__xft_close) [HAVE_FREETYPE]: New externs.
1384         (mwin__xft_get_metric, mwin__xft_render) [HAVE_FREETYPE]: New
1385         externs.
1386
1387         * font.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
1388
1389         * font-ft.c: Don't include FT_FREETYPE_H here.
1390         [HAVE_XFT2]: Include <fontconfig/fontconfig.h>.
1391         (fontconfig_initialized, fc_config) [HAVE_XFT2]: New variables.
1392         (MFTInfo): New member charmap_index.
1393         (MFTInfo) [HAVE_XFT2]: New member xft_info.
1394         (check_otf_filename): Renamed from check_filename.  Return value
1395         changed.
1396         (ft_set_property): This function deleted.
1397         (set_font_info): New function.
1398         (add_font_list): Argument changed.  Add multiple fonts.
1399         (xft_list) [HAVE_XFT2]: New function.
1400         (ft_list) [not HAVE_XFT2]: New function.
1401         (ft_select): Add code for Xft.
1402         (close_ft): Likewise.
1403         (ft_open): Likewise.
1404         (ft_find_metric): Likewise.
1405         (ft_encode_char): Likewise.
1406         (ft_render): Likewise.
1407
1408         * makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@.
1409
1410 2004-04-26  Kenichi Handa  <handa@m17n.org>
1411
1412         * textprop.c (mtext_attach_property): Declare the return type as
1413         `int'.
1414
1415 2004-04-21  Kenichi Handa  <handa@m17n.org>
1416
1417         * Makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@
1418
1419 2004-04-09  Kenichi Handa  <handa@m17n.org>
1420
1421         * font-flt.c (struct): New members seq_beg, seq_end, seq_from,
1422         seq_to.
1423         (load_command): Setup above members.
1424
1425 2004-04-05  Kenichi Handa  <handa@m17n.org>
1426
1427         * m17n-X.c (xfont_encode_char): Fix checking of byte1 and byte2.
1428
1429 2004-03-30  Kenichi Handa  <handa@m17n.org>
1430
1431         * m17n-X.c (xfont_encode_char): Return MCHAR_INVALID_CODE if code
1432         >= 0x10000.
1433
1434         * m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 2.
1435         (M17NLIB_VERSION_NAME): Changed to 1.0.2.
1436
1437 2004-03-29  Kenichi Handa  <handa@m17n.org>
1438
1439         * Version 1.0 Patch Level 2 released.
1440
1441 2004-03-29  Kenichi Handa  <handa@m17n.org>
1442
1443         * charset.c (make_charset): Set charset->fully_loaded and
1444         charset->simple correctly.  Don't try to get charset->min_char and
1445         charset->max_char for a charset of method subset and superset.
1446         Don't load a mapping file here.
1447         (mcharset__init): Set unified_max.
1448         (mcharset__load_from_database): Free a working plist.
1449
1450         * coding.c (mcoding__fini): Free all malloced data.
1451
1452         * input-gui.c (win_create_ic): Set control.as_image for preediting
1453         to 0.
1454
1455         * internal.h (M17N_OBJECT_REGISTER): Check the member `used' (not
1456         `count') to initialize the array.
1457
1458         * locale.c (mlocale_set): Fix the order of M17N_OBJECT_REF and
1459         M17N_OBJECT_UNREF.
1460
1461         * m17n-X.c (xfont_render): If rface->rfont is null, draw a
1462         rectangle.
1463         (mwin__create_window): Fix bug of setting a background pixel of a
1464         new window.
1465         (mwin__adjust_window): Clear the window before drawing.
1466
1467         * m17n-core.c (mdebug__report_object): Free array->objectes if
1468         necessary.
1469         (m17n_init_core): Don't set report_header_printed to 0 here.
1470         Fix debugging information.
1471         (m17n_fini_core): Set report_header_printed to 0 here.
1472
1473         * m17n-core.h (mplist_deserialize): Extern it.
1474
1475         * m17n-gui.c (m17n_fini_win): Fix debugging information.
1476
1477         * m17n.c (m17n_fini): Fix debugging information.
1478
1479         * mtext.c (mtext__adjust_foramt): New function.
1480
1481         * mtext.h (mtext__adjust_foramt): Extern it.
1482
1483         * plist.c (mplist_deserialize): Renamed from mplist__deserialize.
1484
1485         * plist.h (mplist__deserialize): Don't extern it.
1486
1487         * symbol.c (msymbol__fini): Set freed_symbols to 0.  Set all
1488         elements of symbol_table to NULL.  Report about created and freed
1489         symbols if MDEBUG_FINI is set.
1490
1491 2004-03-22  Kenichi Handa  <handa@m17n.org>
1492
1493         * m17n-core.c (m17n_init_core): Set merror_code to MERROR_NONE.
1494
1495         * m17n.c (m17n_init): Fix the way of checking merror_code.
1496
1497         * m17n-gui.c (m17n_init_win): Fix the way of checking merror_code.
1498
1499 2004-03-22  Kenichi Handa  <handa@m17n.org>
1500
1501         * fontset.c (realize_font_group): Adjust the font size by
1502         mfont__resize before selecting a font.
1503
1504         * font-ft.c (mfont__ft_init): Add oblique and boldoblique.
1505
1506 2004-03-19  Kenichi Handa  <handa@m17n.org>
1507
1508         * Version 1.0 Patch Level 1 released.
1509
1510 2004-03-19  Kenichi Handa  <handa@m17n.org>
1511
1512         * m17n-core.h (M17NLIB_PATCH_LEVEL): New macro.
1513
1514         * m17n-core.c (M17NLIB_PATCH_LEVEL): Describe it.
1515
1516 2004-03-19  Kenichi Handa  <handa@m17n.org>
1517
1518         Re-apply the changes forgotten in the released version.
1519
1520         * charset.c (mcharset__load_from_database): Call
1521         mchar_define_charset.
1522
1523         * coding.c (encode_unsupporeted_char): Put Mcoding text property.
1524         (mconv_encode_range): Put Mcoding text property.
1525
1526 2004-03-18  Kenichi Handa  <handa@m17n.org>
1527
1528         * draw.c (Mdepth): New variable.
1529         (visual_order): Delete unused local var `pos'.
1530         (compose_glyph_string): Fix for the case that gstring->glyphs is
1531         realloced.  Stop generating glyphs at TO.  Fix handling of
1532         control charaters.
1533         (layout_glyphs): Get metrics of all glyphs in advance.  Set
1534         lbearing and rbearing of base of composition glyph correctly.
1535         Handle left-overhang glyphs correctly.
1536         (alloc_gstring): New arg frame.  Set gstring->anti_alias.  Caller
1537         changed.
1538         (dump_combining_code): Change the defualt off_x character to ".".
1539         (mdraw__init): Initialize Mdepth.
1540
1541         * face.c (work_gstring): New variable
1542         (mface__init): Initialize work_gstring.
1543         (mface__fini): Free work_gstring.glyphs.
1544         (mface__realize): Don't handle videomode property here.  Adjusted
1545         for the change of mfont__get_metric.
1546         (mface__for_chars): Adjusted for the change of mfont__get_metric.
1547
1548         * face.h (enum face_gc): Moved to m17n-X.c.
1549
1550         * font.h (struct MFontDriver): Arguments of find_metric changed.
1551         (mfont__select): Prototype adjusted.
1552         (mfont__get_metric): Likewise.
1553         (mfont__ft_drive_otf): Likewise.
1554         (mfont__flt_run): Likewise.
1555         
1556         * font.c (mfont__select): New argument layouter.  If layouter is
1557         different in the registered font, make a new copy of realized
1558         font.
1559         (mfont__get_metric): Argument changed.  Get metrics of multiple
1560         glyphs.
1561         (mfont_find): Call mfont__select with layouter as Mnil.
1562
1563         * font-flt.c (FontLayoutContext): New member rfont.
1564         (run_otf): Adjusted for the change of mfont__ft_drive_otf.
1565         (mfont__flt_run): Argument changed.  Initialize ctx.rfont.
1566
1567         * font-ft.c (ft_find_metric): Arguments changed.  Get metrics of
1568         multiple glyphs.
1569         (NUM_POINTS): New macro.
1570         (MPointTable): New type.
1571         (ft_render): Use mwin__draw_points instead of mwin__draw_bitmap.
1572         (mfont__ft_drive_otf): New argument rfont.
1573
1574         * fontset.c (realize_font_group): Adjusted for the changed of
1575         mfont__select.
1576         (check_fontset_element): This function deleted.
1577
1578         * input-gui.c (adjust_window_and_draw): Locate a preedit window
1579         off the parent window if the preedit text is zero length.
1580
1581         * internal-gui.h (struct MFrame): New members foreground,
1582         background, videomode, font.
1583         (struct MGlyphString): New member anti_alias.
1584         (MDrawPoint): New type.
1585         (mwin__draw_bitmap): Prototype deleted.
1586         (mwin__draw_points): Prototype added.
1587
1588         * m17n-gui.h (MDrawControl): New member anti_alias.
1589
1590         * m17n-gui.c (free_frame): Free frame->font.
1591         (mframe): Set the fontset of frame->face to the default fontset.
1592
1593         * m17n-X.c (RGB_GC): New type.
1594         (enum gc_index): Renamed from enum face_gc.  Member names changed.
1595         (GCInfo): New typel
1596         (struct MWDevice): Members foreground and background deleted.  New
1597         member scratch_gc, gc_list.
1598         (DEFAULT_FONT, FALLBACK_FONT): New macros.
1599         (free_device): Free GCs in device->gc_list.
1600         (get_rgb_gc): New function.
1601         (get_gc): Renamed and argument changed from get_color.
1602         (get_gc_for_anti_alias): New function.
1603         (xfont_find_metric): Arguments changed.  Get metrics of multiple
1604         glyphs.
1605         (set_region): Argument changed.  Caller changed.
1606         (xfont_render): Allways set a font in gc.
1607         (x_error_handler, x_io_error_handler): Define only if
1608         X_SET_ERROR_HANDLER is defined.
1609         (mwin__open_device): Create device->scratch_gc.  Set members
1610         foreground, background, and videomode of frame.  Call
1611         XSetErrorHandler and XSetIOErrorHandler only if
1612         X_SET_ERROR_HANDLER is defined.
1613         (struct gc_list): Deleted.
1614         (REGISTER_GC, UNREGISTER_GC): These macros deleted.
1615         (mwin__realize_face): Adjusted for the change of the format of
1616         rface->info and the charge of set_region.
1617         (mwin__free_realized_face, mwin__fill_space, mwin__draw_hline)
1618         (mwin__draw_box): Likewise.
1619         (mwin__draw_bitmap): This function deleted.
1620         (mwin__draw_points): New function.
1621         (mwin__verify_region): Adjusted for the change of the format of
1622         rface->info and the charge of set_region.
1623         (mwin__create_window): Inherit backgound pixel from parent.
1624         (mwin__dump_gc): Adjusted for the change of the format of
1625         rface->info.
1626
1627 2004-03-16  Kenichi Handa  <handa@m17n.org>
1628
1629         * m17n-X.c (mwin__parse_event): Fix handling of modifier keys.
1630
1631         * input.c (M_key_alias): New variable.
1632         (handle_key): Try M_key_alias property of a key too.
1633         (minput__init): Initialize M_key_alias.  Give that property to
1634         symbols in one_char_symbol.  Fix bug of initializing
1635         one_char_symbol.
1636
1637         * draw.c (compose_glyph_string): Don't handle
1638         ignore_formatting_char here.  Include formatting characters in the
1639         range processed by a FTL.
1640         (layout_glyph_string): Handle ignore_formatting_char here.
1641
1642 2004-03-12  Kenichi Handa  <handa@m17n.org>
1643
1644         * input-gui.c (win_create_ic): Enable bidi in status control.
1645
1646         * draw.c (visual_order): Avoid re-ordering of combining glyphs only.
1647
1648 2004-03-09  Kenichi Handa  <handa@m17n.org>
1649
1650         * input.c (load_input_method): If title is not specified, use the
1651         input method name as title.
1652
1653         * m17n-X.c (get_color): Make it static.
1654         (xim_create_ic, xim_destroy_ic, x_error_handler)
1655         (x_io_error_handler): Likewise.
1656
1657 2004-03-01  Kenichi Handa  <handa@m17n.org>
1658
1659         * Version 1.0 released.
1660
1661 \f
1662 Copyright (C) 2003, 2004
1663   National Institute of Advanced Industrial Science and Technology (AIST)
1664   Registration Number H15PRO112
1665
1666 This file is part of the m17n library.
1667
1668 The m17n library is free software; you can redistribute it and/or
1669 modify it under the terms of the GNU Lesser General Public License
1670 as published by the Free Software Foundation; either version 2.1 of
1671 the License, or (at your option) any later version.
1672
1673 The m17n library is distributed in the hope that it will be useful,
1674 but WITHOUT ANY WARRANTY; without even the implied warranty of
1675 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1676 Lesser General Public License for more details.
1677
1678 You should have received a copy of the GNU Lesser General Public
1679 License along with the m17n library; if not, write to the Free
1680 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1681 02111-1307, USA.