Skip to content

Releases: chewing/libchewing

v0.6.0-rc.1

07 Jan 05:51
v0.6.0-rc.1
06b577b
Compare
Choose a tag to compare
v0.6.0-rc.1 Pre-release
Pre-release

What's New in libchewing 0.6.0-rc.1 (UNRELEASED)

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 default config test for autoLearn option [Billy Su].
    • Add Android platform support [hiroshiyui]. #408
    • New chewing Rust crate can be downloaded from
      crates.io [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 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
  • 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 pointer [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 overflow. [ChangZhuo Chen]. #241 #242
  • Platform-specific

    • Install instructions for Mac OS [Chocobo1].

New Contributors

Full Changelog: v0.5.1...v0.6.0-rc.1

v0.5.1

18 May 11:31
Compare
Choose a tag to compare

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.

v0.5.0

02 May 03:07
Compare
Choose a tag to compare

What's New in libchewing 0.5.0 (May 2, 2016)

  • New feature
    • Add Carpalx keyboard layout support #217.
  • Dictionary
  • 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.

v0.4.0

11 Apr 01:53
Compare
Choose a tag to compare

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)

29 Oct 10:11
Compare
Choose a tag to compare
  • 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)

29 Oct 10:44
Compare
Choose a tag to compare
  • 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)

29 Oct 10:42
Compare
Choose a tag to compare
  • 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)

29 Oct 10:41
Compare
Choose a tag to compare
  • 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)

29 Oct 10:39
Compare
Choose a tag to compare
  • 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)

29 Oct 10:37
Compare
Choose a tag to compare
  • 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.