page@swan.ulowell.edu (Bob Page) (10/22/88)
Submitted-by: dillon@cory.berkeley.edu (Matt Dillon) Posting-number: Volume 2, Issue 14 Archive-name: editors/dme131.6of6 # This is a shell archive. Remove anything before this line # then unpack it by saving it in a file and typing "sh file" # (Files unpacked will be owned by you and have default permissions). # This archive contains the following files: # ./README # ./TODO # if `test ! -s ./README` then echo "writing ./README" cat > ./README << '\Rogue\Monster\' DME A Programmer's Editor Matthew Dillon First Time DME users: READ THE DOCUMENTATION. There is no online help for DME. The editor is designed for programmers like me. Place DME wherever. place SAMPLE.EDRC as S:.EDRC .. DME automatically sources S:.EDRC, and the .EDRC in the current directory on startup. Seasoned DME users: The end of the documentation contains changes and bug fixes to this version. Review the command list. Matthew Dillon 891 Regal Rd. Berkeley, Ca. 94708 USA ...ihnp4!ucbvax!dillon USENET dillon@ucbvax.berkeley.edu ARPANET \Rogue\Monster\ else echo "will not over write ./README" fi if [ `wc -c ./README | awk '{printf $1}'` -ne 647 ] then echo `wc -c ./README | awk '{print "Got " $1 ", Expected " 647}'` fi if `test ! -s ./TODO` then echo "writing ./TODO" cat > ./TODO << '\Rogue\Monster\' Last Revision 4 Sept 1988, Matthew Dillon -SAVEMAP, does not output (s- ) properly. BUGS: - Word Wrap (actually reformat). hold 1 down ... can freeze up due to word being too long. - Can get behind keyboard when key repeating. - Fix case-ignore TODO: - wordwrap mode reformat should put two spaces after punctuation .?!:; instead of 1. - ascii numeric variable support and ENV: support - exception handling - string kill vector - character oriented blocks - stackable search/replace strings - a way to cancel all user keymaps - clipboard support - anchored search - provision to show mapping for a single key. Allow $map .. $c-a... - Allow different current directory for each window - Add scroll gadgets - Formatted Save fsave (formatted save) When it encounters one linefeed with the next character not whitespace, it writes a space. If the next character is whitespace it leaves it alone (write one linefeed). If the next character is a linefeed, write one linefeed then copy linefeeds up to the next non-linefeed. This will almost allow "word-processor" output... with columns! Very simple, very small, and it will save me from the horrors of PageSetter's editor. You may want to do funky things to the name like "fsaveas" or "fbsave" or whatever. SUGGESTIONS FOR NOT SO IMMEDIATE FUTURE: Add some user-accessible variables, like for current x/y position, total text length, insert mode, modification status, window size and position, current line length, last operation status, etc. Add an array of user integer variables to go along with the array of toggles. Add a command to evaluate simple arithmetic expressions and store the result in user variables. Teach the condition evaluator (for "if" and "when") to do comparisons on integers and maybe also on strings ("if $scanf=`something'" ?). Have you considered porting the guts of DME into a machine-independent environment (curses?). I know, this is pretty far fetched, it's just that I miss the power of DME at work... \Rogue\Monster\ else echo "will not over write ./TODO" fi if [ `wc -c ./TODO | awk '{printf $1}'` -ne 2072 ] then echo `wc -c ./TODO | awk '{print "Got " $1 ", Expected " 2072}'` fi echo "Finished archive 6 of 6" # if you want to concatenate archives, remove anything after this line exit -- Bob Page, U of Lowell CS Dept. page@swan.ulowell.edu ulowell!page Have five nice days.