[comp.sources.amiga] v02i014: dme - programmer's text editor V1.31, Part06/06

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.