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