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. :) 11/01/92 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, fixed. 11/20/92 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 Fixed. 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. 12/22/92 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. 01/07/93 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 02/13/93 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. 02/14/93 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 12/29/93 v1.2.14o Fixed a bug where a save will report success if the file was opened correctly, but the data not written out. 02/17/94 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