(This file is now outdated. See mcedit.1 and cooledit.1 for current documentation)

    Cooledit v1.0 by Paul Sheer.

    An easy to use full-screen editor

    Comments or suggestions are welcome, send to psheer@hertz.mech.wits.ac.za


    Function prototype:
    -------------------

    compiled with -DMIDNIGHT:
    int edit (const char *_file);

    otherwise: (compiled with Cool Widget library)
    Window CW_draweditor (const char *identifier, Window parent, int x, int y,
	   int width, int height, const char *text, const char *filename);

    Cooledit is part of the Cool Widget XWindows library by the same author.
    The library is available with cooledit for X (see mcedit.1).


    Why:
    ---

    This editor is primarily intended for ex-DOS Linux newbies who liked
    Symantec's Norton editor, although this editor does much more. This
    editor also potentially makes proper use of the PC keyboard.
    A couple of things this editor doesn't do are beep or flick at you when
    you do something "wrong". This should come as a relief to DOS-folk.
    I never could understand why Unix interfaces always HAVE to give an error
    message - why can't it just do nothing occasionally?
    The editor also handles binary files flawlessly (as far as I've tested)
    and works for files up to 16Mb in size.


    Notes:
    -----

    I actually wrote a lot of this editor using this editor, so I'm quite
    confident about its stability, HOWEVER, it doesn't create back-up files,
    so save with caution.

    The editor requires Ctrl key detection to be working otherwise some
    keys will have to be redefined. I'll include emacs key bindings as an
    option later on.


    Key Definitions and Usage
    -------------------------

    See the file edit_key_translator for key definitions. This file is easy to
    modify. Under X Windows, far better key handling is available.
    Here are most of the keys. Pull down menus will show you the rest.
    F1 : help
    F2 : save
    Ctrl/Shift-F2 | F12 : save as
    F3 : mark toggle
    F4 : replace
    Ctrl/Shift-F4 | F14 : replace again
    F5 : block copy
    Ctrl/Shift-F5 | F15 : insert file
    F6 : block move
    F7 : find
    Ctrl/Shift-F7 | F17 : find again
    F8 : block delete / line delete
    F9 : run block through 'indent' command
    Esc/F10 : Quit
    Ctrl-U/Ctrl-BackSpace : Undo
    Ctrl-F : save block as
    Ctrl-L : load new file
    Ctrl-N : new text
    Ctrl-PgUp / PdDn : Top / Bottom
    Ctrl-Up / Dn : scroll up / down
    Ctrl-Left / Right : word left / right
    (Linux only:)
    Shift arrow highlights like in MSW/MAC.
    'Completion' key insert a newline and does an indent
	for you.


    Still TO DO (in no particular order):
    ------------------------------------

Done :)	1. Pull downs with more options.
Done :)	2. MSWin (i.e. shift-arrow) text highlighting.
	3. Fix up tabbing.
Done :)	4. Regular expression search.
	5. Emacs key binding option.
Done :)	6. Insert|overwrite option.
Done :)	7. Macro definition.
	8. Insert byte (by specifying 0-255).
	9. Find a convenient way to display non-printable characters.
	10. Create backups when saving.
Done :)	11. Better mouse usage.
	12. Hex editor.
Done, for XWindows :)	13. Stand-alone version.
	14. option/layout menu.
	15. Word wrap.


    Code discription:
    ----------------

    Files are loaded entirely into memory into 16k buffers. The file consists
    of two parts: that before and that after the cursor. These two parts are
    allocated to buffer arrays (CW_Edit->buffers1 and CW_Edit->buffers2).
    Buffers are malloc'ated and free'd as necessary for cursor movement,
    insertion and deletion. (This is all because I hate linked lists.)

    The editor features a key for key undo: The inverse of
    each file alteration or cursor movement is saved onto a wrapping stack.
    The stack can hold up to STACK_SIZE (edit.h) alterations. After then the
    oldest undos are discarded.


    Money:
    -----

    Paper Mail:
	P O BOX 890507
	Lyndhurst
	Johannesburg 2106
	South Africa

    Donations (credit card, check or postal order) will be appreciated and
    will encourage further development of this software. However this
    is strictly on a voluntary basis where this software falls under
    the GNU GENERAL PUBLIC LICENSE.


    Acknowledgements:
    ----------------

    Thanks to the programmers of the GNU Midnight Commander whose code
    inspired this project.

