user stats

Member SinceFebruary 7, 2010
Last VisitAugust 16, 2016


coordinator for

Paint.NET PSD Plugin


personal statement

activity stream

August 16, 2016 - PinyinTones: Pushed 5555877e0bf3f078dbfa8478bb7ff85a49fd3df6, Use inference rules in makefile All of the C++ files are compiled with the same command-line options, so one inference rule is enough to cover them all. It also makes sense to put LINK32_OBJS in alphabetical order, for consistency with the Visual Studio project.

August 16, 2016 - PinyinTones: Pushed a3af8f8a61347a5779e800dbc0756ea8b84e73e4, Use SafeRelease pattern on COM objects

August 14, 2016 - PinyinTones: Pushed 75a974e4ce3839bace0a6648efdb1badeaecaf3d, Reduce maximum length of composition Since compositions are now automatically terminated in most situations, the maximum length of a composition can be reduced. If the composition reaches the maximum length, the start anchor is shifted so that part of the text is automatically accepted. The remaining composition only needs to be long enough to hold one Pinyin syllable, although we leave it longer than that.

August 2, 2016 - PinyinTones: Pushed 70e92c03b47cd112aac77b999e93a69bdc459eaa, Define nullptr for WDK 7.1 compiler Windows Driver Kit 7.1 uses Microsoft C++ 15 as its compiler. This is the last major version of Microsoft C++ that does not have nullptr.

August 2, 2016 - PinyinTones: Pushed aa26f7239e271ac4d917a0066c48d490890b3253, Read TSF registration language from 64-bit regkey The 32-bit DLL should read from the same regkey as the 64-bit DLL, rather than from the virtualized key under WOW6432Node. Sharing a regkey ensures that PinyinTones will use the same keyboard layout in 32-bit and 64-bit applications.

July 25, 2016 - PinyinTones: Pushed 34d669d8487d256fe0be28a23da1bde054d3352d, Allow the 'v' character to be entered The 'v' character can now be entered by typing the 'v' key twice. The 'v' key is ordinarily used to enter the Pinyin 'ü' character. However, Pinyin is often mixed with text that is in another language, such as in a vocabulary list. It is inconvenient to have to switch to a different input method whenever a 'v' is needed, especially if lots of input methods are installed. Enabling the 'v' character allows short blocks of non-Pinyin text to be typed without switching out of PinyinTones.

July 24, 2016 - PinyinTones: Pushed a472cc27356e4f702943eca79d0e971631d1aac0, Improve error-handling in _SetTone Pass through all errors to the caller. The composition should only be terminated if all steps succeed.

July 16, 2016 - PinyinTones: Pushed 1d09ec69c2cce4dff6aa398ccf7aa3df91f87029, Release COM pointers safely in cleanup blocks In functions that release all COM pointers in a cleanup block, the pointers should be initialized when declared. Otherwise, an early exit might cause an uninitialized pointer to be accessed and released. Also, early exits must be done with a goto instead of a return, so that the cleanup block runs. The Microsoft sample code does not need to be changed. Some functions release COM pointers within if blocks. Other functions only goto the cleanup block if a reference to the COM object has been successfully obtained, and return early if it has not.

July 13, 2016 - PinyinTones: Pushed e388de0f273a0c5ac041e4fd87914580e4505d57, Use 4-space indent, add more comments Code with a 2-space indent has been converted to a 4-space indent, to match the rest of the codebase. Functions are described in a comment block before the function header.

July 11, 2016 - PinyinTones: Pushed a743161fdc89b5aa19c5f8a62f88b23d2c1e7d1e, Clean up composition on termination The composition must be cleaned up whenever it is terminated, including when PinyinTones did not initiate the termination. For example, the composition will be terminated when a different window gets the focus. Without clean-up, the dotted-underline display attribute will remain in place. After switching back to the original application, it will look like the composition is still active, even though it has already been terminated. Even Microsoft IMEs have trouble with this. The Microsoft Pinyin IME does not clear the display attribute. The Microsoft Japanese IME clears the display attribute at the next keystroke, which of course starts a new composition instead of continuing the original composition. WordPad clears the display attribute itself. Word does not. Notepad is not TSF-aware, yet it gets the best behavior of all -- the composition actually remains active through the focus change.