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 <cnoize.bbs@bbs.cis.nctu.edu.tw>

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
