ver 0.51 Jan 10, 2004 -------------------------------------------------------------------------- 1. Changed the bdf2bin.c, store font size in little endian format, so *.bin font files can share between little-endian and big-endian system. 2. Fixed endian bug in display/fbop.c, now frame buffer operation can work on little/big-endian system. Tested on my iBook G3 900Mhz(Yellowdog Linux), now both frame buffer and SDL mode work. 3. Added Mac OS X support through SDL library, main.c added SDL.h Modified configure.in. But SDL very slow in Mac OS X? 4. Added Darwin x86 and ppc framebuffer support, 8/16/32bpp. Also fixed a bug for 8bpp, seems Apple is using a fixed palette for 8bpp? 5. Added OpenBSD/NetBSD framebuffer support(non-i386 platform), now works on OpenBSD/macppc and NetBSD/macppc port. 6. Added SCO OpenServer 5.0.x and Unixware 7.1.x support(i386). 7. Fixed a bug in input/zhuyin_cin.c, forgot to memset the malloc memory. 8. Added Ctrl-Space/Shift-Space support for SCO OpenServer/Unixware, its keyboard handling is too messy, don't know how to do Ctrl-Alt-stuff, just use Ctrl-Q prefix style. Also minor change to make it work with OpenServer 5.0.6(possibly other versions). Fixed SCO's table line recognition(vt.c), added a hack for UnixWare's 8859-N font table lines. 9. Feb 12, 2004 Fixed FreeBSD's vim bug(lots of "S" stuff), added ESC [ = ... support, bug also fixed in SCO OpenServer/UnixWare. Added ErBi input method, default installation added ZiRanMa & ErBi. 10. Feb 13, 2004 Fixed FreeBSD's vi-last-line-scroll bug (partially? *_*) using "ESC [ S" to scroll up, this bug also existed in OpenServer/UnixWare, both fixed. Fixed UnixWare's "ESC [ 0-2 c" cursor hide/show(different than Linux), no more EscReport for "ESC [ 0 c" ver 0.50 Dec 5, 2003 --------------------------------------------------------------------------- 1. Changed the Makefile.linux/Makefile.FreeBSD to autoconf/automake style 2. Update the vga.c, make it works with FreeBSD 4.x and update the lrmi to 0.8. Now CCE works in FreeBSD 4.x and 5.x 3. Changed key.c, added some keys for FreeBSD 4. Restructure the source code, put some source files into term/display/font/input. 5. Deleted the anonymous union codes, not available on all platforms. 6. Ported to Lynx 4.0(i386) platform, display is ok, but needs raw keyboard handling, so input is not working yet. Fixed zhuyin_cin.c for not-enough-memory problem(len=2 memory allocation). 7. Ported to NetBSD(i386) 1.6.1 and OpenBSD 3.3(i386), fixed some keyboard handling(ugly!) 8. Fixed a bug related to the linegap/input height, VgaClearInput() and VgaClearAll(). 9. Fixed OpenBSD's bash bug, related to controlling tty, enable that in term.c Now bash 2.05 can work in CCE. Added mouse support for CCE under OpenBSD, using wsmoused(not working yet). 10. Ported to Solaris, tested on Solaris 9 x86. 11. Clear the screen upon exit on NetBSD/OpenBSD/LynxOS/Solaris, a simple hack to fix the text screen bug(not fully working yet). 12. Cleanup the framebuffer support, add planar frame buffer support, now support LinuxVGA16 fb, plus FreeBSD fb(full support up to 1280x1024x32). Can't mmap FreeBSD's 1024x768x4 & 1280x1024x4 (will use depth 8 instead) Can't switch back to 800x600x4bpp system console, will back to TEXT_80x25. 13. Ported to QNX 6.2.1(x86), but still some bugs, no time to fix. 14. Ported to Minix-VMD 1.7.0(x86), but still some bugs. standard Minix. 15. Fixed a bug related to reverse color, when you do 'man', you will notice it. 16. Ported to Minix 2.0.3(x86), still some bugs, but it does work, using file /dev/mem operation. 17. Ported to GNU Hurd 0.3(Debian K4 ISO distribution). 18. Added some INCLUDES in Makefile.am, modified the cin2tab a little bit, so CCE can be built outside of the source tree. Modify the CCELIB definition, use $datadir(/usr/local/share/cce) not $libdir. 19. Added --enable-x11font, can use X11 pcf/bdf directly now, but need libXfont.so and libz.so. Some codes from iterm project. 20. Added --enable-gpmmouse, can use gpm mouse server in Linux, not the raw device directly, but CCE will remain in KD_TEXT mode(not KD_GRAPHICS). 21. Added --enable-ggi, can build with GGI library and runs in X11. Through GGI, it's possible to run in Windows and other platforms?(Darwin, MacOSX, etc). Use dynamic loading(libdl) for libggi.so. 22. Added --enable-sdl, now CCE can use SDL library and run in X11,BeOS, QNX Photon, MS Windows, etc. Using dynamic loading for libSDL. 23. Fixed a few bugs related to root/non-root user. If isatty(0) is not 1, don't do the get/set termios operation(a bug if run CCE directly in XWin). 24. Fixed configure.in, use $target instead of $host, ported CCE to Playstation 2(MIPS CPUS), work in console/X11 thru SDL lib. 25. Modified the /display source codes, combined some common source codes. 26. Added TrueType font support through FreeType2 library, currently works on FrameBuffer/GGI/SDL. --enable-freetype 27. Added dynamic system encoding switch, CTRL_ALT_E will switch between GB/GBK/KSC/EUC-JP/SJIS/Big5. Input methods will change accordingly(IntCode, Pinyin & Zhuyin will always match lInfo.sysCoding), but CCE won't re-parse the content buffer, so you probably need to reload the file. 28. Fixed a bug related to multiple windows, we need to ioctl(TIOCSWINSZ) for each newly opened window, not just the first one. After that, Ctrl-Alt-A open a new window, you get the same winsize, not just 80x25. 29. Fixed a gpm-mouse bug, can't paste multiple times. gpm button up handling is wrong. 30. Added encoding filter support, then you can use --filter UTF8 on UTF8 locale, it's an input/output filter, internal encoding still GB/Big5 etc. ver 0.49 Sep 18, 2003 --------------------------------------------------------------------------- 1. Added 1~94 QuWei internal code for GB2312/JIS/KSC 0xA0A0+N For GBK 0101~7994 is for QuWeI, 8140-FEFE is for internal code(hex) 2. Added 5~8 yins prefix-match for Pinyin/Zhuyin. Will output phrase with more yins than inputed ones. 3. Added ShenTong phone keyboard map for pinyin/zhuyin, mapping is from Taiwan Natural Input Method 2003. 4. Added ETen26 and Hsu25 keyboard map for pinyin/zhuyin, using table-lookup method, simpler? (libtabe's bims.c uses different solution) 5. Thoughs for pinyin.c/zhuyin.c a. ZiGuang Pinyin has special words definition, you can use a-z to define some mappings, it'll be matched first, then pinyins. like cctv->xxxx b. Like Pinyin++, if you use ENTER to enter, it'll be treated as English input, send out directly. WILL DO IT ONLY IN PINYIN MODE, NOT IN ZHUYIN MODE! For ZHUYIN MODE, ENTER WILL OUTPUT 1st Candidate! DONE! c. if you enter some non-pinyin symbols(like ;) it'll output the 1st candidate and the symbol(but ,. is used for PageUp/Down). NO! If you enter any capital letter, enter English mode, every ASCII will be accepted! 6. Added : support for pinyin.c/zhuyin.c, like Pinyin++, ENTER will output pinyin string, if you input : in the middle, it'll switch to english state, ENTER output. ACTUALLY, IF YOU INPUT ANY NON-PINYIN ZIFU, IT WILL SWITCH TO ENGLISH STATE! Most pinyin inputs support ShuangPin, py++ will display the original shuangpin keys, but ZiGuang will display both SP and QP. Both PY++ and ZNABC support XingMa as Aux input method. PY++ can export/import plain-text phrase file, ~40K phrases, it also supports self-defined phrases/special items. 7. Fixed some color problem: a. Added charfont member for console(0,1,2), then can distinguish English table line from Chinese characters(Chinese occurs in charfont==0 only) b. A bug in vc.c's TextRefresh, fg color & 0x0F, make the color right now. c. vt.c's EscSetAttr() handling, add/changed something according to linux kernel. After these, mc etc works fine. ver 0.48 Sep 9, 2003 ----------------------------------------------------------------------- 1. Added zhuyin support in zhiyin.c, support four zhuyin keyboard mappings, fixed a few bugs in zhiyin. zhiyin is based on GB word library, doesn't not support tone. 2. Added a new zhuyin input method which supports tone(can input pinyin or zhuyin, based on Big5 word library), wrote some routines to do pinyin<->zhuyin conversion. 3. Save the pinyin->key, pinyin<->zhuyin information in a c file, do not put it in the tab file since it won't change. 4. Added phrase support in zhuyin input, we are not saving the phrase's yin, just do a zi->yin search and query. 5. Use mmap for zhuyin input's table file and lots of bug fixes. 6. Added phrase and char frequency support in zhuyin input. 7. Added ENTER support in zhuyin, even in Shift-Select, you can use ENTER to select 1st candidate(you can use SPACE if in DirectSelect) 8. Added a new keyboard map (Pinyin without tone) in zhuyin module, so no input/select key conflict. 9. Added exatct-match policy for table.c, default is prefix-match. 10. Fixed the zhuyin.c's two SPACE problem(zhuyin mode) After you press SPACE, it'll be intepreted as a first tone AND switch to DirectSelect. Original one is to use 1st SPACE for 1st tone and 2nd SPACE to switch from Shift- to Direct-Select. Reason: For Single Char, same rule, SPACE for 1st tone and DirectSelect For Phrase, can't input 1-90(valid input keys in many keyboard maps) after press SPACE. After you press a tone, will always switch to DirectSelect mode, so usually you only need to enter a tone at the last char of the phrase. Will do the same for pinyin.c's zhuyin mode? 11. For tonepy, use 5-9 for Direct-Select, Shift-Select is rare in GB input! 0-4 for tone input Or is it better to use Shift-1~50 for tone(seldom used) or some other symbols like -=[]? ;' or -/=\ 12. Make associate input always Shift-Select like Big5 input methods and only have Shift-1~8 choices since Shift-90 is (), often used in Chinese text? Try to keep associate's interference as little as possible. 13. Added icon support in vga.c/vgafb.c, now using icons for half/full letter and chinese/english punctuation. ver 0.47 Aug 23, 2003 ------------------------------------------------------------------------ 1. Changed pinyin.c, gave some preference to pinyin-exact-matched phrase over pinyin-prefix-matched phrase. 2. Changed associate.c, if use enters a non-select key in select state, we will output that char instead of ignore it(either way, associate mode will be reset). 3. Changed table.c/associate.c, Big5 input's tradition is to use SPACE for NextPage, follow it(check cur_table->encoding, not lInfo.sysCoding). SPACE will be used to output first candidate in other input encodings. 4. Added %pageprevkey and %pagenextkey definitions in cin, so use can specify customized PagePrev and PageNext keys. Associate input will use cur_table's PagePrev/PageNext keys. 5. cjkvinput's GBK wubi table => inputs/gbk/cjkv-wubi.cin 30K chars? too many? use nqwb.cin as default one for gbk and gb2312 ver 0.46 Aug 15, 2003 ------------------------------------------------------------------------- 1. Modified the HZFilter mechanism, make it a filter chain, go through associate input first, then CJK input, then English input. 2. Added generic associate input support for input methods, through that, let Pinyin input support associate input. 3. Added Chinese Punctuation support, like ' ", they have two mappings in Chinese punctuation, then the output will be alternate. 4. Fixed the associate input's PrevPage bug, use an index table to do it. Also improved the PrevPage handling in table.c, now provides accurate PrevPage(not just estimate). 5. Added some Japanese input method and dictionary from Canna. ver 0.45 Aug 11, 2003 -------------------------------------------------------------------------- 1. Added cceconv symbolic link, you can use cceconv to do conversion between jis/sjis/gb/gbk/big5/ksc and dos/unix, etc basically combine the utils directory's conversion utilities. 2. Modified pinyin input to support GB/Big5/JIS/KSC different encodings, do dynamic coding conversion. 3. Added associate input for internal code input method. 4. Use the cin/tab format for internal code and pinyin input method, so user can assign it to any slot(ctrl-alt-N) and use any associate input file. ver 0.44 Aug 9, 2003 --------------------------------------------------------------------------- 1. Dynamic input method mmap, it will be mmaped when used for the first time 2. Use mmap for universal coding convertor, so other program can share the same file and reduce memory usage. ver 0.43 Aug 8, 2003 -------------------------------------------------------------------------- 1. Redesign and improve the table.c's architecture, now cleaner and less bugs. save_xxx variables are not used anymore 2. Fixed some bugs in the internal code input method, now use a cleaner architecture. 3. Put all the strings with different encoding into a single file strings.c, easier to port 4. Modified the convert.c and now the universal convertor is up, through GB2312, GB2312/GBK/Big5/JIS/ShiftJIS/KSC Hanzi can be converted universally. So you can use input method for one encoding for another encoding without any problems! 5. Removed the IPC Shared Memory code in font.c (put it to font.c.orig) and use the mmap mechanism to do dynamic font loading(load when necessary) ver 0.42 Aug 6, 2003 -------------------------------------------------------------------------- Lots of improvements: 1. Rewrote lots of table-based input method code and fixed bugs. 2. Modify the cin/tab structure, right now you can use one or two integers to store the keys, save memory and storage space. Put phrases right after ITEM structures. Use mmap rather than memory malloc. 3. Better input/select key confict handling, Shift-Select will be used to select if select key is also used as input key(some big5 input methods). Automatic detecing. 4. Better associate input support for GB/GBK/Big5, you can assign different lianxiang files to different input methods. I think it's better to use a global lianxiang file. 5. Dynamic encoding convert for GB/GBK/Big5 input methods, so you can use GB/GBK input methods to generate Big5 input or vice versa. ver 0.41 Jul 19, 2003 --------------------------------------------------------------------------- 1. Support GB2312/GBK/JIS/KSC. 2. Integrated the new pinyin phrase table from miniChinput and modify the pinyin input method to support both GB and GBK. Integrated jmce 0.37 into cce: 1. Add Ctrl+Shift key for switching input method 2. Add Big5 font and input methods support 3. Fix PS2 mouse support patch from cnoize ver 0.40 Jul 03, 2003 ---------------------------------------------------------------------------- Removed some i386 assembly in include/defs.h and src/vc.c, use C instead. Solved the compilation error problem. Added 24x24 Chinese font support and 32bpp frame buffer support. Added a clock in input area. Changed the fonts sharing from IPC SharedMemory to mmap. Integrated two patches from http://programmer.lib.sjtu.edu.cn/cce/cce.html 1. 06/26/2000 Second patch for cce-0.36 buffer overflow problems. The first patch has some problems on cin2tab.c, etc. This patch is provided by Fumitoshi UKAI, Chuan-kai Lin, and Anthony Fok. 2. 05/06/2000 CCE2K is ??? :-) Some new fixes for gcc 2.95.x included in this new cce-0.36-05052000.tar.gz. It included some modifications for new FreeBSD 4.0 mmap restrictions, too. NOTE: v0.40 only tested on Linux (my machine is using a Matrox G400 video card) BUG Fixes for 0.36 Oct 6, 1999 -------------------------------------------------------------------------------- * Bug in ESC[%d;%dr processing - in vt.c - the current line will never go into the back of Chinses Chracter input line. :-) * Bug in Ctrl+Alt+X key combinasion - in term.c - SIGCHLD handler must be re-install in SigChildHandler - It seems signal will be re-set in FreeBSD - Ctrl+Alt+X worked correctly * Bug in ESC[%dX key escape sequence - not documented in ansi? - changes in vt.c, vc.c and vc.h - dialog-based programs and lynx displayed without gaps * Bug in ESC[ key escape sequences - every cell in argument array should be clear before re-using - Now the Alert and prompt information in lynx is displayed in correct color. holly Oct 6. 1999 lee@mail.lib.sjtu.edu.cn ver 0.36 Sep. 99 ---------------------------------------------------------------------------- eliminate the hardware scroll support. add the frame buffer support(vesa, generic) hardware scroll: in order to implement flash-free input area, we need to do the virtual screen split which is completely hardware dependent in fact, software scroll is not much slower than hardware scroll, we don't need to do the virtual screen split and the code is more simpler and compatible with frame buffer code ver 0.35 Aug. 99 ----------------------------------------------------------------------------- based on Arthur Que(arthur@turbolinux.com.cn)'s FreeBSD patch, FreeBSD support added pinyin dictionary and font: uses shared memory now add bdf2bin utility, now we can load *.bin font directly, faster bug fixes, strange bug: in FreeBSD, malloc() doesn't zero the memory, vt.c's VtStart con.ymin & con.knj1 non-initialized(in Linux it's 0) but mouse can't work on FreeBSD now :( ver 0.34 Aug. 99 ----------------------------------------------------------------------------- bug fixed, multiple-terminal support, S3 video card support(works or not?) ver 0.33 Jul. 99 ----------------------------------------------------------------------------- based on kon, hardware screen scrolling(fast) using splited screen tech. no multiple-terminal, mouse support, pinyin input method added ver 2.x ----------------------------------------------------------------------------- test version ver 0.11 May 98 ----------------------------------------------------------------------------- based on yact, chdrv, bcs, software screen scrolling(slow) multiple-terminal support, input method based on xcin Raner Aug. 29, 99 @ DUKE