!~Filename~:!
MMAIL

!& Setup MMAIL Library:!
:I*TextM.VDefault Major Mode
1,m(m.m& Get Library Pointer)MWIND"e
m(m.mLoad Library)MWIND'
m.m& MMAIL FS Superiorfssuperior
m.m& MMAIL ..Lu..l
:iEditor typeMMAIL
1f[reread
m(m.mText Mode)
m(m.mRename Buffer)Message
f]reread
-1[0m.m& Create Buffer[1[2[3
qMode[4
@:i2|m1u3q4u:.b(q3+3)|
:i*Headersm2:i*Replym2
m(m.m& Set Mode Line)
1fsexit
0fo..qMMAIL Setup Hook[0
fq0"gm0'
fsrgettym.vMMAIL Two Window Reply Default
fsrgettym.vMMAIL Two Window Send Default
0m.vMMAIL Two Window Dired Default
m.m^R MMAIL Yanku...Y
m.m^R MMAIL Return to Superioru:.X()
1:<M(M.MKill Variable)MM ^R Return to Superior>
M.M^R MMAIL Return to SuperiorM.VMM ^R Return To Superior
0FO..Q MMAIL C-X C-S Send"N(m.m^R MMAIL Send Mail)u:.X()'
m.m^R MMAIL Dont Change Fieldu:.X()


!& MMAIL ..L:!
[0[1[2.,(fj-@f
k-@:ffx0-d).fx1
q1m(m.mSelect Buffer)
0fs^renter
m(m.m& MMAIL 0 Setup)
0FO..QReturn from Superior Hooku0q0"Nm0']2]1]0
:m(m.m& Toplevel ^R)

!& MMAIL FS Superior:!
[10f[ReadOnlyf[Modifiedf[XModified
.,(fj-@f
k).fx1
f]XModifiedf]Modifiedf]ReadOnly
q1m(m.mSelect Buffer)j
0f[ReadOnly
"l0'"#hk',0i
0fsexit


!^R MMAIL Return to Superior:!
0fsREADONLY
:I*FO..QEditor Name:i..JA ]A
0f[topline0f[lines0f[refresh
0FO..QExit to Superior Hook0"Nm0'
f+0fsexit
0FO..QReturn from Superior Hooku0q0"Nm0']0

!^R MMAIL Yank:!
:i*Messagem(m.m& Find Buffer)[0
.,(g:.b(q0+4)
.)fsboundaries
ff"N'"#4'[A
0FO..QMMail Prune Headers
QP"NJ<:FB;
0l
5
5
8
'"#1L'
'"#1L'
>'
JQA"Gw<.-z;WQA,32I1@l>wJ'
.:
J13I10I
zj0,fszfsboundaries
1,m(m.m^R Kill Windows)
m(m.m& MMAIL Send Setup)
:,.

!^R MMAIL Send Mail:!
[00FO..QExit to Superior Hookf"nu0m0'
0f[topline0f[lines0f[refresh
f+-1fsexit
0FO..QReturn from Superior Hookf"nu0m0']0

!^R MMAIL Dont Change Field:!
[00FO..QExit to Superior Hookf"nu0m0'
0f[topline0f[lines0f[refresh
f+-2fsexit
0FO..QReturn from Superior Hookf"nu0m0']0

!& MMAIL Default Setup:!


!& MMAIL Message Setup:!
1,:m(m.m^R Kill Windows)

!& MMAIL Send Setup:!
1,m(m.m^R Kill Windows)
0fo..qMMAIL Two Window Send Default"g
m(m.mSelect Buffer)Headers
jbfsWindow
m(m.m& MMAIL Redisplay)
1[0:<1,0:fm%0>
jq0,m(m.m^R Split Window)'
m(m.mSelect Buffer)Reply


!& MMAIL Reply Setup:!
1,m(m.m^R Kill Windows)
0fo..qMMAIL Two Window Reply Default"g
m(m.mSelect Buffer)Message
js

.-bfsWindow
m(m.m& MMAIL Redisplay)
m(m.m^R Split Window)'
m(m.mSelect Buffer)Reply


!& MMAIL Dired Setup:!!MMAIL Dired:!
1,m(m.m^R Kill Windows)
j0fo..qMMAIL Two Window Dired Default"g
m(m.mSelect Buffer)Messagew
m(m.m& MMAIL Redisplay)
m(m.m^R Split Window)'
m(m.mSelect Buffer)Dired
m.m& MMAIL DIRED Enterf[^Renter
[..J:I..J(MMAIL DIRED)
1f[readonly
0u..h

!& MMAIL Redisplay:!
fsHeight-(fsEchoLines)/2f[Lines
@:i*|@vfs^RExit|f[^REnter


!& MMAIL DIRED Enter:!
0F[^RENTER
m.m& MMAIL DIRED Helpf[HelpMac
M.M& MMAIL DIRED ..F[..FWQ..F[.F
1F[^RMDLYW0F[^RMCNT
M.VMMAIL DIRED Dispatch
[MMAIL DIRED Dispatch
13*5FSQVECTOR[0
Q0UMMAIL DIRED Dispatch
-1[1
M.M& MMAIL DIRED DeleteU:0(%1)
M.M& MMAIL DIRED DeleteU:0(%1)
M.M& MMAIL DIRED UndeleteU:0(%1)
M.M& MMAIL DIRED Reverse UndeleteU:0(%1)
FS^RINITU:0(%1)
M.M& MMAIL DIRED MarkU:0(%1)
M.M& MMAIL DIRED FlagU:0(%1)
M.M& MMAIL DIRED ReplyU:0(%1)
M.M& MMAIL DIRED ExamineU:0(%1)
M.M& MMAIL DIRED TypeU:0(%1)
M.M& MMAIL DIRED HelpU:0(%1)
M.M& MMAIL DIRED QuitU:0(%1)
M.M& MMAIL DIRED QuitU:0(%1)
]1]00 

!& MMAIL DIRED ..F:!
FS^RMODE"E'
[0[1[20^V
<2,M.I^:FI:FCU0
Q0FDKU MFRET?QXU1
Q0-200.FDKF"GU1'
Q1+1"GFI
FS^RARGP&2"N
FS^RARG'"#1'U2
FS^REXPT<Q2*4U2>
FS^RARGP"NQ2'^M:MMAIL DIRED Dispatch(Q1)(
0FS^RARGPW0FS^RARGW0FS^REXPTW
-1FS^RPREVW
)^V!<!>'
^:FIU0Q0&177.-137."GQ0-40.U0'
Q0^FS^RCMAC-(32FS^RINIT)"E
FGFI!<!>'
0;>0

!& MMAIL DIRED Delete:!
500.+4,m(m.m& MMAIL DIRED Mark Subr)D

!& MMAIL DIRED Undelete:!
600.+4,m(m.m& MMAIL DIRED Mark Subr)D

!& MMAIL DIRED Mark:!
1,m(m.m& MMAIL DIRED Mark Subr)U

!& MMAIL DIRED Flag:!
2,m(m.m& MMAIL DIRED Mark Subr)F

!& MMAIL DIRED Reverse Undelete:!
-l1m(m.m& MMAIL DIRED Undelete)(-l)

!& MMAIL DIRED Mark Subr:!
0l"gz-'."efg1'
0f[readonly
:i*[0

"l.;-l'&77.c
&300.f"n&100."n1a-32"ef0''"#1a-32"nf '''
"#w1a-32"ef0'"#f ''
"gl'>
&400."e-l'"#-'f

!& MMAIL DIRED Help:!
m(m.mdescribe)MMAIL DIRED

!& MMAIL DIRED Type:!
0l.[0@fNRUFAD l\(
qCurrent Window
1:<m(m.m^R Goto Window)>"n0uC'
)+777774777777.fsExit
0fsPJATY
"eht'
"#0[..FQ..F[.F
qEditor Name[1[..J:i..J[1 ]
j'
qC"g1:<qCm(m.m^R Goto Window)>'
m(m.mSelect Buffer)Dired
0f[ReadOnly
q0j1a-N"efR'2a-32"n.+1f '

!& MMAIL DIRED Quit:!
:M(M.M^R MMAIL Return to Superior)

!& MMAIL DIRED Reply:!
0l.[0@fNRUFAD l
\+777773777777.fsexit


!& MMAIL DIRED Examine:!
1,:m(m.m& MMAIL DIRED Type)

!~DOC~ ~Filename~:!
Macros for MM - EMACS interface

!~DOC~ & Setup MMAIL Library:!
S Set up MMAIL commands.
C-M-Y is yank in current msg, C-X C-Q is don't change field (abort),
and C-X C-S is send mail if  q$MMAIL C-X C-S Send$ nonzero.
But, if q$MMAIL Setup hook non-zero, runs it instead.

!~DOC~ & MMAIL ..L:!
S ..L for MMAIL.
Gets what we are doing from the JCL

!~DOC~ & MMAIL FS Superior:!
S FS Superior for MMAIL.
Gets the name of the buffer to select from the JCL as well as making room

!~DOC~ ^R MMAIL Return to Superior:!
^R Return to MM and update field being editted

!~DOC~ ^R MMAIL Yank:!
^R Insert the current message (one being replied to)
Indents arg spaces (default 4).  Leaves point and mark around inserted text.
If the variable MMAIL PRUNE HEADERS is nonzero, a cleanup of the
headers is performed leaving only the Date, From, and Subject fields.

!~DOC~ ^R MMAIL Send Mail:!
^R Pass contents of the buffer to superior to send.

!~DOC~ ^R MMAIL Dont Change Field:!
^R exit and tell MM not to make the edit change

!~DOC~ & MMAIL Default Setup:!
S Nothing special.

!~DOC~ & MMAIL Message Setup:!
S Prepare for editting an existing message.

!~DOC~ & MMAIL Send Setup:!
S Prepare for editting a message in send mode.

!~DOC~ & MMAIL Reply Setup:!
S Prepare for editting a message in reply mode.

!~DOC~ & MMAIL Dired Setup:! !~DOC~ MMAIL Dired:!
C Edit the message headers
	Enters ^R mode with the list in the buffer.
	D deletes the message which is on the current line. (also K,^D,^K)
	U undeletes the current line message.
	Rubout undeletes the previous line message.
	Space is like ^N - moves down a line.
        M toggles the unseen (marked) bit.
	F toggles the flag bit.
	R replies to the current line message.
	T types the message.
	E edit the message in a recursive ^R.
	? types this cruft.
	Q or X exits
The D,U commands repeat if given an argument, backwards if negative.

!~DOC~ & MMAIL Redisplay:!
S Fool redisplay for multiple windows

!~DOC~ & MMAIL DIRED Enter:!
S FS ^R ENTER for DIRED.
Puts & MMAIL DIRED ..F into ..F so that this ^R becomes
a DIRED command loop.

!~DOC~ & MMAIL DIRED ..F:!
S ..F macro to make ^R understand DIRED commands.
It reads DIRED commands and executes them.  When a control- or
meta- character is typed, it is left for ^R to execute.

!~DOC~ & MMAIL DIRED Delete:!
S Delete current file.

!~DOC~ & MMAIL DIRED Undelete:!
S Delete current file.

!~DOC~ & MMAIL DIRED Mark:!
S Delete current file.

!~DOC~ & MMAIL DIRED Flag:!
S Delete current file.

!~DOC~ & MMAIL DIRED Reverse Undelete:!
S Move up one line and undo a D.

!~DOC~ & MMAIL DIRED Mark Subr:!
S Pre-comma is position.

!~DOC~ & MMAIL DIRED Help:!
S Type our help msg.

!~DOC~ & MMAIL DIRED Type:!
S Type out this message.

!~DOC~ & MMAIL DIRED Quit:!
S Exit from DIRED.

!~DOC~ & MMAIL DIRED Reply:!
S Reply to current message.

!~DOC~ & MMAIL DIRED Examine:!
S ...

!~DIRECTORY~:!
& Setup MMAIL Library
& MMAIL ..L
& MMAIL FS Superior
^R MMAIL Return to Superior
^R MMAIL Yank
^R MMAIL Send Mail
^R MMAIL Dont Change Field
& MMAIL Default Setup
& MMAIL Message Setup
& MMAIL Send Setup
& MMAIL Reply Setup
& MMAIL Dired Setup
MMAIL Dired
& MMAIL Redisplay
& MMAIL DIRED Enter
& MMAIL DIRED ..F
& MMAIL DIRED Delete
& MMAIL DIRED Undelete
& MMAIL DIRED Mark
& MMAIL DIRED Flag
& MMAIL DIRED Reverse Undelete
& MMAIL DIRED Mark Subr
& MMAIL DIRED Help
& MMAIL DIRED Type
& MMAIL DIRED Quit
& MMAIL DIRED Reply
& MMAIL DIRED Examine