*** empty log message ***
[m17n/m17n-lib.git] / src / ChangeLog
1 2004-06-02  Kenichi Handa  <handa@m17n.org>
2
3         * font.c (enum xlfd_field_idx): Moved from m17n-X.c.
4         (xlfd_parse_name): Merge split_font_name and xfont_parse_name.
5         (xlfd_unparse_name): Renamed from xfont_build_name.
6         (mfont__init): Initialized Mfontconfig.
7         (mfont__free_realized): Unconditionally unref rfont->info.
8         (mfont__select): Free `this' if it's not best.
9         (mfont__open): Don't check frame->realized_font_list.
10         (mfont__parse_name_into_font): New function.
11         (Mfontconfig): New variable.
12         (mfont_from_name): Call mfont_parse_name.
13         (mfont_name): Call mfont_unparse_name.
14         (mdebug_dump_font): Likewise.
15
16         * font.h (struct MFontDriver): Delete members parse_name and
17         build_name.
18         (mfont__ft_parse_name, mfont__ft_unparse_name): Extern them.
19         (mfont__parse_name_into_font): Extern it.
20
21         * font-ft.c: Include "symbol.h".
22         (close_ft): Unconditionally free filename and charmap_list of
23         ft_into.
24         (ft_open): Duplicate base->filename.  Increment ref-count of
25         ft_info->charmap_list.  Free ft_info->charmap_list and
26         ft_info->filename on error.
27         (mfont__ft_parse_name, mfont__ft_unparse_name): New functions.
28
29         * m17n-X.c (xfont_driver): Don't include xfont_parse_name and
30         xfont_build_name.
31         (enum xlfd_field_idx): Moved to font.c.
32         (split_font_name, build_font_name): Likewise.
33         (build_font_list): Call mfont__parse_name_info_font.
34         (xfont_open): Call mfont__unparse_name.  Free name.
35         (xfont_parse_name, xfont_build_name): Moved to font.c
36         (xft_select): Prototype deleted.
37         (device_open): Check HAVE_FREETYPE on using mfont__ft_driver.
38         Call mfont_pase_name.
39
40         * m17n-gui.c (free_frame): Unref frame->font_driver_list.
41         (m17n_fini_win): Add check HAVE_FREETYPE on using null_interface.
42         (mframe): Likewise.
43
44         * m17n-gui.h (mfont_parse_name, mfont_unparse_name, Mfontconfig):
45         Extern them.
46
47         * Makefile.am (linkgui_LDADD): Add libm17n-X.la and libm17n-gd.la.
48
49 2004-06-01  Kenichi Handa  <handa@m17n.org>
50
51         * fontset.c (mfontset_modify_entry): Pay attention to the case
52         that fontset->font_spec_list is NULL.
53
54 2004-05-31  Kenichi Handa  <handa@m17n.org>
55
56         * m17n-gui.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
57
58         * input.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
59
60         * font.c (mfont__select): Print score the a font for debugging.
61
62         * Makefile.am (libm17n_la_LIBADD): Delete -ldl.
63
64         * coding.c (reset_coding_sjis): Check kanji and kana instead of
65         kanji_sym and kana_sym.
66
67 2004-05-28  Kenichi Handa  <handa@m17n.org>
68
69         * Makefile.am (VINFO): New variable.
70         (libm17n_core_la_LDFLAGS, libm17n_la_LDFLAGS)
71         (libm17n_gd_la_LDFLAGS): Include ${VINFO}.
72
73 2004-05-27  Kenichi Handa  <handa@m17n.org>
74
75         The following chanages are to make device dependent functions
76         accessible only from MDeviceDriver structure, and to add GD and
77         null device drivers.  Font drivers get also device dependent.
78
79         * m17n.c (m17n_init): Increament shell_initialized.
80         (m17n_fini): Decremented shell_initialized.
81
82         * m17n-misc.h (enum MErrorCode): New element MERROR_GD.
83
84         * m17n-gui.h (Mdevice, Mdisplay, Mscreen, Mdrawable, Mdepth)
85         (Mwidget, Mcolormap, Mx): Extern them.
86
87         * m17n-gui.c: Include <dlfcn.h> and "config.h".
88         (free_frame): Call frame->driver->close instead of
89         mwin__close_device.
90         (DLOPEN_SHLIB_EXT): New macro.
91         (MDeviceLibraryInterface): New type.
92         (device_library_list): New variable.
93         (register_device_library): New function.
94         (null_device): New variable.
95         (null_device_close, null_device_get_prop)
96         (null_device_realize_face, null_device_free_realized_face): New
97         function.
98         (null_driver): New variable.
99         (null_device_init, null_device_fini, null_device_open): New
100         functions.
101         (null_interface): New variable.
102         (Mfreetype, Mdevice): Declare them.
103         (m17n_init_win): Increment win_initialized.  Initialize Mx, Mgd,
104         Mfreetype, Mdevice, Mdisplay, Mscreen, Mdrawable, Mdevice, and
105         Mwin__Close_Device.  Register drivers for Mx and Mgd.
106         (m17n_fini_win): Decremented win_initialized.  Call "fini"
107         function of all opened devices.  Don't call mwin__fini.
108         (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap):
109         Declare them here.
110         (mframe): Handle Mdevice key of PLIST.
111         (mframe_get_prop): Call frame->device->get_prop instead of
112         mwin__device_get_prop.
113
114         * m17n-gd.c: New file.
115
116         * m17n-core.h (M17NLIB_MAJOR_VERSION, M17NLIB_MINOR_VERSION)
117         (M17NLIB_PATCH_LEVEL, M17NLIB_VERSION_NAME): Updated to 1.1.0.
118
119         * m17n-core.c (m17n_init_core): Increate core_initialized.
120         (m17n_fini_core): Decremented core_initialized.
121
122         * m17n-X.h (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget)
123         (Mcolormap): Don't extern them here.
124
125         * m17n-X.c (FRAME_DEVICE): New macro.
126         (FRAME_DISPLAY, FRAME_SCREEN, FRAME_CMAP): Use FRAME_DEVICE.
127         (free_display_info): Use MPLIST_DO.
128         (free_device): Free rface->info.
129         (xft_close): Delete it.
130         (device_init): Renamed from mwin__init.
131         (device_fini): Renamed from mwin__fini.
132         (device_open): Renamed from mwin__open_device.
133         (x_driver): New variable.
134         (MXFontInfo): Delete member frame, add member display.
135         (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap, Mxim):
136         Don't declare them here.
137
138         * internal-gui.h (MDeviceType): New enum.
139         (MWDefice): Delete it.
140         (struct MFrame): Change type of device to void *.  New members
141         device_type, driver, font_driver_list.
142         (M_CHECK_WRITABLE, M_CHECK_READABLE): New macros.
143         (MDeviceDriver): New type.
144         (Mx, Mgd, Mfreetype): Extern them.
145         (mwin__XXX): Delete all of them.
146
147         * input-gui.c (win_create_ic): Call frame->driver->XXX instead of
148         mwin__XXX.
149         (win_destroy_ic): Likewise.
150         (adjust_window_and_draw): Likewise.
151         (win_callback): Likewise.
152         (Mxim): Declare it here.
153         (minput_event_to_key): Call M_CHECK_READABLE.
154
155         * fontset.c (mfont__lookup_fontset): Delete local variable
156         font_group.
157
158         * font.h (struct MFontDriver): Delete member close, add members
159         parse_name and build_name.
160         (mfont__driver_list): Delete extern.
161         (mfont__close): Delete extern.
162
163         * font.c (mfont__init): Don't set mfont__driver_list.
164         (mfont__fini): Don't unref mfont__driver_list.
165         (mfont__select): Try font drivers in frame->font_driver_list.  Set
166         driver member of a realized font.
167         (mfont__close): Delete it.
168         (mfont_from_name, mfont_name, mdebug_dump_font): Call driver
169         functions of the default frame.
170
171         * font-ft.c (close_ft): Check ft_info->ft_face and work
172         differently.
173         (add_font_info): Allocate ft_info by M17N_OBJECT.
174         (ft_close): Delete it.
175         (mfont__ft_driver): Don't set ft_close.
176         (ft_select): Increment ref-count of best_font.
177         (ft_open): Decremented ref-count of base.  On error, call
178         FT_Done_Face and free ft_info.
179         (ft_find_metric): Always use XXX_MONO in load_flags.
180         (ft_render): Fix setting of width.  Call
181         frame->driver->draw_points instead of mwin__draw_points.
182         (ft_to_prop): Don't set mfont__driver_list.
183         (mfont__ft_fini): Just unref ft_info.
184
185         * face.c (mface__init): Exchange foreground and background of
186         mface__default.  Call mface_put_prop to set hline of
187         mface_underline,
188         (mface__realize): Call frame->driver->XXX instead of mwin__XXX.
189         (mface__free_realized): Don't call mwin__free_realized_face.
190
191         * draw.c (Mdepth): Don't declare it here.
192         (draw_background): Call frame->driver->XXX instead of mwin__XXX.
193         (render_glyphs, render_glyph_string): Likewise.
194         (mdraw__init): Don't set Mdepth.
195         (mdraw_text, mdraw_image_text, mdraw_text_with_control): Call
196         M_CHECK_WRITABLE.
197         (mdraw_text_per_char_extents): Return 0 on success and -1 on
198         error.
199         (mdraw_text_items): Check FRAME is writable.
200         (mdraw_per_char_extents): Implement body.
201
202         * Makefile.am (lib_LTLIBRARIES): Include libm17n-gui.la and
203         libm17n-gd.la.
204         (OPTIONAL_LD_FLAGS): Include @FONTCONFIG_LD_FLAGS@.
205         (GUI_SOURCES): Delete it.
206         (libm17n_X_la_SOURCES): Don't include ${GUI_SOURCES}.
207         (libm17n_gui_la_SOURCES, libm17n_gui_la_LIBADD)
208         (libm17n_gui_la_LDFLAGS, libm17n_gd_la_SOURCES)
209         (libm17n_gd_la_LIBADD, libm17n_gd_la_LDFLAGS): New targets.
210         (linkgui_LDADD): Set to libm17n-gui.la
211         (linkgui_LDFLAGS): New target.
212         (SRC): Include ${libm17n_gui_la_SOURCES} and
213         ${libm17n_gd_la_SOURCES}.
214
215 2004-05-24  Kenichi Handa  <handa@m17n.org>
216
217         * draw.c (draw_background): Don't draw background even if
218         rface->face.property[MFACE_BACKGROUND] is not Mnil.
219
220 2004-05-22  Kenichi Handa  <handa@m17n.org>
221
222         * m17n-X.c (xft_open_font): Fix anti_alias setting.
223
224 2004-05-20  Kenichi Handa  <handa@m17n.org>
225
226         * m17n-gui.h (MFaceHookFunc): Change this function type to void.
227
228         * m17n-gui.c: Include "plist.h".
229         (mframe): If PLIST is NULL, initialize it to emply plist.
230
231         * m17n-X.c (build_font_list): Don't set property[MFONT_TYPE].
232         (xft_driver): New variable.
233         (xft_select, close_xft, xft_open_font, xft_open, xft_close)
234         (xft_find_metric, xft_render): New function.
235         (mwin__init): Adjusted for the new mfont__driver_list.
236         (mwin__open_device): Assume arg PARAM is not NULL.  Push a newly
237         generated face to PARAM.
238         (mwin__realize_face): Fix setting of box colors.  Don't call hook
239         function here.
240         (mwin__draw_hline): New function.
241         (mwin__xft_close, mwin__xft_open, mwin__xft_get_metric)
242         (mwin__xft_render): Delete these function.
243
244         * internal-gui.h (struct MFrame): New member tick.
245         (struct MGlyphString): New member tick.
246         (mwin__draw_rect, mwin__draw_empty_boxes): Extern them.
247         (mwin__xft_open, mwin__xft_close, mwin__xft_get_metric)
248         (mwin__xft_render): Delete extern.
249
250         * fontset.c (mfont__lookup_fontset): Make the code simpler.
251         (mfontset): Always increment the reference count of returned
252         object.
253
254         * font-ft.c (mfont__ft_fini): Don't include <otf.h> here.
255         (MFTInfo): Moved to font.h.
256         (ft_iso8859_1_font_list): Delete this variable.
257         (set_font_info): Don't set font->property[MFONT_TYPE].
258         (set_font_info): Don't udpate ft_iso8859_1_font_list.
259         (add_font_info): Change type to void.
260         (fc_list): Change anme from xft_list.  Caller changed.  Include
261         FC_FOUNDRY and FC_PIXEL_SIZE in FcObjectSet.
262         (mfont__ft_driver): Change name from ft_driver.  Caller changed.
263         (ft_select): Check HAVE_FONTCONFIG instead of HAVE_XFT2.
264         (close_ft): Don't call mwin__xft_close.  Unref
265         ft_info->extra_info.
266         (ft_open): Don't setup ft_info->fontname.  Don't call
267         mwin__xft_open.
268         (ft_find_metric): Don't call mwin__xft_get_metric.
269         (ft_encode_char): Call rfont->driver->open instead of ft_open.
270         (ft_render): Don't check HAVE_XFT2.  Don't call mwin__xft_render.
271         (mfont__ft_init): Adjusted for new mfont__driver_list.
272         (mfont__ft_fini): Don't unref ft_iso8859_1_font_list.
273
274         * font.c (mfont__driver_list): Make it MPlist.
275         (mfont__init): Adjust initialization of mfont__driver_list.
276         (mfont__fini): Free mfont__driver_list.
277         (mfont__set_spec_from_face): Don't set spec->property[MFONT_TYPE].
278         (mfont__select): Adjusted for the new mfont__driver_list.
279
280         * font.h (enum MFontProperty): Delete MFONT_TYPE.
281         (mfont__drirver_list): Adjust prototype.
282         (MFTInfo): Move to here from fron.c.  Deleve member fontname.
283
284         * face.h (struct MFace): Delete member realized_face_list, add
285         member frame_list.
286         (struct MRealizedFace): Delete member need_update
287         andnofont_rface, add member non_ascii_list.
288         (mface__update_frame_face): Extern it.
289
290         * face.c (hline_prop_list, box_prop_list, noop_hook): New
291         variables.
292         (get_hline_create, get_box_create): New functions.
293         (find_realized_face): Cancel previous change.  Arg RFONT deleted.
294         Use memcmp.
295         (free_face): Cancep previous change.  Free face->frame_list.
296         (serialize_hline): Do nothing if hline->width is zero.
297         (serialize_box): Do nothing if box->width is zero.
298         (mface__init): Setup all properties of mface__default.
299         (mface__fini): Free hline_prop_list and box_prop_list.
300         (mface__realize): Cancel previous change.  Update
301         face->frame_list.  Setup rface->non_ascii_list.
302         (mface__for_chars): Update rface->non_ascii_list.
303         (mface__free_realized): Free rface->non_ascii_list.
304         (mface__update_frame_face): New function.
305         (mface): Initialize face->frame_list.
306         (mface_copy): Likewise.  Just copy MFACE_HLINE and MFACE_BOX
307         properties.
308         (mface_merge): Likewise.
309         (mface_put_prop): If key is Mhline or Mbox, get value by
310         get_hline_create or get_box_create respectively.
311         (mface_put_prop): Update frame->tick and call
312         mface__update_frame_face if necessary.
313         (mface_update): Do nothing if func is noop_hook.
314
315         * draw.c (render_glyphs): If a font is not found, use
316         mwin__draw_empty_boxes.
317         (alloc_gstring): Initialize gstring->tick.
318         (get_gstring): Check gstring->tick.
319
320 2004-05-17  Kenichi Handa  <handa@m17n.org>
321
322         * face.c (find_realized_face): Return value changed.  If RFONT is
323         NULL, avoid unnecessary checking.
324         (free_face): Free face->realized_face_list.
325         (mface__realize): Adjusted for the change of find_realized_face.
326         If it returns a realized face that needs update, free it and
327         realize a new one.  Push a new realized face to
328         frame->realized_face_list instead of appending.
329         (mface__for_chars): Adjusted for the change of find_realized_face.
330         Short cut if the required font is in rface->ascii_rface.
331         (mface_put_prop): Free old value if necessary.  Set need_update
332         member of realized faces to 1.
333
334         * face.h (struct MFace): Delete member tick, add member
335         realized_face_list.
336         (struct MRealizedFace): Delete member tick, add member
337         need_update.
338
339 2004-05-13  Kenichi Handa  <handa@m17n.org>
340
341         * m17n-X.c (mwin__xft_open): Destroy unnecessary patterns.
342
343 2004-05-12  Kenichi Handa  <handa@m17n.org>
344
345         * internal-gui.h (mwin__xft_open): Arguemnt name changed.
346
347         * m17n-X.c (mwin__xft_open): Argument changed to fontname and
348         parse it XftNameParse.
349
350         * font-ft.c (MFTInfo) [HAVE_XFT2]: New member fontname.
351         (all_fonts_scaned): New variable.
352         (set_font_info): FAMILY may be Mnil.
353         (add_font_info): Argument changed.
354         (xft_list): Call add_font_info in it.
355         (ft_list): Likewise.
356         (ft_select): Make it work in the case family is Mnil.
357         (ft_open) [HAVE_XFT2]: Setup ft_info->fontname.
358         (mfont__ft_fini): Set all_fonts_scaned to 0.
359
360         * fontset.c (mfont__lookup_fontset): Don't repeatedly try a font
361         that is failed to open.
362
363 2004-05-10  Kenichi Handa  <handa@m17n.org>
364
365         * m17n-X.c (mwin__xft_render): Don't use anti-alias if the
366         device's depth is 1 (i.e. monochrome).
367
368         * Makefile.am (OPTIONAL_LD_FLAGS): Change the order of elements
369         to work around the problem of libtool.
370
371         * font-ft.c: Include <freetype/ftbdf.h>.
372         (Municode_bmp, Municode_full, Miso10646_1, Miso8859_1): New
373         variables.
374         (mfont__ft_init): Initialize them.
375         (ft_iso8859_1_font_list): New variable.
376         (set_font_info): Detect a font containing iso8859-1 glyphs and
377         register it in ft_iso8859_1_font_list.  If the font is not
378         scalable, assume it as BDF or PCF font and setup SIZE and RESY
379         properties of the font from its properties.
380         (add_font_list): If the font is not scalable, check if it is BDF
381         or PCF font.  If not, ignore it.
382         (ft_select): If FAMILY is Mnil, return NULL only if the requested
383         registry is not iso8859-1.
384         (ft_select) [not HAVE_XFT2]: If FAMILY is Mnil, select one from
385         ft_iso8859_1_font_list.
386         (ft_find_metric): If the font is not scalable, assume it as BDF
387         or PCF, and get a metric from its properties.
388         (mfont__ft_fini): Free ft_iso8859_1_font_list.
389
390 2004-05-07  Kenichi Handa  <handa@redhat.m17n.org>
391
392         * Makefile.am (libm17n_la_LIBADD): Include -ldl.
393         (libm17n_la_LDFLAGS): Delete it.
394         (noinst_PROGRAMS): Renamed from bin_PROGRAMS.
395         (install-binPROGRAMS, uninstall-binPROGRAMS): Delete them.
396
397 2004-05-06  Kenichi Handa  <handa@m17n.org>
398
399         * draw.c (compose_glyph_string): Fix previous change.
400
401 2004-04-30  Kenichi Handa  <handa@m17n.org>
402
403         * font-ft.c (ft_list): Delete unused variable `result'.
404         (ft_render): Fix for the case that bitmap.pitch < bitmap.width.
405
406 2004-04-27  Kenichi Handa  <handa@m17n.org>
407
408         * m17n-X.c: Include config.h
409         [HAVE_XFT2]: Include <X11/Xft/Xft.h>.
410         (GCInfo) [HAVE_XFT2]: New member xft_color_fore, xft_color_back.
411         (MWDevice) [HAVE_XFT2]: New member xft_draw.
412         (FRAME_CMAP, FRAME_VISUAL): New macros.
413         (free_device) [HAVE_XFT2]: Destroy device->xft_draw.
414         (xfont_driver): Make it static.
415         (mwin__open_device) [HAVE_XFT2]: Setup device->xft_draw.
416         (mwin__realize_face) [HAVE_XFT2]: Setup info->xft_color_fore and
417         info->xft_color_back.
418         (MXftFontInfo) [HAVE_XFT2]: New type.
419         (mwin__xft_close) [HAVE_XFT2]: New function.
420         (mwin__xft_open) [HAVE_XFT2]: New function.
421         (mwin__xft_get_metric) [HAVE_XFT2]: New function.
422         (mwin__xft_render) [HAVE_XFT2]: New function.
423
424         * internal-gui.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
425         (mwin__xft_open, mwin__xft_close) [HAVE_FREETYPE]: New externs.
426         (mwin__xft_get_metric, mwin__xft_render) [HAVE_FREETYPE]: New
427         externs.
428
429         * font.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
430
431         * font-ft.c: Don't include FT_FREETYPE_H here.
432         [HAVE_XFT2]: Include <fontconfig/fontconfig.h>.
433         (fontconfig_initialized, fc_config) [HAVE_XFT2]: New variables.
434         (MFTInfo): New member charmap_index.
435         (MFTInfo) [HAVE_XFT2]: New member xft_info.
436         (check_otf_filename): Renamed from check_filename.  Return value
437         changed.
438         (ft_set_property): This function deleted.
439         (set_font_info): New function.
440         (add_font_list): Argument changed.  Add multiple fonts.
441         (xft_list) [HAVE_XFT2]: New function.
442         (ft_list) [not HAVE_XFT2]: New function.
443         (ft_select): Add code for Xft.
444         (close_ft): Likewise.
445         (ft_open): Likewise.
446         (ft_find_metric): Likewise.
447         (ft_encode_char): Likewise.
448         (ft_render): Likewise.
449
450         * makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@.
451
452 2004-04-26  Kenichi Handa  <handa@m17n.org>
453
454         * textprop.c (mtext_attach_property): Declare the return type as
455         `int'.
456
457 2004-04-21  Kenichi Handa  <handa@m17n.org>
458
459         * Makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@
460
461 2004-04-09  Kenichi Handa  <handa@m17n.org>
462
463         * font-flt.c (struct): New members seq_beg, seq_end, seq_from,
464         seq_to.
465         (load_command): Setup above members.
466
467 2004-04-05  Kenichi Handa  <handa@m17n.org>
468
469         * m17n-X.c (xfont_encode_char): Fix checking of byte1 and byte2.
470
471 2004-03-30  Kenichi Handa  <handa@m17n.org>
472
473         * m17n-X.c (xfont_encode_char): Return MCHAR_INVALID_CODE if code
474         >= 0x10000.
475
476         * m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 2.
477         (M17NLIB_VERSION_NAME): Changed to 1.0.2.
478
479 2004-03-29  Kenichi Handa  <handa@m17n.org>
480
481         * Version 1.0 Patch Level 2 released.
482
483 2004-03-29  Kenichi Handa  <handa@m17n.org>
484
485         * charset.c (make_charset): Set charset->fully_loaded and
486         charset->simple correctly.  Don't try to get charset->min_char and
487         charset->max_char for a charset of method subset and superset.
488         Don't load a mapping file here.
489         (mcharset__init): Set unified_max.
490         (mcharset__load_from_database): Free a working plist.
491
492         * coding.c (mcoding__fini): Free all malloced data.
493
494         * input-gui.c (win_create_ic): Set control.as_image for preediting
495         to 0.
496
497         * internal.h (M17N_OBJECT_REGISTER): Check the member `used' (not
498         `count') to initialize the array.
499
500         * locale.c (mlocale_set): Fix the order of M17N_OBJECT_REF and
501         M17N_OBJECT_UNREF.
502
503         * m17n-X.c (xfont_render): If rface->rfont is null, draw a
504         rectangle.
505         (mwin__create_window): Fix bug of setting a background pixel of a
506         new window.
507         (mwin__adjust_window): Clear the window before drawing.
508
509         * m17n-core.c (mdebug__report_object): Free array->objectes if
510         necessary.
511         (m17n_init_core): Don't set report_header_printed to 0 here.
512         Fix debugging information.
513         (m17n_fini_core): Set report_header_printed to 0 here.
514
515         * m17n-core.h (mplist_deserialize): Extern it.
516
517         * m17n-gui.c (m17n_fini_win): Fix debugging information.
518
519         * m17n.c (m17n_fini): Fix debugging information.
520
521         * mtext.c (mtext__adjust_foramt): New function.
522
523         * mtext.h (mtext__adjust_foramt): Extern it.
524
525         * plist.c (mplist_deserialize): Renamed from mplist__deserialize.
526
527         * plist.h (mplist__deserialize): Don't extern it.
528
529         * symbol.c (msymbol__fini): Set freed_symbols to 0.  Set all
530         elements of symbol_table to NULL.  Report about created and freed
531         symbols if MDEBUG_FINI is set.
532
533 2004-03-22  Kenichi Handa  <handa@m17n.org>
534
535         * m17n-core.c (m17n_init_core): Set merror_code to MERROR_NONE.
536
537         * m17n.c (m17n_init): Fix the way of checking merror_code.
538
539         * m17n-gui.c (m17n_init_win): Fix the way of checking merror_code.
540
541 2004-03-22  Kenichi Handa  <handa@m17n.org>
542
543         * fontset.c (realize_font_group): Adjust the font size by
544         mfont__resize before selecting a font.
545
546         * font-ft.c (mfont__ft_init): Add oblique and boldoblique.
547
548 2004-03-19  Kenichi Handa  <handa@m17n.org>
549
550         * Version 1.0 Patch Level 1 released.
551
552 2004-03-19  Kenichi Handa  <handa@m17n.org>
553
554         * m17n-core.h (M17NLIB_PATCH_LEVEL): New macro.
555
556         * m17n-core.c (M17NLIB_PATCH_LEVEL): Describe it.
557
558 2004-03-19  Kenichi Handa  <handa@m17n.org>
559
560         Re-apply the changes forgotten in the released version.
561
562         * charset.c (mcharset__load_from_database): Call
563         mchar_define_charset.
564
565         * coding.c (encode_unsupporeted_char): Put Mcoding text property.
566         (mconv_encode_range): Put Mcoding text property.
567
568 2004-03-18  Kenichi Handa  <handa@m17n.org>
569
570         * draw.c (Mdepth): New variable.
571         (visual_order): Delete unused local var `pos'.
572         (compose_glyph_string): Fix for the case that gstring->glyphs is
573         realloced.  Stop generating glyphs at TO.  Fix handling of
574         control charaters.
575         (layout_glyphs): Get metrics of all glyphs in advance.  Set
576         lbearing and rbearing of base of composition glyph correctly.
577         Handle left-overhang glyphs correctly.
578         (alloc_gstring): New arg frame.  Set gstring->anti_alias.  Caller
579         changed.
580         (dump_combining_code): Change the defualt off_x character to ".".
581         (mdraw__init): Initialize Mdepth.
582
583         * face.c (work_gstring): New variable
584         (mface__init): Initialize work_gstring.
585         (mface__fini): Free work_gstring.glyphs.
586         (mface__realize): Don't handle videomode property here.  Adjusted
587         for the change of mfont__get_metric.
588         (mface__for_chars): Adjusted for the change of mfont__get_metric.
589
590         * face.h (enum face_gc): Moved to m17n-X.c.
591
592         * font.h (struct MFontDriver): Arguments of find_metric changed.
593         (mfont__select): Prototype adjusted.
594         (mfont__get_metric): Likewise.
595         (mfont__ft_drive_otf): Likewise.
596         (mfont__flt_run): Likewise.
597         
598         * font.c (mfont__select): New argument layouter.  If layouter is
599         different in the registered font, make a new copy of realized
600         font.
601         (mfont__get_metric): Argument changed.  Get metrics of multiple
602         glyphs.
603         (mfont_find): Call mfont__select with layouter as Mnil.
604
605         * font-flt.c (FontLayoutContext): New member rfont.
606         (run_otf): Adjusted for the change of mfont__ft_drive_otf.
607         (mfont__flt_run): Argument changed.  Initialize ctx.rfont.
608
609         * font-ft.c (ft_find_metric): Arguments changed.  Get metrics of
610         multiple glyphs.
611         (NUM_POINTS): New macro.
612         (MPointTable): New type.
613         (ft_render): Use mwin__draw_points instead of mwin__draw_bitmap.
614         (mfont__ft_drive_otf): New argument rfont.
615
616         * fontset.c (realize_font_group): Adjusted for the changed of
617         mfont__select.
618         (check_fontset_element): This function deleted.
619
620         * input-gui.c (adjust_window_and_draw): Locate a preedit window
621         off the parent window if the preedit text is zero length.
622
623         * internal-gui.h (struct MFrame): New members foreground,
624         background, videomode, font.
625         (struct MGlyphString): New member anti_alias.
626         (MDrawPoint): New type.
627         (mwin__draw_bitmap): Prototype deleted.
628         (mwin__draw_points): Prototype added.
629
630         * m17n-gui.h (MDrawControl): New member anti_alias.
631
632         * m17n-gui.c (free_frame): Free frame->font.
633         (mframe): Set the fontset of frame->face to the default fontset.
634
635         * m17n-X.c (RGB_GC): New type.
636         (enum gc_index): Renamed from enum face_gc.  Member names changed.
637         (GCInfo): New typel
638         (struct MWDevice): Members foreground and background deleted.  New
639         member scratch_gc, gc_list.
640         (DEFAULT_FONT, FALLBACK_FONT): New macros.
641         (free_device): Free GCs in device->gc_list.
642         (get_rgb_gc): New function.
643         (get_gc): Renamed and argument changed from get_color.
644         (get_gc_for_anti_alias): New function.
645         (xfont_find_metric): Arguments changed.  Get metrics of multiple
646         glyphs.
647         (set_region): Argument changed.  Caller changed.
648         (xfont_render): Allways set a font in gc.
649         (x_error_handler, x_io_error_handler): Define only if
650         X_SET_ERROR_HANDLER is defined.
651         (mwin__open_device): Create device->scratch_gc.  Set members
652         foreground, background, and videomode of frame.  Call
653         XSetErrorHandler and XSetIOErrorHandler only if
654         X_SET_ERROR_HANDLER is defined.
655         (struct gc_list): Deleted.
656         (REGISTER_GC, UNREGISTER_GC): These macros deleted.
657         (mwin__realize_face): Adjusted for the change of the format of
658         rface->info and the charge of set_region.
659         (mwin__free_realized_face, mwin__fill_space, mwin__draw_hline)
660         (mwin__draw_box): Likewise.
661         (mwin__draw_bitmap): This function deleted.
662         (mwin__draw_points): New function.
663         (mwin__verify_region): Adjusted for the change of the format of
664         rface->info and the charge of set_region.
665         (mwin__create_window): Inherit backgound pixel from parent.
666         (mwin__dump_gc): Adjusted for the change of the format of
667         rface->info.
668
669 2004-03-16  Kenichi Handa  <handa@m17n.org>
670
671         * m17n-X.c (mwin__parse_event): Fix handling of modifier keys.
672
673         * input.c (M_key_alias): New variable.
674         (handle_key): Try M_key_alias property of a key too.
675         (minput__init): Initialize M_key_alias.  Give that property to
676         symbols in one_char_symbol.  Fix bug of initializing
677         one_char_symbol.
678
679         * draw.c (compose_glyph_string): Don't handle
680         ignore_formatting_char here.  Include formatting characters in the
681         range processed by a FTL.
682         (layout_glyph_string): Handle ignore_formatting_char here.
683
684 2004-03-12  Kenichi Handa  <handa@m17n.org>
685
686         * input-gui.c (win_create_ic): Enable bidi in status control.
687
688         * draw.c (visual_order): Avoid re-ordering of combining glyphs only.
689
690 2004-03-09  Kenichi Handa  <handa@m17n.org>
691
692         * input.c (load_input_method): If title is not specified, use the
693         input method name as title.
694
695         * m17n-X.c (get_color): Make it static.
696         (xim_create_ic, xim_destroy_ic, x_error_handler)
697         (x_io_error_handler): Likewise.
698
699 2004-03-01  Kenichi Handa  <handa@m17n.org>
700
701         * Version 1.0 released.
702
703 \f
704 Copyright (C) 2003, 2004
705   National Institute of Advanced Industrial Science and Technology (AIST)
706   Registration Number H15PRO112
707
708 This file is part of the m17n library.
709
710 The m17n library is free software; you can redistribute it and/or
711 modify it under the terms of the GNU Lesser General Public License
712 as published by the Free Software Foundation; either version 2.1 of
713 the License, or (at your option) any later version.
714
715 The m17n library is distributed in the hope that it will be useful,
716 but WITHOUT ANY WARRANTY; without even the implied warranty of
717 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
718 Lesser General Public License for more details.
719
720 You should have received a copy of the GNU Lesser General Public
721 License along with the m17n library; if not, write to the Free
722 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
723 02111-1307, USA.