12018-02-08  K. Handa  <handa@gnu.org>
2
3	Version 1.8.0 released.
4
5	* m17n-core.h (M17NLIB_MINOR_VERSION): Changed to 8.
6	(M17NLIB_PATCH_LEVEL): Changed to 0.
7	(M17NLIB_VERSION_NAME): Changed "1.8.0".
8
92017-12-09  handa  <handa@gnu.org>
10
11	* font.c (mfont__set_spec_from_plist): Fix for buffer overrun (bug
12	#50091).
13
142017-12-08  handa  <handa@gnu.org>
15
16	* m17n-core.c (report_object_array): Check `objects' member
17	before freeing it.
18	(mdebug__register_object): Initialize `array' if `objects' member
19	is null.
20
21	* internal.h (M17N_OBJECT_UNREF): Call m17n_object_unref if
22	MDEBUG_FINI is specified.
23
24	* face.c (mface__init): Prepend a space to the name of Mface.
25
26	* input.c (new_im_info): Add debug logging code.
27	(free_im_info): Likewise.
28	(minput__fini): Likewise.
29
302016-02-28  handa  <handa@gnu.org>
31
32	* input.c (minput_parse_im_names): Fix a parsing bug of an input
33	methods name that omits the
34	language part.
35
362015-11-13  Paul Eggert  <eggert@cs.ucla.edu>
37
38	Fix buffer overruns in run_stages index array
39
40	* m17n-flt.c (run_stages): Fix off-by-one bug in computing array
41	length; here, TO_POS is inclusive, not exclusive.
42	Also, do not overrun buffer if g_indices[len - 1] == -1.
43
442015-08-29  K. Handa  <handa@gnu.org>
45
46	* internal-gui.h (MGlyph): New member libotf_positioning_type.
47
48	* font-ft.c (ft_drive_otf): Define it for HAVE_OTF and not
49	HAVE_OTF separately.  Adjusted for the new libotf functions
50	OTF_drive_gsub_features and OTF_drive_gpos_features.
51
522015-08-29  Mike FABIAN  <mfabian@redhat.com>
53
54	* input.c (load_translation, filter): Fix type (int -> MSymbol).
55
562015-04-05  K. Handa  <handa@gnu.org>
57
58	* m17n-flt.h (MFLTGlyph): Fix documentation.
59
602014-12-10  K. Handa  <handa@gnu.org>
61
62	* Version 1.7.0 released.
63
642014-11-11  K. Handa  <handa@gnu.org>
65
66	* .gitignore: Converted from .cvsigore.
67
68	* .cvsignore: Delete it.
69
702014-03-23  K. Handa  <handa@gnu.org>
71
72	* input.c (filter): Do not increment the reference count of
73	ic->produced.
74
752014-03-12  K. Handa  <handa@gnu.org>
76
77	* m17n.h (minput_parse_im_names): Extern it.
78
79	* mtext.c (insert): Preserve the tailing NULL.
80
81	* input.c (create_ic_for_im): New argument `current'.  Caller
82	changed.
83	(pop_im): Reset the pushed input method.
84	(filter): Update ic_info and im_info after popping and pushing.
85
862014-03-07  K. Handa  <handa@gnu.org>
87
88	* input.c (prepare_fallback_input_methods): Use
89	minput_parse_im_names.
90	(re_init_ic): Do not save and restore ic_info->fallbacks.
91	(check_fallback): Check if map->submaps is NULL.
92	(minput_parse_im_names): New function.
93
94	* plist.c (read_mtext_element): Be sure that the first argument to
95	read_mtext_element is null terminated.
96
972014-02-09  K. Handa  <handa@gnu.org>
98
99	* internal.h (M17N_OBJECT_UNREF): Set an object having extended
100	count to NULL if it is freed.
101
1022014-02-09  K. Handa  <handa@gnu.org>
103
104	Changes to implement fallback input methods.
105
106	* input.h (MIMInputStack): New type.
107	(MInputContextInfo): New members pushing_or_switching, fallbacks,
108	and stack.
109
110	* input.c (MSwitch_im, Mpush_im, Mpop_im, Mfallback_input_method):
111	New variables.
112	(fallback_input_methods): New variables.
113	(prepare_fallback_input_methods): New function.
114	(fully_initialize): Initialize new variables.  Call
115	prepare_fallback_input_methods at the end.
116	(parse_action_list): Recognize Mpush_im, Mpop_im, and Mswitch_im.
117	(create_ic_for_im): New function.
118	(check_variable_value): Recognize Mplits as type.
119	(take_action_list): Handle Mpush_im, Mpop_im, and Mswitch_im.
120	(handle_key): Propagate the return value of take_action_list to
121	the caller.  Update the saved values of preedit text and cursor
122	position after running the init-actions of a state.
123	(struct MIMInputStack): New structure.
124	(pop_im, push_im): New funcitons.
125	(init_ic_info): Create contexts of fallback input methods.
126	(fini_ic_info): Free the above contexts.
127	(re_init_ic): Save and restore ic_info->fallbacks and
128	ic_info->stack.
129	(check_command_key): New function.
130	(check_reload): Call check_command_key.
131	(check_fallback): New function.
132	(filter): Handle push/pop input methods.
133	(minput__fini): Unref fallback_input_methods.
134
135	* input-gui.c (win_filter): Restore ic->info to the original value
136	before calling "filter" driver.
137
1382013-10-28  Kenichi Handa  <handa@gnu.org>
139
140	* mtext.c (mtext_ref_char): Fix the logic.
141
1422012-12-15  Kenichi Handa  <handa@gnu.org>
143
144	* input.c [EXAMPLE_CODE] (get_im_command_description): Fix typo.
145
1462012-09-18  Kenichi Handa  <handa@m17n.org>
147
148	* Version 1.6.4 released.
149
1502012-09-17  Kenichi Handa  <handa@gnu.org>
151
152	* m17n-flt.c (run_stages): After removing separator glyphs,
153	re-check ctx->out->used.
154
1552012-04-23  Kenichi Handa  <handa@m17n.org>
156
157	* m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 4.
158	(M17NLIB_VERSION_NAME): Changed to "1.6.4"
159
1602012-03-21  Kenichi Handa  <handa@m17n.org>
161
162	* font-ft.c (fc_decode_prop): Fix for the case of too large VAL.
163
1642012-02-28  Kenichi Handa  <handa@m17n.org>
165
166	* m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 3.
167	(M17NLIB_VERSION_NAME): Changed to "1.6.3".
168
1692011-10-11  Kenichi Handa  <handa@m17n.org>
170
171	* Version 1.6.3 released.
172
1732011-09-12  Kenichi Handa  <handa@m17n.org>
174
175	* draw.c (analyse_bidi_level): Adjust a type (FriBidiParType).
176
1772011-06-19  Kenichi Handa  <handa@m17n.org>
178
179	* Makefile.am (libm17n_X_la_LIBADD): Add @FONTCONFIG_LD_FLAGS@.
180
1812011-03-09  Kenichi Handa  <handa@m17n.org>
182
183	* input.c (take_action_list): Move the handling of candidate-list
184	change to the function filter.
185	(filter): Adjusted as above.
186
1872011-02-14  Kenichi Handa  <handa@m17n.org>
188
189	* input.c (minput_list): Change the format of returning plist.
190
1912011-02-14  Kenichi Handa  <handa@m17n.org>
192
193	* m17n.h (minput_list): Extern it.
194
195	* input.c (MIMExternalModule): New member 'name'.
196	(load_external_module): Return value changed.
197	(unload_external_module): New function.
198	(fini_im_info): Use unload_external_module.
199	(load_im_info): Adjuted for the change of load_external_module.
200	(minput_list): New function.
201
2022011-01-06  Kenichi Handa  <handa@m17n.org>
203
204	* coding.c: Fix comment syntax for doxygen.
205
2062010-12-13  Kenichi Handa  <handa@m17n.org>
207
208	* m17n-flt.c (mflt_enable_new_feature): Document it.
209
210	* m17n-flt.h: Exclude extern variables from Doxygen's scope.
211
2122010-12-10  Kenichi Handa  <handa@m17n.org>
213
214	* m17n-flt.c (mflt_dump_gstring): Document it.
215
2162010-11-05  Kenichi Handa  <handa@m17n.org>
217
218	* locale.c (make_locale): Don't call setlocale.  Just parse the
219	arg NAME.
220
2212010-10-04  Kenichi Handa  <handa@m17n.org>
222
223	* Version 1.6.2 released.
224
2252010-09-30  Kenichi Handa  <handa@m17n.org>
226
227	* input.c (open_im): Return -1 if the input method has no state.
228
2292010-09-17  Kenichi Handa  <handa@m17n.org>
230
231	* font-ft.c (ft_check_otf): Fix previous change.
232
2332010-09-16  Kenichi Handa  <handa@m17n.org>
234
235	* m17n-flt.c (parse_otf_command): Fix previous change.
236
2372010-09-14  Kenichi Handa  <handa@m17n.org>
238
239	* font-ft.c (ft_check_otf): Fix handling of negative features.
240
241	* m17n-flt.c (parse_otf_command): Fix handling of negative
242	features.
243	(decode_packed_otf_tag): Fix updating category code.
244	(run_command): Fix `encoded' property of separator glyph.
245	(mflt_run): Improve debug info printing.
246
2472010-09-11  Kenichi Handa  <handa@m17n.org>
248
249	* src/charset.c, src/chartab.c, src/coding.c, src/face.c,
250	src/font.c, src/fontset.c, src/input.c, src/m17n-X.c,
251	src/m17n-core.c, src/m17n-flt.c, src/m17n-gd.c, src/m17n-gui.c,
252	src/m17n.c, src/mtext.c, src/plist.c, src/symbol.c,
253	src/textprop.c: Print debug information to mdebug__output instead
254	of stderr.
255
2562010-09-02  Kenichi Handa  <handa@m17n.org>
257
258	* draw.c (visual_order): Reorder only RTL composed-sequence.
259
2602010-09-01  Kenichi Handa  <handa@m17n.org>
261
262	* draw.c (compose_glyph_string): When the script `inherited' and
263	`common' can't be resolved, use "block" property of the character.
264
2652010-08-31  Kenichi Handa  <handa@m17n.org>
266
267	* draw.c (compose_glyph_string): Allow running flt striding over
268	the cursor position.
269
2702010-08-19  Kenichi Handa  <handa@m17n.org>
271
272	* m17n-X.c (MDisplayInfo): New member altgr_mask.
273	(find_modifier_bits): Set disp_info->altgr_mask.
274
275	* input.c (fully_initialize): Make it static.
276
277	* input.h (MINPUT_KEY_ALTGR_MODIFIER): New macro.
278
279	* input-gui.c (minput_event_to_key): Handle
280	MINPUT_KEY_ALTGR_MODIFIER.
281
2822010-08-12  Kenichi Handa  <handa@m17n.org>
283
284	* character.h (STRING_CHAR_ADVANCE_UTF8): Sanitize the code.
285	(STRING_CHAR_ADVANCE_UTF16): Likewise.
286
287	* font.c (mfont__init): Initialize buf to NULL.
288	(mfont__id): Likewise.
289
290	* font-ft.c (ft_encapsulate): Use MDEBUG_PRINT1 instead of
291	MDEBUG_DUMP.
292	(ft_check_otf): Move the label not_otf: within #ifdef HAVE_OTF.
293	(get_otf): Move the code within #ifdef HAVE_OTF.
294	(ft_drive_otf): Move declarations of some local variables within
295	#ifdef HAVE_OTF.
296
2972010-08-11  Kenichi Handa  <handa@m17n.org>
298
299	* input.h (MInputContextInfo): New member state_hook.
300
301	* input.c (shift_state): Just set ic_info->state_hook, instead of
302	taking state-hook actions.
303	(handle_key): Check ic_info->state_hook.  If KEY is unhandled,
304	init ic_info->state_hook.
305
3062010-08-09  Kenichi Handa  <handa@m17n.org>
307
308	* m17n-flt.c (try_otf): Remove unused local vars.
309
310	* input.c (fully_initialize): Avoid compiler warning by casting.
311
312	* m17n-core.c (m17n_init_core): Fix handling of env_value.
313
314	* fontset.c (realize_fontset_elements): Fix typo (pl->plist).
315
316	* coding.c (decode_coding_iso_2022): Sanitize "if" condition.
317
3182010-04-23  Kenichi Handa  <handa@m17n.org>
319
320 	* Version 1.6.1 released.
321
3222010-04-23  Kenichi Handa  <handa@m17n.org>
323
324	* m17n-flt.c (enum GlyphInfoMask): Shift upper masks 1-bit left.
325	(decode_packed_otf_tag): If a glyph has combining information,
326	don't touch it.
327
3282010-04-23  Kenichi Handa  <handa@m17n.org>
329
330	* font-ft.c (ft_drive_otf): Reset 28th bit of g->g.internal for
331	storing OTF feature tag.
332
3332010-04-19  Kenichi Handa  <handa@m17n.org>
334
335	* m17n-flt.c (run_stages): Update category code of glyphs if
336	category table is changed.
337
3382010-04-05  Kenichi Handa  <handa@m17n.org>
339
340	* font-ft.c (ft_check_cap_otf): Fix conditions to call
341	OTF_check_features.
342
343	* database.c (check_version): Fix previous change.
344
3452010-04-02  Kenichi Handa  <handa@m17n.org>
346
347	* m17n-core.h (M17NLIB_MINOR_VERSION): Changed to 6.
348	(M17NLIB_PATCH_LEVEL): Changed to 1.
349	(M17NLIB_VERSION_NAME): Changed "1.6.1".
350
3512010-03-30  Kenichi Handa  <handa@m17n.org>
352
353	* Version 1.6.0 released.
354
3552010-03-01  Kenichi Handa  <handa@m17n.org>
356
357	* m17n-flt.c (run_rule): Fix checking of glyph availability.
358
3592010-02-18  Kenichi Handa  <handa@m17n.org>
360
361	* m17n-gui.c (register_device_library): Preprend M17N_MODULE_DIR
362	to the module file name.
363
364	* input.c (load_external_module): Preprend M17N_MODULE_DIR to the
365	module file name.
366
367	* charset.c (load_charset): Check the return value of fgets.
368
369	* Makefile.am: Build modules dynamically loaded with
370	-avoid-version and no -version-info.
371
3722010-01-15  Kenichi Handa  <handa@m17n.org>
373
374	* draw.c (run_flt): Set mflt_try_otf to rfont->driver->try_otf.
375	(mdraw__init): Set mflt_enable_new_feature to 1.
376
377	* font-ft.c (ft_try_otf): New function.
378	(mfont__ft_driver): Set ft_try_otf.
379
380	* font.h (struct MFontDriver): New member try_otf.
381
382	* m17n-X.c (xft_driver): Set xft_try_otf.
383	(xft_try_otf): New function.
384
385	* m17n-flt.h: (mflt_enable_new_feature): Extern it.
386	(mflt_try_otf): Extern it.
387
388	* m17n-flt.c (load_category_table): If mflt_enable_new_feature is
389	zero, return NULL for such categories that require the new
390	feature.
391	(parse_otf_command): If mflt_enable_new_feature is zero, return
392	-1.
393	(load_otf_command): Fix previous change.
394	(load_flt): Check the return value of load_category_table.
395	(try_otf): Renamed from run_otf_category.  Call mflt_try_otf
396	instead of font->drive_otf.
397	(run_command): Call try_otf instead of run_otf_category.
398	(m17n_init_flt): Initialize mflt_enable_new_feature to 0,
399	mflt_try_otf to NULL.
400	(mflt_enable_new_feature): New variable.
401	(mflt_try_otf): New variable.
402
4032009-12-10  Kenichi Handa  <handa@m17n.org>
404
405	* m17n-flt.c (parse_otf_command): Handle ":otf?".
406	(run_otf_category): If not features are specified, reset category
407	codes.
408	(run_command): On copy, don't re-calculate a category code.
409
4102009-12-03  Kenichi Handa  <handa@m17n.org>
411
412	* m17n-flt.c (run_stages): Reset category code if category-table
413	is changed.
414	(mflt_run): Don't set category code here.
415	(decode_packed_otf_tag): If no feature is applied, re-calculate
416	category code.
417
4182009-12-02  Kenichi Handa  <handa@m17n.org>
419
420	* m17n-flt.c (mflt_find): If FONT is specified but no flt is
421	found, return NULL.
422	(run_command): Don't set ENCODED and MEASURED of separator.
423
4242009-11-30  Kenichi Handa  <handa@m17n.org>
425
426	* m17n-flt.c (load_otf_command): Check 4th char against '?'.
427	(load_command): Likewise.
428	(decode_packed_otf_tag): New arg CTX.  If CTX->in == gstring,
429	update CTX->encoded.  Caller changed.
430
4312009-11-30  Kenichi Handa  <handa@m17n.org>
432
433	* font-ft.c (ft_drive_otf): Check if OUT is null or not.
434	(ft_drive_otf): Call OTF_drive_gsub_with_log and
435	OTF_drive_gpos_with_log.  Record the applied feature in
436	g->g.internal.
437
438	* font.c (mfont__get_glyph_id): Encode g->c instead of g->code.
439
440	* internal-flt.h (MAKE_COMBINING_CODE_BY_CLASS)
441	(COMBINING_BY_CLASS_P, COMBINING_CODE_CLASS)
442	(MAKE_PRECOMPUTED_COMBINDING_CODE, COMBINING_PRECOMPUTED_P):
443	Delete externs..
444	(PACK_OTF_TAG): Extern it.
445
446	* draw.c (reorder_combining_chars): Delete it.
447
448	* m17n-flt.h (mflt_font_id): Use type MFLFont.
449	(mflt_iterate_otf_feature): Likewise.
450
451	* m17n-flt.c (enum GlyphInfoMask): New member CategoryCodeMask and
452	CombinedMask.
453	(GET_CATEGORY_CODE, SET_CATEGORY_CODE, GET_COMBINED): New macros.
454	(SET_COMBINING_CODE): Set also CombinedMask.
455	(FontLayoutFeatureTable): Delete it.
456	(FeatureCodeTable): New type.
457	(FontLayoutCategory): Type of feature_table changed.
458	(load_category_table): Adjusted for the change of
459	FontLayoutCategory.
460	(unref_category_table): Likewise.
461	(gen_otf_tag): New member shift.  Caller changed.
462	(FontLayoutContext): New member category.
463	(run_rule): Compare g->c instead of g->code.
464	(decode_packed_otf_tag): New function.
465	(run_otf): Call decode_packed_otf_tag.  Don't reset combining-code
466	here.
467	(run_otf_category): New function.
468	(run_command): Set category-code if necessary.  Call
469	run_otf_category for FontLayoutCmdTypeOTFCategory.
470	(run_stages): Set ctx->category.  Get category from glyph if
471	possible.
472	(mflt_dump_gstring): New function.
473
4742009-11-26  Kenichi Handa  <handa@m17n.org>
475
476	* m17n-flt.c (enum FontLayoutCmdType): New member
477	FontLayoutCmdTypeOTFCategory.
478	(FontLayoutFeatureTable): New type.
479	(FontLayoutCategory): New members feature_table_size and
480	feature_table.
481	(load_category_table): Handle feature_table.
482	(unref_category_table): Likewise.
483	(load_otf_command): Handle FontLayoutCmdTypeOTFCategory.
484	(load_command): Likewise.
485	(free_flt_command): Likewise.
486
4872009-11-10  Kenichi Handa  <handa@m17n.org>
488
489	* draw.c (run_flt): Update category code of each glyph.
490
4912009-11-07  Kenichi Handa  <handa@m17n.org>
492
493	* font-ft.c (ft_drive_otf): Don't accumulate anchor adjustments.
494
4952009-11-05  Kenichi Handa  <handa@m17n.org>
496
497	* m17n-flt.c (run_otf): Fix updating of g->lbearing, etc.
498
499	* font-ft.c (ft_drive_otf): Use OTF_drive_gpos2 if possible.
500
5012009-10-28  Kenichi Handa  <handa@m17n.org>
502
503	* fontset.c (mdebug_flag): New variable.
504	(mfont__lookup_fontset): Print debug info.
505
506	* m17n-core.c (m17n_init_core): Call SET_DEBUG_FLAG for
507	MDEBUG_FONTSET.
508
509	* internal.h (enum MDebugFlag): Add MDEBUG_FONTSET.
510
511	* language.c (mscript__from_otf_tag): Adjusted for the new format
512	of the database <standard script unicode>.
513
5142009-10-22  Kenichi Handa  <handa@m17n.org>
515
516	* database.c (check_version): Fix the check.
517
518	* input.c (surrounding_pos): New arg *pos.
519	(integer_value): Fix handling of "@+0".
520	(take_action_list): Adjusted for the change of surrounding_pos.
521
5222009-10-05  Kenichi Handa  <handa@m17n.org>
523
524	* m17n-flt.h: (mflt_iterate_otf_feature, mflt_font_id): Extern
525	them.
526
527	* m17n-flt.c (FontLayoutCategory): New typedef.
528	(FontLayoutStage): Type of the member `category' changed.
529	(struct _MFLT): Type of the member `coverage' changed.  New member
530	need_config and font_id.
531	(apply_otf_feature): New function.
532	(load_category_table): New arg FONT.  If FONT is non-NULL, call
533	apply_otf_feature.  Setup category->definition.
534	(ref_category_table): New macro.
535	(unref_category_table): New function.
536	(load_flt): Adjusted for the type change of category.
537	(free_flt_stage): New arg FLT.
538	(list_flt): Adjusted for the type change of category.
539	(run_stages): Adjusted for the type change of category.
540	(configure_category, configure_flt): New function.
541	(m17n_init_flt): Initialize mflt_iterate_otf_feature and
542	mflt_font_id to NULL.
543	(mflt_get): Skip the heading configured FLTs.
544	(mflt_find): Likewise.  If necessary, configure the found flt.
545	(mflt_run): Handle mflt_iterate_otf_feature and mflt_font_id.
546	Adjusted for the type change of category.
547	(mflt_iterate_otf_feature, mflt_font_id): New variable.
548
549	* m17n-X.c (xfont_open): Set rfont->id.
550	(xft_driver): Set xft_iterate_otf_feature.
551	(xft_open): Set rfont->id.
552	(xft_iterate_otf_feature): New function.
553
554	* font.h (struct MRealizedFont): New member id.
555	(struct MFontDriver): New member iterate_otf_feature.
556
557	* font.c (mfont__get_glyph_id): Pay attention to. mfont->source.
558
559	* font-ft.c (ft_open, ft_encapsulate): Set rfont->id.
560	(get_otf): New funcition.
561	(ft_check_otf, ft_drive_otf): Use get_otf.
562	(iterate_callback, ft_iterate_otf_feature): New functions.
563	(mfont__ft_driver): Set ft_iterate_otf_feature.
564
565	* draw.c: Docstring updated.
566	(font_id): New function.
567	(run_flt): Set mflt_font_id and mflt_iterate_otf_feature before
568	calling mflt_run.
569
5702009-10-02  Kenichi Handa  <handa@m17n.org>
571
572	* m17n-flt.c (load_flt): Check the return value of
573	load_category_table.
574
5752009-09-03  Kenichi Handa  <handa@m17n.org>
576
577	* m17n-flt.c (run_otf): Clear combining code for glyphs whose
578	positions are adjusted by GPOS table.
579
5802009-08-13  Kenichi Handa  <handa@m17n.org>
581
582	* Version 1.5.5 released.
583
5842009-08-13  Kenichi Handa  <handa@m17n.org>
585
586	* m17n-core.h (M17NLIB_PATCH_LEVEL):  Changed to 5.
587	(M17NLIB_VERSION_NAME): Changed to "1.5.5".
588
5892009-03-03  Kenichi Handa  <handa@m17n.org>
590
591	* draw.c (compose_glyph_string): Check if category not Mnil.
592
5932009-03-02  Kenichi Handa  <handa@m17n.org>
594
595	* Version 1.5.4 released.
596
5972009-02-25  Kenichi Handa  <handa@m17n.org>
598
599	* m17n-core.c (report_object_array): For M-text and Plist, print
600	more information.
601
602	* m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 4.
603	(M17NLIB_VERSION_NAME): Changed to "1.5.4".
604
605	* input.c (get_candidate_list): Free unnecessary objects.
606	(take_action_list): Free plist.
607
6082009-02-04  Kenichi Handa  <handa@m17n.org>
609
610	* coding.c (mcoding__init): Add "Shift_JIS" as an alias of "sjis".
611
6122009-01-16  Kenichi Handa  <handa@m17n.org>
613
614	* m17n-core.h (Mcased, Msoft_dotted, Mcase_mapping, Mblock):
615	Extern them.
616
617	* character.c (Mcased, Msoft_dotted, Mcase_mapping, Mblock): New
618	variables.
619
6202009-01-14  Kenichi Handa  <handa@m17n.org>
621
622	* coding.c (decode_coding_iso_2022): Check invocation status
623	before updating charset0 and charset1.
624
625	* symbol.c (msymbol__canonicalize): Handle "windows-XXXX".
626
6272008-12-31  Kenichi Handa  <handa@m17n.org>
628
629	* m17n-flt.c (mflt_run): If g->encoded is set, don't clear
630	g->code.
631
6322008-10-30  Andreas Schwab <schwab@suse.de>  (tiny change)
633
634	* face.c (mface_get_prop): Fix strict aliasing bug.
635	(mface_put_prop): Likewise.
636
637	* m17n-gui.c (mframe): Fix strict aliasing bug.
638
6392008-10-20  Kenichi Handa  <handa@m17n.org>
640
641	* Version 1.5.3 released.
642
6432008-10-06  Kenichi Handa  <handa@m17n.org>
644
645	* draw.c (mdraw__init): Use TRUE only when
646	FRIBIDI_INTERFACE_VERSION is less than 3.
647
6482008-10-03  Kenichi Handa  <handa@m17n.org>
649
650	* database.c (mdatabase__find_file): Return a copy of filename if
651	it is absolute pathname.
652
6532008-09-25  Kenichi Handa  <handa@m17n.org>
654
655	* input.c (load_macros): Don't parse the action list here.
656	(load_im_info): Parse action lists of all macros.
657
6582008-09-24  Kenichi Handa  <handa@m17n.org>
659
660	* m17n-flt.c (mflt_find): Setup coverage of "combining" flt.
661
6622008-09-19  Kenichi Handa  <handa@m17n.org>
663
664	* input.c (fully_initialize): Rename "@reload" to "-reload".
665
6662008-09-17  Kenichi Handa  <handa@m17n.org>
667
668	* m17n-flt.c (run_stages): Fix combining with a variable width
669	font.
670
6712008-08-04  Kenichi Handa  <handa@m17n.org>
672
673	* input.c (fully_initialize): Add more aliaese (e.g. C-M-1
674	vs. C-A-1).
675
6762008-07-22  Kenichi Handa  <handa@m17n.org>
677
678	* input.c (fully_initialize): Fix previous change.
679
6802008-07-19  Kenichi Handa  <handa@m17n.org>
681
682	* input.c (fully_initialize): Fix previous change.
683
6842008-07-14  Kenichi Handa  <handa@m17n.org>
685
686	* font-ft.c (ft_list_family): New arg CHECK_ALIAS.  Callers changed.
687
6882008-07-14  Kenichi Handa  <handa@m17n.org>
689
690	* input.c (fully_initialize): Handle C-M-1, etc.
691
6922008-07-11  Kenichi Handa  <handa@m17n.org>
693
694	* input.c (minput_open_im): Check if the arg NAME is not Mnil.
695
6962008-06-23  Kenichi Handa  <handa@m17n.org>
697
698	* Version 1.5.2 released.
699
7002008-06-23  Kenichi Handa  <handa@m17n.org>
701
702	* m17n-core.h (M17NLIB_MINOR_VERSION): Changed to 5.
703	(M17NLIB_PATCH_LEVEL): Changed to 2.
704	(M17NLIB_VERSION_NAME): Changed "1.5.2".
705
7062008-06-13  Kenichi Handa  <handa@m17n.org>
707
708	* input.c (minput_config_file): Comment fixed for man-page.
709
7102008-06-13  Harshula  <harshula@gmail.com>  (tiny change)
711
712	* Makefile.am (libm17n_gd_la_LIBADD): Add @FREETYPE_LD_FLAGS@.
713
7142008-05-24  Kenichi Handa  <handa@m17n.org>
715
716	* m17n-flt.c (mdebug_dump_flt): Change return value to (MFLT *).
717
7182008-05-23  Kenichi Handa  <handa@m17n.org>
719
720	* Makefile.am (libm17n_gui_la_LIBADD): Include libm17n-core.la.
721	(libm17n_X_la_LIBADD): Include libm17n-core.la, libm17n.la, and
722	libm17n-flt.la.
723	(libm17n_gd_la_LIBADD): Likewise.
724
725	* input.c (take_action_list): Fix debug info.
726
7272008-05-14  Kenichi Handa  <handa@m17n.org>
728
729	* m17n-flt.c (run_rule): Check SRC_REGEX at first.
730	(run_stages): Fix index of g_indices.
731
7322008-04-03  Kenichi Handa  <handa@m17n.org>
733
734	* draw.c (compose_glyph_string): Don't run flt striding over the
735	cursor position.
736	(get_gstring): Don't use the cached gstring if cursor position is
737	changed.
738
7392008-04-02  Kenichi Handa  <handa@m17n.org>
740
741	* input.c (integer_value): Delete the 3rd arg VALUE.
742	(resolve_expression): Adjust the call of integer_value.
743	(take_action_list): Likewise.
744
7452008-03-06  Kenichi Handa  <handa@m17n.org>
746
747	* font-ft.c (ft_drive_otf): Don't ignore the otf-spec to apply all
748	features.
749
7502008-01-31  Kenichi Handa  <handa@ni.aist.go.jp>
751
752	* Version 1.5.1 released.
753
7542008-01-31  Kenichi Handa  <handa@ni.aist.go.jp>
755
756	* draw.c (mdraw_glyph_list): Refer to mfont__ft_driver only when
757	HAVE_FREETYPE is defined.
758
759	* font.h (OTF_Tag): Be sure that it is defined in any cases.
760
7612008-01-30  Kenichi Handa  <handa@ni.aist.go.jp>
762
763	* font.h (enum MFontOpenTypeTable, MFontCapability): Define them
764	unconditionally.
765
7662008-01-25  Kenichi Handa  <handa@ni.aist.go.jp>
767
768	* input.c (parse_action_list): Handle the case "(insert INTEGER)".
769
7702008-01-25  Kenichi Handa  <handa@ni.aist.go.jp>
771
772	* input.c (parse_action_list): Check M_candidates.
773	(get_im_info): If key is Mnil, be sure to set im_info->states to a
774	plist.
775
7762008-01-23  Kenichi Handa  <handa@ni.aist.go.jp>
777
778	* input.c (integer_value): Fix interpretation of "@-N".
779
7802008-01-17  Kenichi Handa  <handa@ni.aist.go.jp>
781
782	* input.c (get_following_char): Fix interpretation of POS.
783	(get_following_char): Fix interpretation of "@+N".
784
7852008-01-15  Kenichi Handa  <handa@ni.aist.go.jp>
786
787	* font-ft.c (ft_drive_otf): Don't refer to otf_gstring if HAVE_OTF
788	is not defined.
789
790	* Makefile.am (FLT_SOURCES): Include internal-flt.h.
791
7922008-01-07  Kenichi Handa  <handa@ni.aist.go.jp>
793
794	* m17n-flt.c (UPDATE_CLUSTER_RANGE): Don't check if clustering
795	now.
796	(run_rule): Call UPDATE_CLUSTER_RANGE when necessary.
797	(run_command): Check if clustering now before calling
798	UPDATE_CLUSTER_RANGE.
799
8002008-01-06  Kenichi Handa  <handa@m17n.org>
801
802	* font.c (mfont__get_glyph_id): Return -1 if some code is invalid.
803
804	* font-ft.c (ft_drive_otf): Fix checking of negative feature.
805
806	* m17n-X.c (xft_find_metric): Set g->g.measured.
807
808	* m17n-flt.c (Mequal): New variable.
809	(m17n_init_flt): Initialize it.
810	(FontLayoutCmdRule): Merge members supported_glyph and otf_spec
811	into a new member facility.
812	(load_command): Modify parsing of Mfont_facility.
813	(run_rule): Adjuted for the change of FontLayoutCmdRule.
814	(run_otf): Adjusted metrics if a->back is nonzero.
815
8162007-12-28  Kenichi Handa  <handa@ni.aist.go.jp>
817
818	* Version 1.5.0 released.
819
8202007-12-13  Kenichi Handa  <handa@ni.aist.go.jp>
821
822	* m17n-core.c (m17n_init_core): Handle the lang. env. MDEBUG_FLT.
823
824	* m17n-flt.c (mdebug_flag): Set to MDEBUG_FLT.
825	(run_rule): Check if a font has the specific glyph correctly.
826
827	* internal.h (enum MDebugFlag): Delete MDEBUG_FONT_OTF, change
828	MDEBUG_FONT_FLT to MDEBUG_FLT.
829
830	* font.c (mfont__get_glyph_id): Encode g->g.code (not g->g.c).
831
832	* font-flt.c: Delete it.
833
8342007-12-08  Kenichi Handa  <handa@ni.aist.go.jp>
835
836	* m17n-flt.c (run_rule): Fix printing of debug info.  Don't update
837	TO for the rule of SRC_HAS_GLYPH.
838
839	* draw.c (run_flt): Argument changed.
840	(compose_glyph_string): Adjusted for the above change.
841
8422007-12-07  Kenichi Handa  <handa@ni.aist.go.jp>
843
844	* plist.c (read_mtext_element): Don't free the malloced buffer.
845
8462007-12-04  Kenichi Handa  <handa@ni.aist.go.jp>
847
848	* m17n-core.h (merror_code): Extern it.
849
850	* m17n-misc.h (merror_code): Don't extern it.
851
852	* m17n.h: Handle the case of _M17N_FLT_H_ being defined.
853
854	* m17n-flt.h: Handle the case of _M17N_H_ being defined.
855
8562007-11-22  Kenichi Handa  <handa@ni.aist.go.jp>
857
858	* draw.c (compose_glyph_string): Check g->rface->layouter, not
859	g->rface->rfont->layouter.
860
861	* font-ft.c (ft_drive_otf): Fix setting of g->g.from and g->g.to.
862
863	* m17n-flt.c (FontLayoutContext): New member encoded_offset.
864	(run_rule): Use ctx->encoded_offset.
865	(run_command): Likewise.
866	(run_stages): Set ctx->encoded_offset.
867
8682007-11-21  Kenichi Handa  <handa@ni.aist.go.jp>
869
870	* m17n-flt.c (enum GlyphInfoMask): Adjusted for the change of
871	bit-size of MFLTGlyph->internal.
872
8732007-11-20  Kenichi Handa  <handa@ni.aist.go.jp>
874
875	* draw.c (visual_order): Exclude the last anchor glyph from the
876	iteration.
877
878	* m17n-flt.h (MFLTGlyph): New member <adjusted>.
879
880	* m17n-flt.c (run_otf): Set adjusted flag of glyphs if necessary.
881	(run_stages): Likewise.
882	(load_flt): Unref top after checking plist.
883
884	* m17n-X.c (xft_render): Check adjusted flag of glyphs.
885
8862007-11-12  Kenichi Handa  <handa@ni.aist.go.jp>
887
888	* font-ft.c (ft_check_otf): Fix arg to OTF_check_features.
889
890	* m17n-flt.c (Mcombining): New variable.
891	(Mfont_facility): Renamed from Mfont_has.  Referrer changed.
892	(enum FontLayoutCmdRuleSrcType): Delete SRC_EXIST, add
893	SRC_HAS_GLYPH and SRC_OTF_SPEC.
894	(FontLayoutCmdRule): Delete src.exist, add src.supported_glyph and
895	src.otf_spec.
896	(load_command): Adjusted for the above changes.
897	(run_rule): Likewise.
898	(combining_code_from_class): Delete it.
899	(mflt_get): Check flt->name against Mcombining, not Mt.
900
901	* internal-flt.h (Mcombining): Extern it.
902
903	* draw.c (compose_glyph_string): Call run_flt with Mcombining for
904	combining characters.
905
9062007-11-09  Kenichi Handa  <handa@ni.aist.go.jp>
907
908	* face.c (mface__realize): Reset measured flag before calling
909	mfont__get_metric.
910
911	* m17n-flt.c (run_stages): Fix handing of off_x and off_y.
912	(setup_combining_coverage): New function.
913	(setup_combining_flt): New function.
914	(mflt_get): If flt is not found, return NULL.  If name if Mt,
915	call setup_combining_flt.
916	(mflt_run): For debugging, print font family name.
917
918	* font-ft.c (ft_render): Fix handling of baseline_offset.
919	(ft_encapsulate): Set metrics in 26.6 fixed pixel.
920	(ft_render): Check pixel_mode to determine anti_alias.
921
922	* m17n-X.c (xfont_find_metric): Delete invalid "continue" line.
923	(xfont_find_metric): Set metrics in 26.6 fixed pixel.
924	(xfont_render): Set baseline_offset in pixel.
925	(xft_render): Fix handling of baseline_offset.
926
927	* draw.c (run_flt): Set font.font.family.
928	(compose_glyph_string): Fix handling of combining characters.
929
930	* fontset.c (try_font_list): Check if the named flt is surely
931	available.
932
9332007-11-07  Kenichi Handa  <handa@ni.aist.go.jp>
934
935	* draw.c (analyse_bidi_level): New function.
936	(visual_order): Do reordering using the already decided
937	bidi-level.
938	(compose_glyph_string): Decide bidi-level before calling flt.
939
940	* m17n-flt.c (mflt_run): Fix typo.
941
942	* font-ft.c (ft_drive_otf): Fix indexing gstring->glyphs.
943
9442007-11-06  Kenichi Handa  <handa@ni.aist.go.jp>
945
946	* draw.c (visual_order): Don't rely on the width of glyphs.
947	(run_flt): Fix culculation of g->g.to.
948
949	* m17n-flt.c (run_rule): Don't set error code here.
950	(run_cond): Likewise.
951	(run_otf): Fix culculation of xoff and yoff.
952	(run_command): Don't set error code here.
953	(PREV): New macro.
954	(NEXT): New macro.
955
956	* m17n-X.c (xfont_open): Keep rfont's metrics in 26.6 fixed pixels.
957	(xfont_find_metric): Set glyph's yadv to 0.
958	(xft_find_metric): Likewise.
959
960	* font-ft.c (ft_open): Keep rfont's metrics in 26.6 fixed pixels.
961	(ft_find_metric): Adjust glyph's metrics.
962	(ft_encapsulate): Keep rfont's metrics in 26.6 fixed pixels.
963	(ft_drive_otf): Set mark glyph's xadv to 0.
964
965	* face.c (mface__for_chars): Adjusts the unit of face's ascent and
966	descent.
967
9682007-10-29  Kenichi Handa  <handa@m17n.org>
969
970	* m17n-flt.h (struct _MFLTOtfSpec): Adjusted for the new FLT handling.
971	(mflt_get): Adjusted for the argument change.
972	(mflt_name): Adjusted for the return value change.
973
974	* m17n-flt.c (Mgenerator, Mend): New variables.
975	(flt_min_coverage, flt_max_coverage): New variables.
976	(GCPY): New macro.
977	(GDUP): Use it.
978	(Mfont_has): Renamed from Mexist.  Referrers chagned.
979	(gen_otf_tag): Handle the trailing whitespaces.
980	(otf_count_features, otf_store_features): Fix for negative features.
981	(parse_otf_command): Adjusted for the change of MFLTOtfSpec.
982	(load_otf_command): Likewise.
983	(free_flt_command): Adjusted for the change of MFLTOtfSpec.
984	(load_flt): Argument changed.  Caller changed.
985	(free_flt_list): New function.
986	(run_rule): Adjusted for the change of FontLayoutContext.
987	(mflt_run): Adjusted for the change of FontLayoutContext.
988
989	* m17n-gui.c (m17n_init_win): Call m17n_init_flt.
990	(m17n_fini_win): Call m17n_fini_flt.
991
992	* m17n-gui.h: Include m17n-flt.h.
993
994	* m17n-gd.c: Adusted for the change of MGlyph.
995
996	* m17n-X.c: Adusted for the change of MGlyph.
997	(xft_check_otf, xft_drive_otf): New functions.
998
999	* internal-gui.h (MGlyph): Modified for new FLT handling.
1000
1001	* fontset.c (try_font_list): Adusted for the change of MGlyph.
1002
1003	* font-ft.c: Adjusted for the change of MGlyph.
1004	(ft_check_cap_otf): Renamed from ft_check_otf.  Callers changed.
1005	(get_glyph_metric): Deleted.
1006	(ft_check_otf): New function.
1007	(ft_drive_otf): New fucntion.
1008
1009	* font.c: Adjusted for the change of MGlyph.
1010	(mfont__init): Don't call mfont__flt_init.
1011	(mfont__fini): Don't call mfont__flt_fini.
1012	(mfont__get_glyph_id, mfont__get_metrics): New functions.
1013
1014	* font.h (struct MRealizedFont): New members x_ppem and y_ppem.
1015	(MFLTFontForRealized): New struct.
1016	(struct MFontDriver): New members check_otf and drive_otf.
1017	(mfont__get_glyph_id, mfont__get_metrics): Extern them.
1018
1019	* face.c: Adjusted for the change of MGlyph.
1020
1021	* draw.c: Adjusted for the change of MGlyph.
1022
1023	* m17n.c (m17n_init): Don't call mchar_init.
1024
1025	* m17n-core.c (m17n_init_core): Call mchar_init.
1026
1027	* m17n-core.h (mchartable_min_char, mchartable_max_char): Extern them.
1028
1029	* input.c: Include "m17n.h" instead of "m17n-gui.h".
1030
1031	* chartab.c (mchartable): Initialize table->min_char to -1.
1032	(mchartable_min_char): New function.
1033	(mchartable_max_char): New function.
1034
1035	* Makefile.am (GUI_SOURCES): Delete font-flt.c.
1036	(libm17n_gui_la_LIBADD): Add ${top_builddir}/src/libm17n-flt.la.
1037
10382007-10-12  Kenichi Handa  <handa@m17n.org>
1039
1040	* m17n-core.h (Mcharset): Extern it.
1041	Move detabase related declarations from m17n.h.
1042
1043	* m17n-flt.h: Include m17n-core.h instead of m17n.h.
1044	(struct _MFLTOtfFeatures): New struct.
1045	(struct _MFLTOtfSpec): Delete gsub, gpos, etc, add gsub_gpos.
1046	(struct _MFLTFont): Delete otf, add check_otf.
1047	(MCHAR_INVALID_CODE): Define it.
1048
1049	* plist.c (read_mtext_element): Simplify the code.
1050
1051	* m17n.h: Move database related declarations to m17n-core.h
1052	(Mharset): Don't extern it.
1053
1054	* m17n.c (m17n_init): Don't call mdatabase__init.
1055
1056	* m17n-gd.c (read_rgb_txt): Check also /etc/X11/rgb.txt.  Downcase
1057	color names.
1058
1059	* m17n-flt.c: Include m17n-core.h instead of m17n.h.
1060	(Mexist): New variable.
1061	(enum FontLayoutCmdRuleSrcType): New enum SRC_EXIST.
1062	(FontLayoutCmdRule): New member src.exist.
1063	(parse_otf_command): Handle gsub_count and gpos_count separately.
1064	(load_otf_command): Adjusted for the change of MFLTOtfSpec.
1065	(load_command): Handle the command "exist".
1066	(free_flt_command): Adjusted for the change of MFLTOtfSpec.
1067	(run_rule): Handle the case SRC_EXIST.
1068	(run_otf): Adjusted for the change of MFLTOtfSpec.
1069	(run_command): Check the range of FROM.
1070	(check_otf_spec): Delete it.
1071	(m17n_init_flt): Call m17n_init_core instead of m17n_init.
1072	Initialize Mexist.
1073	(m17n_fini_flt): Call m17n_fini_core instead of m17n_fiini.
1074	(mflt_find): Call font->check_otf instead of check_otf_spec.
1075	(mflt_run): Keep the metrics in 26.6 fixed point.
1076
1077	* m17n-core.c (mdatabase__finder, mdatabase__loader): Delete them.
1078	(m17n_init_core): Call mdatabase__init.
1079
1080	* m17n-X.c (device_open): Use mplist_add, not mplist_push.
1081
1082	* internal.h (mdatabase__finder, mdatabase__loader): Delete externs
1083	of them.
1084
1085	* font-flt.c (Mexist): New variable.
1086	(enum FontLayoutCmdRuleSrcType): New enum SRC_EXIST.
1087	(FontLayoutCmdRule): New member src.exist.
1088	(load_category_table): Use isalnum, not isalpha.
1089	(load_command): Check the command "exist".
1090	(run_rule): Hande the case SRC_EXIST.
1091	(run_command): Check the range of FROM.
1092	(mfont__flt_init): Initialize Mexist.
1093
1094	* draw.c (layout_glyphs): Fix calculation of off_x and off_y.
1095
1096	* database.h (mdatabase__load_charset_func): Extern it.
1097
1098	* database.c: Include m17n-core.h instead of m17n.h.
1099	(load_chartable): Use mtext__from_data.
1100	(load_charset): Moved to charset.c
1101	(load_database): Call mdatabase__load_charset_func instead of
1102	load_charset.
1103	(mdatabase__load_charset_func): New variable.
1104	(mdatabase__init): Initialize mdatabase__load_charset_func and
1105	Mcharset.  Don't set mdatabase__finder and mdatabase__loader.
1106	(mdatabase__save): Use fwrite, not mconv_encode_stream.
1107	(Mcharset): Declare it here.
1108
1109	* charset.c: Include "database.h.".
1110	(load_charset): Moved from database.c.
1111	(mcharset__init): Initialize mdatabase__load_charset_func, don't
1112	initialize Mcharset.
1113
1114	* character.c (mchar_define_property): Call mdatabase_find directly.
1115	(mchar_get_prop): Call mdatabase_add directly.
1116	(mchar_put_prop): Call mdatabase_load directly.
1117	(mchar_get_prop_table): Likewise.
1118
1119	* Makefile.am (libm17n_core_la_SOURCES): Add database.[ch].
1120	(libm17n_la_SOURCES): Remove database.[ch].
1121	(libm17n_flt_la_LIBADD): Delete libm17n.la, add libm17n-core.la.
1122
11232007-09-18  Kenichi Handa  <handa@m17n.org>
1124
1125	* face.c (mface__realize): Try Freetype based font at first.
1126
1127	* font.c: Include <ctype.h>
1128
11292007-09-16  Kenichi Handa  <handa@m17n.org>
1130
1131	* m17n-flt.c (load_flt): New arg full.  If full is zero, load only
1132	coverage.
1133	(run_otf): Call font->get_metrics, not font->get_metric.
1134	(run_stages): Likewise.
1135	(CHECK_FLT_COVERAGE): New macro.
1136	(CHECK_FLT_STAGES): Call load_flt with the second arg 1.
1137	(check_otf_spec): New function.
1138	(m17n_fini_flt): Unref flt->coverage.
1139	(mflt_find): Argument changed.
1140	(mflt_name): New function.
1141	(mflt_coverage): Use CHECK_FLT_COVERAGE.
1142
1143	* m17n-flt.h (MFLTFont): Member get_metrics renamed from get_metric.
1144	(mflt_find): Prototype adjusted.
1145	(mflt_name): Extern it.
1146
11472007-09-14  Kenichi Handa  <handa@m17n.org>
1148
1149	* m17n-flt.h (struct _MFLTGlyph): Change signedness of members.
1150
1151	* font-flt.c (run_otf): Make debug info printing comaptible with
1152	that of m17n-flt.c.
1153	(run_command): Likewise.
1154	(mfont__flt_run): Likewise.
1155
1156	* m17n-flt.c (UPDATE_CLUSTER_RANGE): ctx->cluster_begin_idx is
1157	invalid only when it's negative.
1158	(run_otf): Likewise.
1159	(run_command): Likewise.
1160	(mflt_run): Initialize ctx.cluster_begin_idx to -1.
1161
11622007-09-10  Kenichi Handa  <handa@m17n.org>
1163
1164	* m17n-flt.h (struct _MFLTGlyph): New member encoded and measured.
1165	(struct _MFLTFont): Prototype of get_glyph_id changed.
1166
1167	* m17n-flt.c (enum GlyphInfoMask): Delete EncodedMask and
1168	PositionedMask.
1169	(GAPPEND): Delete this macro.
1170	(GET_ENCODED, SET_ENCODED, GET_MEASURED, SET_MEASURED): Adjusted
1171	for the change of MFLTGlyph.  Caller changed.
1172	(run_otf): Simply calls font->get_glyph_id.
1173	(run_command): Reset g->encoded and g->measured for direct code.
1174	(positioning): Delete this function.
1175	(run_stages): Simply calls font->get_glyph_id and font->get_metric.
1176
11772007-09-07  Kenichi Handa  <handa@m17n.org>
1178
1179	* draw.c (compose_glyph_string): Improve script detection.
1180
11812007-09-06  Kenichi Handa  <handa@m17n.org>
1182
1183	* m17n-flt.h (mflt_get): Extern it.
1184
1185	* m17n-flt.c (run_stages): Call positioning only if
1186	font->get_metric is non-NULL.
1187	(CHECK_FLT_STAGES): Fix typo.
1188	(mflt_get): New function.
1189
1190	* font-flt.c (mfont__flt_run): Improve debug info printing.
1191
11922007-09-04  Kenichi Handa  <handa@m17n.org>
1193
1194	* m17n-flt.c (MFontLayoutTable): Delete this type.
1195	(struct _MFLT): New member mdb and coverage.
1196	(list_flt): Set flt->mdb.
1197	(load_generator): Argument and return value changed.  Caller
1198	changed.
1199	(get_font_layout_table): Delete this function.
1200	(run_stages): Argument changed.  Caller changed.
1201	(CHECK_FLT_STAGES): New macro.
1202	(mfont__flt_encode_char): Argument changed.
1203	(mflt_find): Likewise.
1204	(mflt_coverage): New function.
1205	(mflt_run): Argument changed.
1206	(mdebug_dump_flt): Likewise.
1207
1208	* m17n-flt.h (mflt_coverage): Extern it.
1209	(mflt_find): Prototype adjusted.
1210
12112007-09-03  Kenichi Handa  <handa@m17n.org>
1212
1213	* internal.h (MTABLE_CALLOC_SAFE, MSTRUCT_CALLOC_SAFE): New macros.
1214
1215	* database.c (mdatabase__props): New function.
1216
1217	* database.h (mdatabase__props): Extern it.
1218
1219	* m17n-flt.h (struct _MFLTGlyphString): Delete user_data, add
1220	script and langsys.
1221	(struct _MFLTFont): Add suitable_p.
1222	(mflt_find): Extern it.
1223
1224	* m17n-flt.c: Include "database.h".
1225	(struct _MFLT): New struct.
1226	(list_flt): New function.
1227	(load_flt): Don't update flt_list.
1228	(get_font_layout_table): Use flt_list.
1229	(m17n_init_flt): Don't initialize flt_list.
1230	(m17n_fini_flt): Adjusted for the change of flt_list.
1231	(mflt_find): New function.
1232	(mflt_run): Fix debug printing.
1233
12342007-08-23  Kenichi Handa  <handa@m17n.org>
1235
1236	* m17n-flt.c (run_otf): Remove #ifdef HAVE_OTF and #endi.
1237	(run_stages): Print separator in encoded string as "|".
1238
12392007-08-23  Kenichi Handa  <handa@m17n.org>
1240
1241	* font-flt.c (mfont__flt_run): Don't calculate a glyph metric if
1242	the glyph is already handled by OTF.
1243
12442007-08-21  Kenichi Handa  <handa@m17n.org>
1245
1246	* font-ft.c (ft_check_capability): Check cap->script_tag at first.
1247
12482007-08-20  Kenichi Handa  <handa@m17n.org>
1249
1250	* font-flt.c (mfont__flt_run): Get glyph metrics before printing
1251	debug information.
1252
12532007-08-17  Kenichi Handa  <handa@m17n.org>
1254
1255	* m17n-flt.h (struct _MFLTGlyphString): Member pointer renamed to
1256	user_data.
1257	(MFLTOtfSpec): Renamed from MFLT_OTF_Spec.
1258	(MFLTFont): Prototype of the member drive_otf adjusted.
1259
1260	* m17n-flt.c (run_stages): Fix handling of padding.
1261
1262	* font-ft.c (get_glyph_metric): New function.
1263	(DEVICE_DELTA): Return 26.6 fixed point value.
1264	(adjust_anchor): Likewise.
1265	(mfont__ft_drive_otf): Use get_glyph_metric.
1266
1267	* font-flt.c (mfont__flt_run): Pay attention to padding on
1268	printing debug info.
1269
12702007-08-16  Kenichi Handa  <handa@m17n.org>
1271
1272	* m17n-flt.c (run_stages): Fix typo.
1273
1274	* font-ft.c (adjust_anchor): Argument changed.  Calculte based on
1275	26.6 fixed point.
1276	(mfont__ft_drive_otf): Don't call OTF_check_features for GPOS.
1277	Adjusted for the argument change of adjust_anchor.  Calculte based
1278	on 26.6 fixed point.
1279
12802007-08-15  Kenichi Handa  <handa@m17n.org>
1281
1282	* charset.c (mcharset__load_from_database): Set mdebug_flag
1283	instead of mdebug_mask.
1284
1285	* coding.c (mcoding__load_from_database): Set mdebug_flag instead
1286	of mdebug_mask.
1287
1288	* database.c (load_database): Set mdebug_flag instead of
1289	mdebug_mask.
1290	(mdatabase__load_for_keys): Likewise.
1291
1292	* draw.c: Include "internal-flt.h".
1293	(dump_combining_code): Don't subtract 128 from combining code
1294	off_x/y.
1295
1296	* font-flt.c: Include "internal-flt.h".  Set mdebug_flag instead
1297	of mdebug_mask.
1298	(run_rule): Print debug info only when MDEBUG_FLAG is greater than
1299	2.
1300	(run_cond): Likewise.
1301	(run_otf): Likewise.
1302	(run_command): Likewise.
1303	(mfont__flt_run): Change format of debug info.
1304
1305	* font-ft.c: Include "internal-flt.h".
1306	Set mdebug_flag instead of mdebug_mask.
1307	(mfont__ft_drive_otf): Fix arg to OTF_check_features.
1308
1309	* input.c: Set mdebug_flag instead of mdebug_mask.
1310	(shift_state): New MDEBUG_FLAG macro.
1311	(preedit_commit): Likewise.
1312	(filter): Likewise.
1313
1314	* internal-flt.h: New file.
1315
1316	* internal-gui.h (MAKE_COMBINING_CODE, COMBINING_CODE_OFF_Y)
1317	(COMBINING_CODE_OFF_X, COMBINING_CODE_BASE_X)
1318	(COMBINING_CODE_BASE_Y, COMBINING_CODE_ADD_X)
1319	(COMBINING_CODE_ADD_Y, MAKE_COMBINING_CODE_BY_CLASS)
1320	(COMBINING_BY_CLASS_P, COMBINING_CODE_CLASS)
1321	(MAKE_PRECOMPUTED_COMBINDING_CODE, COMBINING_PRECOMPUTED_P): Move
1322	these macros to internal-flt.h.
1323
1324	* internal.h (M17N_OBJECT_ADD_ARRAY): Adjusted for the change of
1325	mdebug__flags.
1326	(M17N_OBJECT_REGISTER, M17N_OBJECT_UNREGISTER): Likewise.
1327	(enum MDebugMaskBit): Delete this enum.
1328	(enum MDebugFlag): New enum.
1329	(mdebug__flag): Don't extern it.
1330	(mdebug__flags): Extern it.
1331	(MDEBUG_FLAG): New macro.
1332	(MDEBUG_PRINT0): Use the macro MDEBUG_FLAG.
1333	(MDEBUG_DUMP, MDEBUG_PUSH_TIME, MDEBUG_POP_TIME)
1334	(MDEBUG_PRINT_TIME): Likewise.
1335
1336	* m17n-X.c (xfont_open): Set mdebug_flag instead of mdebug_mask.
1337	(xfont_list): Likewise.
1338
1339	* m17n-core.c (mdebug__flag): Delete this variable.
1340	(mdebug__flags): New variable.
1341	(SET_DEBUG_FLAG): Make it a function.
1342	(m17n_init_core): Set mdebug_flag instead of mdebug_mask.
1343	(m17n_fini_core): Likewise.
1344
1345	* m17n-gui.c (m17n_init_win): Set mdebug_flag instead of mdebug_mask.
1346	(m17n_fini_win): Likewise.
1347
1348	* m17n-misc.h (enum MErrorCode): Add MERROR_FLT.
1349
1350	* m17n.c (m17n_init): Set mdebug_flag instead of mdebug_mask.
1351	(m17n_fini): Likewise.
1352
1353	* symbol.c (msymbol__free_table): Adjusted for the change of
1354	mdebug__flags.
1355
1356	* Makefile.am (BASICBUILDS): Add libm17n-flt.la.
1357	(BASICHEADERS): Add m17n-flt.h.
1358	(FLT_SOURCES): New variable.
1359	(libm17n_flt_la_SOURCES, libm17n_flt_la_LIBADD)
1360	(libm17n_flt_la_LDFLAGS): Likewise.
1361
1362	* m17n-flt.h: New file.
1363
1364	* m17n-flt.c: New file created by modifying font-flt.c.
1365
13662007-07-13  Kenichi Handa  <handa@m17n.org>
1367
1368	* Version 1.4.0 released.
1369
13702007-07-12  Kenichi Handa  <handa@m17n.org>
1371
1372	* input.c: Fix doxygen @ref commands.
1373
13742007-07-10  Kenichi Handa  <handa@m17n.org>
1375
1376	* m17n-core.h (M17NFunc): Fix typo of Doxygen directive.
1377
13782007-07-09  Kenichi Handa  <handa@m17n.org>
1379
1380	* m17n-core.h (M17N_BEGIN_HEADER, M17N_END_HEADER): New macros.
1381
1382	* m17n.h: Include m17n-core.h if not yet done.  Use macros
1383	M17N_BEGIN_HEADER and M17N_END_HEADER.
1384
1385	* m17n-gui.h: Likewise.
1386
1387	* m17n-misc.h: Likewise.
1388
13892007-06-13  Kenichi Handa  <handa@m17n.org>
1390
1391	* font-flt.c (load_command): Prepend "^" in the regular expression.
1392
13932007-06-11  Kenichi Handa  <handa@m17n.org>
1394
1395	* language.c (mlanguage_name_list): Fix previous change.
1396
1397	* coding.c (mcoding__load_from_database): Add aliases in
1398	coding_definition_list.
1399
14002007-06-10  Kenichi Handa  <handa@m17n.org>
1401
1402	* language.c (mlanguage_name_list): Fix previous change.
1403
14042007-06-08  Kenichi Handa  <handa@m17n.org>
1405
1406	* input.c (update_candidate): Copy candidate_list earlier.
1407	(re_init_ic): Provide pseudo initialize state if none.
1408
14092007-06-05  Kenichi Handa  <handa@m17n.org>
1410
1411	* input.c (preedit_insert): Print debug information.
1412
1413	* database.c (expand_wildcard_database): New function.
1414	(mdatabase_list): Fix handling of wildcard database.
1415
1416	* language.c (load_lang_name): New function.
1417	(mlang__fini): Cancel the last two changes.
1418	(mlanguage_name_list): New arg script and territories.  Use
1419	load_lang_name.
1420
1421	* m17n.h (mlanguage_name_list): Adjusted.
1422
14232007-06-04  Kenichi Handa  <handa@m17n.org>
1424
1425	* input.c (open_im): Check if the input method has at least one
1426	state.
1427
14282007-06-01  Kenichi Handa  <handa@m17n.org>
1429
1430	* input.c (shift_state): Change the format of debug print.
1431	(preedit_commit): New arg need_prefix.  Caller changed.
1432	(update_candidate): Copy candidate_list.
1433	(take_action_list): Likewise.
1434	(handle_key): Change the format of debug print.
1435
1436	* font-flt.c (load_flt): Ignore unknown directives.
1437
14382007-05-25  Kenichi Handa  <handa@m17n.org>
1439
1440	* m17n-core.c (mdebug__unregister_object): Small optimization.
1441
1442	* database.c (find_file): Merged into get_database_file.
1443	(get_database_file): New arg result.  Caller changed.
1444	(mdatabase__check): Fix the logic.
1445
14462007-05-24  Kenichi Handa  <handa@m17n.org>
1447
1448	* database.c (find_database): If unprocessed wildcard database is
1449	found, register database filed and recursively call find_database.
1450	(free_db_info): Unref db_info->properties.
1451	(register_database): New arg properties.  Delete code for
1452	initializing mdatabase__list.
1453	(register_databases_in_files): Argument changed.  Caller changed.
1454	(mdatabase__update): Don't list files by glob here.
1455	(mdatabase_list): If unprocessed wildcard database is found,
1456	register database filed and recursively call mdatabase_list.
1457
1458	* database.h (enum MDatabaseStatus): New enum
1459	MDB_STATUS_AUTO_WILDCARD.
1460
1461	* input.c (load_branch): Fix previous change.
1462	(update_global_info): If the global database is not found, return -1.
1463
14642007-05-23  Kenichi Handa  <handa@m17n.org>
1465
1466	* database.c (Mversion): New variable.
1467	(mdatabase__init): Initialize it.
1468	(register_database): New arg properties.  Caller changed.
1469	(register_databases_in_files): Don't check version here.
1470	(mdatabase__update): Likewise.
1471
1472	* database.h (MDatabaseInfo): New member properties.
1473
14742007-05-21  Kenichi Handa  <handa@m17n.org>
1475
1476	* language.c: Include <ctype.h>
1477	(mlanguage__info): Use strncasecmp (not memcmp).
1478	(mlanguage_name): Downcase language name for backward
1479	compatibility.
1480
1481	* input.c (filter): Don't check Mlanguage property of
1482	ic->im->language.
1483
14842007-05-18  Kenichi Handa  <handa@m17n.org>
1485
1486	* language.c (mlanguage_name): Fix it to handle M-text English
1487	name.
1488
1489	* input.c (config_command): Set NAME before using it.
1490	(load_branch): Try to resolve a map name by variables.
1491
14922007-05-17  Kenichi Handa  <handa@m17n.org>
1493
1494	* language.c (mlang__fini): Fix previous change.
1495
14962007-05-16  Kenichi Handa  <handa@m17n.org>
1497
1498	* plist.c (free_plist): Cancel the last change.
1499	(write_element): Check if PLIST is nested.
1500	(mplist__from_plist): Label a plist as nested if appropriate.
1501	(mplist__from_alist): Label a plist as nested.
1502	(mplist__conc): Check the value of PL before referring it.  Label
1503	a plist as nested if appropriate.
1504	(mplist_copy): Label a plist as nested if appropriate.
1505	(mplist_put_func): Return Mnil if KEY is a managing key.
1506	(mplist_push): Label a plist as nested if appropriate.
1507
1508	* plist.h (MPLIST_SET_NESTED_P): Return 1 iff plist->control.flag
1509	is set as nested.
1510
1511	* language.c (mlang__fini): Unref each element of langname_list.
1512
15132007-05-14  Kenichi Handa  <handa@m17n.org>
1514
1515	* language.c: Include <string.h> and <locale.h>.
1516	(langname_list): New variable.
1517	(load_lang_script_list): Exclude invalid list elements.
1518	(mlang__init): Initialize langname_list.
1519	(mlang__fini): Unref langname_list.
1520	(mlanguage__info): Adjusted for the change of English
1521	name (symbol->M-text).
1522	(mlanguage_name): Label it as obsolete.
1523	(mlanguage_name_list): New function.
1524
1525	* m17n.h (mlanguage_name_list): Extern it.
1526
1527	* locale.c (make_locale): Fix setting of members of locale.
1528
1529	* plist.c (free_plist): Unref also nested plist.
1530
15312007-05-11  Kenichi Handa  <handa@m17n.org>
1532
1533	* coding.c (mconv_reset_converter): Set internal->used to 0.
1534
15352007-05-08  Kenichi Handa  <handa@m17n.org>
1536
1537	* input.c (check_description): Force copying the translated text.
1538
15392007-05-02  Kenichi Handa  <handa@m17n.org>
1540
1541	* input.c (minput_save_config): Unref unnecessary plist.  Use
1542	free_im_list to free im_config_list.
1543
15442007-04-20  Kenichi Handa  <handa@m17n.org>
1545
1546	* input.c (config_command): Fix previous change again.
1547	(config_variable): Likewise.
1548	(minput_config_command): Fix for the case of setting back to
1549	default.
1550	(minput_config_variable): Likewise.
1551	(minput_save_config): Include nil as documentation of customized
1552	command/variable.
1553
15542007-04-05  Kenichi Handa  <handa@m17n.org>
1555
1556	* input.c (config_command): Fix previous change.
1557	(config_variable): Likewise.
1558
1559	* plist.c (mplist_get_func): Fix for backward compatiblity.
1560
15612007-04-04  Kenichi Handa  <handa@m17n.org>
1562
1563	* input.c (minput_get_command, minput_config_command): Fix example
1564	codes.
1565
15662007-03-29  Kenichi Handa  <handa@m17n.org>
1567
1568	These changes are to avoid unsafe casting of a function pointer.
1569
1570	* face.h (enum MFaceProperty): Delete MFACE_HOOK_FUNC.
1571	(struct MFace): New member hook.
1572
1573	* face.c (serialize_face): Adjusted for the change of MFace.
1574	(deserialize_face): Likewise.
1575	(mface__init): Likewise.  Use msymbol_put_func.
1576	(mface__realize): Adjusted for the change of MFace.  Avoid
1577	compiler warning.
1578	(mface_get_prop): Adjusted for the change of MFace.
1579	(mface_put_prop): Likewise.
1580	(mface_get_hook): New function.
1581	(mface_put_hook): New function.
1582	(mface_update): Adjusted for the change of MFace.
1583
1584	* input-gui.c (win_callback): Use mplsit_get_func.
1585	(minput__win_init): Use mplsit_put_func.
1586
1587	* input.c (take_action_list): Use mplist_get_func.
1588	(init_ic_info): Likewise.
1589	(fini_ic_info): Likewise.
1590	(minput_callback): Likewise.
1591	(minput__init): Use mplist_put_func.
1592
1593	* language.c (mlang__init): Use msymbol_put_func.
1594
1595	* m17n-core.h (M17NFunc): New function type.
1596	(M17N_FUNC): New macro.
1597	(msymbol_put_func, msymbol_get_func): Extern them.
1598	(mplist_put_func, mplist_get_func): Extern them.
1599
1600	* m17n-gui.h (mface_get_hook, mface_put_hook): Extern them.
1601
1602	* m17n-gui.c (mframe): Add a proper casting.
1603
1604	* plist.h (struct MPlist): Make the member val a union.
1605	(MPLIST_VAL): Adjusted for the above change.
1606	(MPLIST_FUNC): New macro.
1607	(MPLIST_VAL_FUNC_P, MPLIST_SET_VAL_FUNC_P): New macros.
1608
1609	* plist.c (mplist_put_func, mplist_get_func): New functions.
1610
1611	* symbol.c (msymbol__fini): Use MPLIST_VAL.
1612	(msymbol_put_func, msymbol_get_func): New functions.
1613
1614	* textprop.c (mtext_serialize): Use msymbol_get_func.
1615	(mtext_deserialize): Likewise.
1616
16172007-03-28  Kenichi Handa  <handa@m17n.org>
1618
1619	* input.c (get_candidate_list): Avoid unnecessary unref.
1620
16212007-03-23  Kenichi Handa  <handa@m17n.org>
1622
1623	* database.c (mdatabase__update): Unref plist at the tail.
1624
16252007-03-21  Kenichi Handa  <handa@m17n.org>
1626
1627	* input.c (update_custom_info): Fix for the case "name == Mnil &&
1628	extra != Mnil".
1629	(config_command): Fix for the case that configuration is
1630	cancelled.
1631	(config_variable): Likewise.
1632	(minput_config_command): If keyseqlist is an empty list, cancel
1633	the customization.
1634	(minput_config_variable) If value is an empty list, cancel the
1635	customization.
1636	(minput_save_config): Handle cancellation of config and customize
1637	correctly.
1638
16392007-03-15  Kenichi Handa  <handa@m17n.org>
1640
1641	* input.c (minput_config_variable): Check custom->vars (not
1642	custom->cmds).
1643
16442007-03-01  Kenichi Handa  <handa@m17n.org>
1645
1646	* input.c (reload_im_info): Setup cmds, vars, and title of
1647	im_info.
1648	(check_variable_value): Fix the return value.
1649
1650	* database.c (mdatabase__check): If necessary, update database and
1651	find a new file.
1652
16532007-02-28  Kenichi Handa  <handa@m17n.org>
1654
1655	* database.c (get_dir_info): Set dir_info->status to
1656	MDB_STATUS_OUTDATED.
1657	(check_version): New function.
1658	(register_database): Don't call find_database.
1659	(register_databases_in_files): Don't register a database of
1660	invalid version.
1661	(mdatabase__update): Likewise.  Avoid unnecessary scanning.
1662
1663	* database.h (enum MDatabaseStatus): New membes MDB_STATUS_UPDATED
1664	and MDB_STATUS_OUTDATED.
1665
1666	* font.h (struct MFont): Types of members type, source, and
1667	spacing changed to unsigned.
1668
1669	* internal-gui.h (struct): Types of members category and type
1670	changed to unsigned.
1671
1672	* internal.h (struct MText): Types of members format and coverage
1673	changed to unsigned.
1674
1675	* m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 5.
1676	(M17NLIB_VERSION_NAME): Changed to "1.3.5".
1677
16782007-02-23  Kenichi Handa  <handa@m17n.org>
1679
1680	* input.c (Mpop): New variable.
1681	(fully_initialize): Initialize Mpop.
1682	(parse_action_list): Handle Mpop.
1683	(take_action_list): Likewise.
1684	(handle_key): When a key is unhandled, shift to the initial state
1685	only if the current state has no branch action.
1686
16872007-02-12  Kenichi Handa  <handa@m17n.org>
1688
1689	* input.c (get_preceding_char): Unref mt if necessary.
1690	(get_following_char): Likewise.
1691	(parse_action_list): Fix handling of `insert' action as
1692	candidates.
1693	(get_candidate_list): Fix for handling (("CANDIDATE1" ...)).
1694	(take_action_list): Check invalid candidate list.
1695
16962007-02-06  Kenichi Handa  <handa@m17n.org>
1697
1698	* input.c (integer_value): Check also ic->produced for @-N.
1699
17002007-01-26  Kenichi Handa  <handa@m17n.org>
1701
1702	* database.c (mdatabase__update): Check mdatabase__dir_list from
1703	the tail.
1704
1705	* font-ft.c (STRDUP_LOWER): Don't ignore the tailing spaces.
1706
17072007-01-12  Kenichi Handa  <handa@m17n.org>
1708
1709	* input.c (handle_key): Handle a branch action of the initial
1710	state correctly.
1711
17122007-01-10  Kenichi Handa  <handa@m17n.org>
1713
1714	* m17n-gd.c (gd_render): Delete superfluous line.
1715
17162006-12-26  Kenichi Handa  <handa@m17n.org>
1717
1718	* m17n.h (minput_callback): Extern it.
1719
1720	* input.h (minput__callback): Delte extern.
1721
1722	* input.c (get_surrounding_text): Adjusted for the change of
1723	minput__callback to minput_callback.
1724	(delete_surrounding_text): Likewise.
1725	(minput_create_ic): Likewise.
1726	(minput_destroy_ic): Likewise.
1727	(minput_filter): Likewise.
1728	(minput_set_spot): Likewise.
1729	(minput_toggle): Likewise.
1730	(minput_reset_ic): Likewise.
1731
1732	(preedit_commit): Reset ic->candidate_index, ic->candidate_from,
1733	and ic->candidate_to to 0.
1734	(minput_callback): Renamed from minput__callback.
1735
1736	* input-gui.c (win_callback): Adjusted for the change of
1737	minput__callback to minput_callback.
1738
17392006-12-15  Kenichi Handa  <handa@m17n.org>
1740
1741	* font-ft.c (ft_add_font): Fix typo.
1742
17432006-12-06  Kenichi Handa  <handa@m17n.org>
1744
1745	* Version 1.3.4 released.
1746
17472006-11-16  Kenichi Handa  <handa@m17n.org>
1748
1749	* input.c (parse_action_list): Allow (undo 0).
1750	(adjust_markers): New function.
1751	(preedit_insert, preedit_delete): Call adjust_markers.
1752	(preedit_replace): New function.
1753	(update_candidate): Call preedit_replace instead of preedit_insert
1754	and preedit_delete.
1755	(filter): When ic_info->commit_key_head is nonzero, shift input
1756	event keys even if there's no committed text.
1757
17582006-11-10  Kenichi Handa  <handa@m17n.org>
1759
1760	* input.h (MInputContextInfo): New member commit_key_head.
1761
1762	* input.c (preedit_commit): Update ic_info->commit_key_head.
1763	(take_action_list): Reset ic_info->commit_key_head on Mundo.
1764	(filter): When committed, shift keys by ic_info->commit_key_head.
1765
17662006-10-30  Kenichi Handa  <handa@m17n.org>
1767
1768	* input.c (preedit_delete): Fix typo.
1769	(take_action_list): Print more debugging information.  Allow
1770	variable in arg of 'select' and `pushback'.
1771
1772	* database.c (gen_database_name): Don't put extra space.
1773	(load_database): Print debugging information.
1774	(register_databases_in_files): New arg headlen.  Callers changed.
1775	(mdatabase__load_for_keys): Shorten debugging information.
1776	(mdatabase_load): Don't print debugging information here.
1777
17782006-10-27  Kenichi Handa  <handa@m17n.org>
1779
1780	* input.c (marker_code): New arg surrounding.  Callers changed.
1781	(surrounding_pos): Check if name[0] == '@'.
1782	(integer_value): Fix for the change semantics of `@-N' and `@+N'.
1783	(take_action_list): Likewise.
1784	(get_preceding_char): If POS is zero, always call
1785	get_surrounding_text.
1786
17872006-10-19  Kenichi Handa  <handa@m17n.org>
1788
1789	* input.c (load_variables): Fix setting of `global'.
1790
17912006-10-16  Kenichi Handa  <handa@m17n.org>
1792
1793	* draw.c (draw_background): Be sure to set *to_x.
1794	(render_glyph_string): If from == to, just return.
1795
17962006-10-18  Kenichi Handa  <handa@m17n.org>
1797
1798	* database.c (get_dir_info): Return NULL if the directory name is
1799	too long.
1800	(register_databases_in_files): Call register_database with
1801	MDB_STATUS_AUTO.
1802	(mdatabase__update): Fix logic.  Call register_database with
1803	MDB_STATUS_AUTO.
1804	(mdatabase_define): Call register_database with
1805	MDB_STATUS_EXPLICIT.
1806
1807	* input.c (delete_surrounding_text): Be sure to set members
1808	preceding_text and following_text to NULL.
1809	(shift_state): Save variable values in ic_info->vars_saved.
1810	(preedit_commit): Don't print debug information here.  Don't
1811	change ic_info->keys here.
1812	(get_candidate_list): Don't ref plist.
1813	(take_action_list): Don't unref return value of
1814	get_candidate_list.  For undo, reset ic->produced and recover
1815	ic_info->vars.  Be sure to set ic->candidate_list to NULL after
1816	unref it.
1817	(init_ic_info): Set ic_info->vars_saved.
1818	(fini_ic_info): Unref ic_info->vars_saved.
1819	(re_init_ic): Be sure to set ic->candidate_list to NULL after
1820	unref it.
1821	(filter): Be sure to set members preceding_text and following_text
1822	to NULL.  Print debug information about produced text.  Delete
1823	processed keys from ic_info->keys.
1824
1825	* input.h (MInputContextInfo): New member vars_saved.
1826
18272006-10-16  Kenichi Handa  <handa@m17n.org>
1828
1829	* database.c (mdatabase__update): Fix the way to get db_info.
1830
18312006-10-02  Kenichi Handa  <handa@m17n.org>
1832
1833	* font.h (struct MFont): New member `multiple_sizes'.  Bit-size of
1834	`size' changed to 24.
1835
1836	* font.c (xlfd_unparse_name): Adjusted for the change of
1837	MFont->size.
1838	(font_score): Likewise.
1839	(mfont__set_spec_from_face): Set spec->multiple_sizes to 0.
1840
1841	* m17n-X.c (MFontX, _MFontX): Deleted.
1842	(SET_SIZE, HAVE_SIZE): Deleted.
1843	(free_display_info): Adjusted for the change of
1844	disp_info->font_list format.
1845	(xfont_registry_list): Likewise.
1846	(xfont_open): Likewise.
1847	(xfont_list): Likewise.
1848	(xfont_encode_char): Ignore size to find a realized font.
1849	(MRealizedFontXft): Change the order of members to make it
1850	compatible with MRealizedFontFT.
1851
18522006-09-27  Kenichi Handa  <handa@m17n.org>
1853
1854	* font.c (mfont_match_p, mfont_open, mfont_encapsulate)
1855	(mfont_close): Add comments.
1856
1857	* mtext-lbrk.c (mtext_line_break): Add comment.
1858
18592006-09-26  Kenichi Handa  <handa@m17n.org>
1860
1861	* input.c (minput_get_description): Handle description about
1862	inclusion-only input methods.
1863
18642006-09-21  Kenichi Handa  <handa@m17n.org>
1865
1866	* input.c (M_gettext): New variable.
1867	(fully_initialize): Initialize M_gettext.
1868	(check_description): New function.
1869	(load_commands): Call check_description.
1870	(config_all_commands): Be sure to unref pl.
1871	(load_variables): Call check_description.
1872	(config_all_variables): Be sure to unref pl.
1873	(load_im_info): Call check_description.
1874
1875	* internal.h [ENABLE_NLS]: Include <libintl.h> and define _.
1876
1877	* m17n-core.c (m17n_init_core) [ENABLE_NLS]: Call bindtextdoman
1878	and bind_textdomain_codeset.
1879
1880	* Makefile.am (AM_CPPFLAGS): Add -DGETTEXTDIR=...
1881
18822006-09-15  Kenichi Handa  <handa@m17n.org>
1883
1884	* input.c (reload_im_info): Update custom and global info.
1885	(init_ic_info): Fix previous change.
1886
18872006-09-14  Kenichi Handa  <handa@m17n.org>
1888
1889	* database.c: Include <libgen.h>.
1890	(mdatabase__lock): Make a directory if necessary.
1891
1892	* input.c (resolve_command): Adjusted for the format change of
1893	configured_cmds member.
1894	(load_commands, load_variables): Fix for errornous data handling.
1895	(config_command, config_variable): New function.
1896	(config_all_commands, config_all_variables): Renamed from
1897	config_commands and config_variables.  Utilize the above function.
1898	(check_variable_value): Argument changed.  Callers changed.
1899	(load_im_info): Call config_all_commands and config_all_variables.
1900	(init_ic_info): Adjusted for the format change of configured_vars
1901	member.
1902	(minput__init): Initialize Mcustomized, Mconfigured, and
1903	Minherited.
1904	(Mcustomized, Mconfigured, Minherited): New variables.
1905	(minput_get_command): Be sure to return NULL if an input method
1906	use no local command.
1907	(minput_get_variable): Be sure to return NULL if an input method
1908	use no local variable.
1909	(minput_config_command, minput_config_variable)
1910	(minput_save_config): Adjusted for the format change of
1911	configured_cmds and configured_vars members.
1912
1913	* plist.c (write_element): Delete superfluous ':'.
1914
19152006-09-13  Kenichi Handa  <handa@m17n.org>
1916
1917	* m17n.h (Minherited, Mcustomized, Mconfigured): Extern them.
1918	(minput_config_file): Extern it.
1919
1920	* draw.c (Minherited): Declaration moved to input.c.
1921	(mdraw__init): Don't initialize Minherited here.
1922
1923	* database.c (mdatabase__unlock): Be sure to unlink uniq file.
1924
19252006-09-07  Kenichi Handa  <handa@m17n.org>
1926
1927	* textprop.c (mtext_serialize): Call mplist__serialize with the
1928	arg pretty 0.
1929
1930	* plist.h (mplist__serialize): Prototype adjusted.
1931	(mplist__assq): Extern it.
1932
1933	* plist.c: Include <ctype.h>
1934	(PUTC, PUTS): New macros.
1935	(write_symbol): New function.
1936	(write_element): New arg indent.
1937	(dump_string, dump_plist_element): Delete them.
1938	(mplist__from_string): New arg pretty.
1939	(mplist__assq): New function.
1940	(mdebug_dump_plist): Use write_element.
1941
1942	* mtext.c (mtext_cat_char): Allocate more memory.
1943	(mdebug_dump_mtext): Don't escal a newline character.
1944
1945	* m17n.h (minput_get_command, minput_get_variable)
1946	(minput_config_command, minput_config_variable)
1947	(minput_save_config): Extern them.
1948
1949	* m17n-core.c: Include <string.h>.
1950	(m17n_init_core): If the env. var. MDEBUG_OUTPUT_FILE is "stdout",
1951	use the stream stdout instead of a file of that name.
1952
1953	* m17n-X.c (mwin__parse_event): Fix handling of Shift and Control
1954	modifiers.
1955
1956	* internal.h (MFAILP, MDEBUG_PRINT0): New macros.
1957	(MDEBUG_PRINT, MDEBUG_PRINT1, MDEBUG_PRINT2, MDEBUG_PRINT3)
1958	(MDEBUG_PRINT4, MDEBUG_PRINT5): Use MDEBUG_PRINT0.
1959	(MDEBUG_DUMP): Flush the stream.
1960
1961	* input.h (struct _MInputMethodInfo): Delete member im.  New
1962	members mdb, language, name, extra, cmds, configured_cmds,
1963	bc_cmds, vars, configured_vars, bc_vars, description, and tick.
1964	(MInputContextInfo): New member tick.
1965
1966	* input.c: Big change to improve user-side input method
1967	customization.  Here, list just public API changes.
1968	(minput_get_commands, minput_get_variables)
1969	(minput_assign_command_keys, minput_set_variable): Label them
1970	obsolete.
1971	(minput_get_command, minput_get_variable)
1972	(minput_config_command, minput_config_variable)
1973	(minput_save_config): New functions.
1974
1975	* database.h (PATH_MAX): Define it if not yet defined.
1976	(PATH_SEPARATOR): Likewise.
1977	(enum MDatabaseStatus): New enum.
1978	(struct MDatabaseInfo): Moved from database.c.  New members status,
1979	time, lock_file, and uniq_file.
1980	(mdatabase__update, mdatabase__file, mdatabase__lock, mdatabase__save)
1981	(mdatabase__unlock): Extern them.
1982
1983	* database.c: Include <time.h>.
1984	(MDB_DIR_LEN): Don't include the terminating '\0' in the length.
1985	(GEN_PATH): Args changed.  Callers changed.
1986	(struct MDatabaseInfo): Moved to database.h.
1987	(struct MDatabase, mdb_list): Deleted.
1988	(mdatabase__list): New var.
1989	(get_database_filename): Deleted.  Callers changed to use
1990	get_database_file.
1991	(find_file, get_database_file): New files.
1992	(get_dir_info): Initialize new members of MDatabaseInfo.
1993	(find_database): Arg chagnded.  Callers changed.
1994	(free_db_info, register_database, register_databases_in_files):
1995	New functions.
1996	(update_database_list): Deleted.
1997	(mdatabase__init): Initialize mdatabase__list instead of mdb_list.
1998	(mdatabase__fini): Finalize mdatabase__list instead of mdb_list.
1999	(mdatabase__update): New function.
2000	(mdatabase__check): Return value changed.
2001	(mdatabase__file, mdatabase__lock, mdatabase__save)
2002	(mdatabase__unlock): New functions.
2003
20042006-08-30  TAKAHASHI Naoto  <ntakahas@m17n.org>
2005
2006	* input.c (get_surrounding_text): Return -2 when surrounding text
2007	is unavailable.
2008	(get_following_char): Likewise.
2009	(get_preceding_char): Likewise.
2010	(minput__callback): Return 0 if there is a callback function,
2011	otherwise -1.
2012
20132006-08-17  Kenichi Handa  <handa@m17n.org>
2014
2015	* input.c (reset_ic): Use shift_state to setup the current state.
2016
20172006-08-02  Theppitak Karoonboonyanan  <thep@linux.thai.net>  (tiny change)
2018
2019	* Makefile.am (libm17n_la_LIBADD, libm17n_gui_la_LIBADD)
2020	(libm17n_X_la_LIBADD, libm17n_gd_la_LIBADD, linkcore_LDADD)
2021	(linkshell_LDADD, linkgui_LDADD): Use ${top_builddir}.
2022
20232006-08-02  Kenichi Handa  <handa@m17n.org>
2024
2025	* plist.c (mdebug_dump_plist): Fix the 2nd arg to dump_plist_element.
2026
2027	* mtext.c (mdebug_dump_mtext): If not fullp, dump just text.
2028
2029	* font-ft.c (ft_encapsulate): Add code for debugging.
2030	(mfont__ft_drive_otf): Be sure to encode character before getting
2031	metrics.
2032
20332006-07-21  Kenichi Handa  <handa@m17n.org>
2034
2035	* draw.c (mdraw_text_extents): Fix previous typo.
2036
20372006-07-19  Kenichi Handa  <handa@m17n.org>
2038
2039	* draw.c (gstring_width): New arg lbearing.
2040	(render_glyph_string): Adjusted for the change of gstring_width.
2041	(mdraw_text_extents): Fix lbearing of ink and line metrics.
2042
2043	* m17n-core.h (Mlanguage): Extern it.
2044
2045	* m17n.h (Mlanguage): Extern deleted.
2046
2047	* mtext.c (mtext__init): Initialize Mlanguage.
2048	(Mlanguage): Declaration moved from locale.c
2049
2050	* locale.c (mlocale__init): Don't initialize Mlanguage here.
2051	(Mlanguage): Declaration moved to mtext.c.
2052
2053	* language.c (mlang__init): Don't initialize Mlanguage here.
2054
2055	* font.c (OTF_tag_name) [! HAVE_OTF]: New function.
2056
20572006-07-14  Kenichi Handa  <handa@m17n.org>
2058
2059	* font-ft.c: Use FT_BDF_H macro.  Include fontconfig/fcfreetype.h.
2060	(MRealizedFontFT): New member face_encapsulated.
2061	(free_ft_rfont): Pay attention to ft_rfont->face_encapsulated.
2062	(ft_gen_font): New function.
2063	(ft_add_font): Use ft_gen_font.
2064	(ft_list_script): Store lists in ft_script_list.
2065	(ft_check_otf): New arg ft_face.  Caller changed.
2066	(ft_check_language): Likewise.
2067	(ft_check_script): Likewise.
2068	(ft_encapsulate, ft_close): New functions.
2069	(mfont__ft_driver): Initialize members encapsulate and close.
2070	(mfont__ft_drive_otf): Use OTF_open_ft_face if it is available.
2071
2072	* font.h (struct MRealizedFont): New member encapsulating.
2073	(struct MFontDriver): New members encapsulate and close.
2074
2075	* font.c (mfont__match_p): If FONT is realized, check capability
2076	by font drivers's check_capability method.
2077	(mfont_match_p, mfont_open, mfont_encapsulate, mfont_close): New
2078	functions.
2079
2080	* m17n-X.c (xfont_list_family_names): Delete unused var.  Fix
2081	declarations of foundry and fam local vars.
2082	(xft_driver): Make it static.
2083
2084	* m17n-gui.h (mfont_match_p, mfont_open, mfont_encapsulate)
2085	(mfont_close): Extern them.
2086
2087	* m17n-gd.c (device_open): Don't specify foundry and family of the
2088	default face.
2089
20902006-07-11  Kenichi Handa  <handa@m17n.org>
2091
2092	* m17n-gui.c (m17n_fini_win): Set null_interface.handle to NULL;
2093
20942006-07-13  Kenichi Handa  <handa@m17n.org>
2095
2096	* font-ft.c (fc_build_charset): Return NULL if FcCharSet can't be
2097	created.
2098	(ft_check_script): Delete unused var.
2099	(ft_list_capability): Likewise.
2100
2101	* font.c (mfont__get_capability): Setup cap->otf.
2102	(Motf): Make it global.
2103	(mfont_get_prop): Accept Mlanguage, Mscript, and Motf as key arg.
2104
2105	* font.h (MFontCapability): New member otf.
2106
2107	* language.c (mlang__fini): Delete unused vars.
2108
2109	* m17n-gui.h (Motf): Extern it.
2110
2111	* database.c (update_database_list): Delete unused vars.
2112
21132006-07-07  Kenichi Handa  <handa@m17n.org>
2114
2115	* font-ft.c (DEVICE_DELTA): Fix typo.
2116
21172006-07-06  Kenichi Handa  <handa@m17n.org>
2118
2119	* fontset.c (mfont__lookup_fontset): Don't ignore family and
2120	foundry of face.
2121
21222006-07-05  TAKAHASHI Naoto  <ntakahas@m17n.org>
2123
2124	* database.c: Update comments.
2125
21262006-07-05  Kenichi Handa  <handa@m17n.org>
2127
2128	* database.c (PATH_MAX): Define it if not yet defined.
2129	(PATH_SEPARATOR, USE_GEN_PATH, GEN_PATH, GEN_PATH_FROM_MT): New
2130	macros.
2131	(get_database_filename): Use GEN_PATH.
2132	(get_dir_info): Don't include the last '/' in directory name.
2133	(register_database): New function.
2134	(update_database_list): Use register_database.  Search all
2135	directories in mdatabase__dir_list for wildcard databases.
2136	(mdatabase__init): Check "~/.m17n.d".
2137
21382006-07-03  Kenichi Handa  <handa@m17n.org>
2139
2140	* input-gui.c (win_callback): If is ic->candidate_show zero, don't
2141	push reverse property.
2142
2143	* plist.c (dump_plist_element): Fix previous change.
2144
21452006-06-28  Kenichi Handa  <handa@m17n.org>
2146
2147	* font.c (xlfd_unparse_name): Suppress the heading '-' if not
2148	necessary.
2149
2150	* draw.c (MbidiNSM): New variable.
2151	(visual_order) [! HAVE_FRIBIDI]: Clear levels at first.  Pay
2152	attention to bidi type NSM.
2153	(mdraw__init): Initialize MbibiNSM.
2154
2155	* language.c (mscript__char_list): Fix finding a char-list element.
2156
2157	* plist.c (dump_string): Return number of printed characters.
2158	(dump_plist_element): Print elements more compactly.
2159
21602006-06-23  Kenichi Handa  <handa@m17n.org>
2161
2162	* Makefile.am (BUILD_LIBS): Don't increment it conditionally.
2163	(include_HEADERS): Likewise.
2164
21652006-06-23  TAKAHASHI Naoto  <ntakahas@m17n.org>
2166
2167	* language.c: Update documentation.
2168
21692006-06-23  Kenichi Handa  <handa@m17n.org>
2170
2171	* font-ft.c (struct MFontFT): Delete member lang.
2172	(free_ft_info): Don't unref member lang.  Destroy members langset
2173	and charset.
2174	(fc_parse_pattern): Last argument changed to MFontFT *.  Callers
2175	changed.  Set members langset and charset.
2176	(fc_init_font_list, fc_list_pattern, fc_build_charset): New
2177	functions.
2178	(ft_init_font_list, ft_has_char_list_p, ft_list_char_list): New
2179	functions.
2180	(ft_list_family) [HAVE_FONTCONFIG]: Include FC_CHARSET on objset.
2181	(ft_list_family) [! HAVE_FONTCONFIG]: Call ft_init_font_list.
2182	(ft_list_language) [HAVE_FONTCONFIG]: Check representative
2183	characters at first.  If it fails, try listing by language names.
2184	(ft_list_language) [! HAVE_FONTCONFIG]: Call ft_list_char_list.
2185	(ft_check_language): Renamed from ft_check_lang.  Adjusted for the
2186	change of MFontCapability.
2187	(ft_list_capability): Likewise.  Try listing by languages, then by
2188	scripts.  Check OTF at last.
2189	(ft_check_script): New function.
2190	(ft_select): Adjusted for the check of MFontCapability.
2191	(ft_list_family_names): New function.
2192	(ft_check_capability): If cap->script is not Mnil, call
2193	ft_check_script.
2194	(mfont__ft_driver): Initialize with ft_list_family_names.
2195
2196	* font.h (struct MFontDriver): New member list_fmaily_names.
2197	(struct): Change member "MSymbol *lang" to "MSymbol language".
2198
2199	* font.c: Include "language.h".
2200	(Motf): New variable.
2201	(otf_script_list, load_otf_script_list): Delete it.
2202	(find_script_from_otf_tag): Delete it.
2203	(merge_capability): New function.
2204	(mfont__init): Init Motf.
2205	(mfont__fini): Don't unref otf_script_list.
2206	(free_font_capability): Check cap->script_tag to determine if
2207	OTF-related capability is set.
2208	(mfont__get_capability): Call mscript__from_otf_tag.  Adjusted for
2209	the change of type MFontCapability.
2210	(mfont_put_prop): Call merge_capability for Mlanguage, Mscript,
2211	and Motf properties.
2212	(mfont_list): Call merge_capability for LANGUAGE arg.
2213	(mfont_list_family_names): New function.
2214
2215	* input-gui.c: Typo in comments fixed.
2216
2217	* input.c: Typo in comments fixed.
2218
2219	* language.h (mlanguage__list): Delete it.
2220	(mscript__char_list, mscript__otf_tag, mscript__from_otf_tag): New
2221	functions.
2222
2223	* language.c: Include "mtext.h".
2224	(M_script_lang_list): Delete it.
2225	(language_list, script_list): New variables.
2226	(load_lang_script_list, init_language_list, init_script_list): New
2227	functions.
2228	(mlang__init): Don't load language database here.
2229	(mlang__fini): Unref language_list and script_list if not NULL.
2230	(mlanguage__list): Delete it.
2231	(mlanguage__info, mscript__info, mscript__char_list)
2232	(mscript__otf_tag, mscript__from_otf_tag): New functions.
2233	(mlanguage_list, mlanguage_code, mlanguage_name, mlanguage_text)
2234	(mscript_list, mscript_language_list): New functions.
2235
2236	* m17n-gui.h (mfont_list_family_names): Extern it.
2237
2238	* m17n.h (mlanguage_list, mlanguage_code, mlanguage_name)
2239	(mlanguage_text, mscript_list, mscript_language_list): Extern
2240	them.
2241
22422006-06-21  Kenichi Handa  <handa@m17n.org>
2243
2244	* m17n-X.c (xfont_driver): Initialize with
2245	xfont_list_family_names.
2246	(xfont_list_family_names): New function.
2247	(xft_driver): Initialize with NULL for list_family_names member.
2248	(device_init): Set list_family_names member of xft_driver to that
2249	of mfont__ft_driver.
2250
22512006-06-06  Kenichi Handa  <handa@m17n.org>
2252
2253	* fontset.c (mfont__lookup_fontset): Don't set *num to 1 if it is 0.
2254
22552006-03-24  Kenichi Handa  <handa@m17n.org>
2256
2257	* font-ft.c (ft_open): Improve debug message.
2258
2259	* fontset.c (mfontset__get_font): Fix for the case that no font in
2260	per_script list is available.
2261
22622006-02-06  Kenichi Handa  <handa@m17n.org>
2263
2264	* Version 1.3.3 released.
2265
22662006-02-22  Kenichi Handa  <handa@m17n.org>
2267
2268	* textprop.c: Fix some typos in documentation.
2269
2270	* plist.c: Fix some typos in documentation.
2271
2272	* m17n-core.h: Fix some typos in documentation.
2273	(M17NLIB_PATCH_LEVEL): Updated to 3.
2274	(M17NLIB_VERSION_NAME): Updated to "1.3.3".
2275
2276	* symbol.c: Fix some typos in documentation.
2277
2278	* mtext.c: Fix some typos in documentation.
2279
2280	* input.c: Fix several typos in documentation.
2281
22822006-02-06  Kenichi Handa  <handa@m17n.org>
2283
2284	* Version 1.3.2 released.
2285
22862006-02-03  Kenichi Handa  <handa@m17n.org>
2287
2288	* m17n-core.h (M17NLIB_PATCH_LEVEL): Updated to 2.
2289	(M17NLIB_VERSION_NAME): Updated to "1.3.2".
2290
2291	* font.c (xlfd_parse_name): Fix handling of the name "nil".
2292
2293	* draw.c (layout_glyphs): Fix handling left_padding of
2294	composition's base.
2295
2296	* m17n-gd.c (read_rgb_txt): Support HTML 4.0 color names.
2297
22982006-02-02  Kenichi Handa  <handa@m17n.org>
2299
2300	* Makefile.am (include_HEADERS): Add m17n-gui.h and m17n-X.h only
2301	if WITH_GUI is true.
2302
23032006-01-25  Kenichi Handa  <handa@m17n.org>
2304
2305	* input.c (resolve_expression): If the value of PLIST is a plist,
2306	but the first element is not symbol, return 0.
2307
23082006-01-17  Kenichi Handa  <handa@m17n.org>
2309
2310	* m17n-gd.c (gd_render): Use gdImageColorResolveAlpha only if
2311	HAVE_GD is 2 or the greater.
2312
23132006-01-16  Kenichi Handa  <handa@m17n.org>
2314
2315	* Version 1.3.1 released.
2316
23172006-01-16  Kenichi Handa  <handa@m17n.org>
2318
2319	* m17n-gd.c (gd_render): Use gdImageColorResolveAlpha instead of
2320	simulating anti-aliasing.
2321
2322	* m17n-core.h (M17NLIB_PATCH_LEVEL): Updated to 1.
2323	(M17NLIB_VERSION_NAME): Updated to "1.3.1".
2324
23252006-01-12  Kenichi Handa  <handa@m17n.org>
2326
2327	* input.c (get_surrounding_text): Always pop ic->plist.
2328	(reset_ic): Don't reset ic->plist.
2329
23302006-01-10  Kenichi Handa  <handa@m17n.org>
2331
2332	* input.c (preedit_commit): For debugging, print only commiting
2333	charactes.  Don't set ic->candidate_show to 0.
2334	(handle_key): Don't run branch-actions just by shifting to the
2335	current state.
2336	(reset_ic): Reset state_key_head and key_head of ic_info to 0.
2337	Reset vars and plist.
2338
23392006-01-07  Kenichi Handa  <handa@m17n.org>
2340
2341	* input.c (load_branch): Confirm that maps is not NULL.
2342
23432006-01-05  Kenichi Handa  <handa@m17n.org>
2344
2345	* input-gui.c (win_filter): Try to convert arg to key only when
2346	arg is not NULL.
2347
2348	* plist.c (read_integer_element): If '#' and '-' are followed by
2349	non-integer-constituent, read them as a part of a symbol.
2350	(read_symbol_element): New arg C.
2351	(read_element): Adjust args to read_symbol_element.
2352
2353	* input.c (load_macros): On overwriting a macro, free the old
2354	definition.
2355	(minput__init): Store Mmap in load_im_info_keys.
2356	(minput_get_title_icon): If the input method has no title, be sure
2357	to return NULL.
2358	(minput_get_description): If the input method has no description,
2359	be sure to return NULL.
2360	(minput_get_variables): Fix documentation.
2361	(handle_key): Pay attention to the case that key is Mnil.
2362	(filter): Likewise.  Fix handling of such symbol as S-A.
2363
23642005-12-22  Kenichi Handa  <handa@m17n.org>
2365
2366	* Version 1.3.0 released.
2367
23682005-12-22  Kenichi Handa  <handa@m17n.org>
2369
2370	* font-ft.c (ft_list): If the specified font has no property,
2371	return all fonts.
2372
23732005-12-20  Kenichi Handa  <handa@m17n.org>
2374
2375	* character.c (mchar_get_prop): Check char_prop_list.
2376	(mchar_put_prop, mchar_get_prop_table): Likewise.
2377
23782005-12-18  Kenichi Handa  <handa@m17n.org>
2379
2380	* input.c (minput_get_title_icon): If LANGUAGE is Mt, try also a
2381	file name sans language.
2382
23832005-12-16  TAKAHASHI Naoto  <ntakahas@m17n.org>
2384
2385	* input.c: Fix typo in comments.
2386
23872005-12-14  Kenichi Handa  <handa@m17n.org>
2388
2389	* input.c (minput_get_title_icon): Check the default icon for the
2390	input method.
2391
23922005-12-13  Kenichi Handa  <handa@m17n.org>
2393
2394	* input.c (Mless_equal, Mgreater_equal): New variables.
2395	(parse_expression, resolve_expression, parse_action_list)
2396	(take_action_list): Handle the aboves.
2397	(filter): Treat key S-X as X.
2398	(minput__init): Initialize Mless_equal and Mgreater_equal.
2399	(minput_get_title_icon): New function.
2400
2401	* m17n.h (minput_get_title_icon): Extern it.
2402
2403	* database.c (get_database_filename): Return a filename instead of
2404	file pointer.
2405	(load_database): Adjusted for the above change.
2406	(mdatabase__load_for_keys): Likewise.
2407	(mdatabase__find_file): New function.
2408
2409	* database.h (mdatabase__find_file): Extern it.
2410
2411	* font.h (mfont__resize): Delete extern.
2412
2413	* font.c (mfont__list): Check resize ratio.
2414	(mfont__resize): Delete it.
2415	(mfont_resize_ratio): Include the code of mfont__resize.
2416
2417	* font-ft.c (ft_open): Check resize ratio.
2418
2419	* m17n-X.c (xfont_open): Check resize ratio.
2420	(xft_open): Likewise.
2421
24222005-12-07  Kenichi Handa  <handa@m17n.org>
2423
2424	* input.c (take_action_list): If take_action_list return -1,
2425	return -1.
2426	(handle_key): Likewise.
2427
2428	* face.c (mface__for_chars): When font is specified and layouter
2429	is found for it, if the layouter doesn't support one of a
2430	character, use a face sans layouter for it.
2431
24322005-12-06  Kenichi Handa  <handa@m17n.org>
2433
2434	* fontset.c (mfont__lookup_fontset): If only a fallback font is
2435	found, don't use it for more than one character.
2436
24372005-12-05  Kenichi Handa  <handa@m17n.org>
2438
2439	* face.c (mface__realize): Set rfont->layouter to Mnil.
2440	(mface__for_chars): Fix handling of layouter.
2441
2442	* character.h (mchar__define_prop): Extern it.
2443
2444	* database.c (update_database_list): Call mchar__define_prop if
2445	necessary.
2446
2447	* character.c (mchar__init): Don't call mchar_define_property.
2448	Instead just initialize property keys.
2449	(mchar__fini): Free char_prop_list only if it's not NULL.
2450	(mchar__define_prop): New function.
2451	(mchar_define_property): Call mchar__define_prop.
2452
2453	* m17n-core.c (m17n_fini_core): Call mtext__prop_fini at after
2454	mplist__fini.
2455
24562005-12-02  Kenichi Handa  <handa@m17n.org>
2457
2458	* language.c (mlang__init): Handle extra chars.
2459
2460	* m17n-gui.h (mfont_check): Adjust prototype.
2461
2462	* m17n-X.c (xfont_driver): Specify xfont_check_capability.
2463	(xfont_check_capability): New function.
2464	(xft_driver): Specify xft_check_capability.
2465	(xft_check_capability): New function.
2466
2467	* font-ft.c (M0_3): Delete it.
2468	(M0): New variable.
2469	(ft_get_charmaps): Refer to M0.
2470	(fc_parse_pattern): Fix previous change.
2471	(ft_list_language): Check also extra chars.
2472	(ft_check_otf): Define it even if HAVE_OTF is undef.
2473	(ft_check_lang): Check the result of FcLangSetHasLang against
2474	FcLangDifferentLang.  Check also extra chars.
2475	(ft_list_capability): Delete ifdef HAVE_OTF.
2476	(ft_select): Likewise.
2477	(ft_open): Improve debug information.
2478	(ft_check_capability): New function.
2479	(mfont__ft_driver): Specify ft_check_capability.
2480	(mfont__ft_init): Initialize M0.
2481
2482	* fontset.c (get_font_from_group): New function.
2483	(mfontset__get_font): New function.
2484
2485	* fontset.h (mfontset__get_font): Extern it.
2486
2487	* font.c (OTF_tag): Define it if HAVE_OTF is undef.
2488	(mfont__fini): Delete ifdef HAVE_OTF.
2489	(free_font_capability): Likewise.
2490	(mfont__get_capability): Likewise.
2491	(mfont__check_capability): New function.
2492	(mfont_check): Change the order of arguments.  Use
2493	mfontset__get_font.
2494
2495	* font.h (struct MFontDriver): New member check_capability.
2496	(MFontCapability): Delete ifdef HAVE_OTF.
2497	(mfont__check_capability): Extern it.
2498
2499	* face.c (mface__realize): Fix handling of FONT arg.
2500	(mface__for_chars): Fix handling of explicitly specified font.
2501
25022005-11-25  Kenichi Handa  <handa@m17n.org>
2503
2504	* font-flt.c (run_command): Print debug info for
2505	left/rigth_padding
2506
2507	* draw.c (layout_glyphs): Fix handling of left/right_padding.
2508
2509	* face.c (mface__for_chars): Check rfont before accessing the
2510	members.
2511
25122005-11-21  Kenichi Handa  <handa@m17n.org>
2513
2514	* Makefile.am (lib_LTLIBRARIES): Define it conditionaly on
2515	WITH_GUI.
2516
2517	* fontset.c (fontset_table): New variable.
2518	(free_fontset): Call M17N_OBJECT_UNREGISTER.
2519	(mfont__fontset_init): Add fontset_table as an object array.
2520	(mfont__realize_fontset): Ref FONTSET.
2521	(mfont__free_realized_fontset): Unref REALIZED->fontset.
2522	(mfontset): Call M17N_OBJECT_REGISTER.
2523	(mfontset_copy): Likewise.
2524
2525	* input.c (handle_key): For debugging, print information about
2526	alias key.
2527	(filter): Add an alias for Meta and Alt modifiers.
2528	(Mcond, Mplus, Mminus, Mstar, Mslush, Mand, Mor, Mnot): New
2529	variables.
2530	(minput__init): Initialize them.
2531	(parse_expression): New function.
2532	(resolve_expression): New function.
2533	(parse_action_list): Handle expressions by parse_expression.
2534	(take_action_list): Handle expressions by resolve_expression.
2535	(parse_nested_list_value): Fix previous change.
2536	(resolve_command): Fix handling of the return value of
2537	get_nested_list.
2538
25392005-11-18  Kenichi Handa  <handa@m17n.org>
2540
2541	* font-ft.c (ft_check_otf, otf_script_list): Define only when
2542	HAVE_OTF is defined.
2543	(ft_list_capability): Call ft_check_otf only when HAVE_OTF is
2544	defined.
2545	(ft_select): Likewise.
2546
2547	* font.c (mfont_list): Fix for the case that FONT is NULL.
2548	(OTF_tag): Delete it.
2549	(load_otf_script_list): Define only when HAVE_OTF is defined.
2550	(mfont__fini): Unref otf_script_list only when HAVE_OTF is
2551	defined.
2552
2553	* draw.c (truncate_gstring): Be sure to truncate at
2554	glapheme-cluster boundary.
2555
25562005-11-11  Kenichi Handa  <handa@m17n.org>
2557
2558	* input.c (delete_surrounding_text): Clear cache if necessary.
2559
25602005-11-09  Kenichi Handa  <handa@m17n.org>
2561
2562	* draw.c (compose_glyph_string): Update prev->rface->rfont if the
2563	glyph prev is also supported by the current flt.
2564
25652005-11-08  Kenichi Handa  <handa@m17n.org>
2566
2567	* m17n-X.c (xft_render): Cancel previous change.
2568
25692005-11-07  Kenichi Handa  <handa@m17n.org>
2570
2571	* input.c: Include <stdlib.h>.
2572	(get_surrounding_text, delete_surrounding_text)
2573	(get_preceding_char, get_following_char): New functions.
2574	(integer_value): New arg surrounding.  If it is nonzero, try to
2575	get a surrounding character.  Callers changed.
2576	(take_action_list): Check `value' before setting an element.
2577	(destroy_ic): Unref ic_info->preceding_text and
2578	ic_info->following_text.
2579	(minput__init): Initialize Minput_get_surrounding_text and
2580	Minput_delete_surrounding_text.
2581	(Minput_get_surrounding_text, Minput_delete_surrounding_text): New
2582	variables.
2583	(filter): Unref ic_info->preceding_text and
2584	ic_info->following_text.
2585
2586	* m17n.h (Minput_get_surrounding_text, Minput_delete_surrounding_text):
2587	Extern them.
2588
2589	* input.h (MInputContextInfo): New members preceding_text and
2590	following_text.
2591
25922005-11-04  Kenichi Handa  <handa@m17n.org>
2593
2594	* input.c (parse_nested_list_value): Fix handling of the global
2595	definition.
2596	(get_nested_list): Get global definitions by load_partial_im_info.
2597	(preedit_commit): Set ic->candidates_changed to bitwise or of enum
2598	MInputCandidatesChanged.
2599	(take_action_list): Likewise.
2600	(reset_ic): Likewise.
2601	(create_ic): Don't pay special attention to
2602	Mcandidates_group_size.
2603	(load_partial_im_info): Call mdatabase_find with correct 4th arg.
2604	(minput_set_variable): Get a definition of varible by
2605	mplist_find_by_value, not mplist_get.
2606
2607	* m17n.h (enum MInputCandidatesChanged): New enum.
2608
26092005-11-01  Kenichi Handa  <handa@m17n.org>
2610
2611	* m17n-X.c (xft_render): Check xft_draw's drawable before changing
2612	it.
2613	(mwin__destroy_window): If xft_draw's drawable is win, change it
2614	to device->drawable before destroying win.
2615
26162005-10-31  Kenichi Handa  <handa@m17n.org>
2617
2618	* input.c (load_im_info): Fix adding of state.
2619
2620	* m17n-core.c (m17n_fini_core): Fix reporting of module
2621	finalization.
2622
2623	* m17n.c (m17n_fini): Fix reporting of module finalization.
2624
2625	* m17n-gui.c (m17n_init_win): Fix reporting of module
2626	finalization.
2627
26282005-10-29  Kenichi Handa  <handa@m17n.org>
2629
2630	* input.c (get_candidate_list): Fix the timing of referring plist.
2631
26322005-10-28  Kenichi Handa  <handa@m17n.org>
2633
2634	* input.c (load_branch): Ignore an undefined map name.
2635	(load_im_info): Set im_info->title from `name' only if it's not
2636	Mnil.
2637	(shift_state): Always update ic->status.
2638	(adjust_candidates): Renamed from adjust_candidate_command.
2639	Argument changed.  Caller changed.
2640	(get_candidate_list, regularize_action): New functions.
2641	(take_action_list): Use them.  On handling Munhandle, don't set
2642	ic_info->used to 0.
2643	(handle_key): If KEY is not handled by MAP, and MAP has
2644	branch_actions, perform them.
2645
2646	* database.c (mdatabase__fini): Free dir_info->filename;
2647
26482005-10-20  Kenichi Handa  <handa@m17n.org>
2649
2650	* input.c (marker_code): Accept '@@'.
2651	(integer_value): Handle '@@'.
2652	(parse_action_list): Accept a symbol argument.
2653	(take_action_list): Resolve the symbol argument.  Handle the
2654	integer argument.
2655
26562005-10-18  Kenichi Handa  <handa@m17n.org>
2657
2658	* input.c: Include "charset.h".
2659	(M_candidates, Mcandidates_group_size, Mcandidates_charset): New
2660	variables.
2661	(MIMState): New member (M17NObject control).
2662	(lookup_nested_list, set_nested_list, parse_nested_list_value)
2663	(get_nested_list, resolve_variable): New functions.
2664	(integer_value): New arg (MPlist **value).  Set it to the plist
2665	element containing the value.
2666	(resolve_command): New function.
2667	(load_translation): New arg (MPlist *map_actions).
2668	(load_branch): New args language and name.  If `keylist' is a
2669	symbol, resolved that as a command name.
2670	(free_map): New arg top.  Free map->map_actions only if top is
2671	nonzero.
2672	(free_state): New function.
2673	(load_state): New arg name.
2674	(im_info_list): New variable.
2675	(free_im_info, get_im_info_by_tags): New functions.
2676	(load_im_info): Arg key changed to plist.  Handle `include'.
2677	Return (MInputMethodInfo *).
2678	(preedit_commit): Ref ic->candidate_list.
2679	(get_select_charset, adjust_candidate_command): New functions.
2680	(take_action_list): Handle `include'.  Adjust candidate action
2681	properly.  Handle control variables `candidates-charset' and
2682	`candidates-group-size'.
2683	(open_im): Use get_im_info.
2684	(create_ic): Get global variables.
2685	(load_partial_im_info): New function.
2686	(get_im_info): New function.
2687	(check_command_keyseq, check_command_list, check_variable_list):
2688	New functions.
2689	(minput__init): Don't handle M_database_hook and Mdetail_text.
2690	Initialize M_candidates, Mcandidates_group_size,
2691	Mcandidates_charset.
2692	(parse_variable_list, get_variable_list, parse_command_list)
2693	(get_command_list): Delete them.
2694	(MDatabaseStatList, imdir_stat_list, input_method_hook): Delete them.
2695	(minput__fini): Simply unref command_list and variable_list.
2696	(minput_get_description): Adjusted for the new form of description.
2697	(minput_get_commands): Use get_nested_list.
2698	(minput_assign_command_keys): Likewise.
2699	(minput_get_variables, minput_set_variable): Likewise.
2700
2701	* input.h (MInputMethodInfo): New members im and maps.
2702
2703	* database.h (M_database_hook): Delete extern.
2704	(MDatabaseHookFunc): Delete extern.
2705	(mdatabase__check): Extern it.
2706
2707	* database.c: Include <glob.h>.
2708	(MAX_TIME): New macro.
2709	(Masterisk): New variable.
2710	(get_database_stream): Argument changed to (MDatabaseInfo *).
2711	Callers changed.
2712	(get_dir_info): Renamed from duplicate_dirname.  Callers changed.
2713	(find_database): New function.
2714	(update_database_list): New function.
2715	(mdatabase__init): Initialize Masterisk.  Setup mdb_list by
2716	calling update_database_list.
2717	(mdatabase__check): New function.
2718	(mdatabase_find): Use update_database and find_database.  Don't
2719	handle MDatabaseHookFunc.
2720	(mdatabase_list): Call update_database at first.
2721	(mdatabase_define): Adjusted for the change of mdb->extra_info.
2722	(MDatabaseList): New type.
2723
2724	* plist.h (mplist_conv, mplist__pop_unref): Extern them.
2725
2726	* m17n.h (Mdetail_text): Delete extern.
2727
2728	* m17n-core.h (mplist_conc): Delete extern.
2729
2730	* plist.c (mplist__conc): Renamed from mplist_conc.  Don't ref
2731	tail.
2732	(mplist_conc): Renamed to mplist__conc.
2733	(mplist__pop_unref): New function.
2734
27352005-10-14  Kenichi Handa  <handa@m17n.org>
2736
2737	* plist.c (read_mtext_element): Ignore the sequence of '\\' and
2738	newline.
2739	(read_element): If keys is an empty plist, return any element
2740	found first.
2741	(dump_plist_element): Check if plist is nested.
2742	(mplist_conc): Always ref tail.
2743	(mplist_set): If key is a managing key, ref val in advance.
2744
2745	* plist.h (MPLIST_VAL_MANAGED_P): Delete this macro.
2746	(MPLIST_NESTED_P, MPLIST_SET_NESTED_P): New macros.
2747	(MPLIST_ADD_PLIST, MPLIST_PUSH_PLIST, MPLIST_PUT_PLIST): New
2748	macros.
2749
2750	* fontset.c (free_fontset): Unref fontset_list if necessary.
2751	(mfont__fontset_fini): Don't free fontset_list.  Unref
2752	default_fontset.
2753	(mfont__realize_fontset): Initialize request.
2754	(mfontset): Ref default_fontset or fontset only if necessary.
2755	(mfontset_copy): Don't ref copy.
2756
2757	* draw.c (render_glyphs): Check gend->type before checking
2758	gend->to.
2759
2760	* font-ft.c (mfont__ft_fini): Unref ft_default_list.  Set all
2761	unrefed plists to NULL.
2762
27632005-10-04  Kenichi Handa  <handa@m17n.org>
2764
2765	* textprop.c (mtext_serialize): Be sure to make mt
2766	MTEXT_FORMAT_UTF_8 and NULL terminated.
2767
2768	* m17n-gui.c (m17n_init_win): Initialize Mcolormap.
2769
2770	* draw.c (mdraw_glyph_list): Fix settting of glyphs->font->source.
2771
27722005-10-03  Kenichi Handa  <handa@m17n.org>
2773
2774	* draw.c (mdraw_glyph_info): Pay attention to the case that FROM
2775	is not at the beginning of line.
2776
27772005-09-22  Kenichi Handa  <handa@m17n.org>
2778
2779	* input.c: Include <sys/stat.h> and <unistd.h>.
2780	(Minclude, Mcommit, Munhandle): New variables.
2781	(minput__init): Initialize them.  Push only Mstate to
2782	load_im_info_keys.   Add aliases C-lowercase for C-uppercase.
2783	(parse_action_list): Allow integer arg for undo.  Handle Mcommit
2784	and Munhandle.
2785	(load_input_method): Handle "include" directive.  If no states are
2786	loaded, return -1.
2787	(shift_state): If state_name is Mt, shift back to the previous
2788	state.  Call preedit_commit to commit preedit text.
2789	(preedit_commit): New function.
2790	(take_action_list): Improve debug printing.  Handle commit and
2791	unhandle commands.
2792	(handle_key): Check the return value of take_action_list.  Don't
2793	take branch_actions just after changing to the root map.
2794	(reset_ic): Reset all ic_info members.
2795	(filter): When a key is not handled, just move ic_info->keys
2796	instead fo calling reset_ic.
2797	(load_im_info): If key is not Mstate, push Mmap to
2798	load_im_info_keys.
2799	(MDatabaseStatList): New type.
2800	(imdir_stat_list): New variable.
2801	(input_method_hook): Don't cancel the hook.  Check the
2802	modification time of directories.
2803	(minput__fini): Free imdir_stat_list;
2804
2805	* input.h (MInputContextInfo): New member prev_state.
2806
2807	* m17n-core.h (mplist_conc): Extern it.
2808
2809	* plist.c (mplist_conc): New function.
2810
2811	* mtext.c (mdebug_dump_mtext): Escape '"' and '\\' by '\\'.
2812
2813	* font.h (MRealizedFont): New member average_width.
2814
2815	* font-ft.c (ft_open): Set rface->average_width.
2816
2817	* font.c (xlfd_unparse_name): Print '*' before registry name.
2818
2819	* m17n-X.c (MDisplayInfo): New member AVERAGE_WIDTH.
2820	(xfont_open): Set rfont->average_width.
2821	(xft_open): Likewise.
2822	(device_open): Initialize disp_info->AVERAGE_WIDTH.
2823
2824	* internal-gui.h (struct MFrame): New member average_width.
2825
2826	* m17n-gui.c (mframe): Fix setting of frame->rfont.
2827	(mframe_get_prop): Return the average_width of a font.
2828
2829	* face.c (mface__realize): Set rface->average_width.
2830	(mface__update_frame_face): Set frame->average_width.
2831
2832	* face.h (MRealizedFace): New member average_width.
2833
28342005-09-19  Kenichi Handa  <handa@m17n.org>
2835
2836	* font.c (xlfd_unparse_name): New arg full_xlfd.
2837	(mfont__encode_char): Use shortcut only for X core fonts.
2838	(mfont_unparse_name): Call xlfd_unparse_name with full_xlfd arg 1.
2839	(mfont_put_prop): Handle `language' property.
2840	(mdebug_dump_font): Call xlfd_unparse_name with full_xlfd arg 0.
2841	Print file can capability info too.
2842
2843	* m17n-core.c (mdebug__output): New variable.
2844	(SET_DEBUG_FLAG): Unset mask if env_value is '0'.
2845	(m17n_init_core): Handle MDEBUG_ALL and MDEBUG_OUTPUT_FILE.
2846	(m17n_fini_core): Close mdebug__output if it's not stderr.
2847
2848	* m17n-X.c (MDisplayInfo): New member MULE_BASELINE_OFFSET.
2849	(xfont_open): Handle baseline_offset.
2850	(xfont_find_metric): Likewise.
2851	(xfont_render): Likewise.
2852	(xft_open): Likewise.
2853	(xft_render): Likewise.
2854
2855	* internal.h (MDebugMaskBit): Add MDEBUG_ALL.
2856	(mdebug__output): Extern it.
2857	(MDEBUG_PRINT, MDEBUG_PRINT1, MDEBUG_PRINT2, MDEBUG_PRINT3)
2858	(MDEBUG_PRINT4, MDEBUG_PRINT5): Print to medebug__output.
2859	(MDEBUG_DUMP): New macro.
2860	(MDEBUG_PRINT_TIME): Print to medebug__output.
2861
2862	* font.h (MRealizedFont): New member baseline_offset.
2863
2864	* font-ft.c (ft_get_charmaps): Check if the font support iso8859-1
2865	characters.
2866	(fc_weight_table): Add FC_WEIGHT_REGULAR.
2867	(ft_list_family): Check alias.
2868	(ft_list_language): If language is "en", don't try to the second
2869	step.
2870	(ft_default_list): New variable.
2871	(ft_list_default): New function.
2872	(ft_select): If family is not specified, try only the default
2873	fonts.  Treat the weights normal and medium same.
2874	(ft_open): Fix debug message.  If registry is not specified, try
2875	unicode-bmp.  Handle _MULE_BASELINE_OFFSET property of BDF fonts.
2876	(ft_find_metric): Likewise.
2877	(ft_render): Likewise.
2878	(ft_list): Fix debug message.  Accept the registring iso8859-1.
2879	If family is not specified, try only the default fonts.
2880
2881	* face.c (mface__realize): Fix logic of opening a font.
2882
28832005-09-16  Kenichi Handa  <handa@m17n.org>
2884
2885	* face.c (mface__realize):
2886
2887	* m17n.h (Minput_focus_move, Minput_focus_in, Minput_focus_out):
2888	Extern them.
2889
2890	* input.c (shift_state): Fix the condition of taking init actions.
2891	(take_action_list): Fix handling of pushback action.
2892	(handle_key): Don't change key while checking its alias.
2893	(minput__init): Initialize new variables.
2894	(Minput_focus_move, Minput_focus_in, Minput_focus_out): New
2895	variables.
2896
28972005-09-12  Kenichi Handa  <handa@m17n.org>
2898
2899	* mtext.c (mtext__uppercase): Add proper open/close parens.
2900	(mtext_titlecase): Add proper casting.
2901
2902	* input.c (parse_action_list): Handle the case that the arg is a
2903	key sequence (MText or MPlist).
2904	(take_action_list): Likewise.
2905	(shift_state): Shorter debug message.
2906	(handle_key): Terminate a debug message by "\n".
2907	(reset_ic): Don't take initial actions here.
2908	(minput_open_im): Print a debug message.
2909	(minput_close_im): Likewise.
2910	(minput_create_ic): Likewise.
2911	(minput_destroy_ic): Likewise.
2912
29132005-09-09  TAKAHASHI Naoto  <ntakahas@m17n.org>
2914
2915	* mtext.c (mtext_lowercase, mtext_titlecase, mtext_uppercase):
2916	Change API.
2917
29182005-09-07  TAKAHASHI Naoto  <ntakahas@m17n.org>
2919	* character.c: Add "cased", "soft-dotted", and "case-mapping" in
2920	mchar__init ().
2921
2922	* character.c: Add Japanese documentation for
2923	mchar_get_prop_table ().
2924
29252005-09-06  TAKAHASHI Naoto  <ntakahas@m17n.org>
2926
2927	* mtext.c (tricky_chars, *cased, *soft_dotted, *case_mapping)
2928	(MCharTable *combining_class, Mlt, Mtr, Maz, gr03A3, lt0049,
2929	(lt004A, lt012E, lt00CC, lt00CD, lt0128, tr0130, tr0049, tr0069):
2930	New variables.
2931	(init_case_conversion): New function.
2932	(CASE_CONV_INIT, REPLACE, DELETE, LOOKUP): New macros.
2933	(uppercase_precheck, lowercase_precheck, final_sigma)
2934	(after_soft_dotted, more_above, before_dot, after_i)
2935	(mtext_uppercase, mtext_titlecase, mtext_lowercase): New functions.
2936
29372005-09-05  TAKAHASHI Naoto  <ntakahas@m17n.org>
2938
2939	* plist.c (read_mtext_element): Fix previous change.
2940
29412005-09-05  Kenichi Handa  <handa@m17n.org>
2942
2943	* plist.c (read_mtext_element): Handle \uXXXX notation.
2944
2945	* internal.h (MTABLE_MALLOC): Don't use a local variable.
2946	(MTABLE_ALLOCA): Change the name of local variable.
2947
2948	* m17n-gd.c (device_open): Define it even if HAVE_GD nor
2949	HAVE_FREETYPE are defined.
2950
2951	* m17n-X.c: Check HAVE_X11.
2952
2953	* Makefile.am (X_LD_FLAGS): Use @X11_LD_FLAGS@ instead of
2954	directory listing libraries.
2955	(noinst_PROGRAMS): Define it only in maintainer mode.
2956
29572005-09-02  Kenichi Handa  <handa@m17n.org>
2958
2959	* m17n-gui.h (mdraw_line_break_option): Extern it.
2960
2961	* draw.c (truncate_gstring): Use find_glyph_in_gstring to find the
2962	end of the first glyph.
2963	(GET_LB_TYPE, find_break_backward, find_break_forward): Delete
2964	them.
2965	(mdraw_line_break_option): New variable.
2966	(mdraw_default_line_break): Use mtext_line_break.
2967
2968	* mtext.h (wordseg_func_table): Don't extern it.
2969	(mtext__wseg_fini): Extern it.
2970
2971	* mtext.c: Don't include word-thai.h.
2972	(wordseg_func_table): Delete this variable.
2973	(mtext__init): Don't initialize above.  Don't call
2974	mtext__word_thai_init.
2975	(mtext__fini): Don't free wordseg_func_table.  Call
2976	mtext__wseg_fini instead fo mtext__word_thai_fini.
2977	(MTextWordsegFunc): Don't typedef it.
2978	(mtext__word_segment): Moved to mtext-wseg.c.
2979
2980	* m17n-core.h (enum MTextLineBreakOption): New enum.
2981	(mtext_line_break): Extern it.
2982
2983	* mtext-wseg.c: New file.
2984
2985	* mtext-lbrk.c: New file.
2986
2987	* Makefile.am (libm17n_core_la_SOURCES): Delete word-thai.[ch],
2988	add mtext-lbrk.c and mtext-wseg.c.
2989
2990	* textprop.c (mtext__adjust_plist_for_change): Pay attention for
2991	the case that head is NULL.
2992
29932005-09-01  Kenichi Handa  <handa@m17n.org>
2994
2995	* word-thai.c (wordseg_propertize): If the property value is nil,
2996	don't make the property no-merge.
2997	(thai_wordseg): Don't require *from and *to are set a priori.  Pay
2998	attention to the case that they are NULL.
2999	(mtext__word_thai_init): Make the name of Mthai_wordseg starts
3000	with two spaces.
3001
3002	* character.c (mchar_get_prop_table): New function.
3003
3004	* textprop.h (mtext__adjust_plist_for_change): Prototype adjusted.
3005
3006	* m17n-core.h (mtext_insert, mtext_replace): Extern them.
3007	(mchar_get_prop_table): Extern it.
3008
3009	* textprop.c (prepare_to_modify): New arg deleting.  Callers changed.
3010	(mtext__adjust_plist_for_change): Argument changed.  Callers changed.
3011
3012	* internal.h (enum MTextCoverage): New enum.
3013	(MText): New member coverage.
3014
3015	* mtext.c (FORMAT_COVERAGE): New macro.
3016	(insert): Copy mt2->coverage.
3017	(mtext__from_data): Initialize mt->coverage.
3018	(mtext__adjust_format): Update mt->coverage.
3019	(mtext): Initialize mt->coverage.
3020	(mtext_set_char): Adjust args to mtext__adjust_plist_for_change.
3021	Update mt->coverage if necessary.
3022	(mtext_duplicate): Copy mt->coverage.
3023	(mtext_insert, mtext_replace): New functions.
3024	(mtext_dup): Use mtext_duplicate.
3025	(mtext__word_segment): Don't set *from and *to if a word
3026	segmentation funcion is not found.
3027	(mtext_ins_char): Fix typo.
3028
30292005-08-25  Kenichi Handa  <handa@m17n.org>
3030
3031	* font.h (MFont): New member for_full_width.
3032
3033	* font.c (compare_font_score): Prefer a font of not
3034	for_full_width.
3035
3036	* m17n-X.c (xfont_registry_list): Set font.for_full_width if the
3037	registry charset of a font is one of CJK charsets.
3038
3039	* font-ft.c (fc_parse_pattern): Set font->for_full_width if a font
3040	supports some of CJK.
3041
30422005-08-24  Kenichi Handa  <handa@m17n.org>
3043
3044	* m17n-gui.h (Mascent, Mdescent): Don't extern them.
3045
3046	* m17n-gui.c (null_device_open): Check Mresolution param and set
3047	frame->dpi.
3048
3049	* m17n-gd.c (device_open): Check Mresolution param and set
3050	frame->dpi.
3051
3052	* m17n-X.c (MWDevice): New member resy.
3053	(xfont_open): Set ascent, descent, and max_advance members of
3054	rfont.
3055	(xft_open): Likewise.
3056	(device_open): Compare also screen_num to find a device.  Set
3057	device->resy and frame->dpi.
3058
3059	* internal-gui.h (MFrame): New member dpi.
3060
3061	* font.h (MRealizedFont): New member max_advance.
3062
3063	* font.c (xlfd_unparse_name): Handle the case of font->size < 0.
3064	(mfont__init): Don't initialize Mascent, Mdescent.
3065	(Mascent, Mdescent): Delete these variables.
3066	(mfont_get_prop): Fix previous change.  Check Mfont_ascent and
3067	Mfont_descent instead of Mascent and Mdescent.
3068	(mfont_put_prop): Allow negative size.
3069	(mfont_find): Handle the case of spec->size < 0.  Fix previous
3070	change.
3071	(mfont_list): Handle the case of spec->size < 0.
3072	(mfont_check): Likewise.
3073
3074	* font-ft.c (STRDUP_LOWER): Ignore the tailing spaces.
3075	(fc_get_pattern): Handle the case of font->size < 0.
3076	(ft_open): Set ascent, descent, and max_advance members of rfont.
3077	(ft_find_metric): Improve rounding.
3078	(mfont__ft_parse_name): If FC_PIXEL_SIZE is not available, set
3079	FC_SIZE.
3080
3081	* face.c (mface__realize): Handle the case of font->size < 0.
3082
30832005-08-22  Kenichi Handa  <handa@m17n.org>
3084
3085	* coding.c (MConverterStatus): Change the member buf to union.
3086	(mconv_buffer_converter): Add const to the arg buf.
3087	(mconv_decode_buffer, mconv_rebind_buffer): Likewise.
3088	(mconv_decode): Adjusted for the change of MConverterStatus.
3089	(mconv_encode_range): Likewise.
3090
3091	* m17n.h (mconv_buffer_converter): Prototype adjusted.
3092	(mconv_decode_buffer, mconv_rebind_buffer): Likewise.
3093
30942005-08-20  Kenichi Handa  <handa@m17n.org>
3095
3096	* m17n-gui.h (mfont_from_name): Prototype adjusted.
3097	(Mspacing, Mascent, Mdescent, Mmax_advance): Extern them.
3098
3099	* m17n-X.c (xfont_open): Set members ascent, descent, and
3100	max_advance of rfont.
3101	(xft_open): Likewise.
3102
3103	* font-ft.c (ft_open): Set members ascent, descent, and max_advance
3104	of rfont.
3105	(mfont__ft_parse_name): Add const to the arg name.
3106
3107	* font.c (xlfd_parse_name): Add const to the arg name.  Call
3108	mfont__set_property instead of mfont_set_spec.  Set font->spacing.
3109	(xlfd_unparse_name): Handle spacing.
3110	(mfont__init): Initialize new variables.
3111	(mfont__id): Handle spacing.
3112	(mfont__merge): Likewise.
3113	(mfont__set_spec): This function deleted.
3114	(mfont__parse_name_into_font): Add const to the arg name.  Fix the
3115	condition of calling mfont__ft_parse_name.
3116	(Mspacing, Mascent, Mdescent, Mmax_advance): New variables.
3117	(mfont_get_prop): Handle properties spacing, ascent, descent,
3118	and max-advance.
3119	(mfont_find): Return a realized font.
3120	(mfont_from_name): Add const to the arg name.
3121
3122	* font.h (enum MFontProperty): New member MFONT_SPACING.
3123	(enum MFontSpacing): New enum.
3124	(MFont): New members spacing and max_advance.
3125	(mfont__ft_parse_name): Prototype adjusted.
3126	(mfont__set_spec): Extern deleted.
3127	(mfont__parse_name_into_font): Prototype adjusted.
3128
31292005-08-19  Kenichi Handa  <handa@m17n.org>
3130
3131	* m17n-gui.h (mfont_parse_name): Prototype adjusted.
3132
3133	* font.c (mfont_list): If FONT is null, use a temporary font.
3134	(mfont_parse_name): Add const to the arg name.
3135
31362005-08-18  Kenichi Handa  <handa@m17n.org>
3137
3138	* word-thai.c: Surround code by #ifdef and #endif to escape from
3139	doxygen.
3140
3141	* font-ft.c: Mostly re-written.
3142
3143	* font-flt.c (FontLayoutCmdOTF): This type deleted.
3144	(FontLayoutCmd): Type of the member otf changed..
3145	(load_otf_command): Adjusted for the format change of otf command.
3146	(load_command): Likewise.
3147	(free_flt_command): Unref cmd->body.otf.
3148	(run_otf): Ajusted for the type change of otf_cmd.
3149	(run_command): Ajusted for the type change of otf_cmd.  On
3150	debugging, print ctx->combining_code.
3151	(mfont__flt_run): Initialize ctx's members code_offset,
3152	combining_code, and left_padding to 0.
3153
3154	* face.h (struct MRealizedFace): New member font.
3155	(mface__realize): Prototype adjusted.
3156
3157	* face.c (find_realized_face): New arg font.
3158	(find_realized_face): Adjusted for the change of MFont.
3159	(mface__init): Call M17N_OBJECT_ADD_ARRAY.
3160	(mface__fini): Don't call mdebug__report_object.
3161	(mface__realize): New arg font.
3162	(mface__for_chars): Adjusted for the change of mfont__encode_char.
3163	Optimize the latin case.
3164	(mface__free_realized): Free rface->font.
3165	(mface__update_frame_face): Adjusted for the change of mface__realize.
3166	(mface_equal): New function.
3167
3168	* draw.c (Mcommon): New variable.
3169	(visual_order): Args to mfont__encode_char changed.
3170	(compose_glyph_string): Handle Mfont text property.
3171	(layout_glyphs): Adjusted for the change of MFont.
3172	(mdraw__init): Initialize Mcommon.
3173	(mdraw_glyph_info): Adjusted for the change of MRealizedFont.
3174
3175	* font.h (enum MFontType): Members completely changed.
3176	(enum MFontProperty): Move MFONT_SIZE to the tail.
3177	(enum MFontSource): New enum.
3178	(struct MFont): New members type, source, sizes, file, capability,
3179	and encoding.
3180	(struct MRealizedFont): Type of member font changed. Members
3181	score, status, and encoding deleted.
3182	(MFontScore): New type.
3183	(MFontList): Member changed.
3184	(struct MFontDriver): New member has_char.  Types of members
3185	changed.
3186	(Miso8859_1, Miso10646_1, Municode_bmp, Municode_full)
3187	(Mapple_roman): Extern them.
3188	(OTF_Tag): Typedefed if not HAVE_OTF.
3189	(enum MFontOpenTypeTable): New enum.
3190	(MFontCapability): New type.
3191	(mfont__ft_drive_otf): Prototype adjusted.
3192	(mfont__score): Extern deleted.
3193	(mfont__merge): Extern it.
3194	(mfont__has_char): Extern it.
3195	(mfont__encode_char): Prototype adjusted.
3196	(mfont__open): Extern it.
3197	(mfont__set_spec): Prototype adjusted.
3198	(mfont__get_capability): Extern it.
3199
3200	* font.c: Include "fontset.h".
3201	(M_font_capability, M_font_list, M_font_list_len): New variables.
3202	(font_score_priority): Change order of initial elements.
3203	(font_score_shift_bits): Fix array size.
3204	(common_weight): Add "thin", "semibold", and "heavy".
3205	(common_stretch): Add "ultracondensed", "extracondensed",
3206	"extraexpanded", and "utltraexpand".
3207	(font_weight_regular, font_weight_normal, font_weight_medium): New
3208	variables.
3209	(gen_font_name): This function deleted.
3210	(find_encoding): Set font->encoding.
3211	(OTF_tag): New function.
3212	(otf_script_list): New variable.
3213	(load_otf_script_list): New function.
3214	(find_script_from_otf_tag): New function.
3215	(xlfd_parse_name): Set font->type and font->source.
3216	(mfont__free_realized): Free chains rfonts.
3217	(font_score): Renamed from mfont__score.
3218	(Miso8859_1, Miso10646_1, Municode_bmp, Municode_full)
3219	(Mapple_roman): New variables.
3220	(mfont__init): Initilize new variables.  Initalize
3221	default_encoding.encoding_name and
3222	default_encoding.encoding_charset to Municode_full and
3223	mcharset__unicode.  Use SAFE* macros for allocating filepath
3224	buffer.
3225	(mfont__fini): Free otf_script_list.
3226	(mfont__id): New function.
3227	(mfont__match_p): Check also capability member of MFont.
3228	(mfont__merge): New funciton.
3229	(mfont__set_spec_from_face): Set type and source members.
3230	(mfont__set_spec_from_plist): Set capability and type members.
3231	(mfont__select): Argument changed.
3232	(mfont__available): New function.
3233	(compare_font_score): New function.
3234	(mfont__list): New function.
3235	(mfont__open): Return a realized font.
3236	(mfont__resize): Adjusted for the change of MFont.
3237	(mfont__has_char): New function.
3238	(mfont__encode_char): Argument changed.
3239	(mfont__set_spec): Argument changed.
3240	(free_font_capability): New function.
3241	(mfont__get_capability): New function.
3242	(MFontfile): New variable.
3243	(mfont_get_prop): Adjusted for the change of MFont.
3244	(mfont_put_prop): Likewise.
3245	(mfont_set_selection_priority): Fix the way of setting
3246	font_score_priority[].
3247	(mfont_find): Use mfont__list instead of mfont__select.
3248	(mfont_resize_ratio): Adjusted for the change of MFont.
3249	(mfont_list): Use mfont__list.
3250	(mfont_check): New function.
3251	(font_score): Make it static.
3252
3253	* fontset.h (mfont__realize_fontset): Prototype adjusted.
3254	(mfont__lookup_fontset): Likewise.
3255
3256	* fontset.c (struct MFontset): Delete member font_spec_list.
3257	(struct MRealizedFontset): Type of member spec changed.  New
3258	member request.
3259	(load_font_group): Arg spec_list deleted.
3260	(load_fontset_contents): Adjusted for the change of fontset_def.
3261	(free_fontset): Fix the way of freeing fontset elements.
3262	(realize_fontset_elements): Argument changed.
3263	(get_per_script): New function.
3264	(free_realized_fontset_elements): Fix the way of feeing rfontset
3265	elements.
3266	(update_fontset_elements): Fix args to realize_fontset_elements.
3267	(mfont__realize_fontset): New arg spec.
3268	(try_font_list): New function.
3269	(try_font_group): New arg request.  Use try_font_list.
3270	(mfont__lookup_fontset): New arg ignore_fallback.  Fix arg to
3271	try_font_group.
3272	(mfontset): Adjusted for the change of MFontset.
3273	(mfontset_copy): Likewise.  Don't share plists.
3274	(mfontset_modify_entry): Adjusted for the change of MFontset.
3275	(mfontset_lookup): Call get_per_script.
3276	(mdebug_dump_fontset): Print also the address of fonts.
3277
3278	* input.c (shift_state): Don't reset ic_info->vars.
3279	(take_action_list): Call MDEBUG_PRINT fore calling
3280	take_action_list.
3281
3282	* internal-gui.h (MFontDriver): Don't typedef it here.
3283
3284	* m17n-X.c: Include <fontconfig/fcfreetype.h> if HAVE_XFT2.
3285	(MXFont): This type deleted.
3286	(MFontX): New type.
3287	(struct _MFontX): New struct.
3288	(SET_SIZE, HAVE_SIZE): Adjusted for the change of arg FONTX.
3289	(MDisplayInfo): Member base_font_list deleted.
3290	(DEFAULT_FONT): Definition changed.
3291	(FALLBACK_FONT): This maclr deleted.
3292	(free_display_info): Adjusted for the change of MDisplayInfo.
3293	(free_device): Argument to mfont__free_realized changed.
3294	(xfont_driver): Adjusted for the change of MFontDriver.
3295	(xfont_registry_list): Use MFontX instead of MXFont.
3296	(MRealizedFontX): Renamed from MXFontInfo.
3297	(xfont_select): Return the font found first.
3298	(close_xfont): Change MXFontInfo to MRealizedFontX.
3299	(xfont_open): Return the realized font.
3300	(xfont_find_metric): Get xfont from rfont->fontp.
3301	(xfont_has_char): New function.
3302	(xfont_encode_char): Adjusted for the argument change.
3303	(xfont_render): Get xfont from rfont->fontp.
3304	(xfont_list): Adjusted for the argument change.
3305	(MRealizedFontXft): Renamed from MXftFontInfo.
3306	(xft_driver): Ajusted for the change of MFontDriver.
3307	(close_xft): Change MXtfFontInfo to MRealizedFontXft
3308	(xft_open_font): Argument changed.
3309	(xft_open): Argument changed.  Return the realized font.
3310	(xft_find_metric): Get xft_font from rfont->fontp.
3311	(xft_has_char, xft_encode_char): New functions.
3312	(xft_render): Change MXftFontInfo to MRealizedFontXft.  Open a
3313	font if not yet opened.
3314	(device_open): Don't set frame->font.
3315
3316	* m17n-gd.c (gd_font_driver): Adjusted for the change of
3317	MFontDriver.
3318	(gd_font_open): New function.
3319	(gd_render): Don't use the local variable ft_info.
3320	(device_init): Adjusted for the change of gd_font_driver.
3321
3322	* textprop.c (mtext__prop_init): Initialize text_property_table.
3323	Call M17N_OBJECT_ADD_ARRAY.
3324	(mtext__prop_fini): Don't call mdebug__report_object.
3325
3326	* plist.c (mplist__init): Initialize plist_table.
3327	(mplist__init): Call M17N_OBJECT_ADD_ARRAY.
3328	(mplist__fini): Don't call mdebug__report_object.
3329
3330	* mtext.c (mtext__init): Call M17N_OBJECT_ADD_ARRAY.
3331	(mtext__fini): Don't call mdebug__report_object.
3332	(MTEXT_FORMAT_UTF_16): Correct type.
3333	(mtext_data): New function.
3334	(mtext_text): Fix calculation of limit and args to
3335	find_char_backward.
3336
3337	* language.c: Include "plist.h".
3338	(M_script_lang_list): New variable.
3339	(mlang__init): Read languages and their information from m17n
3340	database.
3341	(mlanguage__list): New function.
3342	(Miso639_1, Miso639_2): New variables.
3343
3344	* language.h (mlanguage__list): Extern it.
3345
3346	* database.c (get_database_stream): Use SAFE_* macros for
3347	allocating and freeing path.
3348	(mdatabase__init): Likewise.
3349
3350	* symbol.c (msymbol__fini): Don't free symbols here.
3351	(msymbol__free_table): New function.
3352	(msymbol_is_managing_key): New function.
3353
3354	* symbol.h (msymbol__free_table): Extern it.
3355	(msymbol__list): Extern it.
3356
3357	* internal.h (MFATAL, USE_SAFE_ALLOCA, SAFE_ALLOCA, SAFE_FREE):
3358	New macros.
3359	(M17N_OBJECT_UNREF): Change "if ... else ..." structure.
3360	(struct _M17NObjectArray): New member name and next.
3361	(mdebug__add_object_array): Extern it.
3362	(M17N_OBJECT_ADD_ARRAY): New macro.
3363	(mdebug__report_object): Don't extern it.
3364
3365	* m17n-misc.h (enum MErrorCode): New element MERROR_FONT_X.
3366
3367	* m17n-gui.c (free_frame): Don't free frame->font.
3368	(null_device_fini): Fix code for freeing
3369	null_device.realized_font_list.
3370	(m17n_fini_win): Free interface.
3371	(mframe): Cast the return value of dlsym.  Set frame->font here.
3372	(mframe_get_prop): Check frame->rface->rfont before accessing the
3373	member font.
3374
3375	* m17n-gui.h (Mfontfile): Extern it.
3376	(mfont_check): Extern it.
3377	(mface_equal): Extern it.
3378
3379	* m17n-core.c: Include "symbol.h".
3380	(report_header_printed): This variable deleted.
3381	(object_array_root): New variable.
3382	(report_object_array): New function.
3383	(mdebug__report_object): This function deleted.
3384	(mdebug__add_object_array): New function.
3385	(m17n_init_core): Call mchartable_init () before mtext_init ().
3386	(m17n_fini_core): Call report_object_array (if necessary) and
3387	msymbol__free_atable at the end.
3388
3389	* m17n-core.h (msymbol_is_managing_key): Extern it.
3390	(mtext_data): Extern it.
3391	(MTEXT_FORMAT_UTF_16): Correct type.
3392	(M17NLIB_MINOR_VERSION): Changed to 3.
3393	(M17NLIB_VERSION_NAME): Changed to "1.3.0".
3394
3395	* chartab.c (mchartable__init): Initalize chartable_table.count.
3396	(mchartable__fini): Use N17N_OBJECT_ADD_ARRAY instead of
3397	mdebug__report_object.
3398
33992005-05-26  Kenichi Handa  <handa@m17n.org>
3400
3401	* m17n.h (Miso639_1, Miso639_2): Extern them.
3402
3403	* symbol.h (msymbol__list): Extern it.
3404
3405	* symbol.c (msymbol__list): New function.
3406
34072005-05-19  Kenichi Handa  <handa@m17n.org>
3408
3409	* input-gui.c (minput__win_init): Don't change the value of
3410	minput_driver.
3411
34122005-05-16  Kenichi Handa  <handa@m17n.org>
3413
3414	* m17n-core.c (m17n_object): Be sure to initialize all members.
3415
3416	* font-ft.c (fc_decode_prop): Fix args to msymbol.
3417
34182005-05-09  Kenichi Handa  <handa@m17n.org>
3419
3420	* m17n-X.c (mwin__close_device): Fix arg to M17N_OBJECT_UNREF.
3421
34222005-04-27  Kenichi Handa  <handa@m17n.org>
3423
3424	* language.c (mlang__init): Add "an" (Aragonese).
3425
3426	* word-thai.c: Add support for libthai.
3427	(mtext__word_thai_init): Initialize wordseg library conditionaly.
3428	(mtext__word_thai_fini): Finalize wordseg library conditionaly.
3429
3430	* mtext.c: Include "word-thai.h" conditionaly.
3431	(mtext__init): Call mtext__word_thai_init conditionaly.
3432	(mtext__fini): Call mtext__word_thai_fini conditionaly.
3433
3434	* Makefile.am (libm17n_core_la_LIBADD): Add THAI_WORDSEG_LD_FLAGS,
3435	not WORDCUT_LD_FLAGS.
3436
34372005-04-19  Kenichi Handa  <handa@m17n.org>
3438
3439	* word-thai.c (wordseg_propertize): Always unref the attached
3440	property.
3441	(thai_wordseg): Don't unref the property.
3442
34432005-04-18  Kenichi Handa  <handa@m17n.org>
3444
3445	* word-thai.c: Include stdlib.h.
3446	(wordseg_propertize): Add dummy function for the case that wordcut
3447	library doesn't exist.
3448	(wordseg_propertize): Fix for old wordcut library.
3449
34502005-04-16  Kenichi Handa  <handa@m17n.org>
3451
3452	* word-thai.c: Include <stdio.h>.
3453
34542005-04-15  Kenichi Handa  <handa@m17n.org>
3455
3456	* draw.c: Include mtext.h.
3457	(linebreak_table, M_break_at_space, M_break_at_word)
3458	(M_break_at_any, M_kinsoku_bol, M_kinsoku_eol): New variables.
3459	(compose_glyph_string): Check POS before getting Mface text
3460	property.
3461	(truncate_gstring): Give correct TO arg to line_break function.
3462	(GET_LB_TYPE): New macro.
3463	(find_break_backward, find_break_forward): New functions.
3464	(mdraw__init): Initialize the above new variables.
3465	(mdraw__fini): Free linebreak_table.
3466	(mdraw_default_line_break): Use find_break_backward and
3467	find_break_forward.
3468
3469	* word-thai.c: New file.
3470
3471	* word-thai.h: New file.
3472
3473	* mtext.c: Include word-thai.h.
3474	(wordseg_func_table): New variable.
3475	(mtext__init): Initialize wordseg_func_table and call
3476	mtext__word_thai_init.
3477	(mtext__fini): Call mtext__word_thai_fini, free
3478	wordseg_func_table.
3479	(MTextWordsegFunc): New type.
3480	(mtext__word_segment): New function.
3481
3482	* mtext.h (wordseg_func_table): Extern it.
3483	(mtext__word_segment): Extern it.
3484
3485	* m17n.c (m17n_init): Fix typo (== -> =).
3486
3487	* Makefile.am (libm17n_core_la_SOURCES): Include word-thai.[ch].
3488	(libm17n_core_la_LIBADD): Add @WORDCUT_LD_FLAGS@.
3489
3490	* textprop.h (MTEXTPROP_START, MTEXTPROP_END, MTEXTPROP_KEY)
3491	(MTEXTPROP_VAL): New macros.
3492
3493	* input.c (DLOPEN_SHLIB_EXT): Don't define it.
3494
34952005-04-07  Kenichi Handa  <handa@m17n.org>
3496
3497	* database.c (load_chartable): Fix pursing of symbol name.
3498
34992005-03-24  Kenichi Handa  <handa@m17n.org>
3500
3501	* m17n.c (m17n_init): Fix typo (== -> =).
3502
35032005-03-11  Kenichi Handa  <handa@m17n.org>
3504
3505	* m17n-gui.c (m17n_init_win): Set merror_code to MERROR_NONE at first.
3506
3507	* m17n.c (m17n_init): Set merror_code to MERROR_NONE at first.
3508
3509	* m17n-core.c (m17n_init_core): Set merror_code to MERROR_NONE at
3510	first.
3511
35122005-03-09  handa  <handa@m17n.org>
3513
3514	* m17n-gui.c (m17n_init_win): Set merror_code to MERROR_NONE before
3515	calling m17n_init ().
3516
3517	* m17n.c (m17n_init): Set merror_code to MERROR_NONE before
3518	calling m17n_init_core ().
3519
35202005-02-28  Kenichi Handa  <handa@m17n.org>
3521
3522	* font-flt.c (mfont__flt_run): Add resulting code sequence in
3523	debug info.
3524
35252005-02-17  Kenichi Handa  <handa@m17n.org>
3526
3527	* input.c: Include <sys/types.h>, <dirent.h>, and "database.h".
3528	(M_description, M_command, M_variable): New variables.
3529	(load_im_info_keys): New variables.
3530	(load_im_info, check_command_keyseq, get_description_advance)
3531	(parse_command_list, get_command_list, parse_variable_list)
3532	(get_variable_list, input_method_hook): New functions.
3533	(command_list, variable_list): New variables.
3534	(minput__init): Put input_method_hook to Minput_method.
3535	Initialize M_description, M_command, M_variable, Mdetail_text,
3536	load_im_info_keys, command_list, variable_list.
3537	(minput__fini): Unref command_list, variable_list, load_im_info_keys.
3538	(Mdetail_text): New variable.
3539	(minput_get_description, minput_get_commands)
3540	(minput_assign_command_keys, minput_get_variables)
3541	(minput_set_variable): New functions.
3542
3543	* m17n.h (Mdetail_text, minput_get_description, minput_get_commands)
3544	(minput_assign_command_keys, minput_get_variables)
3545	(minput_set_variable): Extern them.
3546
3547	* plist.c (UNGETC): Just decrement st->p.
3548	(read_mtext_element): New arg skip.
3549	(read_integer_element): Likewise.
3550	(read_symbol_element): Likewise.
3551	(read_element): New arg KEYS.
3552	(mplist__from_plist): Don't increment ref-count of NULL object.
3553	(mplist__from_file): New arg KEYS.
3554	(mplist_put): Don't increment ref-count of NULL object.
3555	(mplist_add): Likewise.
3556	(mplist_push): Likewise.
3557	(mplist_set): Likewise.  Call M17N_OBJECT_UNREF unconditionally.
3558
3559	* plist.h (mplist__from_file): Prototype adjusted.
3560
3561	* database.c (mdatabase__dir_list): Renamed from mdb_dir_list.
3562	(get_database_stream): New function.
3563	(load_database): Use get_database_stream.
3564	(M_database_hook): New variable
3565	(mdatabase__init): Initialize M_database_hook.
3566	(mdatabase__load_for_keys): New function.
3567	(mdatabase_find, mdatabase_list, mdatabase_define): Check hook
3568	function.
3569	(mdatabase_define): Free mdb->extra_info if necessary.
3570
3571	* database.h (mdatabase__dir_list, M_database_hook)
3572	(mdatabase__load_for_keys): Extern them.
3573	(MDatabaseHookFunc): New type.
3574
3575	* internal.h (M17N_OBJECT_UNREF): When freed, set OBJECT to NULL.
3576
35772004-12-27  Kenichi Handa  <handa@m17n.org>
3578
3579	* Version 1.2.0 released.
3580
35812004-12-27  Kenichi Handa  <handa@m17n.org>
3582
3583	* input.c (minput_filter): Don't reset ic->xxx_changed.
3584
3585	* mtext.c (mtext_from_data): Fix documentation.
3586
35872004-12-25  Kenichi Handa  <handa@m17n.org>
3588
3589	* m17n-core.h (M17NLIB_MINOR_VERSION): Update to 2.
3590	(M17NLIB_VERSION_NAME): Update to "1.2.".
3591
35922004-12-24  Kenichi Handa  <handa@m17n.org>
3593
3594	* input.c (reset_ic): Set key_unhandled to 0.
3595
35962004-12-21  Kenichi Handa  <handa@m17n.org>
3597
3598	* m17n-gui.h (mfont_from_spec): Delete extern.
3599
3600	* input-gui.c (win_callback): Handle Minput_reset.
3601	(minput__win_init): Register reset_ic as a callback for
3602	Minput_reset.
3603
3604	* input.c (reset_ic): New arg IGNORE which is ignored.  Caller
3605	changed.  At first, shift to the initial state.
3606	(minput__init): Initialize Minput_reset.  Register reset_ic as a
3607	callback for Minput_reset.
3608	(Minput_reset): New variable.
3609	(minput_filter): Always set ic->xxx_changed to 0.
3610	(minput_reset_ic): New function.
3611	(integer_value): Fix typo ('>' -> '<') and calculation of length
3612	of preedit text.
3613
3614	* m17n-core.c (merror_code): Change type to `int'.
3615
3616	* m17n-misc.h (merror_code): Adjust type.
3617
3618	* m17n.h (Minput_reset, minput_reset_ic): Extern them.
3619
3620	* m17n-core.h (MTEXT_FORMAT_UTF_16, MTEXT_FORMAT_UTF_32): Adjust types.
3621	(mtext_change_prop): Delete extern.
3622
3623	* mtext.c (MTEXT_FORMAT_UTF_16, MTEXT_FORMAT_UTF_32): Change types
3624	to `int'.  Move the documents to m17n-core.h.
3625
36262004-12-13  Kenichi Handa  <handa@m17n.org>
3627
3628	* m17n-core.h (m17n_object): Rename extern from m17n_object_setup.
3629	(MTextProperty): Document it.
3630
36312004-12-09  Kenichi Handa  <handa@m17n.org>
3632
3633	* m17n-core.h: Fix typo (MTextStatus -> M17NStatus).
3634
36352004-12-03  Kenichi Handa  <handa@m17n.org>
3636
3637	* internal.h (m17n__core_initialized, m17n__shell_initialized,
3638	m17n__gui_initialized): New externs.
3639
3640	* m17n-core.h (enum M17NStatus): New enum.
3641	(m17n_status): Extern it.
3642
3643	* m17n-core.c (core_initialized): Delete this variable.
3644	(m17n__core_initialized, m17n__shell_initialized,
3645	m17n__gui_initialized): New variables.
3646	(m17n_init_core, m17n_fini_core): Check m17n__core_initialized
3647	instead of core_initialized.
3648	(m17n_status): New function.
3649
3650	* m17n.c (shell_initialized): Delete this variable.
3651	(m17n_init, m17n_fini): Check m17n__shell_initialized instead of
3652	shell_initialized.
3653
3654	* m17n-gui.h (m17n_init_win): Adjust the prototype.
3655
3656	* m17n-gui.c (win_initialized): Delete this variable.
3657	(m17n_init_win, m17n_fini_win): Check m17n__gui_initialized
3658	instead of gui_initialized.
3659
36602004-11-19  Kenichi Handa  <handa@m17n.org>
3661
3662	* input.c (reset_ic): Check if ic_info->state is NULL.
3663	(filter): If ic_info->state is NULL, return 0.
3664	(load_input_method): Don't unref `maps' it it's not created.
3665
36662004-11-15  Kenichi Handa  <handa@m17n.org>
3667
3668	* input.c (find_candidates_group): If INDEX is -1, find the last
3669	candidate group.
3670	(take_action_list): If the previous of the first candidate is
3671	requested, select the last candidate.
3672
36732004-11-08  Kenichi Handa  <handa@m17n.org>
3674
3675	* m17n-X.c (device_open): Try at most 32 fonts to find a
3676	non-autoscaled font.
3677
3678	* font.c (xlfd_parse_name): Fix previous change.
3679
36802004-11-05  Kenichi Handa  <handa@m17n.org>
3681
3682	* font.c: (commont_style): Include dummy elements "slanted" and
3683	"rslanted" to prefer "o" to "r" if "i" is requested.
3684
3685	* font-ft.c (ft_to_prop): Fix "oblique" entry.
3686
36872004-10-29  Kenichi Handa  <handa@m17n.org>
3688
3689	* font.c (xlfd_parse_name): If avgwidth is 0, set the size to 0.
3690
3691	* m17n-X.c (MXFont): Change type of the member `sizes' to int.
3692	New members smallest and larger.
3693	(SET_SIZE, HAVE_SIZE): Adjusted for the above change.
3694	(xfont_registry_list): Likewise.
3695	(xfont_select): Likewise.
3696
3697
36982004-10-28  Kenichi Handa  <handa@m17n.org>
3699
3700	* m17n-X.c (xfont_registry_list): Include '-' before PIXEL_SIZE in
3701	font name comparison.
3702	(xfont_select): Fix logic for selecting a larger size font.
3703
37042004-10-25  Kenichi Handa  <handa@m17n.org>
3705
3706	* input.c (take_action_list): Initialize `ret' to 0 for "=", "<",
3707	">" actions.
3708
37092004-10-22  Kenichi Handa  <handa@m17n.org>
3710
3711	* input.c (update_candidate): Renamed from udpate_candidate.
3712	(take_action_list): Show more debugging info on arithmetic commands.
3713
3714	* m17n-X.c (device_open): Fix previous change.
3715
3716	* draw.c (compose_glyph_string): Don't get face property at the
3717	end of M-text.
3718
37192004-10-21  Kenichi Handa  <handa@m17n.org>
3720
3721	* draw.c (compose_glyph_string): Fix for the case of category
3722	being Mnil.
3723
37242004-10-19  Kenichi Handa  <handa@m17n.org>
3725
3726	* input.c (mdebug_mask): New variable.
3727	(shift_state): Print debug information.
3728	(take_action_list): Likewise.
3729	(handle_key): Likewise.
3730
37312004-10-14  Kenichi Handa  <handa@m17n.org>
3732
3733	* m17n-X.c (device_open): Accept Mxft as the value of key Mfont.
3734
37352004-10-13  Kenichi Handa  <handa@m17n.org>
3736
3737	* m17n-X.c (device_open): Be sure to register at least one font
3738	driver.
3739
3740	* font-ft.c: Include <freetype/ftbdf.h> conditionally.  Check
3741	HAVE_FTBDF_H before calling FT_Get_BDF_Property.
3742
37432004-10-12  Kenichi Handa  <handa@m17n.org>
3744
3745	* draw.c (alloc_gstring): Fix previous change.
3746
3747	* font-ft.c (ft_list_generic): Fix for the case of not
3748	HAVE_FONTCONFIG.
3749
3750	* m17n-X.c (mwin__parse_event): Fix for non-ASCII keys.
3751
3752	* font.c (mfont_list): If no font is found, return NULL.
3753	(load_font_encoding_table): Put entries of nil registry first.
3754	(find_encoding): Adjust for the above change.
3755
37562004-10-11  Kenichi Handa  <handa@m17n.org>
3757
3758	* m17n-gui.h (mfont_list): Adjust prototype.
3759
3760	* m17n-X.c (xfont_list): New arg maxnum.
3761
3762	* font.h (struct MFontDriver): Change prototype of <list>.
3763
3764	* font-ft.c (fc_generic_family_list): Delete it.
3765	(Mserif, Msans_serif, Mmonospace): Delete them.
3766	(M_generic_family_info): New variable.
3767	(enum GenericFamilyType): New enum.
3768	(struct GenericFamilyInfo): New struct.
3769	(generic_family_table): New variable.
3770	(set_font_info): New arg style. Don't check 0xA0..0xBF to decide
3771	iso8859-1.
3772	(add_font_info): Get style here.
3773	(ft_list_family): Don't initialize fc_config here.  Don't list
3774	generic families.
3775	(ft_list_generic): New function.
3776	(ft_select): Pay attention to generic familes here.
3777	(ft_open): Fix calculation of ascent and descent.
3778	(ft_list): Pay attention to generic families.
3779	(mfont__ft_init): Initialize M_generic_family_info,
3780	generic_family_table, and fc_config..
3781	(mfont__ft_fini): Finalize generic_family_table.
3782
3783	* draw.c (compose_glyph_string): Use more constant font for
3784	glyphs.  Adjust for the member change in MGlyph.
3785	(layout_glyph_string): Adjust for the member change in MGlyph.
3786	(alloc_gstring): Intilize scracth_glyph to avoid
3787	compose_glyph_string on it.
3788	(get_gstring): Don't call compose_glyph_string on scracth_glyph.
3789	(mdraw_coordinates_position): Fix previous change.
3790
3791	* internal-gui.h (glyph_category): New enum.
3792	(MGlyph): Change type of <category> to enum glyph_category.
3793
3794	* face.c (mface__realize): Delete args language and charset.
3795	(mface__for_chars): Fix for the case that glyphs have different
3796	rfaces.
3797	(mface__update_frame_face): Adjust for mface__realize change.
3798
3799	* face.h (mface__realize): Adjust prototype.
3800
38012004-10-05  Kenichi Handa  <handa@m17n.org>
3802
3803	* language.c (mlang__init): Add Akan.
3804
38052004-10-04  Kenichi Handa  <handa@m17n.org>
3806
3807	* font-ft.c (add_font_info): Add instead of push the element.
3808	(ft_list_family): For generic fonts, try all
3809	substituted. families.
3810
3811	* font-flt.c (UPDATE_CLUSTER_RANGE): New macro.
3812	(run_rule): Don't update cluster range here.
3813	(run_command): Update cluster range on appending a glyph.
3814	(run_otf): Update cluster range for glyphs generated by OTF.
3815
38162004-10-02  Kenichi Handa  <handa@m17n.org>
3817
3818	* m17n-X.c (device_open): Handle Mfont key in PLIST.
3819
38202004-09-30  Kenichi Handa  <handa@m17n.org>
3821
3822	* font-ft.c (ft_select): Ignore family on calling mfont__score.
3823
38242004-09-30  Kenichi Handa  <handa@m17n.org>
3825
3826	* font.h: Include <fontconfig/fontconfig.h>.
3827	(MFTInfo): New member langset.
3828	(mfont__encoding_list): Extern it.
3829
3830	* font.c (mfont__encoding_list): New function.
3831	(mdebug_dump_font_list): New function.
3832
3833	* font-ft.c: Don't include <fontconfig/fontconfig.h> here.
3834	(Mserif, Msans_serif, Mmonospace, Mmedium, Mr, Mnull): New
3835	variables.
3836	(ft_family_list): New variable.
3837	(set_font_info): New arg basep.  Callers changed.
3838	(fc_list): Check the return value of FcPatternGetString.
3839	(add_font_info): New arg plist.  Callers changed. Update
3840	ft_family_list.
3841	(ft_list_family): New function (merged fc_list and ft_list_all).
3842	(ft_select): Use ft_list_family.
3843	(ft_list): Likewise.  If FONT is not NULL, check all fonts.  Fix
3844	typo (== -> !=).
3845	(mfont__ft_init): Initialize above new variables.
3846	(mfont__ft_fini): Free ft_family_list.
3847	(STRDUP_LOWER): New macro.
3848	(set_font_info): Use STRDUP_LOWER.
3849	(ft_list_family): Avoid duplicate addition of font path.  Use
3850	STRDUP_LOWER.
3851	(fc_decode_prop): Fix typo.
3852
3853	* m17n-X.c (MDisplayInfo): New member all_fonts_scaned.
3854	(xfont_registry_list): Change argument disp_info to frame.
3855	Callers changed.
3856	(xfont_list_all): New function.
3857	(xfont_list): If FONT is not NULL, check all fonts.
3858
38592004-09-28  Kenichi Handa  <handa@m17n.org>
3860
3861	* m17n-X.c (MXFont, MXFontList): New types.
3862	(MDisplayInfo): Delete members font_registry_list,
3863	iso8859_1_family_list, iso10646_1_family_list, new members
3864	font_list, base_font_list.
3865	(free_display_info): Adusted for the change of MDisplayInfo.
3866	(xfont_driver): Initialize with xfont_list.
3867	(font_compare): New function.
3868	(build_font_list): Deleted.
3869	(xfont_registry_list): New function.
3870	(xfont_select): Use xfont_registry_list.
3871	(xfont_list): New function.
3872	(device_open): Adusted for the change of MDisplayInfo.
3873
3874	* font-ft.c (add_font_info): New arg languages.  Callers changed.
3875	(fc_list): Get languages from fonts..
3876	(ft_list_all): Renamed from ft_list.  Callers changed.
3877	(ft_list): New function.
3878	(mfont__ft_driver): Initalize with ft_list.
3879
3880	* font.c (mfont_list): New function.
3881
3882	* font.h (struct MFontDriver): New member `list'.
3883	(MFTInfo): New member languages.
3884
3885	* m17n-gui.h (mfont_list): Extern it.
3886
38872004-09-27  Kenichi Handa  <handa@m17n.org>
3888
3889	* internal-gui.h (struct MGlyphString): Delete members mt,
3890	sub_width, sub_lbrearing, sub_rbearing, and region.
3891
3892	* draw.c (MSubTextExtents): New type.
3893	(layout_glyphs): New arg extents.  Set its members.
3894	(layout_glyph_string): Adjusted for the above change.
3895	(alloc_gstring): Don't set gstring->mt.
3896	(truncate_gstring): Call line_break function with mt instead of
3897	gstring->mt.
3898
38992004-09-22  Kenichi Handa  <handa@m17n.org>
3900
3901	* mtext.c (count_utf_16_chars): Count each code of invalid
3902	surrogates as one.
3903
39042004-09-19  Kenichi Handa  <handa@m17n.org>
3905
3906	* mtext.c (default_utf_16, default_utf_32): Rename them to
3907	MTEXT_FORMAT_UTF_16 and MTEXT_FORMAT_UTF_32 respectively.  Caller
3908	changed.
3909
3910	* m17n-core.h (MTEXT_FORMAT_UTF_16, MTEXT_FORMAT_UTF_32): Extern
3911	them.
3912
39132004-09-13  Kenichi Handa  <handa@m17n.org>
3914
3915	* draw.c (Mlatin): Don't declare it here.
3916	(visual_order): Fix reordering of combining characters.
3917	(compose_glyph_string): Fix detection of script.
3918	(layout_glyphs): Don't fix reordering of combining characters
3919	here.
3920	(layout_glyph_string): Pay attention to
3921	control->disable_overlapping_adjustment.
3922	(truncate_gstring): Include at least on character in a line.
3923	(get_gstring): Always scan one full line.
3924	(mdraw__init): Don't initialize Mlatin here.
3925	(mdraw_text_per_char_extents): Fix iteration.  If a glyph doesn't
3926	have a font, use ascent/descent of an ASCII font.  Allow
3927	ink_array_return and logical_array_return to be NULL.
3928	(mdraw_coordinates_position): Fix iteration.
3929
3930	* font-ft.c (MFTtoProp): Member completely changed.
3931	(ft_to_prop): Adjusted for the above change.
3932	(ft_to_prop_size): Likewise.
3933	(set_font_info): Adjusted for the change of MFTtoProp.
3934	(fc_generic_family_list): New variable.
3935	(fc_list): Add special handling of generic font names.
3936	(mfont__ft_init): Adjusted for the change of MFTtoProp.
3937	Initialize fc_generic_family_list.
3938	(mfont__ft_fini): Don't free ft_to_prop.  Free
3939	fc_generic_family_list.
3940	(FC_vs_M17N_font_prop): New type.
3941	(fc_weight_table, fc_slant_table, fc_width_table): New variables.
3942	(fc_decode_prop, fc_encode_prop): New functions.
3943	(mfont__ft_parse_name): Use fc_decode_prop.
3944	(mfont__ft_unparse_name): Use fc_encode_prop.
3945
3946	* m17n-X.c (MDisplayInfo): Delete member realized_font_list.
3947	(MWDevice): Add member realized_font_list.
3948	(free_display_info): Don't free disp_info->realized_font_list.
3949	(free_device): Free device->realized_fontset_list.
3950	(xft_find_metric): Use gstring->frame instead of rfont->frame.
3951	(device_open): Don't initialize disp_info->realized_font_list.
3952	(device_open): Initialize device->realized_font_list and set it to
3953	frame->realized_font_list.
3954
3955	* fontset.c (try_font_group): New function.
3956	(mfont__lookup_fontset): Use try_font_group.
3957
3958	* font.c (common_weight): Change the order of "regular".
3959
3960	* face.c (Mlatin): Don't make it static.
3961	(mface__realize): Be sure to set work_gstring.frame.
3962	(mface__for_chars): Likewise.
3963
3964	* mtext.c (mdebug_dump_mtext): Fix for the case of mt->format >
3965	MTEXT_FORMAT_UTF_8.
3966
3967	* internal-gui.h (Mlatin): Extern it.
3968
3969	* m17n-gui.h (MDrawControl): New member
3970	disable_overlapping_adjustment.
3971
39722004-09-06  Kenichi Handa  <handa@m17n.org>
3973
3974	* font-flt.c (run_otf): Fix typo ('}'->']').
3975
3976	* internal-gui.h (MAKE_PRECOMPUTED_COMBINDING_CODE)
3977	(COMBINING_PRECOMPUTED_P): New macros.
3978
3979	* draw.c (layout_glyphs): Handle precomputed combining code.
3980
3981	* font-ft.c (mfont__ft_drive_otf): Set g->combining_code to a
3982	precomupted combining code.
3983
39842004-09-03  Kenichi Handa  <handa@m17n.org>
3985
3986	* font-ft.c (mfont__ft_drive_otf): Use malloc and free for
3987	otf_gstring.glyphs.
3988
39892004-08-27  Kenichi Handa  <handa@m17n.org>
3990
3991	* face.c (mface_put_prop): If the new value is the same as the
3992	current one, don't increment frame->tick.
3993
39942004-08-25  Kenichi Handa  <handa@m17n.org>
3995
3996	* fontset.c (mfontset): Initialize font_spec_list member.
3997	(mfontset_copy): Load fontset if necessary.
3998
3999	* m17n-gui.h (MDrawGlyphInfo): Change the member name 'this' to
4000	'metrics' to for C++.
4001
4002	* draw.c (mdraw_glyph_info): Adjusted for the member name change
4003	(this -> metics).
4004
40052004-08-16  Kenichi Handa  <handa@m17n.org>
4006
4007	* Version 1.1.0 released.
4008
40092004-08-13  Kenichi Handa  <handa@m17n.org>
4010
4011	* language.c (mlang__init): Add Dhivehi.
4012
4013	* m17n-gui.c (Mx, Mfreetype): Delete it.
4014	(m17n_init_win): Don't initialize Mx and Mfreetype here.
4015
4016	* m17n-gui.h (Mfreetype, Mxft): Extern them.
4017	(mfont_resize_ratio): Extern it.
4018	(MDrawGlyphInfo): New member logical_width;
4019	(MDrawGlyph): New type.
4020	(mdraw_glyph_list): Prototype adjusted.
4021
4022	* m17n-X.c (xfont_open): Set type and fontp members.
4023	(xft_open): Likewise.
4024
4025	* internal-gui.h (Mx, Mfreetype): Delete extern.
4026
4027	* font.h (struct MRealizedFont): New member type and fontp.
4028
4029	* font.c (mfont__init): Initialize Mx, Mfreetype, and Mxft.
4030	(Mx, Mfreetype): Declare here.
4031	(Mxft): New variable.
4032	(mfont_resize_ratio): New function.
4033
4034	* font-ft.c (ft_open): Set type and fontp members.
4035
4036	* draw.c (mdraw_glyph_list): Argument type changed.  Don't set
4037	glyph_code member.
4038
40392004-08-11  Kenichi Handa  <handa@m17n.org>
4040
4041	* font-ft.c (ft_find_metric): Call FT_Load_Glyph with
4042	FT_LOAD_DEFAULT.
4043
40442004-08-06  Kenichi Handa  <handa@m17n.org>
4045
4046	* font-ft.c (mfont__ft_drive_otf): Fix for the case that no GSUB
4047	feature to apply.
4048
4049	* font-flt.c (run_otf): Print debugging information if necessary.
4050
40512004-08-05  Kenichi Handa  <handa@m17n.org>
4052
4053	* font-ft.c (mfont__ft_drive_otf): Fix sign of g->yoff.  Support
4054	positioning_type 5 and 6.  Switch simplified.
4055
40562004-08-04  Kenichi Handa  <handa@m17n.org>
4057
4058	* font-ft.c (mfont__ft_drive_otf): Call OTF_drive_gdef.
4059
40602004-08-02  Kenichi Handa  <handa@m17n.org>
4061
4062	* font.c (mfont__score): If prop is MFONT_FOUNDRY or MFONT_FAMILY,
4063	set val to 1 even if it is greater than 1.
4064
4065	* fontset.c (mfontset_modify_entry): Fix handling of the arg `how'.
4066
40672004-07-29  Kenichi Handa  <handa@m17n.org>
4068
4069	* font-flt.c (run_rule, run_command, mfont__flt_run): Print more
4070	debugging information.
4071
4072	* internal.h (MDEBUG_PRINT5): New macro.
4073
4074	* draw.c (layout_glyphs): Don't combine a zero width glyph with
4075	the previous one if the zero width glyph has left or right
4076	padding.
4077
40782004-07-26  Kenichi Handa  <handa@m17n.org>
4079
4080	* m17n-X.c (xft_render): Pay attention to members left_padding and
4081	right_padding of MGlyph.
4082
4083	* draw.c (visual_order): Allocate one more elements for arrays as
4084	a workaround of fribidi bug.
4085	(layout_glyphs): Fix previous change. Check MGlyph->combining_code
4086	instead of MGlyph->bidi_sensitive.
4087	(layout_glyph_string): Pay attentinon to
4088	control->orientation_reversed when padding at the head or tail.
4089	Fix adjustment of space glyph width.
4090	(get_gstring): If cursor_width or cursor_bidi is changed, don't
4091	use a cache.
4092
4093	* font-ft.c (mfont__ft_drive_otf): Set MGlyph->combining_code
4094	instead of MGlyph->bidi_sensitive.
4095
4096	* internal-gui.h (MGlyph): Delete member bidi_sensitive.
4097
40982004-07-26  Kenichi Handa  <handa@m17n.org>
4099
4100	* draw.c (visual_order): Don't treat combined glyphs specially.
4101	(layout_glyphs): Don't get metrics glyphs that are already ready.
4102	Pay attention to MGlyph->bidi_sensitive.  Combine a glyph of zero
4103	width with the previous one.
4104	(draw_background): Fix bar cursor position on a r2l glyph.
4105
4106	* font-flt.c (FontLayoutCmdOTF): Move back from internal-gui.h.
4107	(run_rule): Fix place of updating cluster_begin_pos and
4108	cluster_end_pos here.
4109	(run_otf): Don't set left_padding.
4110
4111	* font-ft.c (adjust_anchor): Type of argument `code' changed.
4112	Caller changed.
4113	(mfont__ft_drive_otf): Renamed back from mfont__ft_drive_gsub.
4114	Fix handling of GPOS.
4115	(mfont__ft_drive_gpos): Delete this function.
4116
4117	* font.h (mfont__ft_drive_otf): Renamed back from
4118	mfont__ft_drive_gsub.
4119	(mfont__ft_drive_gpos): Delete extern.
4120
4121	* internal-gui.h (FontLayoutCmdOTF): Move back to font-flt.c.
4122	(MGlyph): Delete member otf_cmd, add member bidi_sensitive.
4123
41242004-07-23  Kenichi Handa  <handa@m17n.org>
4125
4126	* draw.c (layout_glyphs): Call mfont__ft_drive_gpos with glyphs of
4127	the same bidi level.
4128
4129	* font-ft.c (mfont__ft_drive_gpos): Check bidi-level.
4130
41312004-07-22  Kenichi Handa  <handa@m17n.org>
4132
4133	* font-flt.c (load_flt): Treat the symbol Mend as end-of-file.
4134
41352004-07-20  Kenichi Handa  <handa@m17n.org>
4136
4137	* draw.c (render_glyphs): Fix checking of g->code validity.
4138
4139	* face.c (mface__realize): Set g.type.
4140
41412004-07-18  Kenichi Handa  <handa@m17n.org>
4142
4143	* Makefile.am: Prepend ${top_srcdir} to all *.la in
4144	*_LIBADD/*_LDADD.
4145
4146	* m17n-gui.c (mframe): Print error message give by dlopen to
4147	stderr.
4148
41492004-07-16  Kenichi Handa  <handa@m17n.org>
4150
4151	* draw.c (compose_glyph_string): Improve the way of deciding a
4152	script.  For a character that doesn't have script property, use
4153	the last non-latin script.
4154
4155	* font-ft.c (fc_list): Cancel previous change.
4156	(mfont__ft_init): Add more entries in ft_to_prop_name.
4157
41582004-07-15  Kenichi Handa  <handa@m17n.org>
4159
4160	* draw.c (mdraw_glyph_list): Add the width of padding glyphs to
4161	previous or next character glyphs.
4162
41632004-07-14  Kenichi Handa  <handa@m17n.org>
4164
4165	* draw.c (compose_glyph_string): Be sure to set codes for glyphs
4166	of type GLYPH_SPACE.
4167
4168	* fontset.c (mfont__lookup_fontset): If glyph type is
4169	GLYPH_SPACE, get codes for SPACE.
4170
4171	* internal-gui.h (Mfont): Delete extern.
4172
4173	* m17n-gui.h (Mfont): Delete duplicated extern.
4174
41752004-07-13  Kenichi Handa  <handa@m17n.org>
4176
4177	* font-ft.c (DEVICE_DELTA): New macro.
4178	(adjust_anchor): New function.
4179	(mfont__ft_drive_gsub): Renamed from mfont__ft_drive_otf.  Drive
4180	only GSUB.
4181	(mfont__ft_drive_gpos): New function.
4182
4183	* font-flt.c (FontLayoutCmdOTF): Moved to internal-gui.h.
4184	(FontLayoutContext): Delete member `rfont'.
4185	(run_otf): Set g->otf_cmd.  Call
4186	(mfont__flt_run): Don't set ctx.rfont.  Call mfont__ft_decode_otf
4187	only whne HAVE_OTF is defined.
4188
4189	* fontset.c: Include "config.h".
4190
4191	* internal-gui.h (FontLayoutCmdOTF): Moved from font-flt.c.
4192	(MGlyph): New member otf_cmd.
4193
4194	* font.h (mfont__ft_drive_gsub): Changed from mfont__ft_drive_otf.
4195	(mfont__ft_drive_gpos): Extern it.
4196
4197	* face.c: Include "config.h".
4198
4199	* draw.c (layout_glyphs): Call mfont__ft_drive_gpos.
4200
4201	* input-gui.c: Include "config.h".
4202
4203	* plist.c: Include "config.h".
4204
42052004-07-06  Kenichi Handa  <handa@m17n.org>
4206
4207	* m17n-gui.c, m17n-gui.h, m17n-gd.c, m17n-X.h, m17n-X.c,
4208	internal-gui.h: Cancel previous changes.
4209
4210	* m17n-gd.h: Delete it.
4211
4212	* Makefile.am (libm17n_core_la_LIBADD): New variable.
4213	(libm17n_core_la_LDFLAGS): Add -export-dynamic, move
4214	@XML2_LD_FLAGS@ to above.
4215	(libm17n_la_LIBADD): Add -ldl.
4216	(libm17n_la_LDFLAGS): Add -export-dynamic.
4217	(X_LD_FLAGS): Fix the order of linking.
4218	(libm17n_gui_la_LIBADD): Add ${OPTIONAL_LD_FLAGS}.
4219	(libm17n_gui_la_LDFLAGS): Add -export-dynamic, delete above.
4220	(libm17n_X_la_LDFLAGS): Add -module.
4221	(libm17n_gd_la_SOURCES): Delete m17n-gd.h.
4222	(libm17n_gd_la_LIBADD): Add @GD_LD_FLAGS@.
4223	(libm17n_gd_la_LDFLAGS): Add -module.
4224	(include_HEADERS): Delete m17n-gd.h.
4225
42262004-06-30  Kenichi Handa  <handa@m17n.org>
4227
4228	* m17n-gui.c: Adjusted for the change of struct MDeviceDriver.
4229	(MDeviceLibraryInterface): Delete it.
4230	(register_device_library): Delete it.
4231	(m17n__device_library_list): Renamed from device_library_list.
4232
4233	* m17n-gui.h (M17N_INIT_X, M17N_INIT_GD): New macros.
4234	(m17n_init_win): Adjust prototype.
4235
4236	* m17n-gd.c: Adjusted for the change of struct MDeviceDriver.
4237	(m17n_init_gd): New function.
4238
4239	* m17n-gd.h: New file.
4240
4241	* m17n-X.h: Include <m17n-gui.h>.
4242	(m17n_init_X): Extern it.
4243	(M17N_INIT): Redefine it.
4244
4245	* m17n-X.c: Adjusted for the change of struct MDeviceDriver.
4246	(m17n_init_X): New function.
4247
4248	* internal-gui.h (m17n__device_library_list): Extern it.
4249	(struct MDeviceDriver): New members initialized, init, and fini.
4250
4251	* Makefile.am (libm17n_X_la_LIBADD): Add ${X_LD_FLAGS} and
4252	@XFT2_LD_FLAGS@.
4253	(libm17n_X_la_LIBADD): Delete aboves.
4254	(libm17n_gd_la_SOURCES): Add m17n-gd.h.
4255	(libm17n_gd_la_LIBADD): Add @GD_LD_FLAGS@.
4256	(libm17n_gd_la_LDFLAGS): Delete it.
4257	(include_HEADERS): Add m17n-gd.h.
4258
42592004-06-25  Kenichi Handa  <handa@m17n.org>
4260
4261	* Makefile.am (libm17n_X_la_LDFLAGS): Cancel previous change.
4262	(libm17n_gd_la_LDFLAGS): Cancel previous change.
4263
4264	* m17n-gd.c (gd_render): Don't call FT_Get_Char_Index.
4265
4266	* font-ft.c (fc_list): If FcFontList finds no font, try
4267	FcFontMatch.
4268
4269	* draw.c (compose_glyph_string): Terminate the last loop after
4270	doing default combining if necessary.
4271
42722004-06-24  Kenichi Handa  <handa@m17n.org>
4273
4274	* draw.c (mdraw_glyph_list): Unref gstring->top at the tail.
4275
4276	* character.c (mchar_define_property): Add const to an arg.
4277
4278	* charset.c (mchar_define_charset): Add const to an arg.
4279
4280	* coding.c (MCodingSystem): Add const to an arg or decoder.
4281	(finish_decoding): Add const to an arg.
4282	(decode_coding_charset, decode_coding_utf_8)
4283	(decode_coding_utf_16, decode_coding_utf_32)
4284	(decode_coding_iso_2022, decode_coding_sjis)
4285	(mconv_define_coding): Likewise.
4286
4287	* m17n-X.c (xft_find_metric): Delete unused variable.
4288
4289	* m17n-core.h (mchar_define_property, mtext_from_data): Adjust
4290	prototypes.
4291
4292	* m17n.h (mchar_define_charset, mconv_define_coding): Adjust
4293	prototypes.
4294
4295	* mtext.c (count_utf_8_chars, count_utf_16_chars)
4296	(mtext__from_data, mtext_from_data): Add `const' to an arg.
4297
4298	* mtext.h (mtext__from_data): Ajust prototype.
4299
43002004-06-23  Kenichi Handa  <handa@m17n.org>
4301
4302	* draw.c (compose_glyph_string): Always get glyph codes by
4303	mface__for_char.
4304	(mdraw_glyph_info): Set info->glyph_code and info->logical_width.
4305	(mdraw_glyph_list): New function.
4306
4307	* font-flt.c (mfont__flt_run): Be sure to call
4308	rfont->driver->encode_char.
4309
4310	* font-ft.c (ft_find_metric): Don't call FT_Get_Char_Index.
4311	(ft_encode_char): Delete arg C.
4312	(ft_render): Don't call FT_Get_Char_Index.
4313
4314	* font.c (mfont__encodable_p): Delete it.
4315	(mfont__encode_char): Be sure to call rfont->driver->encode_char.
4316
4317	* font.h (struct MFontDriver): Delete arg C of encode_char.
4318	(mfont__encodable_p): Delete extern.
4319
4320	* m17n-X.c (xfont_encode_char): Delete arg C.
4321	(xft_find_metric): Don't cal FT_Get_Char_Index.
4322	(xft_render): Likewise.
4323
4324	* m17n-gui.h (MDrawGlyphInfo): New members glyph_code and
4325	logical_width.
4326	(mdraw_glyph_list): Extern it.
4327
4328	* Makefile.am (libm17n_X_la_LDFLAGS): Don't include ${X_LD_FLAGS}.
4329
43302004-06-22  Kenichi Handa  <handa@m17n.org>
4331
4332	* m17n-gui.h (mfontset_lookup): Extern it.
4333
4334	* m17n-gui.c (m17n_init_win): Delete unnecessary printing.
4335
4336	* fontset.c (realize_fontset_elements)
4337	(free_realized_fontset_elements, update_fontset_elements): New
4338	functions.
4339	(mfont__realize_fontset): Call realize_fontset_elements.
4340	(mfont__free_realized_fontset): Call free_realized_fontset_elements.
4341	(mfont__lookup_fontset): If a fontset was modified, update
4342	the realized fontset.
4343	(mfontset_modify_entry): Increment fontset->tick.
4344	(mfontset_lookup): New function.
4345
43462004-06-21  Kenichi Handa  <handa@m17n.org>
4347
4348	* font-ft.c (mfont__ft_parse_name): Cast the arg to FcNameParse.
4349
4350	* mtext.c (mtext_dup, mtext_cat, mtext_ncat, mtext_cpy)
4351	(mtext_ncpy, mtext_duplicate): Pay attention to the case that the
4352	length of source text 0.
4353
43542004-06-21  Kenichi Handa  <handa@m17n.org>
4355
4356	* mtext.c (INC_POSITION): Use CHAR_UNITS_BY_HEAD_UTF16.
4357	(compare): Pay attention to format other than utf-8.
4358	(copy): Delete this function.
4359	(count_by_utf_8, count_by_utf_16, insert): New functions.
4360	(count_utf_16_chars): Fix handling of a surrogate pair.
4361	(find_char_forward, find_char_backward): Likewise.
4362	(mtext__from_data): Delete unnecessary check.  Fix number of
4363	allocated bytes.
4364	(mtext_from_data): Don't count items.
4365	(mtext_ref_char): Optimize the code.
4366	(mtext_set_char): Pay attention to format other than utf-8.
4367	(mtext_cat_char): Likewise.
4368	(mtext_dup): Don't call copy, instead do allocation here.
4369	(mtext_cat): Call insert instead of copy.
4370	(mtext_ncat): Likewise.
4371	(mtext_cpy): Delete character at first and call insert instead of
4372	copy.
4373	(mtext_ncpy): Likewise.
4374	(mtext_copy): Likewise.
4375	(mtext_duplicate): Call insert instead of copy.
4376	(mtext_del): Pay attention to format other than utf-8.
4377	(mtext_ins): Simply call insert.
4378	(mtext_ins_char): Pay attention to format other than utf-8.
4379	(mtext_tok): Call insert instead of copy.
4380	(mtext_text): Call UNIT_BYTES.
4381
4382	* textprop.c (mtext__adjust_plist_for_change): New function.
4383
4384	* character.h (USHORT_SIZE, UINT_SIZE, UNIT_BYTES): New macros.
4385	(CHAR_UNITS_UTF16, CHAR_UNITS): Simplified.
4386	(CHAR_UNITS_AT): Fix typo.
4387	(CHAR_UNITS_BY_HEAD): Fix typo.
4388	(STRING_CHAR_AND_UNITS): Fix typo.
4389
4390	* internal.h (MTEXT_READ_ONLY_P): New macro.
4391
4392	* mtext.h (mtext__replace): Delete the extern.
4393	(mtext__adjust_foramt): Adjust prototype.
4394
4395	* plist.c (mplist_deserialize): Adjust the format of MT to utf-8
4396	if possible.  Otherwise make a copy of mmt.
4397
4398	* coding.c (mconv_decode, mconv_gets): Adjust the format of MT to
4399	utf-8.
4400
44012004-06-18  Kenichi Handa  <handa@m17n.org>
4402
4403	* character.h (CHAR_STRING_UTF16): Fix syntax.
4404
44052004-06-16  Kenichi Handa  <handa@m17n.org>
4406
4407	* Makefile.am (libm17n_gd_la_LIBADD): Delete it.
4408	(libm17n_X_la_LIBADD): Delete it.
4409	(libm17n_gd_la_LDFLAGS): Don't include @GD_LD_FLAGS@.
4410
4411	* m17n-X.c (device_open): Add parens in `if' condition.
4412
4413	* mtext.c (INC_POSITION): Handle format other than utf8 and utf16.
4414	(DEC_POSITION): Likewise.
4415	(compare): Fix case that mt1->format is MTEXT_FORMAT_UTF_8.
4416
44172004-06-15  Kenichi Handa  <handa@m17n.org>
4418
4419	* fontset.c (mfont__lookup_fontset): Fix selection of font groups
4420	by language.
4421
4422	* draw.c (compose_glyph_string): If language is specified, call
4423	mface__for_chars even if a text is all latin.  Fix condition for
4424	setting non_ascii_found.
4425
4426	* m17n-X.c (xft_find_metric): Fix setting of g->lbrearing.
4427
4428	* m17n.h (minput_char_to_key): Delete extern.
4429
4430	* m17n-gui.h (minput_event_to_key): Cancel previous change.
4431
4432	* m17n-gui.c (null_device_open): Set several members of frame.
4433
44342004-06-14  Kenichi Handa  <handa@m17n.org>
4435
4436	* m17n-gui.h (minput_event_to_key): Delete extern.
4437
4438	* symbol.h (struct MSymbolStruct): Renamed from MSymbol.
4439
4440	* m17n-core.h (MSymbol): Defined as "struct MSymbolStruct *".
4441
4442	* Makefile.am (AM_CPPFLAGS): Refer to @M17NDIR@.
4443
44442004-06-08  Kenichi Handa  <handa@m17n.org>
4445
4446	* character.c (mchar_put_prop): Don't increment the ref-count of
4447	record->table.
4448
44492004-06-04  Kenichi Handa  <handa@m17n.org>
4450
4451	* m17n-core.c (mdebug__register_object): New function.
4452	(mdebug__unregister_object): Likewise.
4453
4454	* internal.h (mdebug__register_object, mdebug__unregister_object):
4455	Extern them.
4456	(M17N_OBJECT_REGISTER, M17N_OBJECT_UNREGISTER): Call them
4457	respectively.
4458
4459	* charset.c (mcharset__load_from_database): Don't call
4460	mconv__register_charset_coding here.
4461
4462	* coding.c (find_coding): Get a real name from an element of
4463	coding_definition_list.
4464	(mconv__register_charset_coding): Set the real name at the top of
4465	param.
4466	(mcoding__load_from_database): Likewise.
4467	(mconv_list_codings): Adjusted for the above change.
4468
44692004-06-03  Kenichi Handa  <handa@m17n.org>
4470
4471	* coding.c (find_coding): Find by canonicalized name.  Don't have
4472	to modify the element of coding_definition_list by
4473	mplist__from_plist.
4474	(mconv__define_coding_from_charset): Delete it.
4475	(mconv__register_charset_coding): Canonicalize sym.
4476	(mcoding__load_from_database): Register plist modified by
4477	mplist__from_plist.
4478
4479	* coding.h (mconv__define_coding_from_charset): Don't extern it.
4480
4481	* font-ft.c (ft_open): Fix setting of rfont->descent.
4482
44832004-06-02  Kenichi Handa  <handa@m17n.org>
4484
4485	* font.c (enum xlfd_field_idx): Moved from m17n-X.c.
4486	(xlfd_parse_name): Merge split_font_name and xfont_parse_name.
4487	(xlfd_unparse_name): Renamed from xfont_build_name.
4488	(mfont__init): Initialized Mfontconfig.
4489	(mfont__free_realized): Unconditionally unref rfont->info.
4490	(mfont__select): Free `this' if it's not best.
4491	(mfont__open): Don't check frame->realized_font_list.
4492	(mfont__parse_name_into_font): New function.
4493	(Mfontconfig): New variable.
4494	(mfont_from_name): Call mfont_parse_name.
4495	(mfont_name): Call mfont_unparse_name.
4496	(mdebug_dump_font): Likewise.
4497
4498	* font.h (struct MFontDriver): Delete members parse_name and
4499	build_name.
4500	(mfont__ft_parse_name, mfont__ft_unparse_name): Extern them.
4501	(mfont__parse_name_into_font): Extern it.
4502
4503	* font-ft.c: Include "symbol.h".
4504	(close_ft): Unconditionally free filename and charmap_list of
4505	ft_into.
4506	(ft_open): Duplicate base->filename.  Increment ref-count of
4507	ft_info->charmap_list.  Free ft_info->charmap_list and
4508	ft_info->filename on error.
4509	(mfont__ft_parse_name, mfont__ft_unparse_name): New functions.
4510
4511	* m17n-X.c (xfont_driver): Don't include xfont_parse_name and
4512	xfont_build_name.
4513	(enum xlfd_field_idx): Moved to font.c.
4514	(split_font_name, build_font_name): Likewise.
4515	(build_font_list): Call mfont__parse_name_info_font.
4516	(xfont_open): Call mfont__unparse_name.  Free name.
4517	(xfont_parse_name, xfont_build_name): Moved to font.c
4518	(xft_select): Prototype deleted.
4519	(device_open): Check HAVE_FREETYPE on using mfont__ft_driver.
4520	Call mfont_pase_name.
4521
4522	* m17n-gui.c (free_frame): Unref frame->font_driver_list.
4523	(m17n_fini_win): Add check HAVE_FREETYPE on using null_interface.
4524	(mframe): Likewise.
4525
4526	* m17n-gui.h (mfont_parse_name, mfont_unparse_name, Mfontconfig):
4527	Extern them.
4528
4529	* Makefile.am (linkgui_LDADD): Add libm17n-X.la and libm17n-gd.la.
4530
45312004-06-01  Kenichi Handa  <handa@m17n.org>
4532
4533	* fontset.c (mfontset_modify_entry): Pay attention to the case
4534	that fontset->font_spec_list is NULL.
4535
45362004-05-31  Kenichi Handa  <handa@m17n.org>
4537
4538	* m17n-gui.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
4539
4540	* input.c: Include <dlfcn.h> only when HAVE_DLFCN_H is defined.
4541
4542	* font.c (mfont__select): Print score the a font for debugging.
4543
4544	* Makefile.am (libm17n_la_LIBADD): Delete -ldl.
4545
4546	* coding.c (reset_coding_sjis): Check kanji and kana instead of
4547	kanji_sym and kana_sym.
4548
45492004-05-28  Kenichi Handa  <handa@m17n.org>
4550
4551	* Makefile.am (VINFO): New variable.
4552	(libm17n_core_la_LDFLAGS, libm17n_la_LDFLAGS)
4553	(libm17n_gd_la_LDFLAGS): Include ${VINFO}.
4554
45552004-05-27  Kenichi Handa  <handa@m17n.org>
4556
4557	The following chanages are to make device dependent functions
4558	accessible only from MDeviceDriver structure, and to add GD and
4559	null device drivers.  Font drivers get also device dependent.
4560
4561	* m17n.c (m17n_init): Increament shell_initialized.
4562	(m17n_fini): Decremented shell_initialized.
4563
4564	* m17n-misc.h (enum MErrorCode): New element MERROR_GD.
4565
4566	* m17n-gui.h (Mdevice, Mdisplay, Mscreen, Mdrawable, Mdepth)
4567	(Mwidget, Mcolormap, Mx): Extern them.
4568
4569	* m17n-gui.c: Include <dlfcn.h> and "config.h".
4570	(free_frame): Call frame->driver->close instead of
4571	mwin__close_device.
4572	(DLOPEN_SHLIB_EXT): New macro.
4573	(MDeviceLibraryInterface): New type.
4574	(device_library_list): New variable.
4575	(register_device_library): New function.
4576	(null_device): New variable.
4577	(null_device_close, null_device_get_prop)
4578	(null_device_realize_face, null_device_free_realized_face): New
4579	function.
4580	(null_driver): New variable.
4581	(null_device_init, null_device_fini, null_device_open): New
4582	functions.
4583	(null_interface): New variable.
4584	(Mfreetype, Mdevice): Declare them.
4585	(m17n_init_win): Increment win_initialized.  Initialize Mx, Mgd,
4586	Mfreetype, Mdevice, Mdisplay, Mscreen, Mdrawable, Mdevice, and
4587	Mwin__Close_Device.  Register drivers for Mx and Mgd.
4588	(m17n_fini_win): Decremented win_initialized.  Call "fini"
4589	function of all opened devices.  Don't call mwin__fini.
4590	(Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap):
4591	Declare them here.
4592	(mframe): Handle Mdevice key of PLIST.
4593	(mframe_get_prop): Call frame->device->get_prop instead of
4594	mwin__device_get_prop.
4595
4596	* m17n-gd.c: New file.
4597
4598	* m17n-core.h (M17NLIB_MAJOR_VERSION, M17NLIB_MINOR_VERSION)
4599	(M17NLIB_PATCH_LEVEL, M17NLIB_VERSION_NAME): Updated to 1.1.0.
4600
4601	* m17n-core.c (m17n_init_core): Increate core_initialized.
4602	(m17n_fini_core): Decremented core_initialized.
4603
4604	* m17n-X.h (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget)
4605	(Mcolormap): Don't extern them here.
4606
4607	* m17n-X.c (FRAME_DEVICE): New macro.
4608	(FRAME_DISPLAY, FRAME_SCREEN, FRAME_CMAP): Use FRAME_DEVICE.
4609	(free_display_info): Use MPLIST_DO.
4610	(free_device): Free rface->info.
4611	(xft_close): Delete it.
4612	(device_init): Renamed from mwin__init.
4613	(device_fini): Renamed from mwin__fini.
4614	(device_open): Renamed from mwin__open_device.
4615	(x_driver): New variable.
4616	(MXFontInfo): Delete member frame, add member display.
4617	(Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap, Mxim):
4618	Don't declare them here.
4619
4620	* internal-gui.h (MDeviceType): New enum.
4621	(MWDefice): Delete it.
4622	(struct MFrame): Change type of device to void *.  New members
4623	device_type, driver, font_driver_list.
4624	(M_CHECK_WRITABLE, M_CHECK_READABLE): New macros.
4625	(MDeviceDriver): New type.
4626	(Mx, Mgd, Mfreetype): Extern them.
4627	(mwin__XXX): Delete all of them.
4628
4629	* input-gui.c (win_create_ic): Call frame->driver->XXX instead of
4630	mwin__XXX.
4631	(win_destroy_ic): Likewise.
4632	(adjust_window_and_draw): Likewise.
4633	(win_callback): Likewise.
4634	(Mxim): Declare it here.
4635	(minput_event_to_key): Call M_CHECK_READABLE.
4636
4637	* fontset.c (mfont__lookup_fontset): Delete local variable
4638	font_group.
4639
4640	* font.h (struct MFontDriver): Delete member close, add members
4641	parse_name and build_name.
4642	(mfont__driver_list): Delete extern.
4643	(mfont__close): Delete extern.
4644
4645	* font.c (mfont__init): Don't set mfont__driver_list.
4646	(mfont__fini): Don't unref mfont__driver_list.
4647	(mfont__select): Try font drivers in frame->font_driver_list.  Set
4648	driver member of a realized font.
4649	(mfont__close): Delete it.
4650	(mfont_from_name, mfont_name, mdebug_dump_font): Call driver
4651	functions of the default frame.
4652
4653	* font-ft.c (close_ft): Check ft_info->ft_face and work
4654	differently.
4655	(add_font_info): Allocate ft_info by M17N_OBJECT.
4656	(ft_close): Delete it.
4657	(mfont__ft_driver): Don't set ft_close.
4658	(ft_select): Increment ref-count of best_font.
4659	(ft_open): Decremented ref-count of base.  On error, call
4660	FT_Done_Face and free ft_info.
4661	(ft_find_metric): Always use XXX_MONO in load_flags.
4662	(ft_render): Fix setting of width.  Call
4663	frame->driver->draw_points instead of mwin__draw_points.
4664	(ft_to_prop): Don't set mfont__driver_list.
4665	(mfont__ft_fini): Just unref ft_info.
4666
4667	* face.c (mface__init): Exchange foreground and background of
4668	mface__default.  Call mface_put_prop to set hline of
4669	mface_underline,
4670	(mface__realize): Call frame->driver->XXX instead of mwin__XXX.
4671	(mface__free_realized): Don't call mwin__free_realized_face.
4672
4673	* draw.c (Mdepth): Don't declare it here.
4674	(draw_background): Call frame->driver->XXX instead of mwin__XXX.
4675	(render_glyphs, render_glyph_string): Likewise.
4676	(mdraw__init): Don't set Mdepth.
4677	(mdraw_text, mdraw_image_text, mdraw_text_with_control): Call
4678	M_CHECK_WRITABLE.
4679	(mdraw_text_per_char_extents): Return 0 on success and -1 on
4680	error.
4681	(mdraw_text_items): Check FRAME is writable.
4682	(mdraw_per_char_extents): Implement body.
4683
4684	* Makefile.am (lib_LTLIBRARIES): Include libm17n-gui.la and
4685	libm17n-gd.la.
4686	(OPTIONAL_LD_FLAGS): Include @FONTCONFIG_LD_FLAGS@.
4687	(GUI_SOURCES): Delete it.
4688	(libm17n_X_la_SOURCES): Don't include ${GUI_SOURCES}.
4689	(libm17n_gui_la_SOURCES, libm17n_gui_la_LIBADD)
4690	(libm17n_gui_la_LDFLAGS, libm17n_gd_la_SOURCES)
4691	(libm17n_gd_la_LIBADD, libm17n_gd_la_LDFLAGS): New targets.
4692	(linkgui_LDADD): Set to libm17n-gui.la
4693	(linkgui_LDFLAGS): New target.
4694	(SRC): Include ${libm17n_gui_la_SOURCES} and
4695	${libm17n_gd_la_SOURCES}.
4696
46972004-05-24  Kenichi Handa  <handa@m17n.org>
4698
4699	* draw.c (draw_background): Don't draw background even if
4700	rface->face.property[MFACE_BACKGROUND] is not Mnil.
4701
47022004-05-22  Kenichi Handa  <handa@m17n.org>
4703
4704	* m17n-X.c (xft_open_font): Fix anti_alias setting.
4705
47062004-05-20  Kenichi Handa  <handa@m17n.org>
4707
4708	* m17n-gui.h (MFaceHookFunc): Change this function type to void.
4709
4710	* m17n-gui.c: Include "plist.h".
4711	(mframe): If PLIST is NULL, initialize it to emply plist.
4712
4713	* m17n-X.c (build_font_list): Don't set property[MFONT_TYPE].
4714	(xft_driver): New variable.
4715	(xft_select, close_xft, xft_open_font, xft_open, xft_close)
4716	(xft_find_metric, xft_render): New function.
4717	(mwin__init): Adjusted for the new mfont__driver_list.
4718	(mwin__open_device): Assume arg PARAM is not NULL.  Push a newly
4719	generated face to PARAM.
4720	(mwin__realize_face): Fix setting of box colors.  Don't call hook
4721	function here.
4722	(mwin__draw_hline): New function.
4723	(mwin__xft_close, mwin__xft_open, mwin__xft_get_metric)
4724	(mwin__xft_render): Delete these function.
4725
4726	* internal-gui.h (struct MFrame): New member tick.
4727	(struct MGlyphString): New member tick.
4728	(mwin__draw_rect, mwin__draw_empty_boxes): Extern them.
4729	(mwin__xft_open, mwin__xft_close, mwin__xft_get_metric)
4730	(mwin__xft_render): Delete extern.
4731
4732	* fontset.c (mfont__lookup_fontset): Make the code simpler.
4733	(mfontset): Always increment the reference count of returned
4734	object.
4735
4736	* font-ft.c (mfont__ft_fini): Don't include <otf.h> here.
4737	(MFTInfo): Moved to font.h.
4738	(ft_iso8859_1_font_list): Delete this variable.
4739	(set_font_info): Don't set font->property[MFONT_TYPE].
4740	(set_font_info): Don't udpate ft_iso8859_1_font_list.
4741	(add_font_info): Change type to void.
4742	(fc_list): Change anme from xft_list.  Caller changed.  Include
4743	FC_FOUNDRY and FC_PIXEL_SIZE in FcObjectSet.
4744	(mfont__ft_driver): Change name from ft_driver.  Caller changed.
4745	(ft_select): Check HAVE_FONTCONFIG instead of HAVE_XFT2.
4746	(close_ft): Don't call mwin__xft_close.  Unref
4747	ft_info->extra_info.
4748	(ft_open): Don't setup ft_info->fontname.  Don't call
4749	mwin__xft_open.
4750	(ft_find_metric): Don't call mwin__xft_get_metric.
4751	(ft_encode_char): Call rfont->driver->open instead of ft_open.
4752	(ft_render): Don't check HAVE_XFT2.  Don't call mwin__xft_render.
4753	(mfont__ft_init): Adjusted for new mfont__driver_list.
4754	(mfont__ft_fini): Don't unref ft_iso8859_1_font_list.
4755
4756	* font.c (mfont__driver_list): Make it MPlist.
4757	(mfont__init): Adjust initialization of mfont__driver_list.
4758	(mfont__fini): Free mfont__driver_list.
4759	(mfont__set_spec_from_face): Don't set spec->property[MFONT_TYPE].
4760	(mfont__select): Adjusted for the new mfont__driver_list.
4761
4762	* font.h (enum MFontProperty): Delete MFONT_TYPE.
4763	(mfont__drirver_list): Adjust prototype.
4764	(MFTInfo): Move to here from fron.c.  Deleve member fontname.
4765
4766	* face.h (struct MFace): Delete member realized_face_list, add
4767	member frame_list.
4768	(struct MRealizedFace): Delete member need_update
4769	andnofont_rface, add member non_ascii_list.
4770	(mface__update_frame_face): Extern it.
4771
4772	* face.c (hline_prop_list, box_prop_list, noop_hook): New
4773	variables.
4774	(get_hline_create, get_box_create): New functions.
4775	(find_realized_face): Cancel previous change.  Arg RFONT deleted.
4776	Use memcmp.
4777	(free_face): Cancep previous change.  Free face->frame_list.
4778	(serialize_hline): Do nothing if hline->width is zero.
4779	(serialize_box): Do nothing if box->width is zero.
4780	(mface__init): Setup all properties of mface__default.
4781	(mface__fini): Free hline_prop_list and box_prop_list.
4782	(mface__realize): Cancel previous change.  Update
4783	face->frame_list.  Setup rface->non_ascii_list.
4784	(mface__for_chars): Update rface->non_ascii_list.
4785	(mface__free_realized): Free rface->non_ascii_list.
4786	(mface__update_frame_face): New function.
4787	(mface): Initialize face->frame_list.
4788	(mface_copy): Likewise.  Just copy MFACE_HLINE and MFACE_BOX
4789	properties.
4790	(mface_merge): Likewise.
4791	(mface_put_prop): If key is Mhline or Mbox, get value by
4792	get_hline_create or get_box_create respectively.
4793	(mface_put_prop): Update frame->tick and call
4794	mface__update_frame_face if necessary.
4795	(mface_update): Do nothing if func is noop_hook.
4796
4797	* draw.c (render_glyphs): If a font is not found, use
4798	mwin__draw_empty_boxes.
4799	(alloc_gstring): Initialize gstring->tick.
4800	(get_gstring): Check gstring->tick.
4801
48022004-05-17  Kenichi Handa  <handa@m17n.org>
4803
4804	* face.c (find_realized_face): Return value changed.  If RFONT is
4805	NULL, avoid unnecessary checking.
4806	(free_face): Free face->realized_face_list.
4807	(mface__realize): Adjusted for the change of find_realized_face.
4808	If it returns a realized face that needs update, free it and
4809	realize a new one.  Push a new realized face to
4810	frame->realized_face_list instead of appending.
4811	(mface__for_chars): Adjusted for the change of find_realized_face.
4812	Short cut if the required font is in rface->ascii_rface.
4813	(mface_put_prop): Free old value if necessary.  Set need_update
4814	member of realized faces to 1.
4815
4816	* face.h (struct MFace): Delete member tick, add member
4817	realized_face_list.
4818	(struct MRealizedFace): Delete member tick, add member
4819	need_update.
4820
48212004-05-13  Kenichi Handa  <handa@m17n.org>
4822
4823	* m17n-X.c (mwin__xft_open): Destroy unnecessary patterns.
4824
48252004-05-12  Kenichi Handa  <handa@m17n.org>
4826
4827	* internal-gui.h (mwin__xft_open): Arguemnt name changed.
4828
4829	* m17n-X.c (mwin__xft_open): Argument changed to fontname and
4830	parse it XftNameParse.
4831
4832	* font-ft.c (MFTInfo) [HAVE_XFT2]: New member fontname.
4833	(all_fonts_scaned): New variable.
4834	(set_font_info): FAMILY may be Mnil.
4835	(add_font_info): Argument changed.
4836	(xft_list): Call add_font_info in it.
4837	(ft_list): Likewise.
4838	(ft_select): Make it work in the case family is Mnil.
4839	(ft_open) [HAVE_XFT2]: Setup ft_info->fontname.
4840	(mfont__ft_fini): Set all_fonts_scaned to 0.
4841
4842	* fontset.c (mfont__lookup_fontset): Don't repeatedly try a font
4843	that is failed to open.
4844
48452004-05-10  Kenichi Handa  <handa@m17n.org>
4846
4847	* m17n-X.c (mwin__xft_render): Don't use anti-alias if the
4848	device's depth is 1 (i.e. monochrome).
4849
4850	* Makefile.am (OPTIONAL_LD_FLAGS): Change the order of elements
4851	to work around the problem of libtool.
4852
4853	* font-ft.c: Include <freetype/ftbdf.h>.
4854	(Municode_bmp, Municode_full, Miso10646_1, Miso8859_1): New
4855	variables.
4856	(mfont__ft_init): Initialize them.
4857	(ft_iso8859_1_font_list): New variable.
4858	(set_font_info): Detect a font containing iso8859-1 glyphs and
4859	register it in ft_iso8859_1_font_list.  If the font is not
4860	scalable, assume it as BDF or PCF font and setup SIZE and RESY
4861	properties of the font from its properties.
4862	(add_font_list): If the font is not scalable, check if it is BDF
4863	or PCF font.  If not, ignore it.
4864	(ft_select): If FAMILY is Mnil, return NULL only if the requested
4865	registry is not iso8859-1.
4866	(ft_select) [not HAVE_XFT2]: If FAMILY is Mnil, select one from
4867	ft_iso8859_1_font_list.
4868	(ft_find_metric): If the font is not scalable, assume it as BDF
4869	or PCF, and get a metric from its properties.
4870	(mfont__ft_fini): Free ft_iso8859_1_font_list.
4871
48722004-05-07  Kenichi Handa  <handa@redhat.m17n.org>
4873
4874	* Makefile.am (libm17n_la_LIBADD): Include -ldl.
4875	(libm17n_la_LDFLAGS): Delete it.
4876	(noinst_PROGRAMS): Renamed from bin_PROGRAMS.
4877	(install-binPROGRAMS, uninstall-binPROGRAMS): Delete them.
4878
48792004-05-06  Kenichi Handa  <handa@m17n.org>
4880
4881	* draw.c (compose_glyph_string): Fix previous change.
4882
48832004-04-30  Kenichi Handa  <handa@m17n.org>
4884
4885	* font-ft.c (ft_list): Delete unused variable `result'.
4886	(ft_render): Fix for the case that bitmap.pitch < bitmap.width.
4887
48882004-04-27  Kenichi Handa  <handa@m17n.org>
4889
4890	* m17n-X.c: Include config.h
4891	[HAVE_XFT2]: Include <X11/Xft/Xft.h>.
4892	(GCInfo) [HAVE_XFT2]: New member xft_color_fore, xft_color_back.
4893	(MWDevice) [HAVE_XFT2]: New member xft_draw.
4894	(FRAME_CMAP, FRAME_VISUAL): New macros.
4895	(free_device) [HAVE_XFT2]: Destroy device->xft_draw.
4896	(xfont_driver): Make it static.
4897	(mwin__open_device) [HAVE_XFT2]: Setup device->xft_draw.
4898	(mwin__realize_face) [HAVE_XFT2]: Setup info->xft_color_fore and
4899	info->xft_color_back.
4900	(MXftFontInfo) [HAVE_XFT2]: New type.
4901	(mwin__xft_close) [HAVE_XFT2]: New function.
4902	(mwin__xft_open) [HAVE_XFT2]: New function.
4903	(mwin__xft_get_metric) [HAVE_XFT2]: New function.
4904	(mwin__xft_render) [HAVE_XFT2]: New function.
4905
4906	* internal-gui.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
4907	(mwin__xft_open, mwin__xft_close) [HAVE_FREETYPE]: New externs.
4908	(mwin__xft_get_metric, mwin__xft_render) [HAVE_FREETYPE]: New
4909	externs.
4910
4911	* font.h [HAVE_FREETYPE]: Include FT_FREETYPE_H.
4912
4913	* font-ft.c: Don't include FT_FREETYPE_H here.
4914	[HAVE_XFT2]: Include <fontconfig/fontconfig.h>.
4915	(fontconfig_initialized, fc_config) [HAVE_XFT2]: New variables.
4916	(MFTInfo): New member charmap_index.
4917	(MFTInfo) [HAVE_XFT2]: New member xft_info.
4918	(check_otf_filename): Renamed from check_filename.  Return value
4919	changed.
4920	(ft_set_property): This function deleted.
4921	(set_font_info): New function.
4922	(add_font_list): Argument changed.  Add multiple fonts.
4923	(xft_list) [HAVE_XFT2]: New function.
4924	(ft_list) [not HAVE_XFT2]: New function.
4925	(ft_select): Add code for Xft.
4926	(close_ft): Likewise.
4927	(ft_open): Likewise.
4928	(ft_find_metric): Likewise.
4929	(ft_encode_char): Likewise.
4930	(ft_render): Likewise.
4931
4932	* makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@.
4933
49342004-04-26  Kenichi Handa  <handa@m17n.org>
4935
4936	* textprop.c (mtext_attach_property): Declare the return type as
4937	`int'.
4938
49392004-04-21  Kenichi Handa  <handa@m17n.org>
4940
4941	* Makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@
4942
49432004-04-09  Kenichi Handa  <handa@m17n.org>
4944
4945	* font-flt.c (struct): New members seq_beg, seq_end, seq_from,
4946	seq_to.
4947	(load_command): Setup above members.
4948
49492004-04-05  Kenichi Handa  <handa@m17n.org>
4950
4951	* m17n-X.c (xfont_encode_char): Fix checking of byte1 and byte2.
4952
49532004-03-30  Kenichi Handa  <handa@m17n.org>
4954
4955	* m17n-X.c (xfont_encode_char): Return MCHAR_INVALID_CODE if code
4956	>= 0x10000.
4957
4958	* m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 2.
4959	(M17NLIB_VERSION_NAME): Changed to 1.0.2.
4960
49612004-03-29  Kenichi Handa  <handa@m17n.org>
4962
4963	* Version 1.0 Patch Level 2 released.
4964
49652004-03-29  Kenichi Handa  <handa@m17n.org>
4966
4967	* charset.c (make_charset): Set charset->fully_loaded and
4968	charset->simple correctly.  Don't try to get charset->min_char and
4969	charset->max_char for a charset of method subset and superset.
4970	Don't load a mapping file here.
4971	(mcharset__init): Set unified_max.
4972	(mcharset__load_from_database): Free a working plist.
4973
4974	* coding.c (mcoding__fini): Free all malloced data.
4975
4976	* input-gui.c (win_create_ic): Set control.as_image for preediting
4977	to 0.
4978
4979	* internal.h (M17N_OBJECT_REGISTER): Check the member `used' (not
4980	`count') to initialize the array.
4981
4982	* locale.c (mlocale_set): Fix the order of M17N_OBJECT_REF and
4983	M17N_OBJECT_UNREF.
4984
4985	* m17n-X.c (xfont_render): If rface->rfont is null, draw a
4986	rectangle.
4987	(mwin__create_window): Fix bug of setting a background pixel of a
4988	new window.
4989	(mwin__adjust_window): Clear the window before drawing.
4990
4991	* m17n-core.c (mdebug__report_object): Free array->objectes if
4992	necessary.
4993	(m17n_init_core): Don't set report_header_printed to 0 here.
4994	Fix debugging information.
4995	(m17n_fini_core): Set report_header_printed to 0 here.
4996
4997	* m17n-core.h (mplist_deserialize): Extern it.
4998
4999	* m17n-gui.c (m17n_fini_win): Fix debugging information.
5000
5001	* m17n.c (m17n_fini): Fix debugging information.
5002
5003	* mtext.c (mtext__adjust_foramt): New function.
5004
5005	* mtext.h (mtext__adjust_foramt): Extern it.
5006
5007	* plist.c (mplist_deserialize): Renamed from mplist__deserialize.
5008
5009	* plist.h (mplist__deserialize): Don't extern it.
5010
5011	* symbol.c (msymbol__fini): Set freed_symbols to 0.  Set all
5012	elements of symbol_table to NULL.  Report about created and freed
5013	symbols if MDEBUG_FINI is set.
5014
50152004-03-22  Kenichi Handa  <handa@m17n.org>
5016
5017	* m17n-core.c (m17n_init_core): Set merror_code to MERROR_NONE.
5018
5019	* m17n.c (m17n_init): Fix the way of checking merror_code.
5020
5021	* m17n-gui.c (m17n_init_win): Fix the way of checking merror_code.
5022
50232004-03-22  Kenichi Handa  <handa@m17n.org>
5024
5025	* fontset.c (realize_font_group): Adjust the font size by
5026	mfont__resize before selecting a font.
5027
5028	* font-ft.c (mfont__ft_init): Add oblique and boldoblique.
5029
50302004-03-19  Kenichi Handa  <handa@m17n.org>
5031
5032	* Version 1.0 Patch Level 1 released.
5033
50342004-03-19  Kenichi Handa  <handa@m17n.org>
5035
5036	* m17n-core.h (M17NLIB_PATCH_LEVEL): New macro.
5037
5038	* m17n-core.c (M17NLIB_PATCH_LEVEL): Describe it.
5039
50402004-03-19  Kenichi Handa  <handa@m17n.org>
5041
5042	Re-apply the changes forgotten in the released version.
5043
5044	* charset.c (mcharset__load_from_database): Call
5045	mchar_define_charset.
5046
5047	* coding.c (encode_unsupporeted_char): Put Mcoding text property.
5048	(mconv_encode_range): Put Mcoding text property.
5049
50502004-03-18  Kenichi Handa  <handa@m17n.org>
5051
5052	* draw.c (Mdepth): New variable.
5053	(visual_order): Delete unused local var `pos'.
5054	(compose_glyph_string): Fix for the case that gstring->glyphs is
5055	realloced.  Stop generating glyphs at TO.  Fix handling of
5056	control charaters.
5057	(layout_glyphs): Get metrics of all glyphs in advance.  Set
5058	lbearing and rbearing of base of composition glyph correctly.
5059	Handle left-overhang glyphs correctly.
5060	(alloc_gstring): New arg frame.  Set gstring->anti_alias.  Caller
5061	changed.
5062	(dump_combining_code): Change the defualt off_x character to ".".
5063	(mdraw__init): Initialize Mdepth.
5064
5065	* face.c (work_gstring): New variable
5066	(mface__init): Initialize work_gstring.
5067	(mface__fini): Free work_gstring.glyphs.
5068	(mface__realize): Don't handle videomode property here.  Adjusted
5069	for the change of mfont__get_metric.
5070	(mface__for_chars): Adjusted for the change of mfont__get_metric.
5071
5072	* face.h (enum face_gc): Moved to m17n-X.c.
5073
5074	* font.h (struct MFontDriver): Arguments of find_metric changed.
5075	(mfont__select): Prototype adjusted.
5076	(mfont__get_metric): Likewise.
5077	(mfont__ft_drive_otf): Likewise.
5078	(mfont__flt_run): Likewise.
5079
5080	* font.c (mfont__select): New argument layouter.  If layouter is
5081	different in the registered font, make a new copy of realized
5082	font.
5083	(mfont__get_metric): Argument changed.  Get metrics of multiple
5084	glyphs.
5085	(mfont_find): Call mfont__select with layouter as Mnil.
5086
5087	* font-flt.c (FontLayoutContext): New member rfont.
5088	(run_otf): Adjusted for the change of mfont__ft_drive_otf.
5089	(mfont__flt_run): Argument changed.  Initialize ctx.rfont.
5090
5091	* font-ft.c (ft_find_metric): Arguments changed.  Get metrics of
5092	multiple glyphs.
5093	(NUM_POINTS): New macro.
5094	(MPointTable): New type.
5095	(ft_render): Use mwin__draw_points instead of mwin__draw_bitmap.
5096	(mfont__ft_drive_otf): New argument rfont.
5097
5098	* fontset.c (realize_font_group): Adjusted for the changed of
5099	mfont__select.
5100	(check_fontset_element): This function deleted.
5101
5102	* input-gui.c (adjust_window_and_draw): Locate a preedit window
5103	off the parent window if the preedit text is zero length.
5104
5105	* internal-gui.h (struct MFrame): New members foreground,
5106	background, videomode, font.
5107	(struct MGlyphString): New member anti_alias.
5108	(MDrawPoint): New type.
5109	(mwin__draw_bitmap): Prototype deleted.
5110	(mwin__draw_points): Prototype added.
5111
5112	* m17n-gui.h (MDrawControl): New member anti_alias.
5113
5114	* m17n-gui.c (free_frame): Free frame->font.
5115	(mframe): Set the fontset of frame->face to the default fontset.
5116
5117	* m17n-X.c (RGB_GC): New type.
5118	(enum gc_index): Renamed from enum face_gc.  Member names changed.
5119	(GCInfo): New typel
5120	(struct MWDevice): Members foreground and background deleted.  New
5121	member scratch_gc, gc_list.
5122	(DEFAULT_FONT, FALLBACK_FONT): New macros.
5123	(free_device): Free GCs in device->gc_list.
5124	(get_rgb_gc): New function.
5125	(get_gc): Renamed and argument changed from get_color.
5126	(get_gc_for_anti_alias): New function.
5127	(xfont_find_metric): Arguments changed.  Get metrics of multiple
5128	glyphs.
5129	(set_region): Argument changed.  Caller changed.
5130	(xfont_render): Allways set a font in gc.
5131	(x_error_handler, x_io_error_handler): Define only if
5132	X_SET_ERROR_HANDLER is defined.
5133	(mwin__open_device): Create device->scratch_gc.  Set members
5134	foreground, background, and videomode of frame.  Call
5135	XSetErrorHandler and XSetIOErrorHandler only if
5136	X_SET_ERROR_HANDLER is defined.
5137	(struct gc_list): Deleted.
5138	(REGISTER_GC, UNREGISTER_GC): These macros deleted.
5139	(mwin__realize_face): Adjusted for the change of the format of
5140	rface->info and the charge of set_region.
5141	(mwin__free_realized_face, mwin__fill_space, mwin__draw_hline)
5142	(mwin__draw_box): Likewise.
5143	(mwin__draw_bitmap): This function deleted.
5144	(mwin__draw_points): New function.
5145	(mwin__verify_region): Adjusted for the change of the format of
5146	rface->info and the charge of set_region.
5147	(mwin__create_window): Inherit backgound pixel from parent.
5148	(mwin__dump_gc): Adjusted for the change of the format of
5149	rface->info.
5150
51512004-03-16  Kenichi Handa  <handa@m17n.org>
5152
5153	* m17n-X.c (mwin__parse_event): Fix handling of modifier keys.
5154
5155	* input.c (M_key_alias): New variable.
5156	(handle_key): Try M_key_alias property of a key too.
5157	(minput__init): Initialize M_key_alias.  Give that property to
5158	symbols in one_char_symbol.  Fix bug of initializing
5159	one_char_symbol.
5160
5161	* draw.c (compose_glyph_string): Don't handle
5162	ignore_formatting_char here.  Include formatting characters in the
5163	range processed by a FTL.
5164	(layout_glyph_string): Handle ignore_formatting_char here.
5165
51662004-03-12  Kenichi Handa  <handa@m17n.org>
5167
5168	* input-gui.c (win_create_ic): Enable bidi in status control.
5169
5170	* draw.c (visual_order): Avoid re-ordering of combining glyphs only.
5171
51722004-03-09  Kenichi Handa  <handa@m17n.org>
5173
5174	* input.c (load_input_method): If title is not specified, use the
5175	input method name as title.
5176
5177	* m17n-X.c (get_color): Make it static.
5178	(xim_create_ic, xim_destroy_ic, x_error_handler)
5179	(x_io_error_handler): Likewise.
5180
51812004-03-01  Kenichi Handa  <handa@m17n.org>
5182
5183	* Version 1.0 released.
5184
5185
5186Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
5187  2013, 2014
5188  National Institute of Advanced Industrial Science and Technology (AIST)
5189  Registration Number H15PRO112
5190
5191This file is part of the m17n library.
5192
5193The m17n library is free software; you can redistribute it and/or
5194modify it under the terms of the GNU Lesser General Public License
5195as published by the Free Software Foundation; either version 2.1 of
5196the License, or (at your option) any later version.
5197
5198The m17n library is distributed in the hope that it will be useful,
5199but WITHOUT ANY WARRANTY; without even the implied warranty of
5200MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
5201Lesser General Public License for more details.
5202
5203You should have received a copy of the GNU Lesser General Public
5204License along with the m17n library; if not, write to the Free
5205Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
5206Boston, MA 02110-1301, USA.
5207