Niftyness in original (from Kevin Oberman): Love the shift right and shift left telling me how far I'm over. I really like being able to justify the current paragraph with just two key strokes. (See changes for mods). GOLD KP9 (Substitute) uses eve_replace, and not the rather odd way that EDT does substitution. I haven't thought of a way to allow the "preloading" of the old string and new string buffers with text from the editing buffers. GOLD KP3 (Special Character Insert) does an eve_quote of the next character. In most cases you know the character translation of the character that you want, but not necessarily the ASCII value. Now if TPU could display *all* unprintable characters in a file... (EDT *sometimes* has it's uses.) Changed: F12 now is a backspace for you vt220 (or look-alike) hackers. (Never liked typing ^H) minor bug fix to eve$start_of_word for one character words. Line feed (also working on F13) do a delete word backwards from where the cursor is to the beginning of the word. Arrow keys stop at edges of file (I'm an old EDT hacker, never did like wandering off the edges of the text.) I left the old ones there and commented out just in case somebody prefers the EVE way of doing things. ctrl_a_key toggles insert/overstrike like DCL. I made the keypad 3 key do move a character in the current direction. I found that I actually used it... It was also changed from a toggle key for EDT compatability. KP2, or EOL now goes to the end of the current line if you're going forward and to the end of the previous line if you're going backwards like EDT does. ctrl_e_key goes *only* go to EOL (current line) and nothing else (DCL compatability and all that...). This is handy if you don't want to switch directions. backspace is sticky like ctrl_e_key, and will go to the beginning of the current line. The following definitions were made: GOLD A to attach ! iff running tpu as a subprocess GOLD B to change buffer GOLD = to split current window (will split the window as long as two new ones can be formed in the space that the current window takes up.) GOLD 1 to go to one window GOLD - to shrink current window GOLD + to grow current window GOLD KP8, fill works on selected text, saves whitespace at the beginning of the first line of the first paragraph. If no select is active, then it fills the current "paragraph", saving the the indent on that paragraph. This gives the best of both Kevin's EVE_EDT world and the EDT world. On the init, the command window is set to insert rather than overstrike since this is the way that I set up DCL. Delete word saves to word buffer, character to character buffer, and line to line buffer all separate from the paste buffer. Allow spawn to take an argument (i.e. so we can do a SPAWN DISCONNECT, or SPAWN SPELL ). Iff an argument is used, then the editor waits until we get back and hit a key (any key) to refresh the screen. SPELL command added. The command SPELL must be defined so that it will work in a subprocess for it to work. Check past DECUS tapes for some good spelling checkers. Now Spell will work on a selected portion of the text. If nothing is selected, then the whole buffer is spelled. SORT command added. It uses VMS sort. It works on the selected portion of the text. If nothing is selected, then the whole buffer is sorted. EVE_BACKGROUND routine added. It's more or less like the EVE_DCL, except it never puts its buffer up on the screen. If you don't have a process for it, then it will spawn one off. It uses the same process as EVE_DCL, sending a ^Z first to make sure that EVE_DCL wasn't left running HELP or something else that needs to be forced to exit. EVE_SET_SEARCH_END and EVE_SET_SEARCH_BEGINNING added. Back in the "good old days" of EDT, there used to be times when I would want to have search leave me at the end of the search string rather than the beginning. Started hacking in routines from EDTPlus by Portia Shao and friends. 3/4/87 -rcy Added EVE_CURRENT_LINE to show the current line. 3/4/87 -rcy (from EDTPlus) Added EVE_LIST_BUFFERS to show what buffers were being used. If *anything* is passed as a parameter, then the system buffers will also be shown, otherwise, just the buffers that you're using will show up. 3/5/87 -rcy (idea from EDTPlus) Added EVE_SET_READ_ONLY and EVE_SET_WRITE. Now the status line also shows if the buffer is read_only or read/write. 3/5/87 -rcy Modified EVE_GET_FILE to accept a second parameter. If the parameter is not null, then the file is read in in READ_ONLY mode. Also modified in this was EVE$CREATE_BUFFER. Added EVE_READ_FILE to grab the file name and pass it and a second parameter to EVE_GET_FILE to do the rest of the work. 3/6/87 -rcy Added EVE$PAD_STRING, EVE_PAD_BUFFER, and EVE_PAD_LINE for padding things. PAD_STRING takes an input string and pads it out to an input number of characters. If the string is already that long, it doesn't do anything. PAD_BUFFER pads an entire buffer out to either an input value or to the length of the longest line in the buffer. It uses PAD_STRING, so if you pad a buffer to less than the longest line you won't loose any data. 3/6/87 -rcy Added EVE_MARK_CORNER, EVE_EXTRACT_RECTANGLE and EVE_INSERT_RECTANGLE. Use EVE_MARK_CORNER to mark a corner that you wish to cut out, use EVE_EXTRACT_RECTANGLE to mark the opposite corner and cut the rectangle into the Extract buffer, and use EVE_INSERT_RECTANGLE to put the rectangle where you want it to go (position the cursor in the upper left hand corner of where the new rectangle should go). Bug report: EVE_INSERT_RECTANGLE inserts an extra line when you put a rectangle back in that ends either on the last currently existing line or below... I haven't found out where this came from or figured out how to deal with it (yet). 3/6/87 -rcy Completed rewrite of EVE$GET_RECTANGLE (support routine for EVE_EXTRACT_RECTANGLE and EVE_COPY_RECTANGLE) and EVE$PUT_RECTANGLE (support routine for EVE_INSERT_RECTANGLE and EVE_OVERLAY_RECTANGLE). Cleaned up some code in EVE$GOTO_LINE_COL and EVE_CURRENT_LINE. 4/7/87 -rcy Cleaned up the interfaces of EVE_GET_FILE and EVE_READ_FILE by having the two point to EVE$READ_IN_FILE. EVE$READ_IN_FILE is the guts of what used to be EVE_GET_FILE, with the user interface in the two front end procedures. 4/7/87 -rcy Added EVE_PAD_SELECTED to pad out the selected text. It works just like EVE_PAD_BUFFER and EVE_PAD_LINE. Now all that I need is a strip spaces... 4/7/87 -rcy Found! EVE$TRIM_BUFFER and EVE$TRIM_LINE already existed, changed these procedure names to EVE_TRIM_BUFFER and EVE_TRIM_LINE so that we can get at them as commands. :-) 4/7/87 - rcy Added EVE_RULER. This procedure will tell you the length of what you have selected (in characters, *NOT SCREEN POSITIONS!!!!*). 4/7/87 - rcy Added EVE_WRITE_MODIFIED. This procedure will write out all modified Read/Write buffers. 12/1/87 - rcy Added EVE_WRITE_SELECTED. This procedure will write out the currently selcted region. 12/3/87 - rcy Cleanup of code and completion of Help library. EVE_EDT now ``finished''. -rcy (At HMC)