[comp.sys.amiga] DME space optimizations

dillon@CORY.BERKELEY.EDU (Matt Dillon) (06/27/87)

	My philosophy has always been "you get what you see"... and you
simply can't *see* spaces at the end of a line... or whether space within
a line is part of a TAB, or really is a space.  Thus, DME will convert tabs
to spaces on load, and optimally re-tab on save (this can be turned on or
off).  DME inherently removes tailing spaces.

	And, as Doug mentioned, it would take a lot of work for me to
change this, and frankly, I have neither the desire or the time to do so.
I *like* those features.  That's the way the cookie crumbles.... You'll just
have to use a different editor if you intend to futz around with UUENCODED 
files.  Of course, anybody can get the source and modify their own personal
copy, but I will not tolerate somebody second-sourcing a modified DME to
any mass medium.

AND INCIDENTLY, you actually *can* edit uuencoded files with DME... uudecode
ignores anything beyond the last specified column, so you simply tack on 
some random character, say 'X' in the appropriate column after every line.
You can even write a subroutine to do it.. find begin, down, block start,
find end, up, block end, goto top of block, while in block { move to column 62
write the character 'X' and go down a line }.

				-Matt

cg@myrias.UUCP (Chris Gray) (07/02/87)

There have been a few comments lately about DME's habit of not preserving the
exact structure of whitespace in a file being edited.

My editor, Ded (good thing Matt decided not to call his that!), which is
part of my Draco distribution (Fish disks 76 and 77), does similar things.
Internally, all whitespace is represented as bytes where the high bit is
set and the low 7 bits represent 1 - 127 spaces of whitespace. Thus, the form
of whitespace is lost. It has options of outputting whitespace as all blanks,
standard 8 character tabs, or the compressed form (which the compiler
understands, also).

About the only reason I can see for wanting the exact form of whitespace
preserved in program source (or almost anything else for that matter) is in
character and string constants. There, I usually use '\t' to represent a tab
if I want one. For those cases where you want to line things up using actual
tabs, I put a kludge into Ded - if a special character (control character,
including tab) or a character with the high bit set is encountered inside
quotes, then it is preserved as is, both on input, and on output. This
handles most cases. You might want to try it, Matt. Actually I had to take
it out for apostophes's, since they are used too much as just apostrophe's.

The versions of uu{en|de}code that I use (also in my distribution) use the
newer form, where blanks are replaced by graves. This form is much more
likely to make it through all of the various mailers, systems, etc. that
postings can go through. In particular, the mainframe at the U of A here
by default trims all but one trailing blank from all lines read or written.
The uu{en|de}code on this UNIX system uses that form.
-- 
Chris Gray		Myrias Research, Edmonton	+1 403 432 1616
	{seismo!mnetor,ubc-vision,watmath,vax135}!alberta!myrias!cg

kim@amdahl.amdahl.com (Kim DeVaughn) (07/04/87)

In article <8706270249.AA03832@cory.Berkeley.EDU>, dillon@CORY.BERKELEY.EDU (Matt Dillon) writes:
> 
>       My philosophy has always been "you get what you see"...
                                       ^^^^^^^^^^^^^^^^^^^^

Well, almost, Matt.  I know you consider this to be a feature, but
since DME doesn't set the "modified" flag when one changes a line
and does not move the cursor to a different line, a conditional
save (based on the modify state) doesn't "get you what you see".
This also seems to happen on some block move/copy operations.

The above is true for v1.25 and earlier ... I haven't gotten v1.27
down to the Amiga yet, as we (amdahl) were down the past week for a
major equipment move ... still don't have the dial-ups working yet.

/kim


P.S.  Thanks for the suggested "uufix" macro ... anyone want to share their
      most useful/interesting/obfuscated dme macros?  How about a contest
      (winner to get a ... I dunno, free copy of dme, maybe)?


-- 
UUCP:  kim@amdahl.amdahl.com
  or:  {sun,decwrl,hplabs,pyramid,ihnp4,seismo,oliveb,cbosgd}!amdahl!kim
DDD:   408-746-8462
USPS:  Amdahl Corp.  M/S 249,  1250 E. Arques Av,  Sunnyvale, CA 94086
CIS:   76535,25

peter@sugar.UUCP (Peter DaSilva) (07/12/87)

Matt Dillon writes:
> 	My philosophy has always been "you get what you see"... and you

You mean it's a WYSIWYG editor? 

> simply can't *see* spaces at the end of a line... or whether space within
> a line is part of a TAB, or really is a space.  Thus, DME will convert tabs
> to spaces on load, and optimally re-tab on save (this can be turned on or
> off).  DME inherently removes tailing spaces.

I have news for you... there's lots of places where maintaining space and
tab settings is important, and besides... it's useful to be able to :se ts=2
when I want to scrunch everything into a narrower screen. My philosophy is
always: "You wanted it, you got it."
-- 
-- Peter da Silva `-_-' ...!seismo!soma!uhnix1!sugar!peter (I said, NO PHOTOS!)