CE - Revision History

ce-1.3.0 (Wed Nov  5 16:23:49 EST 2003)

* re-organized doc files
* added tar dist making to Makefile
* Changed Charles's old license to match his preference for regular BSD

ce-1.2.17 (Tue Apr 30 2003)

* initial freshmeat release

CE (c)1991-95 Charles Henrich             Revision History
-----------------------------             ----------------

v1.0 First Release, feels rather solid.  Many thanks go to Charles
     Severance for making some very weird bugs go away.

v1.01 First code fix.  Found that the insert & delete lines functions
      were very very inefficient.  You could not delete more than
      10 lines in a reasonable amount of time.  Code re-written

v1.02 Bug Fix.  Found that the re-written insert/delete lines code
      didnt always work.  Re-wrote code.  Also found that when you
      tried to write outside of the maxlines, you would cause a core
      dump, or bus error.  Added some checking to prevent that

v1.03 Bug Fix.  Found that the patched insert/delete lines code was still
      bad.  Totally ripped it out, and re-wrote it from scratch.  Works
1/10  like a charm now.  New *BAD* bug discovered, I dont know how to fix
      it yet, thats for the next release.  Whenever a "weird" control key
      is pressed (i.e. Control-= or Numbers/Dashes) the last thing you did
      is repeated over and over forever, only thing that can be done is drop
      the connection.  Added a set left column feature, for those poor
      Fortran programmers.  Also did extensive code checking for attempts
      at writing outside the MAXLINE area.  Finally added code so that you
      *cannot* ever move the cursor outside of the MAXLINE area.  This
      required a few additions to the curses.c file.  Hopefully nothing
      broke!  I vow no more features until all bugs are squashed.

v1.04 YABF! Found that damn bug that was making the thing go into an
      endless loop.  Seems I wasnt checking for characters that *dont*
1/13  exist.  That is, characters from ASCII 28-31 (or some such)
      Anyhow, its caught, and the damn bug is squashed.  I felt it this
      achievement warrented a new version number! :)  NO MORE.....
      I hope almost *Everything* is fixed. *groan*

v1.05 Briggs1 Fix for that wonderful AT&T 3b2.  I had the hangup signal
      set to be ignored, now it will run the hangup() function, which
1/16  creates a file cefile.hang of whatever you were editing when you
      disconnect.  Also it does a exit(-5) to exit the editor nicely.
      On the 3b2 when you disconnect, for some bizarre reason it would
      leave the editor hanging in ram.  The next person to login on that
      tty would get (while they are typing at the login: !!) eaither
      dumped into CE, or help files, and other data from a previous edit
      would be displayed, along with garbage.  Only recourse would be to
      disconnect and try again.  I still have no idea what caused this very
      weird behavior, in response I added some specific hangup code which
      will save the current edit into the file cefile.hang, as well as exit
      Cleanly...  It seems to work now...

v1.05 Beta Designation given.  Few more tiny bugs fixed.  Will be Beta until
Beta  I have one month of NO bug fixes.

v1.1 Beta  In a coding frenzy I added almost all items on my ce.todo list
           Several functions have changed, so be sure to look at the file
           ce.functions.  I added cut & paste abilities, read another file
3/2/92     into current document, Search for string, and all sorts of other
           'little' things.  I tested all additions, and they seem to be
           solid, but we all know how those bugs love to hide.

v1.1a Beta Added a bunch of "little" things, as well as cleaned up code from
           v1.1 that didnt work properly.  Things now are looking almost
           complete, one final thing, I need to teach CE to check what kind
           of file it is, before it goes and happily edits it.

v1.1b Beta Made bunches of changes from the last entry.  Altered cut &
           paste to behave more like a normal word processor with high-
4/6/92     lighting and such.  I still dont quite like tha manner in which
           it works, a re-write of all the marking code will bounce the v#
           up.  Added code to limit CE's behavior to only 79 columns with
           a newline after each line.  -80 on the command line.  Possibly
           useful for people editing email, and/or beginning fortran/c
           programmers who dont know enough to use the arrow/return key
           to move to the next line.  I also added a seperate save routine
           and pulled all that code out from the rest of the program.  A
           scrollup/down routine was added, and that code too was removed
           from the rest of the code.  Hard-Coded 80 column dependancies were
           removed as well.  Lines that have more than 80 columsn, with a
           blank in the 80th column, will display a > instead of that space.
           When porting code back to the AT&T 3b2, had to write strstr
           and index functions.  Code was succesfully compiled on a
           Convex, Sun Sparc ELC, NeXT, and the infamous AT&T 3b2.
           Added a function to display the StatusLine, also added three
           variables, STATUSMSG, VERSION, STATUSMODE, that depict what
           the statusline will show.  Removed all code that displayed the
           statusline directly.  Also removed all code that did any direct
           screenwrite's from cemain.c  Used the RedrawLine function instead.

v1.1c Beta Improved the manner in which ce re-positions the cursor after a
           block copy/move/delete.  In doing so created the function gotoline.
5/13/92    It still doesnt work as nice as I would like it too, will look into
           it again, when other more important things get squared away.

v1.1d Beta *FIRST PUBLIC RELEASE*  Will send it out to the world sometime this
           week.  Just need to clean up the documentation and instructions a
5/27/92    bit.  Keymap files have now been renamed to cekeymap.
           and the terminalname function re-written and changed to be
           keysetname.  Forgot to check file types, added that for this version
           as well as changing the format for the command line.  Command line
           parsing code changed as well.  Added support for $HOME/.cerc
           (Look at ce.doc for options).  Found a very small bug in how CE
           handles lines >80.  Only a rare set of circumstances would bring
           it about.  It is now squashed.  Documentation updated all so
           slightly, man-page created.  Licensing information (garbage)
           created as well.

v1.1e Beta Added the compiler string to the .cerc file.  Cleaned up
           readrc to accept whitespace in the .cerc file.
6/03/92    Changed the save and resume editing command, to display a message
           while saving, instead of just beeping when done.  Status message
           displayed when reading in a file is now displayed in status line,
           instead of on a clear screen.

v1.1e      Beta designation removed.  Keymap names have been altered to
           .cekm instead of .cekeymap for systems who cannot accomodate
6/24/92    large filenames.  STATUSMODE changed to HELP when viewing help.

v1.1f      Word Wrap Added, join lines works in a much much better manner.
           Small bug in getdata function that in rare circumstances cause a
7/8/92     major error.  Code has been re-written, and the bug squashed.
           Added an option word_wrap and no_bak_files in .cerc.  no_bak_files
           causes CE to not create the .bak files.  New define available in
           ce.h, FORCE_FILENAME, if defined ce will prompt the user for a
           filename if one is not entered.  Another new define, FORCE_KEYSET,
           will make users create a keymap if one isnt defined, if this is not
           defined, a pretty message is just printed.  Code cleaned up visually
           as well as being gone over in great detail by me.  Apparently the
           Control Z,X and C functions only appeared to work properly, although
           they didnt.  They have since been fixed.  Changed behavior of
           a search, now no longer redraws the screen, it instead uses the
           function gotoline, making things cleaner.  Code has been changed
           to do less full screen redraws, in attempt to make CE bearable on
           slow connections (i.e. 1200/2400bps).  Marking now only re-draws
           the screen when it has to, usually it will just re-draw the current
           line.  Fixed word-wrapping into the proper column.

v1.2 Beta  Changed DeleteChar and InsertChar functions into RedrawFromX added.
           Created a getstr function to use instead of flipping into non-raw
7/30/92    mode, doing a gets, then going back.  Made CE aware of the size of
           the statusmsg area on ^V so I dont cause seg faults by writing
           larger than 45 chars there..  Made the saving message nicer.
           Made CE return a value if there is more characters in the key read
           queue.  Fixed a annoying bug when you wordwrap then go back and
           insert text there, the text that had word-wrapped would re-appear.
           Marking has been re-worked.   Esc-8 starts the block, you can
           then do any functions you normally would.  If your cursor moves to
           a point before the point in which you began the mark, only the line
           that you started the mark on will still be marked.  All functions
           now work inside marking mode.  This required some changes to the
           gotoline function to be aware of marking mode.  When saving, the
           one moment prompt is now replaced with a save completed after a
           successful save.  Merging two lines has been completely re-written
           to ignore leading spaces on the join.  Adding block awareness to
           the insertlines and deletelines functions, so when you change whats
           on the screen, the block start and end change to match what you see
           There is a quirk in insert mode however, in that if you move to the
           beginning of the last marked line, and hit enter, the line is moved
           outside the mark (i.e. the mark isnt updated, will attempt to fix
           that at a later date)  Added another file cehelp.c that contains
           all the help functions.  Main routine is show_help.  Fairly simple
           at this point.  Two options added to the command line, as well as
           one option in .cerc.  In .cerc if you place mini_help 1 in there,
           a mini help menu will appear at the bottom of your screen.
           Toggleable via esc - m.  If on the command line you type
           -h (no space) that will be loaded as help.  When viewing
           that help however, the user can press h to go and see the built in
           help.  q will exit either help back to the user's docuement. -m on
           the command line will toggle the mini menu from its default, or
           .cerc setting.  Wordwrap now works in insertmode! YAY!  Also
           stomped a bug in block move that was a result of making the
           insertlines and deletelines functions aware of blocking.  In the
           process of making wordwrap work in insertmode, I broke it
           respecting the left column, has been fixed.  TAB in insertmode on a
           blank line would cause a core dump, has been fixed.  Added the
           ability to do a block adjust (crude), if you have a block marked,
           and you are in insert mode, pressing tab will insert four spaces on
           each line that is currently marked, pressing RTAB will delete four
           *characters* off the front of each line.  Control-E is now aware of
           blocks, and will likewise wipe out however many characters you
           want from the beginning of each line.  CE now remembers your tab
           spacing as well as left column settings when you go to reset them.
           A new option (ESC - s) has been added which will save all your
           current setting into the file ~/.cerc so you dont have to do it
           manually.  Smooth scrolling has been added for those terminals that
           support scrolling regions.  Only problem with this, is that if your
           terminal is say 42 lines long, but CE thinks its 24, when you exit
           CE your terminal will have a scrolling region set at the 24th
           line... which can make things funky.  I still am not comfortable
           with insertmode, not tested enough.  A space is now only a space
           when it typed inside the body of a line.  I.e. a space isnt a space
           when its to the right of the last character in the line.  The
           compiler string has been changed to two shell escapes, the first is
           now defined by shell1 in .cerc and the second shell2.  They are
           executed by F6 and F7 respectivly.  CE has been editing itself for
           the past three months or so, all the editing has been done entirely
           with itself, except for the occasional problem where I core dump on
           execution. :)  In that case I am forced to pull out VI (blech!)  I
           need to make CE's backspace move up to the end of the previous line
           in the case when people hit backspace at the beginning of the line,
           the question also exists, that should backspace at lcol move up to
           the end of the prev line or just at col 1?  Hoping to have 1.2 be
           relased by the beginning of october.  I have re-worked wordwrap
           again for various reasons, mostly because it just didnt work
           reliably.  Looks very stable now.  Found a few bugs and such,
           nothing major and squashed them.  Gonna sit tight on this version
           for a little while before releasing it, make sure there are no more
           nasties laying around.  Changed the behavior of block commands, most
           of them now only affect the block when you are in marking mode.
           I.e. TAB/RTAB/CTRL-E all only effect a block if you are marking,
           also added block "awareness" to ^ZXC so they now left, center, or
           right justify a block being marked.  Changed TAB's and RTAB's
           behavior so that they go to every Nth column where N is the tabsize
           the user has set.  No longer will they just move N spaces to the
           right or left.  Havent found a bug in a while now, (few days anyhow!
           Things are looking quite stable...)  Changed control U to allow the
           user to lean on the key, and justify the entire docuement.  Whenever
           It is unable to join the next line with the current one, it just
           moves the cursor down to the next line.  Found a small problem in
           the new justification commands, in that it wouldnt update the very
           last line on the display.. fixed.  Broke SECURE mode into the three
           component parts, to give more flexibility.  Changed the statusline
           to be inversed, to seperate text from the bar.  (Looks nicer too!)
           Lotsa little odds and ends, did a little more optimization for
           screen drawing...  Changed Control-E's default size to 90 columns,
           makes a good blast to end of line that way.  Control-O's left column
           now default to the column your sitting on, makes editing column
           based text easier.

v1.2       Beta designation removed today! YAY!  Havent made a change in 3
           weeks now.  As a bonus CE has been running on the MSU student email
10/24/92   system for several weeks now as well without a single problem.  I
           think its steady, and its time to put it out the door!  Its 8:20pm
           and im H-A-P-P-I!   :)

v1.2.01    Added commandline parameter -L which places the cursor
           on that line number when you startup.  Good for things like news
10/31/92   editing that fill in headers and such.

v1.2.01a   A Bug fix :(  Finally found the bug that was causing CE to lose its
           scrolling region.  Apparently if you entered CE's help, and then
11/01/92   exited, the scrolling area would be all messed up.  No wonder I
           never noticed, I dont use the help very often! :)

v1.2.02a   Added termcap's "ti" "te" support to CE.  Ill call it a feature,
           even though some might say it is a bugfix. :)

v1.2.02b   Fixed a bug, I wasnt stripping the newline/cr characters off of the
           filename, if it was entered when ce forces you to give a filename
11/01/92   (if that is defined in)

v1.2.02c   Fixed another bug, apparently when I had added documentation to the
           one file, I in advertantly moved some code inside an else that was
11/06/92   supposed to be outside.  In any case, if you moved a block to a spot
           beyond the end of the file, ce would die a horrible death.  Who said
           documentation was a good thing anyway?!

v1.2.03d   Added support to "turn on" the keypad mode of HP's as well as adding
           the ability to create a keymap from within CE.  The unfortunate side
11/07/92   effect of this will be that many will have to re-create their keymap
           files :(  In addition I found a rather large bug that would cause
           any with a keymap >19 lines to have problems.  This has been stomped

v1.2.04e   Tab's weren't being properly expanded into spaces when files were
           read in, fixed that.  Thanks to Steve Fosdick for spending much much
11/09/92   too much time digging through the source with a debugger to find a
           problem I had written off as a compiler-optimization error (which it
           was, but I should have pursued it with much more persistance).
           Needless to say, I am most greatful to Steve for finding this bug,
           THANK YOU STEVE!  Added support for the keys PageUp PageDown,
           Insert, Home and End.

v1.2.04f   Fixed the restrictions on filenaming conventions in Ctrl-Y and F3.
           No longer switch out of RAW mode in the shell escapes until AFTER
11/15/92   you press return, otherwise on terminals that "switch" screens you
           cannot see what the shell escape did!

v1.2.04g   When a filesave was unsuccessful, I forgot to go back into raw mode,

v1.2.04h   With the -l switch to cause the cursor to jump start on a specfic
           line, the goto needs to happen *after* the call to set the scrolling
11/24/92   region, on some terminals setting the region moves the cursor to 0,0

v1.2.04i   When calling ce with a xterm -e ce for some reason after CE has
           successfully saved everything, on the exit() call in CE a SIGHUP was
11/27/92   being generated causing a cefile.hang to appear unnecesarily, fixed
           this by putting setting the HUP signal to SIG_IGN right before the
           exit call, this is really strange!

v1.2.05i   Catch the SIGDANGER signal (AIX POSIX?) and do a immediate file save
           to cefile.hang to preserve the user's file if a SIGKILL appears
11/27/92   imminent.

v1.2.06i   Moved all the personal ~/.cekm and ~/.cerc files into ~/.ce and
           removed the . prefix, i.e. its now ~/.ce/cerc and ~/.ce/cekm.* it
11/28/92   will only take a simple mv command to fix up old users and it just
           makes things much cleaner when you have 10 to 15 different keymaps
           cluttering your root directory!

v1.2.06j   Touched up the manpage.  Found a bug in the Join Lines command, that
           would only appear when the word that was trying to be appending was
12/04/92   exactly the same length as the space to the right of the line one
           was appending from.  Needless to say fixed.  :)

v1.2.06k   I added support for multinational characters in j, and as I did so I
           broke the DEL filter.  Fixed.

v1.2.07k   Thanks to Gert Doering (gert@greenie.gold.sub.org) for supplying
           context diffs for SCO Unix.  Thats all thats different, no bugs
01/06/93   (Yay!)  Thanks again Gert.

v1.2.08k   Changed it so when you pressed backspace in the left column it
           wrapped up to the previous line.

v1.2.09k   When you hit backspace in the left column, in insert mode, it will
           move the cursor up to the previous line, as well as joining those
01/24/93   two lines together (as traditional editors do).

v1.2.10k   When you hit backspace in the left column in overwrite mode, it now
           moves the cursor to the end of the previous line, instead of
01/26/93   sticking it in column 80.

v1.2.11k   Move myself into more of a true raw mode, so I can see (and ignore
           the CTRL-S and CTRL-Q keys

v1.2.12l   When backspacing in the left column in insert mode to join two lines
           I now place the cursor to the right of the blank that is inserted
02/13/93   after the join.  Also fixed a bug that would position the cursor
           incorrectly after a join if their were spaces to the right of the
           line being joined to.  (And if you understand that, you deserve a
           medel!  Damnit Jim!  Im a programmer not a writer!)

v1.2.13l   Thanks to David Schmitt (schmd0@comm.mot.com) for supplying the
           neccesary #define's to make ce work on m88k based architectures.

v1.2.13m   When I added code to move the cursor to the end of the previous
           line when backspacing, I forgot to check to see if the line was
02/18/93   NULL.. Caused a segfault in those situations, fixed.

v1.2.13n   Found a bug (cant believe I missed this) that when someone entered
           exactly COLUMNS characters with no white space, it would allow the
06/26/93   user to overwrite the line buffer, instant death, fixed in any case.

v1.2.14n   Added the ability to abort any input operation by pressing ESC

v1.2.14o   Fixed a bug where a save will report success if the file was
           opened correctly, but the data not written out.

v1.2.15o   Made two tiny changes that will alter the effects of pressing TAB,
           and using the ctrl-E functions on marked blocks of text.  Now
08/13/94   whenever you use these features they begin the operation starting
           with the set left column, instead of always position 0.  This allows
           folks to move columns of text around much easier.  Unfortunatly due
           to the rendering code in CE, it would take considerably more work to
           make blocked text only become inversed with the left column, so I
           chose to leave it as is for the time being.

v1.2.15p   Fixed a problem where I was allowing a user to map ESC to a sequence
           which would lock out everything.  It now just interprets it as a
09/14/94   nothing more or less during the keysetting routines.

v1.2.15q   .bak file creation could, in some cases (over quota) fail, causing
           the user to lose not only the current edit, but also the backup.
12/17/94   This was changed to accomodate that situation, there should always 
           be a valid .bak file available now.

v1.2.15r   Didnt catch the case when a connection is closed placing an EOF in
           the input stream, causing CE to spin wildly.  Should exit cleanly,
01/11/95   saving the contents of the file in ce.hang.  Fixed a bug with
           keymap creation, im an idiot and changed something I shouldnt have
           in the last release!

v1.2.16    Updates in the manpage
12/10/01   Nothing major

v1.2.17    Changed default message to F1 for save and updated the version
04/26/02   variable; ce.solaris is a solaris binary

home | atlanta | pkd | fusion | recipes | email