1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787
|
What's New in libchewing 0.10.3 (August 24, 2025)
---------------------------------------------------------
* Bug Fixes
- Fix quick symbol menu for |(introduced in 0.8.0) (#737)
* Dictionary
- Remove some incorrect phrase-bopomofo mapping entries
What's New in libchewing 0.10.2 (August 14, 2025)
---------------------------------------------------------
* Bug Fixes
- Fix ㄈㄥ was incorrectly mapped to 風靡
* Dictionary
- Added missing bopomofo for 風靡
What's New in libchewing 0.10.1 (August 2, 2025)
---------------------------------------------------------
* Features
- cli: Ignore empty lines or lines starts with # when processing dictionary
* Bug Fixes
- Add missing bopomofo mapping to the GinYieh layout
- Correct IBM layout mapping
* Dictionary
- Import improvements from libchewing-data
What's New in libchewing 0.10.0 (July 26, 2025)
---------------------------------------------------------
* Features
- New keyboard layout Colemak.
- cli: New --fix option enables auto correction for simple tsi.src errors
- cli: Allow multiple whitespace in dictionary source file
* Developer Features
- New API `chewing_bopomofo_String()` can be used to retrieve current bopomofo
string in the buffer. This deprecates the old non-thread safe
`chewing_bopomofo_String_static`.
- New API `chewing_cand_string_by_index()` can be used in UILess mode to query
candidate string from candidate list.
* Changes
- BREAKING: System dictionary loader now loads base and extra dictionary
separately. (Rust)
- Simple mode now always auto-commit after candidate selection to align with
ㄅ/半 experience.
* Bug Fixes
- `chewing_keystroke_CheckAbsorb()` correctly return true when a keystroke
was absorbed due to error.
- `chewing_commit_preedit_buf()` does not return error when the bopomofo
buffer is empty, to match previous behavior.
- `chewing_clean_preedit_buf()` does not return error when the bopomofo
buffer is empty, to match previous behavior.
- Avoid panics in `chewing_new()`
- Don't panic when conversion fails
- Don't panic when symbols table contains empty line
- Avoid opening empty symbol table
- Skip malformed lines in abbrev table
- Handle special symbol input normally when easy symbol is enabled
- Ignore zero-length phrases
- Use correct %AppData% path on Windows
- Fallback to Windows default sys path
- Use correct search path separator on Windows
- Check file existence with Windows quirks
- Ensure to reload dictionary after flush buffers
- Esc key clears buffer in simple mode
- Correctly allocate and free array returned to C FFI
- Initialize learned user phrase freq with orig_freq
- Ensure user phrase takes precedence
* Dictionary
- Add alternative sound for 麼
- Removed some inconsistent phrases (#709)
* Build
- Do not link to libcmtd on Windows
- Bump corrosion to 0.5.1 to fix rustup breaking change
- Bump MSRV to 1.85
- Bump tools and testhelper to 2024 edition
- Stop updating mini.dat for every build
- Move C headers to the capi module
- Remove unused cargo-vet settings
- Clean-up porting layer usage in tests
- Add upper bound to cmake_minimum_required version
- Enable cli test
- Stop depending on the directories crate
What's New in libchewing 0.9.1 (October 26, 2024)
---------------------------------------------------------
* Bug Fixes
- Disable automatic selections snapshot which introduced more problems then
what it tried to solve. (introduced in v0.9.0)
* Build
- Statically link C runtime on Windows
- Use vcpkg on Windows
What's New in libchewing 0.9.0 (August 11, 2024)
---------------------------------------------------------
* Features
- Support two new input modes:
- Fuzzy mode - support prefix search, partial zhuyin search, toneless input.
- Simple mode - like the traditional input method on Windows 95 which does
not perform any intelligent phrasing.
- Allow space key for pagination regardless of space_is_select_key mode.
- Merge DOWN and SPACE key behavior in pagination.
- A new option to disable fullwidth toggle key.
- Workman layout support.
- Load embedded mini dictionary if system dictionaries were not found.
- Automatically load extra dictionaries found in search path
- ${CHEWING_PATH}/dictionary.d/*.dat
- Automatic snapshot selections when the curser is moved.
* Developer Features
- BREAKING: Remove language_mode and character_form methods (Rust).
- BREAKING: Remove unused pinyin.tab file
- BREAKING: Remove most unused C code but keep compat C headers.
- Bump minimum supported Rust version to 1.77
- Enable ELF symbol versioning. All existing symbols are marked as version
CHEWING_0.5 and new symbols from this release are marked as CHEWING_0.9.
- A new set of configuration API:
- chewing_config_has_option
- chewing_config_get_int
- chewing_config_set_int
- chewing_config_get_str
- chewing_config_set_str
- New API to get runtime library version:
- chewing_version
- chewing_version_major
- chewing_version_minor
- chewing_version_patch
- chewing_version_extra
- New API to acknowledge output buffers:
- chewing_ack
- Define version macros
- CHEWING_VERSION_MAJOR
- CHEWING_VERSION_MINOR
- CHEWING_VERSION_PATCH
* Bug Fixes
- Separate special handling by pinyin variants (#298)
- Panic when selecting phrases backwards at the end of buffer. (introduced in
v0.8.0)
* Dictionary
- Default dictionary updates and fixes (#331)
* Performance
- Optimize K shortest path algorithm to handle long pre-edit buffer. This
allowed us to remove the special DP algorithm and keep only the graph search
based algorithm in conversion.
* Testing
- Add benchmarks for the conversion module
- Add tests for options and default values
- Add test for chewing_config_set_str
- Test chewing_config_set_str with chewing.keyboard_type
- Allow switching keyboard layout in genkeystroke
- Add test for simple engine symbol input
- Support new editor options in the fuzzer.
- Generate test cases from fuzzer input.
* Miscellaneous Tasks
- Drop outdated ChangeLog
- Add option to turn off tests run
- Use system corrosion if available
- Regenerate chewing.h using latest cbindgen
- Include CTest and use the built-in BUILD_TESTING option
- Manage SQLite dependency with CMake
- Print status about SQLite3 module
- Remove unused test files
- Bump Corrosion to v0.5
- Fix building without using CMake presets
- Force linking chewing_version obj file
- Append `git describe` to version string for unreleased version.
What's New in libchewing 0.8.5 (July 8, 2024)
---------------------------------------------------------
* Changed
- Bump default Corrosion version to v0.5
* Bug fixed
- Hanyu Pinyin empty rime handling. (#585, introduced in v0.8.0, reported by
Jidanni)
- Printable non A-Z chars should output symbols in pinyin. (#592, introduced
in v0.8.0, reported by Jidanni)
What's New in libchewing 0.8.4 (Jun 1, 2024)
---------------------------------------------------------
* Bug fixed
- Config options were incorrectly reset after certain operations. (introduced
in v0.8.0)
- Incorrect mapping for KB_DVORAK and KB_DVORAK_HSU layouts. (introduced in
v0.8.0)
- Installation failure if build with testing off. (introduced in v0.8.3)
What's New in libchewing 0.8.3 (May 25, 2024)
---------------------------------------------------------
* Changed
- Simplified build options on the Windows platform.
- Enabled CTest BUILD_TESTING option to disable tests.
- Default uses system Corrosion if available.
* Bug fixed
- Fix more wrong Hsu (許氏) keyboard fuzz conversion (ㄍㄧ to ㄐㄧ and ㄍㄩ to
ㄐㄩ) (introduced in v0.8.0)
What's New in libchewing 0.8.2 (May 21, 2024)
---------------------------------------------------------
* Bug fixed
- Wrong Hsu (許氏) keyboard fuzz conversion (ㄍㄧ to ㄐㄧ and ㄍㄩ to ㄐㄩ)
(introduced in v0.8.0)
- Wrong symbol map location when building as a CMake submodule.
What's New in libchewing 0.8.1 (May 15, 2024)
---------------------------------------------------------
* Bug fixed
- Fail to build on aarch64 due to type mismatch. (introduced in v0.8.0)
What's New in libchewing 0.8.0 (May 14, 2024)
---------------------------------------------------------
**BREAKING CHANGE**
New dictionary format is not compatible with old tools. Existing user dictionary
will be automatically backed up and migrated however old tools might not be able to
manipulate the dictionary directly.
The `chewing-editor` program can still be used to edit user dictionaries. In
this release we also introduced a new `chewing-cli` tool to inspect/dump/build
user dictionaries. See `chewing-cli(1)` for more details.
This version also closed/fixed many issues. Find the complete list of closed
issues here: https://github.com/chewing/libchewing/milestone/7?closed=1
* Added
- A new command line tool `chewing-cli` is included in this release. It can
create or inspect dictionary files.
- Reintroduce DictionaryMut as a separate trait.
* Changed
- CMake default preset switched to build with rust.
- CMake minimum required version bumped to 3.24.0.
- System dictionary and user dictionary file now uses platform standard paths.
See https://docs.rs/chewing/latest/chewing/path/fn.data_dir.html for
details.
- Improved TrieBufDictionary::from ergonomics.
- Rename DictEntries to Entries.
- Ensure all fallible API returns Error.
- Improved algorithm so using Tab key to find alternative phrasing is more
responsive.
- Easy symbol input now accepts arbitrary long "symbols". (rust)
- Removed duplicated symbols "●" and "○" from symbols input.
* Bug fixed
- chewing_cand_CheckDone result was reversed in capi. (introduced in v0.7.0)
- Correctly ignore instead of absorb keys when the pre-edit buffer is empty.
(introduced in v0.6.0)
- Reset pagination page number when searching for next candidate range.
(introduced in v0.7.0)
- chewing_bopomofo_String_static did not return key sequence for pinyin input
mode. (introduced in v0.6.0)
- Different chewing_*_static() functions were using one shared global buffer.
(introduced in v0.6.0)
- Special symbol selection missed a couple symbols that was in C version.
(introduced in v0.7.0)
- Panics when a new selection replaces more than one existing selections.
(introduced in v0.7.0)
- Selection created from alternative bopomofo was not considered in
conversion. (introduced in v0.6.0)
* Removed
- HashMap implemented Dictionary was removed.
* Documentation
- Clarify the accepted value of `chewing_handle_Default` method.
What's New in libchewing 0.7.0 (Apr 7, 2024)
---------------------------------------------------------
This is the first beta release of the Rust rewrite. The library has been tested
with the AFL++ fuzzer, and most of the obvious bugs have been fixed, so it should
not crash for normal use. Now we invite power users to daily drive the beta
release in order to find more subtle bugs.
The Rust rewrite is ABI compatiable with previous releases. The most notable
difference with the C version includes a new portable dictionary format that can
be used both as system dictionary and user dictionary. Users with existing user
phrase dictionary will be automatically migrated. Old files will be backed up
automatically. With these changes, we will be able to support dictionary sharing
and loading multiple dictionaries in future releases.
* Future roadmap
- 0.8.x after bug bashing this version will be the first public release with
rust implementation as the default.
- 0.9.x will focus on the stablization of the Rust Crate API.
- 1.0.0 will be the first public release of the Rust API. C implementation
will be removed from the repository.
* Added
- Added Colemak-DH ANSI/Orth layout support
- Replace bespoke RIFF+TLV file format with standard DER format. (rust)
- Supporting migrating user dictionary file to new format. (rust)
- Allow creating in memory user dictionary. (rust)
- New `chewing-cli` tool can be used to create or inspect dictionary files. (rust)
- New `chewing-cli` tool can dump or import dictionaries from CSV files. (rust)
- Audit dependencies using cargo-vet. (rust)
* Changed
- Buffer user dictionary changes and flush in background without blocking main
thread. (rust)
* Bug fixed
- Some unsigned underflow issue found by AFL++. (rust)
- Skip symbol selection if preedit buffer is empty. (rust)
- Allow numlock in selection mode. (rust)
- Avoid infinite recursion. (rust)
- Ensure to return KeyBehavior::Commit when we push to commit buffer. (rust)
- Adjust selection offset after delete symbols. (rust)
- Disable trace logging if no logger is enabled. (rust)
- Should not start selection in English mode. (rust)
- Use offset to select from paginated phrase list. (rust)
* Documentation
- Added document for fuzzers. (rust)
- Describe how to compile dictionary files.
- Update build instruction and Rust MSRV info.
* Testing
- Added a fuzzer harness with AFL++. (rust)
What's New in libchewing 0.6.0 (Jan 27, 2024)
---------------------------------------------------------
This release contains many improvements and bug fixes. It's the first
release since 2016. We have started a major rewrite in Rust, so we expect
to have more frequent releases in the following months.
* Added
- New API chewing_phone_to_bopomofo to convert syllable in u16 to bopomofo
string. [ShengYenPeng] #166
- New API chewing_set_autoLearn and chewing_get_autoLearn can be used to
disable and enable new phrase auto-learning. [Hiunn-hué] #261
- Add a default config test for autoLearn option. [Billy Su]
- Add Android platform support. [hiroshiyui] #408
- New chewing Rust Crate can be downloaded from
[crates.io](https://crates.io/crates/chewing). [Kan-ru Chen] #423
- Add several CMake presets for supported configurations. [Kan-ru Chen] #424
* Changed
- Implement has_userphrase in testhelper with the public
chewing_userphrase_lookup API. [ShengYenPeng] #223
- Updated HSU layout's JVC conversion to be more intuitive. [Hiunn-hué] #259
- Phrase auto-learning now only triggers after committing. [Hiunn-hué] #260
- chewing_handle_CtrlNum now handles cursor better and has a clearer error
message if there is nothing to be added to user phrase. [Hiunn-hué] #277
- chewing_handle_ShiftLeft and chewing_handle_ShiftRight now also displays
aux message for new user phrases added. [Hiunn-hué] #278
- Symbol used for full-width colon changed from ︰ (U+FE30) to : (U+FF1A).
[school510587] #304
- Support cross compiling with qemu. [sgn] #333
- CMake minimum version changed to 3.21.0.
- Rewrite chewing internal in Rust. [Kan-ru Chen] #347 #378
* Dictionary
- Add new syllable ㄒㄩㄢ for 亘. [yan12125] #252 #253
* Removed
- Autotools build tools are removed. CMake is the recommended way to build
libchewing.
* Bug fixed
- Fix ChoiceEndChoice expression always true. [Billy Su]
- Fix strncpy warning in hash.c. [Bo-Cheng Jhan]
- Fix unable to input some Bopomofos with ET26 layout. [Hiunn-hué] #235
- Fix double free in userphrase-hash's TerminateUserphrase. [cwlin] #254
- Fix hash item offsett calculation in uhash. [cwlin] #255
- Fix ChoiceEndChoice expression always true. [Billy Su] #258
- Fix clearing bopomofo buffer after switching Chi-Eng mode. [Hiunn-hué] #268
- Fix chewing_handle_Space cannot input space with empty buffer. [Hiunn-hué] #274
- Fix a strncpy warning and use ARRAY_SIZE. [school510587] #296
- Enhance chewing.py to support platforms with 64-bit pointes. [cheese] #310
- Fix init_database to correctly read phrase frequency for sorting. [yan12125] #334 #337
- Fix installation of data files. [yan12125] #350
- Fix building shared library on all supported platforms. [Kan-ru Chen] #375 #376
- Fix dvorak-qwerty symbol mapping. [hiroshiyui] #407
- Prevent memory leak in error case of GetDefaultUserPhrasePath [Kuang-che Wu].
- Fix PinYinData keySeq buffer overflow in PinYinInput(). [Kuang-che Wu] #238
- Fix trying to allocate buffer of negative size. [Kuang-che Wu]
- Fix access violation due to negative cursor position. [Kuang-che Wu]
- Fix several buffer overflows. [ChangZhuo Chen]. #241 #242
* Platform-specific
- Install instructions for macOS. [Chocobo1]
What's New in libchewing 0.5.1 (May 18, 2016)
---------------------------------------------------------
* Bug fixed:
- Fix wrong CHEWING_DATADIR definition in CMake build. #222
- Fix j, k selection when symbol in between. #149 #221
What's New in libchewing 0.5.0 (May 2, 2016)
---------------------------------------------------------
* New feature
- Add Carpalx keyboard layout support. #217
* Dictionary
- Update dictionary. #151 #155 #188 #191 #201
- Add debug tool dump_database.
- Sort tsi.src. #212
* Misc
- Tweak several comments.
- Fix libchewing document.
- Remove old/dead code.
- Improve code readability and consistency.
- Update automake syntax. #114
- Add test cases. #169 #177
- Update Python sample code.
- Add debug tool dump_database.
- Integrate Coverity scan in https://scan.coverity.com/.
* Platform-specific
- Update README for OS X.
- Set WITH_INTERNAL_SQLITE3 to true by default in MS-Windows.
- Fix Visual Studio compiling warnings/errors. #168 #171 #189 #190 #213
- Add a cmake option BUILD_DLL to enable building *.dll with MS VC++. #185
- Make the python binding of libchewing support Windows dll files. #186
- Don't use SIGSTOP in MS-Windows.
* Bug fixed
- Check if ld supports --no-defined. #144
- Fix unexpected candidate disorder for '1'. #153
- Replace bash-izm '==' operator with '=' for test(1). #158
- Fix several Coverity errors. #172 #173
- Fix ChewingKillChar which is disabling OpenSymbolChoice. #160 #181
- ㄅ cannot overwrite ㄆ in HSU and ET26. #170 #183
* Successful stories:
- Rime Input Method Engine (RIME) takes partial dictionary from
libchewing.
- PIME (writing input methods for Windows easily with Python) supports
Chewing IM by default.
What's New in libchewing 0.4.0 (Apr 11, 2014)
---------------------------------------------------------
* Add the following APIs:
- Userphrase manipulation
- chewing_userphrase_enumerate
- chewing_userphrase_has_next
- chewing_userphrase_get
- chewing_userphrase_add
- chewing_userphrase_remove
- chewing_userphrase_lookup
- Keyboardless action
- chewing_cand_open
- chewing_cand_close
- chewing_cand_string_by_index_static
- chewing_cand_choose_by_index
- chewing_cand_list_first
- chewing_cand_list_last
- chewing_cand_list_has_next
- chewing_cand_list_has_prev
- chewing_cand_list_next
- chewing_cand_list_prev
- chewing_commit_preedit_buf
- chewing_clean_preedit_buf
- chewing_clean_bopomofo_buf
- Bopomofo buffer
- chewing_bopomofo_Check
- chewing_bopomofo_String_static
- Static API
- chewing_aux_String_static
- chewing_buffer_String_static
- chewing_cand_String_static
- chewing_commit_String_static
- chewing_kbtype_String_static
- Misc
- chewing_new2
* Dictionary format:
- Remove text data support.
- Introduce platform independent binary data representation.
- Move binary data to share/libchewing/*.
* Userphrase format:
- Support SQLite-based user phrase storage and manipulation.
* New coding style:
- Use scripts/indent.sh to change coding style.
* Bug fixed:
- Fix chewing_zuin_Check wrong return value. #62
- Fix numlock key cannot output number. #45
- Fix negative frequency problem. #75
- Fix cannot select candidate when symbol exists. #79
- Avoid clearing the buffer when Up arrow key is pressed and escCleanAllBuf is 1.
- Fix cannot handle numlock 9 correctly. #88
- Fix invalid characters are committed when pre-edit buffer is full.
- Fix AutoLearnPhrase cannot fill correct wordSeq. #108
- Fix wrong auto-learn when symbol in between. #112
- Fix missing rpl_malloc for cross compilation. #118
- Fix '\n' appear in symbol table. #126
- Reopen candidate list for symbols with down key. #127 #135
- Let up key close candidate list of symbols. #131 #138
* Misc:
- Add `make check' in cmake build.
- Change MAX_UTF8_SIZE to 4.
- Update official website URL.
- Use CreateFileA() instead of CreateFile() to stick with the ANSI API.
- Do not check phrase longer than MAX_PHRASE_LEN.
- Implement dynamic programming phrasing algorithm. #73
- Clean bopomofo buffer when mode change to English mode. #89 #97
- Update README to GFM.
- Replace 'INCLUDE' with 'AM_CPPFLAGS'. #68 #114 #116
- Use [Shift]+[-] to input EM DASH (u+2014) as default. #113 #124
- Use Backspace to close candidate window. #128
- Use PgUp/PgDn to turn pages of candidates. #129
- Update Windows default search path. #78
- The word "zuin", "Zhuyin" are obsolete terms for "Bopomofo".
- Add const whenever possible in several APIs.
- Toggle shape mode with shift-space. #141 #142
* Successful stories:
- chewing-windows-tsf project provides Text Services Framework
support for Microsoft Windows.
What's New in libchewing 0.3.5 (Jul 28, 2013)
---------------------------------------------------------
* Improve CMake rules
- Visual Studio build included
* Dictionary improvements
- Remove duplicated phrases, fix Bopomofo representation
- tool tweaks
* travis-ci support (https://travis-ci.org/chewing/libchewing)
* drone.io support (https://drone.io/github.com/chewing/libchewing)
* coveralls.io support (https://coveralls.io/r/chewing/libchewing)
* editorconfig support (http://editorconfig.org/)
* Add new chewing_set_logger API
* Prevent unaligned memory access
* Reduce maxChiSymbolLen to 39 to avoid overflow
* Do not store user phrase when its length is 1
* Check chiSymbolBufLen in chewing_handle_Numlock()
* Set isSymbol to 0 in SetChoiceInfo
* Fix 'j', 'k' in select mode cannot handle symbol selecting
* Do not call GetCharNext() when GetCharFirst() fails
* Successful stories:
. FreeArray utilizes libchewing for selecting phrases of Array
input method
What's New in libchewing 0.3.4 (Dec 31, 2012)
---------------------------------------------------------
* Improve the description of libchewing API
- Simplified examples to illustrate the usage are added
* Revise libchewing API. Check the documentation for details
* Support THL (Taiwan Huayu Luomapinyin) and MPS2 Pinyin keyboard layout
* Reimplementation of unit test framework. No external 'check' package
is required
* Fix several phrase errors
- Add exceptional phrase as well
* Improved developer and user guide
* Introduce CMake based build system, which is convenient to MS-Windows
based environments.
* Add --enable-gcov to enable gcov coverage
* Fix possible strncat() overflow
* Consistent checks for bopomofo sequence internally
* Handle incomplete bopomofo with space key properly
* Internal structure refactoring
* Read hash path from CHEWING_PATH environment variable
* Make libchewing thread-safe
* Fix IM crash by changing default candidate per page to 10
* Fix the detection of ncursesw
* Fix the usage of autotools
* Update and tune symbols
* Fix valgrind warning
* Fix several compilation warnings
* Fix GCC visibility availability for Darwin specific PIC code
* Fix hash table initialization and its memory leakage
* Support building with mingw32 toolchain
* Fix GNU Hurd build
* Fix Microsoft VC build
* Fix Windows 64-bit build
* Fix mingw32/64 + WINE build
* Successful stories:
. GCIN supports experimental Chewing IM since version 1.6.4
. HIME supports Chewing IM
. UCIMF supports Chewing IM
. Fcitx supports Chewing IM
. mozc (IM framework maintained by Google) provides Chewing support
. JMCCE (reworked version) supports libchewing
What's New in libchewing 0.3.3 (Feb 27, 2011)
---------------------------------------------------------
* Fix memory access violation.
* Improved Python binding.
* Merged with libchewing-data project. (r455)
* Improved random key stroke tester.
* Fix the handling of phonetic symbols in Hsu's keyboard.
* Fix unexpected candidate disorder when doing symbol choice.
* Revised phrase choice from rearward logic.
* Fix cross compilation.
* Improved shell script to merge changes form libchewing-data.
* Successful stories:
. Google ChromeOS provides built-in Chewing IM support
. MeeGo platform provides built-in Chewing IM support
What's New in libchewing 0.3.2 (Dec 1, 2008)
---------------------------------------------------------
* Add gcc visibility support to hide private APIs.
* APIs and Headers refactoring.
* Doxygen-friendly API documentation.
* New binary data manipulation approach to dramatically reduce storage
usage and loading time via memory mapping. (enabled by default)
* New word segmentation method based on mmseg.
* Improved auto-learn new phrases method.
* Improved test suite and added simple benchmark program.
* Option to indicate the behavior for phrase choice to be rearward
or not.
* New APIs to enumerate supported keyboard types.
* Repair improper memory access.
* API united in Win32 and UNIX world.
* Initial Python binding support.
* Merged with libchewing-data project. (r342)
* Canonical debugging messages.
* Successful stories:
. OpenBSD porting
. ibus-chewing : chewing engine for ibus input method framework.
. UIM-chewing leveraging libchewing 0.3.x development branch.
What's New in libchewing 0.3.1 (Oct 1, 2008)
----------------------------------------------------------
* New keyboard layout DACHEN_CP26.
* Add key '`' to open symbol table.
* Erase candidate and reset its length when 'Esc' key is handled.
* Closes candidate window when user pressed 'Up' key.
* Doing select at the end of edit buffer works on the
last phrase (interval).
* Improved reminding message text.
* Sync with libchewingdata project.
* A new HanYu-PinYin mapping table
* More robust behavior when IM crashes.
* Allow '#' comment and blank line in tsi.src.
* Fix chewing switch between Full/Half mode and cursor moves one space in
gedit.
* Fix when list available phrases to choice, user's own phrases are
not included.
* Release PgUp/PgDn key event to running applications.
* Fix portability issues on FreeBSD.
* Fix incorrect initialization.
* Fix pinyin key order, put "shun" before "shuo".
* Fix various potenital boffer overflow bugs.
* Fix various memory leaks.
* chewing_set_PinYinMethod to support multiple PinYin methods.
* chewing_handle_CtrlOption was removed.
* New structure SymbolEntry.
* Rename selectAreaLen to candPerPage.
* Added bEasySymbolInput.
What's New in libchewing 0.3.0 (May 15, 2006)
----------------------------------------------------------
* This is a new development branch differing a lot from
0.2.x series, and breaks API/ABI for new features.
* UTF-8 based language engine core for common Unicode
environment.
* Porting layer for POSIX/Unix-like and Win32 to reduce the
redundant porting process.
* New API design for better consistency.
* Merge the efforts from libchewing-data subproject, which
means various phrases have been reviewed and corrected.
* Zuin fixes and symbol improvements.
* Support key 'j' / 'k' for paging in selection mode.
* Fix some internal memory management bugs and leaks.
* Improved internal test suite.
* New binary-form of user hash data to speed up loading and
solve hash data corruption.
* Better calculating of internal tree and phone constants.
* Revised tsi.src for richer phrases and avoiding crashes.
* Merge phone and phrase from CNS11643.
* Reduce the amount for the expose for internal symbols.
* Improved Han-Yu PinYin to use table-lookup implementation.
* Experimental frequency-evaluation. (re-compute chewing
lifetime)
* Implement the choice mechanism for pair symbols.
* Improved Tab handling to allow the switching over different
frequency orders of candidated phrases.
* New auxiliary module for simpler API uses.
* Experimental memory-mapping based binary data handling to
speed up data loading.
* Successful stories:
. Sun Solaris 10 U2 and 11 will provide built-in Chewing
IM support.
. OXIM input method suite from OpenDesktop/OSSI provides
Chewing support as its default input method.
. New Win32-Chewing subproject to provide efficient input
method solution on Microsoft Windows platforms.
What's New in libchewing 0.2.7 (Aug 8, 2005)
----------------------------------------------------------
* Fix the keyboard type state changing bug.
* Add new function to specify the space as the selection
key.
* Improved debug messages.
* Provide cutomized user-defined PinYin table support.
* Add termination mechanism.
* Successful stories:
. Chewing has its Win32 porting (MS-IME) via OVIME (the
Win32 port of OpenVanilla Input Method Framework).
What's New in libchewing 0.2.6 (Feb 28, 2005)
----------------------------------------------------------
* Experimental feature -- HanYu PinYing Keyboard layout.
* Proper $HOME env handling.
* SegFault workaround after libtabe's tsi.src merge.
* Add the facility to input symbols.
* Successful stories:
. Chewing becomes one of the built-in input methods in Sun
Java Desktop System (JDS).
What's New in libchewing 0.2.5 (Dec 28, 2004)
----------------------------------------------------------
* Merge SpaceChewing's frequency tweaking from zonble.
* Minor fixes for building process and zuin core.
* Successful stories:
. IIIMF-chewing
. SCIM-chewing
. OpenVanilla Input Method Framework for MacOS X
What's New in libchewing 0.2.4
----------------------------------------------------------
* Merge from SpaceChewing:
. Dvorak Hsu keyboard layout.
. Hanin style support.
* Directly use tsi.src from libtabe.
. No longer maintain separate tsi.src.
* Fix the word selection bug.
* Fix phonetic index in Hsu keyboard, and do fuzzy "g e"
to "j e" convertion.
* Provide pkg-config and RPM spec.
* Allow users to specify forward/backward phrase addition.
* Initial Win32 support.
What's New in libchewing 0.2.3
----------------------------------------------------------
* Fix candidate phrase choice bug.
* Built-in debugging routines.
* Test suite & sample implementation.
* Merge the enhancements from SpaceChewing, such as
space key selection, Eten special symbol input, and
MacOSX awared information.
* Fix broken encoding in sort_dic utility.
* Doxygen documentation support.
* Add Dvorak keyboard support.
|