Google
 

Trailing-Edge - PDP-10 Archives - mit_emacs_170_teco_1220 - emacs/babyl.elib
There are no other files named babyl.elib in the archive.
0	W[0 +8+fq(+4)[1
0fo10f"g+q1'
+fq()+4u1
fq1"l 0'
,q1:m(q1+4(]1]0))] .[88>[F[M[U[\[d[k]r[y[[[[[[&[.[5[=[DqKIOQO\w<g[xCy:Lac)wO1W8IS>J&EcK1LR7GX$_0ePlr'Hy(h-</s
0n>.2q 3m&8-93;8::d@E/GFEMH
THZH4aHEgI6nIXt9{~puV	uauow<wO'xC/y#6y:>y<EzL{ES|GZ}8aWhcp'w$~uVO
AsoOV^^mXowRFuBaeav:DbL|}s+
5:HK%Vu2aq4pPp{R
ORy&f{27BB|QaoNqj}wo	a	ng+p{;
JcSE`xozV|1*~ 
6,
88,A%OX[
ejL.ye8[Tk"P+U[5SMAicKmVY `i
7Fv$&|	3@=eM.{W0A_*-m'fz]DfXX!m>+c[6-CIwOYeZadB;oG"/0},A?7y&=kIyW8zhX!qPCC
tz1L&242AeI3<[#`c4Ym6|y7!4q"7+"#JG"-";p>"JR>"XP3"hQ	"vR3!NA!b0>"l0>"w0>#0>#
/y#^}#,#,$J#;0>#W%c#e&#rdi#,$$[$0+$ _$*bw$30R$=l$FR$P4&$Y6>$c7($l@
$vCf$E/%	I;%J%Jp%%+%/KZ%8L\%BQ%KQ1%US
%q\7%{]$&][&]h&^&!^f&*_,&45%&>2a&H"*&R"K&\"_&f$J&q$[&|%c'%t'&'&0'&'$'0'=':'m'D('N*l'X,'c-'m+'w"*(,(
+(,(!c(*d\(4{@(Af(Q0k(c!(u5)g_)-{)#1)/.
)@g)Qeq)]o8)og%)}Px**j&*0R@*?3*ReS*bo*q2}+2,+0+&mN+3L+Ef8+Sf\+ff+x|(,0&,9,)26,<6,Nm*,a-3,p1;,0-V-(z-;3r-Mj=-XoO-in-z6.	/V.no.$.7{.Gy.U.aJ.r}/z*/++/&0/:h/F0Q/Xf/d/&/q./jW0
5zcM6s66*-Z6<,~6N-6`-j6q+Z6}7
X7d7+757B7<D{#aArgument~PartBBabyl<+i~#<Babyl>,~#*Babyl(-~#Babyla5y~#eBabyl6~#yBabylt7r~##Babyll8<~#>BabylN9a~l <Space>##Babyll<Tab>#pBabyl^R#lBabylt^S#iBabyl^T#lBabylu^V ~#sBabyl ^W#xBabyl^X#bBabylt^Z#eBabyll^[~#bBabylc^]#Babyla^`l~ Done Hook& Babyl Process Init Vars!& Babyl Process Sender Fields& Babyl R Done Hook & Babyl Resurvey One Message& Babyl Select Message& Babyl Set Mode Line& Babyl Survey One Message#& Babyl Survey Several Messages& Babyl TYI Source& Babylize Buffer& Babylize Digest Contents& Bounds Of Header& Bounds Of Original Header& Calculate Message Number& Check Message Label& Complete TNX Header& Compressed BABYLM Library& Compressed BBOARD Library& Compressed BBSITE Library & Convert Babyl File Version& Count Screen Lines& DECnet Mail Buffer$& Default Babyl Queuing Function!& Estimate Mail-Line Category & Find Digest Dash Separator& Flush Old BBoard Notices& Form Header& Get Labels for Survey& Initialize Babyl Buffer& Initialize BBoard& ITS Mail Buffer& ITSify TNX Mail!& Jump To Current Survey Line& Label Babyl Message& Label Map Command& Mail Message& Make Babyl Label Table& Make Dummy Message& Map Over Labeled Messages& Maybe Insert In-Reply-To#& MMAILR Babyl Queuing Function& Parse Header& Process Recipient Field& Push Message& Push To Buffer& Push To Edit Mail& Read Babyl File& Read Babyl Label& Reform Header& Reformed Bit& Remove Basic Label& Reset Babyl Options& Run Mail Subfork& SetUp BABYL Library& Setup BABYLM Library& Setup BBOARD Library& Setup BBSITE Library& Setup Reply Template& Survey Arg Doc& Survey Args& Survey-Select Message& SvMenu ^RNormal Macro& TNX Mail Buffer& Use Babyl Label Table<ENTRY>	BabylConvert Babyl File VersionCreate Babyl FileDelete Labeled MessagesEdit and Mail BufferEdit Babyl OptionsEdit Labels ListGet Mail Template,Insert Mail Template Into VARS/Init FileLabel Labeled MessagesLabel Message$Label Messages Containing StringMail With Template
Net MailNext Labeled MessageOutput Labeled Messages#Process Babyl Init or Vars FileRe-Enter BabylRemind Me Of This MessageSet Mail Template!Shorten From Field For HermesSurvey All MessagesSurvey Deleted MessagesSurvey Labeled MessagesSurvey Menu%Survey Messages Containing StringSurvey ModeSurvey RemindersSurvey Seen MessagesSurvey Undeleted MessagesSurvey Unlabeled MessagesSurvey Unseen Messagesthe Babyl HelperUnDelete Labeled MessagesUndigestify Babyl Message^R Babyl Add Cc-Recipient^R Babyl Add Subject: Field^R Babyl Add To-Recipient^R Babyl Delete Recipient^R Babyl Yank ^R Fill Indented Mail Region^R Survey Menu T^R SvMenu Argument~DIRECTORY~~DOC~ # Argument Part~DOC~ # Babyl '~DOC~ # Babyl ( ~~DOC~ # Babyl ) ~~DOC~ # Babyl * ~~DOC~ # Babyl + ~~DOC~ # Babyl , ~~DOC~ # Babyl - ~~DOC~ # Babyl .~DOC~ # Babyl / ~~DOC~ # Babyl 0 ~~DOC~ # Babyl 1 ~~DOC~ # Babyl 2 ~~DOC~ # Babyl 3 ~~DOC~ # Babyl 4 ~~DOC~ # Babyl 5 ~~DOC~ # Babyl 6 ~~DOC~ # Babyl 7 ~~DOC~ # Babyl 8 ~~DOC~ # Babyl 9 ~~DOC~ # Babyl ;~DOC~ # Babyl <~DOC~ # Babyl <Altmode>~DOC~ # Babyl <Backspace>8~DOC~ # Babyl <Digit>, <Comma>, +, -, *, /, (, and )~DOC~ # Babyl <Linefeed>~DOC~ # Babyl <Return>~DOC~ # Babyl <Rubout>~DOC~ # Babyl <Space>~DOC~ # Babyl <Tab>~DOC~ # Babyl =~DOC~ # Babyl >~DOC~ # Babyl ?~DOC~ # Babyl A~DOC~ # Babyl B~DOC~ # Babyl C~DOC~ # Babyl D~DOC~ # Babyl E~DOC~ # Babyl F~DOC~ # Babyl G~DOC~ # Babyl H~DOC~ # Babyl I~DOC~ # Babyl J~DOC~ # Babyl K~DOC~ # Babyl L~DOC~ # Babyl M~DOC~ # Babyl N~DOC~ # Babyl O~DOC~ # Babyl P~DOC~ # Babyl Q~DOC~ # Babyl R~DOC~ # Babyl S~DOC~ # Babyl T~DOC~ # Babyl U~DOC~ # Babyl V~DOC~ # Babyl W~DOC~ # Babyl X~DOC~ # Babyl Y~DOC~ # Babyl Z~DOC~ # Babyl \~DOC~ # Babyl ^A~DOC~ # Babyl ^B~DOC~ # Babyl ^C~DOC~ # Babyl ^D~DOC~ # Babyl ^F~DOC~ # Babyl ^H ~~DOC~ # Babyl ^I ~~DOC~ # Babyl ^J ~~DOC~ # Babyl ^L~DOC~ # Babyl ^M ~~DOC~ # Babyl ^N~DOC~ # Babyl ^O~DOC~ # Babyl ^P~DOC~ # Babyl ^R~DOC~ # Babyl ^S~DOC~ # Babyl ^T~DOC~ # Babyl ^V ~~DOC~ # Babyl ^W~DOC~ # Babyl ^X~DOC~ # Babyl ^Z~DOC~ # Babyl ^[ ~~DOC~ # Babyl ^]~DOC~ # Babyl ^` ~~DOC~ # Babyl |~DOC~ # Babyl ~~DOC~ & Add Basic Label ~DOC~ & Add to Labels Option#~DOC~ & Append to TNX Mail File$~DOC~ & AutoLabel Subject Labels$~DOC~ & Autolabel TNX Bit Labels~DOC~ & Babyl --MORE--~DOC~ & Babyl Add Recipient~DOC~ & Babyl Append"~DOC~ & Babyl Delete Recipient!~DOC~ & Babyl Execute Options~DOC~ & Babyl Expunge$~DOC~ & Babyl Get Message Labels~DOC~ & Babyl Macro Get~DOC~ & Babyl O Done Hook#~DOC~ & Babyl Process Init Vars'~DOC~ & Babyl Process Sender Fields~DOC~ & Babyl R Done Hook&~DOC~ & Babyl Resurvey One Message ~DOC~ & Babyl Select Message~DOC~ & Babyl Set Mode Line$~DOC~ & Babyl Survey One Message)~DOC~ & Babyl Survey Several Messages~DOC~ & Babyl TYI Source~DOC~ & Babylize Buffer$~DOC~ & Babylize Digest Contents~DOC~ & Bounds Of Header%~DOC~ & Bounds Of Original Header$~DOC~ & Calculate Message Number~DOC~ & Check Message Label~DOC~ & Complete TNX Header%~DOC~ & Compressed BABYLM Library%~DOC~ & Compressed BBOARD Library%~DOC~ & Compressed BBSITE Library&~DOC~ & Convert Babyl File Version~DOC~ & Count Screen Lines~DOC~ & DECnet Mail Buffer*~DOC~ & Default Babyl Queuing Function'~DOC~ & Estimate Mail-Line Category&~DOC~ & Find Digest Dash Separator$~DOC~ & Flush Old BBoard Notices~DOC~ & Form Header!~DOC~ & Get Labels for Survey#~DOC~ & Initialize Babyl Buffer~DOC~ & Initialize BBoard~DOC~ & ITS Mail Buffer~DOC~ & ITSify TNX Mail'~DOC~ & Jump To Current Survey Line~DOC~ & Label Babyl Message~DOC~ & Label Map Command~DOC~ & Mail Message"~DOC~ & Make Babyl Label Table~DOC~ & Make Dummy Message%~DOC~ & Map Over Labeled Messages$~DOC~ & Maybe Insert In-Reply-To)~DOC~ & MMAILR Babyl Queuing Function~DOC~ & Parse Header#~DOC~ & Process Recipient Field~DOC~ & Push Message~DOC~ & Push To Buffer~DOC~ & Push To Edit Mail~DOC~ & Read Babyl File~DOC~ & Read Babyl Label~DOC~ & Reform Header~DOC~ & Reformed Bit~DOC~ & Remove Basic Label~DOC~ & Reset Babyl Options~DOC~ & Run Mail Subfork~DOC~ & SetUp BABYL Library ~DOC~ & Setup BABYLM Library ~DOC~ & Setup BBOARD Library ~DOC~ & Setup BBSITE Library ~DOC~ & Setup Reply Template~DOC~ & Survey Arg Doc~DOC~ & Survey Args!~DOC~ & Survey-Select Message!~DOC~ & SvMenu ^RNormal Macro~DOC~ & TNX Mail Buffer!~DOC~ & Use Babyl Label Table~DOC~ <ENTRY>~DOC~ Babyl$~DOC~ Convert Babyl File Version~DOC~ Create Babyl File!~DOC~ Delete Labeled Messages~DOC~ Edit and Mail Buffer~DOC~ Edit Babyl Options~DOC~ Edit Labels List~DOC~ Get Mail Template2~DOC~ Insert Mail Template Into VARS/Init File ~DOC~ Label Labeled Messages~DOC~ Label Message*~DOC~ Label Messages Containing String~DOC~ Mail With Template~DOC~ Net Mail~DOC~ Next Labeled Message!~DOC~ Output Labeled Messages)~DOC~ Process Babyl Init or Vars File~DOC~ Re-Enter Babyl#~DOC~ Remind Me Of This Message~DOC~ Set Mail Template'~DOC~ Shorten From Field For Hermes~DOC~ Survey All Messages!~DOC~ Survey Deleted Messages!~DOC~ Survey Labeled Messages~DOC~ Survey Menu+~DOC~ Survey Messages Containing String~DOC~ Survey Mode~DOC~ Survey Reminders~DOC~ Survey Seen Messages#~DOC~ Survey Undeleted Messages#~DOC~ Survey Unlabeled Messages ~DOC~ Survey Unseen Messages~DOC~ the Babyl Helper#~DOC~ UnDelete Labeled Messages#~DOC~ Undigestify Babyl Message#~DOC~ ^R Babyl Add Cc-Recipient%~DOC~ ^R Babyl Add Subject: Field#~DOC~ ^R Babyl Add To-Recipient#~DOC~ ^R Babyl Delete Recipient~DOC~ ^R Babyl Yank&~DOC~ ^R Fill Indented Mail Region~DOC~ ^R Survey Menu T~DOC~ ^R SvMenu Argument~DOC~ ~FILENAME~~FILENAME~
~INVERT~	BABYL"A0fo..qBABYL Loaded-12391560295"n
0m.CSubDocIf non0, command documentation mentions subroutine use
0m.CBabyl Setup HookIf non0, is run immediately after loading Babyl library
0m.CBabyl Standalone JobNon0 means will exit to DDT/EXEC
0m.CBabyl File Version* 0: read max version, write back to same;
	  1: read and write version 1, similar for other positive N;
	 -1: read max version, write back to next version
	  This only applies to Tenex or Tops-20 systems.
0m.CUndigestify Keep Digest* Describe M-x Undigestify Babyl Message for details on values
@:i*||m.CBabyl F Default
@:i*|FOO TXT|m.CBabyl ^O Filename
1m.CNext Screen Context Lines
0m.CSurvey Quietly
@:i*||m.CBabyl Shh Text
1m.CBabyl A Mode Display* Non-0 lets A update mode line
0m.C*Survey* Buffer
3m.CBabyl Survey FROM/TO Control* Bits, 1 = enable prettification, 2 = shorten hosts, 4 = no hosts
	Can also be a macro, which is given message, survey buffers as args.
	Q1 gives point where from-to field starts in survey.  It can update
	that, e.g. if it wants to put something before the from-to area.
	It should return number (bits as above).
1m.CBabyl N After D* 1 means N after a D, -1 means N or P, 0 means no movement
0m.CFrom:,
0m.CSubject:
0m.CBabyl Reply-To Field* Automatic Reply-To field in mail if non-0
0m.CBabyl F Done Hook0 or a Teco program to run after F successfully exits
0m.CBabyl F Hook0 or a Teco program to run after F sets up its template
0m.CBabyl F Control* 0 (general edit), 1 (read To/Re then edit), 2 (read To/Re and send)
0m.CBabyl Remail Control* 0 (read To field and send), non0 (read To then edit)
0m.CBabyl Remail Hook0 or Teco program to run after message set up
@:i*|--Text follows this line--|m.CBabyl Header/Text Separator* 1 line that separates header and text in recursive mail edit
0m.CBabyl G Done HookUser hook, run (if non0) after new mail is collected;
	argument is 0 or message# for last new message
0m.CBabyl Filenames
0m.CBabyl O Filename
0m.CBabyl Default File* Set this to specify your normal Babyl file.  If 0,
	Babyl figures out the default filename to use.  If that is
	wrong, you can set this.  Set it to a string, the filename.
	This is especially for users whose Babyl file is not in their
	home directory, or not named from the user name.  E.g. you
	might have a subdirectory full of mail-files, and set this
	variable to (for Tops-20) PS:<SMYTHE.MAIL>SMYTHE.BABYL
@:i*||m.CBabyl K Text
0m.CBabyl Label Abbrevs Spec
0m.CBabyl O Confirm New File* If non-0, you must confirm outputting a message to a new file
0m.CBabyl O Done HookIf non-0, run when O is done
0m.CBabyl O Message Hook
@:i*|
		m(m.m& Babyl R Done Hook)|m.CBabyl R Done Hook0 or a Teco program to run after R successfully exits.
	The default is to label the message answered.
0m.CBabyl R Hook0 or a Teco program to run after R sets up its template
0m.CCurrent Babyl Template Name0 or name of template in use
0m.CReply-To:,
0m.CTo:,
0m.CCc:,
0m.CBabyl CC To* Automatic CC field in mail if non-0
0m.CBabyl Fcc To* Automatic Fcc field in Tenex or Tops-20 mail if non-0
1m.CBabyl Trim Recipient List* 0 will disable all removal of reply recipients,
-1 will disable automatic removal of INFO-xxx,*machine and BBOARD@ recipients
@:i*||m.CBabyl Dont Reply To* 0 or a Teco search string of CCs to remove (null means yourself)
@:i*||m.CBabyl Modified Messages
0m.CBabyl Variables Reset
0m.CBabyl Command Hook0 or Teco program to run at times in command execution.
	Its arg tells situation:
	  In normal Babyl com loop (Q0 has com char, Q5 has arg string):
		1 before display, 2 after,
		3 before com, 4 after.
	  In survey menu (Q..0 has com char):
		5 before com, 6 after.
	  7 when entering SvM level (so you can bind things).
0m.CBabyl Reformation Merges From/Reply-To* Non-0: Reply-To merges with From.
	This is part of header reformation which you can disable separately.
	Surveys of merged messages will unfortunately mention the Reply-To,
	not the From.
@:i*|[Message-id] [Return-Path] [In-Reply-To] [Mail-From] [Rcvd-Date]
	 [Received]
	 |m.CBabyl Reformation Flushes These Fields* Visibility control for fields.
	  0 or a string, with format [fieldname1] [fieldname2] ...
	  Fields mentioned in this string, and otherwise unknown will be
	  removed from the visible header
0m.CUnknown Field Flusher
0m.CParsed Message Number
0m.CDate:
0m.CSender:,
0m.CMSG:
0m.CMail-from:
0m.CMessage-ID:
0m.CRedistributed-By:,
0m.CRcvd-Date:
0m.CUnknown:
0m.CBabyl Reformation Control* Non-zero speeds up reformation process.
	1 - Do not worry about missing hosts.
	2 - Do not prettify recipient fields either.
0m.CBefore Babylizing File HookRun after reading but before Babylizing non-Babyl files
0m.CBabyl Autolabel Messages* Non-0 causes autolabeling from subject fields
0m.CBabyl Convert TNX Flags to LabelsIf nonzero, convert well known TNX MAIL.TXT flags
0m.CMessage Number
0m.CNumber of Babyl Messages
0m.CBabyl Keep TNX Received DateIf nonzero, add Rcvd-Date line to header
@:i*|RemindNow|m.CBabyl Last | Label
@:i*||m.CBabyl Labels Option
0m.CCRL List
0m.CCRL Prefix
2m.CCRL Non-match Method
0m.CWindow 1 Buffer
0m.CWindow 1 Pointer
0m.CWindow 2 Buffer
0m.CWindow 2 Pointer
0m.CBabyl Two Window Survey Menu* If non-0, Survey Menu will use two windows.
0m.CBabyl C Hook0 or a Teco program to run after C sets up its template
0m.CBabyl M Hook0 or a Teco program to run after M sets up its template
@:i*|
		m.m^R Babyl Yank[...Y
		1,m.m^R Fill Indented Mail Region[...\
		qParagraph Delimiteru2
		fq2"g :i22-'"# :i2-'
		q2[Paragraph Delimiter|m.CBabyl Default Edit Mail HookDescribe Edit and Mail Buffer for details
0m.CBabyl Edit Mail Hook0 or a Teco program to run before recursive edit on mail to send
0m.CBabyl Require Subjects* If non-0 Babyl will require you to have a subject in outgoing mail
0m.CPre-*Mail* Buffer
0m.CWindow 1 Size
0m.CCOMSAT AUTHOR FIELD
0m.CCOMSAT RCPT FIELD
0m.CCOMSAT CLAIMED-FROM FIELD
0m.CCOMSAT FAKE-TO FIELD
0m.CCOMSAT FROM FIELD
0m.CCOMSAT FROM-PROGRAM FIELD
0m.CCOMSAT FROM-XUNAME FIELD
0m.CCOMSAT FROM-UNAME FIELD
0m.CCOMSAT TO FIELD
0m.CCOMSAT SUBJECT FIELD
0m.CCOMSAT HEADER-FORCE FIELD
0m.CCOMSAT REGISTERED FIELD
0m.CCOMSAT USER-HEADER FIELD
@:i*|& Default Babyl Queuing Function|m.CBabyl Queuing FunctionName of the mailer-dependent function for queuing mail
0m.CBabyl Parser Control Flags
0m.CBabyl Day of Week Flag* (TNX only) If non-0 day of week is added to Date field of outgoing mail
0m.CBabyl Personal Name* (TNX only) A full name to use with user name as in Personal Name <ME at HERE>
0m.CBabyl User Name* (TNX only) A name to use in From field possibly overriding username
0m.CBabyl ..D
1m.CBabyl Strip Local Host* Non-zero removes local host from reformed headers
0m.CBabyl Mailer Subfork
0m.CBabyl Subfork ControlControls handling of QUEUE-XMAIL subfork.
     Non0 ==> Keep and read RSCAN; 0 ==> Dont keep and no RSCAN
     Note that a special QUEUE-XMAIL is needed if you set this 
0m.CBBoard Sans Query* Do not query user if this is nonzero
10000m.CBBoard Maximum Size* Maximum Size of BBoard file before deleting old notices
0m.CBBoard Data File* Complete file name if not Switch.ini on Home Directory
0m.CBBoard Babyl File0 or the name of the Babyl File when BBoard was invoked
0m.CLast BBoard ArgumentLast true Argument to ^B
0m.CBBoard Last WrittenDate and time BBoard Last Written
0m.CBBoard Last ReadDate and time BBoard Last Read
0m.CBBoard Crl ListIf nonzero, it is the Q-Vector of BBoard Name, BBoard File pairs
0m.CBBoard Q on N at Last Notice* If nonzero, N at Last Notice causes an automatic Q
@:i*|PS:<BBOARD>*.TXT|m.CBBoard Regular Naming Convention0 or Single Wild Card File Specification to find BBoard files
@:i*|GENERAL=PS:<BBOARD>MAIL.TXT
SYSTEM=PS:<SYSTEM>MAIL.TXT
|m.CBBoard Names List* List of BBoard Specifications <BBoardName>=<BBoardFileSpecification>
12391560295m.vBABYL Loaded'
m(m.m& SetUp BABYLM Library)
m(m.m& SetUp BBOARD Library)
m(m.m& SetUp BBSITE Library)
f:m(m.mBabyl)	m(m.m& Push to Buffer)*Babyl*
1f[^RMore
fsZ"e
m(m.mText Mode)
1f<!Non-Empty!
      1f<!Babyl-Catch!
:i*,m(m.m# Babyl I)
f;Non-Empty >
 >
'
"# @ftReentering temporarily exited Babyl...
   0fsEchoActivew
f*'
"'nuBabyl Standalone Job
fs^RMode"n :m(m.m& Babyl Execute Options)'
@:i*|	f]^REnter
m(m.m& Babyl Execute Options)
fs^RExit
| f[^REnter

l[U[Y [1[2[3[4[5[6[7[8[9 f[DFile
 fsXUName:f6uU
1f[FNamSyntax
m.m& Yes or NouY
"e
.u1
f~Buffer Name*Babyl*"n
oBadFile'
0,(fsZ)fsBoundw j :ff~BABYL OPTIONS:"n oBadFile'
:s
"e !BadFile! q1j
:i*Edit Babyl Options must be used within BabylfsErr'
q1j
m(m.m& Push Message)'
@fn|m(m.m& Reset Babyl Options)|
j s
 0l b,.fsBoundw
1f[BothCase
j 0u1 :s
XMail:"l @f	 l  :x1'
j 0u2 :s
Mail:"l @f	 l :x2'
j 0u5 :s
Owner:"l @f	 l :x5'
ff&2"e
ftTypical (and safe) answers to questions will be shown inside brackets,
    as in: [Y].
'

 q2"n et2'
"# etDSK: fsHSnamefsDSNamew
fsOSTecof"ew etU MAIL'
"#-1"e etMAIL.TXT.1'
"# etMESSAGE.TXT;1'''
0u2
ftIs there an incoming-mail file [Y]?  mY"n
1m(m.m& Read Filename)Mail filenameu2'
q2"n et2 fsDFileu2'
0u4
ftDo you want new mail to be appended to the end (rather than inserted
    at the beginning) of the Babyl file [Y]?  mY"n 1u4 '
1u8
q2"n
fsOSTeco"e
ftDo you tell Comsat (R-OPTION APPEND) [N]?  mY"e 0u8''
q4-q8"e
ftDo you want the incoming new mail reversed (this will make it
      inconsistent with the BABYL file though) [N]? '
"# ftDo you want the incoming new mail reversed (to be consistent
      with the BABYL file) [Y]? '
mY"n q4+2u4''
q1"n et1'
"# etXMAIL.TXT'
0u1 0u3
q2"n fsOSTeco"n
ftDo you want an XMail file, which gets copies of all incoming mail as it
    is added to the Babyl file [N]? 
    mY"n m(m.m& Read Filename)XMail filenamef"nu1
et1 fsDFileu1
ftDo you want mail appended to the XMail file [Y]? 
	    mY"n 1u3'''''
q5f"ew qu'u8
0u5
ftIs there an owner for this Babyl file [Y]?  mY"n
1,m(m.m& Read Line)Owner user name (8): f"nu5
fq5"e q8u5'''
ftHeader can be reformatted to look better and not show redundant or useless
    fields, and missing host names will be added so other commands will work
    better, e.g. the reply and forward commands.
Do you want headers to be reformed [Y]? 
 mY"e 1u6 0u7'
"# 0u6
0u7
ftIn general the old headers are saved, so the 1H command can show them.
Should original headers be discarded [N]?  mY"N 1u7''
j :s
Mail:"l 0lk'
q2"n jl iMail: 2
'
j :s
Append"l 0lk'
jl iAppend:  q4\ i

j :s
XMail:"l 0lk'
q1"n zj iXMail: 1
'
j :s
XMail Append"l 0lk'
q1"n q3"n zj iXMail Append
''
j :s
Owner:"l 0lk'
q5"n jl iOwner: 5
'
j :s
No Reformation"l 0lk'
q6"n zj iNo Reformation
'
j :s
No Original"l 0lk'
q7"n zj iNo Original
'
0u..h
0f;Babyl-Command-AbortS
[H[U[V[Y[1[2 0[3 f[DFile "e :i3 fq3"e 0u3''
fsXUName:f6uU
1:<fsMachine:f6uh>"n 0uh'
fsOSTeco"e :ihMIT-h'
qBabyl File Versionuv
e[e\ fne^e]'
1f[FNamSyntax
m.m& Yes or NouY
etDSK: fsHSnamefsDSNamew
etU BABYL
fsOSTeco"n qv"g qv'"# 0'fsDVersionw'
f"ew q3f"ew 1m(m.m& Read Filename)Babyl filenamef"ew'''u3
et3 fsOSTeco"n fsDVersion"e
qv"e
1u1 1:<er fsIFVersionu1 ec>w q1fsDVersionw'
"# qv"g qvfsDVersionw''''
fsDFileu3
ftCreating Babyl file 3.
Typical (and safe) answers to questions will be shown inside brackets,
    as in: [Y].

fsDVersion"n oCLOBCHK'
fsOSTeco"e   !CLOBCHK!
e?"e ftClobber existing 3 [N]? 
	  mY"e ftAborted. 0'''
f[BBind
iBABYL OPTIONS:
Version:5

0, recent, unseen,,
*** EOOH ***
Date:  fsDATEfsFDConvertw i
From: BABYL at  qh"n gh'"# iHere' i
To: U at  qh"n gh'"# iHere' i
Subject: New Babyl file

This is a sample message in the new Babyl file.
Feel free to delete it.


 1f<!Babyl-Command-Abort!
1,m(m.mEdit Babyl Options)
>w
0,(fsZ)fsBoundw
et3
f[DFile et[TECO] OUTPUT fsOSTeco"n 0fsDVersionw'
ei
f]DFile hpef
fsOFileu1 @ft
Written: 1
 0fsEchoActivew
qh"n ftWould you like mail sent to BABYL-REQUEST@MIT-MC, requesting
  that U@H be added to the INFO-BABYL@MIT-MC
  mailing list?  mY"e '
hk
iFrom: U at H
Sender: Babyl
To: BABYL-REQUEST at MIT-MC
Re: INFO-BABYL

gBabyl Header/Text Separator i
Please add U@H to INFO-BABYL.

 1:< fsOSTeco"e m(m.m& ITS Mail Buffer)'
"# m(m.m& TNX Mail Buffer)'
     >"n ftCould not mail the request.'
D	[0[1[2[3[4[5[6[7[8[9[.0[.1[.2
 qFill Extra Space Listu.2
[Fill Column qFill Columnu6
f[VB f[VZ
m.m^R Back to Indentationu3
m.m^R Delete Horizontal Spaceu4
m.m& Estimate Mail-Line Categoryu5
m.m^R Fill Regionu8
m.m^R Indent Rigidlyu9
.,(:)fu1u0
q:..u(0)-q..o"e
q:..u(2)-q0"e
q:..u(3)-(fsZ-q1)"e
f~:..u(4)message-fill"e
ftIs this the very same message you filled before?  (I.e. are you
correcting an immediately preceding fill of this message, perhaps by
giving different argument or Fill Column this time?
If unsure, safest thing is to answer no.) 
	  m(m.m& Yes or No)"n 1m(m.mUndo)w' 0u..h''''
.,(:)ffsBoundw
hm(m.m& Save for Undo)message-fill
5*5fsQVector[..u @fn|q..ufsBKillw|
j 0l .u0
q0f(:\u0 fn0jw )u0
.( zj 0f"n
i
'
)j
<  .-z; 0l
m5"n l !<!>'
:f"e l !<!>'
@m3w
fsSHPosu1
@m4w
0u.0
< l m5:@;
@m3
:f@;
fsSHPosu.1
q.1-q1"e
0:k @m4w
0,0af.2:"l i ' i 
1u.0 !<!>'
q.0"e
ff"n
q.1-q1 f"l +9"g
-1l q1-q.1, i
l @m3w q.1u1
0:k @m4w i  1u.0 !<!>''w''
0; >
0l .: -l
q6-q1uFill Column
@m8w
.-z( q1m9w )+zj
>
q0j
<  :s:: Re: ; .u7
:l fsSHPos-q6"g
q7j -4d i
Subject: 
-l m3 fsSHPos(l), i' >
z:
q0,z s[0 0f[vbw f[vzw
0l 0,1a-"e 2'
-4f=
"e 2'
1:fsBoundw
qBabyl ..D[..d
:g..du..d
:*5:f..d 
1:<fwl>"n j oLast'
(-1,1a-:)*(-1,1a-@)"e j 1'
0l @f	 l
12f=MESSAGE FROM"e j -1'
13f=[MESSAGE FROM"e j -1'
:ff~*** EOOH ***"e j 2'
qBabyl Header/Text Separatoru0
:ff~0"e j 2'
!Last!
@f	 l
:f"n @f-_l :f"e j 2''
j 06[l[d

 m(m.m& Bounds of Header)w
@f 	
l
.,(fb	  r).xl
m.m& Find Digest Dash SeparatoruD
65,85mD"e
:i*Bad Digest formatFSErr'
f:m(m.m& Babylize Digest Contents)rf[SString [1
,-:i1
0s
1
fu1
<  :s"e 0'
q1,z-.f:u1w
q1@f-l
@f	 l
.-(:l .)@;
>
1l -1
[0[1 [b[t
 fsmachineu0
 .-b[p
qNumber of Babyl Messages
:itTo: l@0

b,zm(m.m& Save for Undo)undigestify
ff&2"e
qUndigestify Keep Digest' "# 'u1
q1"n
hx0 bj g0 i

%nw
q1-1"e
.(q1"l z' "# b'j
m(m.m& Add Basic Label)deletedw
)j'
q1"l 4r fsZ-.fsVZw'
"# .fsVBw
%Message Numberw''
b+qpj
f[vb
fsbconsub
f<!Msgs!
    @f
	 L
.-z;
i
0, recent, unseen,,
*** EOOH ***

%nw
.-21fsvb
:fb@:+2"e
:s


 
	+1"l
@f 	l 13,1a-13"e
0k'
"# 0li
'''
1:< 0m(m.m& Parse Header)
>"n
j 2lit
'
"# qb[..o gTo: gCc:
j :sl (
hk ]..o
)"e
j 3l gt''
< 27,33md"e f;Msgs'
-:l.,(0l).@f 	(2l)@; >
>
qbfsbkill
qnuNumber of Babyl Messages
0uParsed Message Number
:iBabyl Modified Messages
fq*Survey* Buffer"g
q*Survey* Buffer[..o
hk 0fsModifiedw 0fsXModifiedw
]..o '
f]vb j
:m(m.m& Babyl Select Message)7fsOSTeco"e :i*Only intended for use on TNX fsErr'
 z-.[1
bj .,(i
).f
bj :s
From:"l 0lk'"# l'
.,(iFrom:  g(fsXUName:f6) i
   
    ).f
j .,(@f
k).f
z-q1j 1100000.fsExit
 -1,(f) :m(m.m# Babyl D)[0[1[2
 ff&2"n u0'
"# qBabyl F Defaultu1
ff"n :\u2 :i22 '"# :i2'
1,m(m.m& Read Line)2Find (Default "1"): u0 !''!
fq0"l '
fq0"n q0uBabyl F Default'"# q1u0'
'
0f[vb 0f[vz .u1 @fn| q1j |
f"ew 1',0f<
"l -':s
"l -':s0"E
ff&2"N 0'
:i*Not foundf;Babyl-Command-Abort'
>
]..N ]*w ]*w
m(m.m& Babyl Select Message)
m(m.m& Calculate Message Number)
ff&2"N -1'&f @m(m.m^R Previous Screen)w
 h[0[1
 m(m.m& Bounds Of Header):jw
.u1 fnq1j
.f[VB :s"l r'"# zj' fsZ-.f[VZ
hm(m.m& Save for Undo)character fix
j <:s
   ; rd
fsHPosu0
i
   q0, i r >
j <:s; 0f-1"g -2d'>
j <  :s
;
-d i
     >
@.[0[1
m.m# Babyl ^N
m.m& Check Message Label
qMessage Numberu1
f<!Babyl-Command-Abort! 1mN MCunseen@:; >"E '
q1m(m.m# Babyl J)
:i*No more unseen f;Babyl-Command-Abort
-ff&1"n fsWindow(f+)fsWindoww '
f+ B-[1 [2
m.m& Babyl Select Message
< 0fsVZw
:s
;
ms
%Message Numberw
%1; >
q1"n ms
q2fp"g f;2'
q2-1"n :i*Now at end, no next message '(
) f;Babyl-Command-Abort '
OFS Date[0
0F[V B 0F[V Z .[2 -S C :SRcvd-Date:+1"E @F 	L
 FS FD Convert F"G U0 '' Q2J ]2 F]V Z F]V B
[1 qBabyl ^O Filenamef"ew'f[DFile
5,fAdd message tou1 et1
fsDFileuBabyl ^O Filename'
e[ e\ fn e^ e]
q..ou1  f[BBind
g1
 :s
Re:

+1"e @f l 0k iSubject: '
Q0:m(m.m& Append to TNX Mail File)-[1
qMessage Number-1<
0fsVBw
-:s;
1:<m(m.m& Babyl Select Message)
>@:;
qMessage Number-1uMessage Number
%1; >
q1"n 1:< m(m.m& Babyl Select Message)
>"n 1m(m.m# Babyl J)'
:i*Now at top, no previous message f;Babyl-Command-Abort'
c[0[1[2 [3[4
fsVB[3 fsVZ[4
1fsModeChangew 0f[^RMore 
qMessage Number:\u0
:fo..qBabyl Modified Messagesu2
q:..q(%2)u1
:i:..q(q2)10M0

fsVB-q3"E fsVZ-q4"E q3+q4"N  '''
m(m.m& Initialize Babyl Buffer)
>[1 0[2
20:"e
1u2
:i*CfsEchoDisplay
@ftKind of survey (A,D,L,M,R,S,UD,UL,US, or ?): '
<  2,m.i fi:fcu1
q1-:@; >
(q1-177."'e)(q1-"'e)"n '
q1-32"l q1@u1'
q2"n @ft1'
fsRGETTY"e ft
'
q1-A"e
f:m(m.mSurvey All Messages)'
q1-D"e
f:m(m.mSurvey Deleted Messages)'
q1-L"e
fm(m.mSurvey Labeled Messages) '
(q1-M"'e)(q1-F"'e)"n
f:m(m.mSurvey Messages Containing String)'
q1-R"e
f:m(m.mSurvey Reminders)'
q1-S"e
f:m(m.mSurvey Seen Messages)'
q1-U"e
< q2"e 20:"e
1u2
:i*CfsEchoDisplay
@ft^SU (D,L,S): ''
2,m.i fi:fc@u1
q2"n @ft1'
q1-D"e f:m(m.mSurvey Undeleted Messages)'
q1-L"e f:m(m.mSurvey Unlabeled Messages)'
q1-S"e f:m(m.mSurvey Unseen Messages)'
1u2 fg @ft
^SU (D,L,S):  >'
q1-?"e m(m.mDescribe)# Babyl ^S
f:m(m.m# Babyl ^S)'
fg 1,m.m^R Display Load Average[1
q1"n @m1'
"# fsOSTeco"n
1:< fsLoadAvu1
:i*CfsEchoDisplayw
@ft(Load average = 1) 
0fsEchoActivew	>w''
W:i*CfsEchoDisplayw
qBabyl Standalone Job"e f;Babyl-Catch'
100000.fsExitw (f@m(m.m^R Execute Minibuffer)w
 fsRGETTY"n 1:<f @m(m.m^R Next Screen)>w '
ft

ff"n .,(l).t
m(m.m& Babyl --MORE--)'
"# .,zt
zj -2f=
"n   ft
''
[0[1[2[3[4
 .u0 fnq0j
fsLinesf"ew
fsHeight-(fsEchoLines)-1(
)'u1
fsWindow+bj
q0m(m.m& Count Screen Lines)+1u2
:i*CfsEchoDisplayw
(q2-1)/q1u4
q4"e @ftBottom of message. 0fsEchoActivew '
q2-q1u2
(q2-1)/(q1-qNext Screen Context Lines)+1u4
q2@:= @ft Line q2-1"g @fts'
 @ft left in message  @ft( q4@:= @ft screen
 q4-1"g @fts' @ft). 
 0fsEchoActivew
0[0
[1
@fn|q1j|
ff&2"e
< 1:<1,0:fm>"n 0;'
%0
>
   z-."e q0-1u0 '
'"#
< 1:<-1,0@:fm>"n 0;'
%0
>
  '
  q1j
fn
0fsechoactive
  q0J"l 2[Survey Quietly
@m(m.m# Babyl ^S)'
"# f':m(m.mSurvey Menu)(qMessage Number:\[1
:i551 0i[..J :I..JBabyl-Shhh
 m(m.m& Read Line);uBabyl Shh Text
m.m& Babyl TYI SourcefsTYISourcew
cqBabyl Shh Text[3 
 fq3:"g 0fsTYISourcew 0'
0:g3fsReReadw
1,fq3:g3uBabyl Shh Text
0= :i550 0JqMessage Number[1[2
m(m.m# Babyl N)
qMessage Numberu2
qBabyl A Mode Display"n
1fsModeChw fr'
m(m.m& Push Message)
q1+1m(m.m# Babyl J)
q2-q1m(m.m& Babyl Survey Several Messages)
Z[1[7[8[9 qSurvey Quietly[2
qBabyl ..D[..d
.u7 @fn|0,fsZfsBoundw q7:j"e zj' m(m.m& Babyl Select Message)| [7[..o
0fsVBw -s
 l .fsVBw
-1f[Truncate
q..ou9
q*Survey* Bufferu8
q8fp"n
[Previous Buffer
m(m.mSelect Buffer)*Survey*
q..ou*Survey* Buffer
q..ou8
m(m.mSelect Buffer)'
q8u..o
q2&1"e hk :iBabyl Modified Messages'
q9u..o
fsZ-z"e :i*C fsEchoDisplayw @ftNo Messages
	  0fsEchoActivew q8u..o 0fsXModifiedw 0fsModifiedw '

 qMessage Numberu7
m.m& Get Labels for Survey
m.m& Babyl Survey One Message
ff&1"e 1'"# q8u..o i No. Lines        From->To        Subject or Text
 q2&2"e -t'
'<
q2&2"e fsListen"n :fi-32"n 1;'''
q9u..o j
s
*** EOOH ***
   2r .fsVBw
q8u..o 3,q7\
q9,q8mX
q2&2"e -t'
!DEL!
q9u..o zj
0,(fsZ)fsBoundw
4f=
:@;
%7w
l .,(sr). fsBoundw
>

 q2&2"e
fsListen"n :fi-32"n ftFlushed.
	1fsFlushedw''
"# -1"g ftDone.
     '''
q8u..o 0fsXModifiedw 0fsModifiedw
Y
[0[1[2[3[4[5 [7
 u..o
mku7u0
-u1 <.-z;%1wl>
u..o q0i 5,q1\
0u0 0u3 0u4 0u5
u..o jl
4f=MSG:"e l
<	8f~DISTRIB:@:;
8c @f	 l 1:x4 l >
<	8f~EXPIRES:@:; l >
'
1:fb@:f"ew u..o i ???
oCGM' +1"e
:s "e u..o i ???
oCGM' r 0x3
:fb Re: "l 1:x5'
l 4f~TO: "e 4c 1:x4 l'
< 4f~TO: @:; l>
< 4f~CC: @:; l>
0l .u0
'
"#
:s

"l 2r .u0
'"# zj' fsz-.f[vz
j < :s
From; @f	 l 1a-:"n !<!>'
c @f	 l 1:x3 1;
>
	j < :s
To; @f	 l 1a-:"n !<!>'
c @f	 l 1:x4 1;
>
	j < :s
Subject
Re;	    @f	 l 1a-:"n !<!>'
c @f	 l 1:x5 1;
>
	f]vz
'
u..o i   .u1 q3"n g3' !<!i-> q4"n g4'
qBabyl Survey FROM/TO Control[9
fq9"g ,m9+0u9'
q9&1"n
q1j 0s(BUG !)! <:s; BUG- ful -d >
q1j < @:f(l!)! .-z; 1:<flk>"n:k' -@f	 k >
q1j <[5 >[6
< @f,-6l .u2
@:f,65l .-z;
1a-q5"e
q2,.kd
@:f6l .-z;
d'
>
q1j 0s,  < :s; -d >
q9&4"n
q1j 0s at @ <:s; fkc @:f,6f(l0,1a-q6"e-1')k>'
"# q9&2"n
q1j 0s at  < :s; @ >
q1j 0s@MIT-Multics < :s; @MUL >
q1j 0s@MIT- <:s; -4d >
fsOSTeco"e q1j 0s@AI@MC@ML@DMS@DM <:s; fkd >'
"# q1j fsMachine:f6[2 0s@2 <:s; fkd > ]2'
q1j 0s@SU-AI <:s; @SAIL >
q1j 0s@SU- <:s; -3d>
q1j 0s@USC-ISI <:s; -3c-4d >
q1j 0s@CMU-10 <:s; -3D >
''
fsXUname:f6u2 zj i 
q1j fq2+2f~2->"e fq2d'
< r :s2; r -fq2d
1a-@"E <@:f,- k 1a--@:; q6,2a-q6@; d>'>
]6]5
'
zj -d 33-(fsHPos)f"l d'"# ,32i'
i 7
q5"e q0"n
u..o 0fsZw q0j
:<@f
	 l .-z;
fw+1af@:-:; :l >
.-z"e q0j @f
	 l'
:x5
u..o''
q5"n g5'
0fsHPosition-(fsWidth-2)f"g,0d i!'w
!CGM!
u..o i

.[0[1[2[3[4[5
3,:\u1 j:s
1"e q0j '
qB[..o mJ
0fsVBw -s
 l .fsVBw
mku2u1
s
*** EOOH ***

.(0u3 <.-z;%3wl>)j
4f=MSG:"e l
<	8f~DISTRIB:@:; l >
<	8f~EXPIRES:@:; l >'
0u4
1:fb@:f"ew 
'+1"e
:fb Re: "l 1:x4' l
< 4f~TO: @:; l>
< 4f~CC: @:; l>
0l .u5
'
"#
:s

"e	  zj' .u5
< -:s
Subject
Re;
fkc @f	 l 1a-:"n 0l !<!>'
c @f	 l :x4 1; >
'
q4"e q5j
< @f
	 l .-z;
fw+1af@:-:; :l >
.-z"e q5j @f
	 l'
:x4'
qSu..o 0l
4c 0a-q1"n -d q1i -1f'
@f l \-q3"n -5d 5,q3\ -5f'
0,34:fm
:fx1
.( g2 g4
0fsHPosition-(fsWidth-2)f"g,0d i!'w
)j
:ff=1f"nf"l*(-1)'cr :ff'w
ff&1"n m(m.m# Babyl J)'
m(m.m& Add Basic Label)deleted"n @ft
(Already deleted.) 
0fsEchoActivew'
ff&1"n fsTypeout"g 1u..h''
1f<!N-OR-P!
ff&2"e
qBabyl N After D"e '
1'"# ',(:i*N-OR-P):m(m.m# Babyl N)
>w
 qBabyl N After D"l 1m(m.m# Babyl P)'
@m(m.m& Babyl Expunge)
1m(m.m& Initialize Babyl Buffer)
fsQPPtr[.0 [0[1[2[3[4[5[6[7[8[9
:f"g :i*( :i7 )u5'
-3u6
ff&1"n 0'"# qBabyl F Control'u2
:i*To continue editing this message use the C command.(
    )[Abort Resumption Message
.(1m(m.m& Parse Header)w)j
fsQPPtru9
-2"'e,1m(m.m& Push To Edit Mail)
fsModified"n
ft
Last message being composed seems to have been aborted.
Continue editing aborted message? 
      m(m.m& Yes or No)"n q.0fsQPUnwindw
f@:m(m.m# Babyl C)''
q6"e
hk
       0fsWindoww
       1,4@m(m.m^R Babyl Yank)w
       j :s

"e zj'
       .,z x3
.,zk
j i

0s
To:
Cc:
Fcc:
j <:s; 0l iOrig->
fsOSTeco"e 0s
Sender:
Date:
j <:s; 0l iOrig->'
fsXUname:f6u6
       fsMachine:f6u8
       :i*6@8u8
zj -@f
 	k
       i

       fsOSTeco"n iReSent-From:  g8 i
'
q5u8 :f"l 1,m(m.m& Read Line)Remail to: f"ew 'u8'
iReSent-To:  g8 i

fsOSTeco"n  iReSent-Date:  212221000000.,fsDatefsFDConvertw i
'
iBcc:  g8 i

qFrom:u8 q8"e :i8Unknown?
'
	fsOSTeco"n j :s
Sender:"e jl iSender:  g8''
j @f
 	k
zj
	gBabyl Header/Text Separator i
 g3

    qBabyl Remail Hookf"nu8 m8'w
qBabyl Remail Control"n
 'w
fsOSTeco"e m(m.m& ITS Mail Buffer)'
"# m(m.m& TNX Mail Buffer)'
0fsModifiedw 0fsXModifiedw
'"#
hk iTo:  .u3
0fsWindoww
q2"g q5u1 :f"l 1,m(m.m& Read Line)To: f"ew 'u1' g1'
i

qBabyl Reply-To Fieldf"nu1 iReply-to:  g1 i
	'w
qFrom:u1 fq1"g
iRe: 1
:i1???
fsQPPtr( fsBConsu4 @fn|q4fsBKill|
1:< :i*,q4m(m.m& Process Recipient Field)Re
q4[..o j @:f@x1 >w
)fsQPUnwindw
0lk i[1: '
"# i[???: '
qSubject:u1 fq1"g .(g1)j :l .,zk i]'
"# iforwarded]'
0fx1
q2"g q7u4 :f"l 1,m(m.m& Read Line)Re: (1): u4'
fq4"n q4u1''
fq1"g iRe: 1
	  '
gBabyl Header/Text Separator i
   q2"g .u3'
j 0u1 < .-z; %1w l >
.fsWindoww
.( 1,4@m(m.m^R Babyl Yank)w
)j q2"e q1@:f'
x1
q3j
qBabyl F Hookf"nu0 fm0'w
q2-2"l m(m.mEdit and Mail Buffer)'
"# fsOSTeco"e m(m.m& ITS Mail Buffer)'
"# m(m.m& TNX Mail Buffer)''
j :s
1"l fkc l .u1 0u0 j <l %0w .-q1;>
fsTopLine+q0fs^RVPosw  q1j q2"e 0@:f''
'
q9fsQPUnwindw
qBabyl F Done Hookf"nu1 m1'w
X[1[2[3[4[5[6[7[8 f[DFile
"e .'"# -1'u7 fsWindowu8
qBuffer Filenamesu3
qBabyl Mail Optionu2
q2fp"g 0,(,f2f"lw fq2'):g2u2'"# 0u2'
ff&1"e
q2"e m(m.m& Initialize Babyl Buffer)w '
et2 fsDFileu2
'
"# q2"n et2'
4m(m.m& Read Filename)Mail filef"ew'u2
et2 fsDFileu2
0u3'
@fn| q7:ju3
bf"nw1'*(m(m.m& Initialize Babyl Buffer))u1
q3"l q7:j"l q8fsWindoww''
qBabyl G Done Hookf"nu2 q1m2'w |
!REDO-G!
0,fsZfsBoundw
qBabyl Append Option&1"n zj
-@f
	 
:d
0a-"n :i*Babyl bug: no ^_ at end of filefsErr
i''
"# j s'
q3"e
.,.fsBoundw fn hk 
1:< 1,er @y >w
0u6
:f~BABYL OPTIONS:"e 1u6
1,m(m.mConvert Babyl File Version)w
j :s b,.k'
"# :f~*APPEND*"e 2u6 k'
"#
zj -@f
	 l
0,0a-"e
j:l -@f0123456789l
0,0a-;"n 2u6''''
j q6-1"e 14.,1a-14."n :i*Babyl bug: should be ^L herefsErrw''
      "# q6m(m.m& Babylize Buffer)'
0u..n
j '
fsXUName:f6u1
0u4
e?[BABYL 1"e fsDFileu1
ftThere is some mail from a previous Babyl crash.
It is being read in, and will be 
qBabyl Append Option&1"e ftafter'"# ftbefore'
ft your new mail if any.
It is possible that it does not belong to this particular Babyl file.
(If you only have one Babyl file then it will belong.  Otherwise you may want
to sort the messages out, using the O command to write them to other files.)

		   1u4'
"#
q2fsDFilew
e?"n
q4"e @ft(No new mail) 0fsEchoActivew' '
fsOSTeco"n :'1< er ec
enABYL 1
>+0"n fg ftCannot get new mail (cannot rename mail file).
	Perhaps another program, such as MM or the mailer, has locked the mail file.
	'
0u4'
.,.fsBoundw
e[fne]
fn hk 
:i*AReading Mail file 2fsEchoDisplayw
 er fsIFileu5
@y @ft

qBabyl XMail Optionf"n u1
e?1"N et1 eief '
qBabyl XMail Append Option"n
:i*AAppending to XMail filefsEchoDisplay
     q1m(m.m& Babyl Append)"e
bj er1 fy
-@fk 0,0a-14."e -d'
f[DFile et[TECO] OUTPUT fsOSTeco"n 0fsDVersionw'
ei
f]DFile hpef
b,.k'
fsOFileu1
@ft 1
    0fsEchoActivew'
"#
      :i*APrepending to XMail filefsEchoDisplay
      zj er1 @a
f[DFile et[TECO] OUTPUT fsOSTeco"n 0fsDVersionw'
ei
f]DFile hpef
.,zk
fsOFileu1
@ft 1
     0fsEchoActive''w
:f~BABYL OPTIONS:"e 1,m(m.mConvert Babyl File Version)w
j:s b,.k'
"# :f~*APPEND*"e k''
14.,1a-14."n
m(m.m& Babylize Buffer)' j
qBABYL Append Option&2"n
  -.  :s$w '
0u..n
qBabyl Append Option&1"n
:i*AAppending to Babyl filefsEchoDisplay
q3m(m.m& Babyl Append)"n
@ft 3
	0fsEchoActivew'
"#	m(m.m# Babyl S)''
"# m(m.m# Babyl S)'
ed5
q4"n oREDO-G'
@[1[2
0,(fsZ)fsBoundw
m(m.m& Reformed Bit)"n
m(m.m& Bounds Of Original Header)u2u1
q1,q2x1
fq1"e m(m.m& Babyl Select Message)
0m(m.m& Reformed Bit)w'
"# :g1u2 0u2
m(m.m& Bounds Of Header)k
g1''
m(m.m& Remove Basic Label)bad-headerw
ff"e
m(m.m& Reform Header)'
m(m.m& Babyl Select Message)
(	[1 0[2 [3[4
f[DFile
qBabyl File Versionu4
1f[FnamSyntax
fsXUname:f6u1 etDSK:1 BABYL
fsHSname fsDSnamew
fsOSTeco"n q4+1"e 0'"# q4'fsDVersionw'
qBabyl Default Filef"n fsDFile'w
ff&2"e
0[Buffer Filenames
m(m.m& Read Filename)Babyl fileu1
]Buffer Filenames
q1"e '
et1
fsOSTeco"n q4"g fsDVersion"e q4fsDVersionw fsDFileu1''''
"# u1'
1,m(m.m# Babyl Q)
:i*CfsEchoDisplay
et1
fsDFilem(m.m& Read Babyl File)"n
ff&1"e 1u2''
fsOSTeco"n q4"e
fsDVersion"e
fsIFVersionfsDVersionw'''
fsDFileuBabyl Filenames
0uBuffer Filenames
0u:.b(qBuffer Index+2)
-1uInhibit Write
m(m.mConvert Babyl File Version)u3
m(m.m& Reset Babyl Options)
qBabyl Owner Optionf"n u1 f~(fsXUname:f6)1"n
0u2''w
q2"n
fsDFilef(uBuffer Filenames
)u:.b(qBuffer Index+2)
0uInhibit Write
q3"n @m(m.m# Babyl S)''
qBabyl Append Option&1"n zj -1'"# j's
0u..h
1,m(m.m# Babyl G)
qBabyl O Filename"e
et XMAIL
fsOSTeco"n q4f"g fsDVersion'w'
fsDFileuBabyl O Filename'
qNumber of Babyl Messages"e
:i*Babyl bug:  empty file.  Please report the circumstancesfsErr
:@m(m.m# Babyl Q)'
:m(m.m& Babyl Select Message)m.[1 0fsVB[2 0fsVZ[3 [4
ff&1"e
1m(m.m# Babyl J)
m(m.m& Check Message Label)deleted"e '
1:m(m.m# Babyl N)'
"l
qNumber Of Babyl Messagesm(m.m# Babyl J)
m(m.m& Check Message Label)deleted"e '
1:m(m.m# Babyl P)'
-qMessage Numberf"gu4
qNumber Of Babyl Messages--q4f"l+q4u4
zj -q4f"l:s
     "e oNoSuch''w'"#w
q4f"g:s
     "e oNoSuch''w''

 "#w
-(qMessage Number-)f"lw
j f"ew 1':s
	"e oNoSuch''
"#-u4
q4f"l:s
	"e !NoSuch!
q1j q2fsVBw q3fsVZw
:i*No Such Message f;Babyl-Command-Abort''w''w
f"ew 1'uMessage Number
m(m.m& Babyl Select Message)
v[1[2
 m(m.m& Push Message)
ff&1*"e
m(m.m& Babyl Select Message)'
"# m(m.m# Babyl J)'
m(m.m& Add Basic Label)deletedw
"e m(m.m& Bounds of Header)w'
.,zx1
zj 0a-10"n :i11
'
qBabyl K Textu2
:iBabyl K Text2
1
f@m(m.mLabel Message)w i[1[2[3
 :f"g :i*'"# 0'u1
m(m.m& Push To Buffer)*Babyl*
"l
m(m.m& Babyl Get Message Labels)f"ew :i*Not labeledfsErr'(
      )u2
m(m.m& Use Babyl Label Table)
qBabyl Label Abbrevs Specu3
:i*2,3(
)m(m.m& Make Babyl Label Table)[Babyl Labels Option
@fn| qBabyl Labels OptionfsBKillw|
:i2Remove
1u3'
"#
:i2Attach
0u3'
m(m.m& Use Babyl Label Table)
:"l 2+'q3,q1m(m.m& Read Babyl Label)2 label: f"e'u1
f m(m.m& Label Babyl Message)1'
w[1[2[3[4
 "e '
"l -m(m.m# Babyl P)'
-u1
qMessage Numberu2
q2u3 .u4
m.m# Babyl ^N
m.m& Check Message Label
@fn| mCdeleted"n
q2m(m.m# Babyl J)
q2-q3"e q4:jw''
|
< ,1mN
mCdeleted"e
qMessage Numberu2
%1;'
>
 6[1[2 qBabyl O Filename[3[4
q3fp-99"g q3'f[DFile
e[ e\ fn e^ e]
ff&2"e
5,fAdd message tou1
qBabyl File Versionu4
et1 fsOSTeco"n fsDVersion"e
q4"e
1u2 1:<er fsIFVersionu2 ec>w
q2fsDVersionw'
"# q4fsDVersionw'''
fsDFileuBabyl O Filename'
fsQPPtr(
0f[VB 0f[VZ
.:\u1 fn1j
-s
   c .,(s).fsBoundariesw
q..ou1
q3fp"e q3[..o
fsZ"e oNEW''
"#
f[BBind
fsOSTeco-2"e
1:<er>"n oNEW'
@y'
"#
e?"e er @y'
"# !NEW!
qBabyl O Confirm New File"n
@ftOutput message to new file?  1m(m.m& Yes or No)"e ''
iBABYL OPTIONS:
Version:5
Append:1
'''
m(m.mConvert Babyl File Version)w
j :s
Append:+1"e @f	 l
\&1"n
zj
-@f
	  k 0a-
"e -d''
"# j s ''
"# j:s
Append
+1"e
zj
-@f
	  k 0a-
"e -d''
"# j s''
.(g1)j
l :fb, deleted,"l fk+1d'
0l :fb, recent,"e 2c i recent,'
0l qBabyl O Message Hookf"nu1
m(m.m& Babyl Select Message)
m1'w
0,(fsZ)fsBoundw
q3fp"n
f[DFile et[TECO] OUTPUT fsOSTeco"n 0fsDVersionw'
ei
f]DFile hpef'
)fsQPUnwind
 qBabyl O Done Hookf"nu1 m1'w
*1,m(m.m& Label Babyl Message)filed m"e '
"l -:m(m.m# Babyl N)'
-[1[2
qMessage Numberu2
@fn| m(m.m& Check Message Label)deleted"n
	q2:m(m.m# Babyl J)' |
m.m# Babyl ^P
< 1mP
m(m.m& Check Message Label)deleted"e
	qMessage Numberu2
%1;'
>

 bqBuffer Filenames"n
ff&1"e 1,m(m.m& Babyl Expunge)'
m(m.m# Babyl S)'
0,fsZfsBoundw hk f?
0fsXModifiedw 0fsModifiedw
0uBabyl Filenames
 0uBuffer Filenames
 0u:.b(qBuffer Index+2)

 :iBabyl Modified Messages
fq*Survey* Buffer"G
q*Survey* Buffer[..o
hk 0fsModifiedw 0fsXModifiedw
]..o '
ff&2"n '
f;Babyl-Catch?m.m& Label Babyl Message
1,mLanswered
1,-1mLreply
(qBuffer Filenamesf"ew 
'[1  f[DFile
fsModified"e
:i*CfsEchoDisplay
@ft(No changes need to be written)
   0fsEchoActivew '
1,m(m.mWrite File)1
ZfsQPPtr[0 [1[2
:i*Standard Reply[Current Babyl Template Name
:i*To continue editing this message use the C command(
    )[Abort Resumption Message
.( 1m(m.m& Parse Header) )j
fsQPPtru2
(-3"'e)(-4"'e)"n
0'"# 1',1m(m.m& Push to Edit Mail)
fsModified"n
ft
Last message being composed seems to have been aborted.
      Continue editing aborted message? 
      m(m.m& Yes or No)"n q0fsQPUnwindw
f@:m(m.m# Babyl C)''
fm(m.m& Setup Reply Template)
j <:s; -d> zj
qBabyl R Hookf"nu1 m1'w
m(m.mEdit and Mail Buffer)
q2fsQPUnwind
qBabyl R Done Hookf"nu1 m1'w
[1[2[3[4[5[6 qBabyl Trim Recipient List[7 [8[9
1f[BothCase 1f[^PCase
0u0
0fsWindoww
hk iTo: 
qReply-to:u0 fq0"g g0'
"# qFrom:u0 fq0"g g0'
"# :i*Cannot reply -- no FROM or REPLY-TO field f;Babyl-Command-Abort''
zj ff&1"n '-1"n
qTo:u1 fq1"g icc:  gTo:'
qCc:u1 fq1"g icc:  gCc:''
q7"e zj qBabyl CC Tof"nu1 icc:  g1 i
   ''
zu5
fsOSTeco"n zj qBabyl Fcc Tof"nu1 iFcc:  g1 i
   ''
qBabyl Reply-To Fieldf"nu1 iReply-to:  g1 i
	'w

 zj -2f=
"n i
     '
zj qSubject:u1 fq1"g .(iRe: 1)j l.,zk'
zj gBabyl Header/Text Separator i

-3"e @fn|@m(m.m^R Babyl Yank)w|'
-4"e @fn|16@m(m.m^R Babyl Yank)w|'
q7"e '
z-q5u5
fsBConsu2
m.m& Process Recipient Field
:i9
0fo..qDebugging Babyl"e :'1<
fsMachine:f6,q2 mpTO
>+0"n :i9TO field'
fq2u3
0fo..qDebugging Babyl"e :'1<
fsMachine:f6,q2 mpCC
>+0"n fq9"g :i99 and ' :i99CC field'
fq9"g fg ftWarning!  Parsing error(s) in the 9.
The recipient pruning stage has been skipped.
Do you want to continue, so that you can edit the header yourself to
   correct this problem?  
       m(m.m& Yes or No)"e 0u..h
:i*Aborting the reply f;Babyl-Command-Abort'
       '
q..ou4 q2u..o j
fq0"g q3j .,zfsBoundariesw'
fsXUName:f6u1 0s
1@
qBabyl Dont Reply Tou1
q1fp"g 0s1'
j i

<  .-z; .u6
q7"g
1a-*"e 2k !<!>'
5f~INFO-"e 2k !<!>'
:@f%@x8
0fo..qBabyl No 8 Reply"n
2k !<!>''
q1"n
2r 2f:fb"l q6j 2k !<!>'
q6j'
2l >
j 2d
qBabyl CC Tof"nu1
zj
f[BBind icc:  g1 i

fsMachine:f6,q2 mpCC
f]BBind'
  l  l 
:i1
<  .-z; ff~1"e 2k'
"# x1 2l' >
j 0fsVBw
<  .@; -2l x1
.( 2l <.-z; ff~1"e 2k'"# 2l'> )j
>
j .,q3fsBoundariesw
z"g  iTo: 
< .u1 k :l i, 
fsSHPOS-70"g q1j i
    '
:l 2d .-z; >
-2d i
'
0fsVZw .-z"l iCc: 
< .u1 k :l i, 
fsSHPOS-70"g q1j i
    '
:l 2d .-z; >
-2d i
'
q4u..o
b,(z-q5)k
g2 q2fsBKillw
zj ,ff"n m(m.m# Babyl J)'
fsz-z"e ftEnd of file
   '
[0[1 [3[4[5
 ft
#  qMessage Number=
m(m.m& Bounds Of Header)u4u5
q5j 1u3 <l.-z;%3w>
q5f[vb j4l .-b-200"g b+200j .u1 :l fshpos-120"g q1j '"# l ''
.-q4"l q4j '
z-.-150"l zj '
b,.t -2f=
"n   ft
'
:m(m.m& Babyl --MORE--)
[0[1
 ff&1"n fsTypeout"g 1u..h'
m(m.m# Babyl J)
m(m.m& Check Message Label)deleted"e
:i*Message not deletedf;Babyl-Command-Abort''
"#
.u0
qMessage Numberu1
m.m# Babyl ^P
f<!Babyl-Command-Abort!
m(m.m& Check Message Label)deleted@:;
1mP
>"n q1m(m.m# Babyl J)
q0j
:i*No previous deleted message f;Babyl-Command-Abort''
m(m.m& Remove Basic Label)deletedw
 f:m(m.mMail With Template)3fsVB+(fsWindow)fsWindoww
0,fsZfsBoundw
#fm(m.m^R Extended Command)w a[0[1[2
 ff&1"n "g m(m.m# Babyl J)'
"# :iBabyl K Text ''
.( zj 0a-10"n i
'
gBabyl K Text )j
:iBabyl K Text
qMessage Number:\u0
:fo..qBabyl Modified Messagesu1
q:..q(%1)u2
:i:..q(q1)20m0

2qNumber of Babyl Messages:\[1
:i551 0	bj
	zj
[1
 m(m.m& Bounds Of Header)u1u1
fnq1j
.: :s"l r'"# zj'
ff"n "n ''[Fill Column
ff"n :"g
1''@m(m.m^R Fill Indented Mail Region)w f:m(m.mthe Babyl Helper)%f@m(m.mNext Labeled Message)w *[1[2[f @ft
Type a Babyl command character to describe, "*" for all of them: 
f@:fi-233."e 
fiu1
q1-*"n 1,q1m(m.m& Babyl Macro Get) '
ft
Single-character Babyl commands:


 m.m& Babyl Macro Getu2
m.m& Maybe Flush Outputuf
A-1u1 Z-A+1< 2,%1m2 mf >
ft0-9: Accumulate a numeric argument

 -1u1 0< 2,%1m2 mf >
9u1 A-9-1< 2,%1m2 mf >
Zu1 a-Z-1< 2,%1m2 mf >
zu1 -z< 2,%1m2 mf >
ft
Extended commands (invoked with "X"):
 !''!
 m(m.m& Get Library Pointer)BABYL m(m.m& List One File)C 
	-f? 6fq5"g
0,fq5-1:g5u5
0'
:i*C fsEchoDisplayw 0[1
 0,fsZ fsBoundariesw
:s"e zj -s
qNumber of Babyl MessagesuMessage Number'
"# r'
fsZ-.fsVZw
-:s
"e
0fsVZw :s
"e
m(m.m& Make Dummy Message)
r'
1uMessage Number
:m(m.m& Babyl Select Message)'
:s
*** EOOH ***
"e :i*Babyl bug: no EOOH linefsErr'
 .fsVBw
}[0[1 0[2 [3[4[5[x
qMessage Numberu5
0,fsZfsBoundw
.u0 j
0s, deleted,
<  :s;
0l -4f=
   "n l !<!>'
0l .-3,(@:flc).f(k)u1
q0,.fux,q0-q1fu0w
.-q0"l q5-1u5'
%2w >
j 0s, recent,
<  :s; .u4
0l -4f=
   "n l !<!>'
q4j -8d
q0,.fux,q0-8fu0w
>
q0:jw
qNumber of Babyl Messages-q2f(uNumber of Babyl Messages
),q5f:uMessage Numberw
h.[0[1[2
0f[vb 0f[vz
:s"l r' .u2
0s

0u1
j < .,q2:fb; %1w >
q1uMessage Number
q0jTq0,q1(
.:\u0 fsWindow+b:\u1
@fn| 0fsVBw 0fsVZw
0:j"e zj'
m(m.m& Babyl Select Message)
0-b"l b'"# 0-z"g z'"# 0''j
1-b"l b'"# 1-z"g z'"# 1''-bfsWindoww
|
    [Message Number
    )u1u0
: [1 0f[VB 0f[VZ
-:s
"e j'"# l'
:s
*** EOOH ***
w
.u1
4f~MSG:"e l
< 8f~DISTRIB:@:; l >
< 8f~EXPIRES:@:; l >'
:fb:@f"ew :i*Bad header -- not ITS or NET stylefsErr
 '+1"e :s

+1f"e q1,.
'+1"e r q1,.'
"# zj''
l
<4f~TO: @:; l>
<4f~CC: @:; l>
q1,.P0f[VB 0f[VZ
-:s
"e j'"# 2l'
.( 2:rw :s
*** EOOH ***
   "l -l' ),.[0[1[2[3[4[5[6[7[8[9 [..j
 :i*Babyl[Editor Name
m(m.m& Babyl Select Message)
fsModeMacm.vPre-Babyl Mode Macrow
m.m& Babyl Set Mode Linef[ModeMac
fs^REnteru0
@:i*| qPre-Babyl Mode Macrof[ModeMacro
0|f[^REnter
-1u0
f<!Babyl-Catch!
m.m& Reformed Bitu2
m.m& Reform Headeru4
m.m& Remove Basic Labelu6
m.m& Babyl Macro Getu7
qBabyl Command Hookf"ew :i*'u8
qBabyl No Reformation Optionu9
0uBabyl Variables Reset
@:f<!Babyl-Command-Abort!
fsZ"e f;Babyl-Catch'
qBabyl Variables Reset"n 0f;Babyl-Command-Abort'
:i5
fsListen+(fsTYISource)"g oINPUT'
m2"e q9"e m4''
fsRgetty"n fsEchoActive"l
:i*CfsEchoDisplay 0fsEchoActivew''
1fsModeChw
1m8
@v
2m8
fsTypeout"l fsListen"e m6unseenw''
!INPUT!

    0f[HelpMacro
fsRgetty"e fsTyoHPos"e ft:''
@:fi-233."e 
fiu0 q0fsEchoOut
0u..H
0fsEchoActw
f]HelpMacro  q0-4110."e ?u0'
q0m7u1
3m8
[2[3[4[6[7[8[9[0
5@m1fu1
]0]9]8]7]6]4]3]2
0fsFlushedw
4m8
q1"n oINPUT'
>f"L u1
@ft
1.  0fsEchoActive'w
>y[1[2
fsReReadw fiu1
-4110."E ?u1'
q1:i2
q1-33"L q1+100.u2 :i2^2'
"# q1-127"E :i2<Rubout>''
"E 1,m.m# Babyl 2f"N 'w'
q1-8"E :i2<Backspace>'
"# q1-9"E :i2<Tab>'
"# q1-10"E :i2<Linefeed>'
"# q1-13"E :i2<Return>'
"# q1-27"E :i2<Altmode>'
"# q1-32"E :i2<Space>''''''
"E :i*2 is not a Babyl command f;Babyl-Command-Abort '

 1,m.m~DOC~ # Babyl 2f"Ew -1"G  '
:i*- is Not a Babyl Command.'u1
-1"e
ft2: 
f[BBind
g1 j:@f k d
< :s;
b,.-1t b,.k
.,(s -d).fx1
0:g1-"e m1'
"# 2,m(m.mWhere Is)1"e
ft1''
>
ft..o
   '
"#
2,(1f"L wfq1'):g1u1
ft2: 1
   '
a[1[2
 .-z"n
.( 0u2 <%2wl.-z;> )j
ft( q2:= z-./(fsWidth*q2)<ft*>
ft lines)--MORE--'
h[1[2
 0fsVBw -s
 l .fsVBw
f1
0fsVZw s r z-.fsVZw
-2f=
"e 2r'"# i
 2r'
@fn|
zj2r .,(-@f
	 -l 0f"n :l').:d
j
|
qBabyl Reformation Flushes These Fields[Unknown Field Flusher
1@:<
1,m(m.m& Parse Header)
>"n
m(m.m& Add Basic Label)bad-headerw
j s
*** EOOH ***
	.fsVBw '
qBabyl Reformation Merges From/Reply-To"n
m(m.m& Babyl Process Sender Fields)'
z-.u1
j :l
.,(s
*** EOOH ***
  fkc).k
2l
qBabyl No Original Option"e
.,z-q1x2
-l g2 l'
.fsVBw
f[BBind
m(m.m& Form Header)
zj i

hx2
f]BBind
g2
.-2,z-q1k
j
 0uParsed Message Number
[1[2[3[4[5
:fo..qParsed Message Number+1u1
:fo..qMessage Number+1u2
"n
q:..q(q1)-q:..q(q2)"e
m(m.m& Bounds Of Header)jw '
"#
q:..q(q2)u:..q(q1)''
"#
0u:..q(q1)'
:i1
q1uDate:
 q1uFrom:
 q1uSender:
 q1uSubject:
 q1uTo:
 q1uCc:
 q1uReply-to:
 q1uMSG:
 q1uMail-from:
 q1uMessage-ID:
 q1uRedistributed-By:
 q1uRcvd-Date:
 q1uUnknown:

 q..o( f[BBind gUnknown Field Flusher
q..ou5 [..o
)u..o
0f[VB -s
 l .fsVBw
s
*** EOOH ***

4f=MSG:"e 4c @f	 r @xMSG: l
<	8f~DISTRIB:@:;
8c @f	 r @xTo: l >
<	8f~EXPIRES:@:; l >
'
.u1
:fb@:f"ew ff&2"n j -1fsErrThrow'
:i*Bad header -- not ITS or NET stylefsErr'+1"e
s  r 0x4 :iFrom:4

c 9f=(Sent by "e 9c .,(fb) ).-2x4 :iSender:4
'
.u2
:fb Re: "l @f	 l xSubject: 5r'
"# :l'
q2,.x4 :iDate:4
	l
< 4f~TO: @:; 3c @f	 l @xTo: l >
< 4f~CC: @:; 3c @f	 l @xcc: l >
'
"#	q1j :s

"e zj'"# @f
d 2r'
fsZ-.f[VZ
q1j < .-z; .,(:fb:"e ff&2"n j -1fsErrThrow'
:i*Bad header -- no colon in fieldfsErr'
r -@f	 r).x1 c
f~1Sent-by"e :i1Sender'
f~1Received-date"e :i1Rcvd-Date'
f~1Re"e :i1Subject'
@f	 l x2
< l .-z;
1af	 :;
@x2 >
0fo..q1:f"nu3 fq3"g
0:g:..q(:fo..q1:+2)-,"e
0,fq3-2:g3u3
:i*3,
 2'"#
:i*3 2''"# q2'u1:'
"#w
q5[..o j :s[1]"e
.(g1i:g2),.@fxUnknown:'
]..o'
>
f]VZ 2:cw
'
W[0[1[2[3 f[BBind

 @:i*|j @f 	
kzj -@f 	
k|[S
gSender: mS hfx2
gReply-to: mS hfx3
gFrom: mS
j :s<"n
.-1u1 :s>"e '
.-z"n '
-d q1jd
q1,zfx1'
"# :i1'
mS hfx0
g1 mS hfx1
fq1"e
g3j @:f,()<>l .-z"e
hf~0"n q3u1'
:i3'"# hk''
"# f~13"e :i3''
fq1"e f~02"e :i2''
"# f~12"e :i2''
fq1"g :iFrom:0 <1>
'
"# fq0"g :iFrom:0
''
fq2"e q2uSender:'
"# :iSender:2
'
fq3"e q3uReply-to:'
"# :iReply-to:3
'
=[1[2[3[4[5[6[7[8[9 [P .f[VB fsZ-.f[VZ
fsBCONSu5 fsBCONSu9
@fn|q5fsBKillw q9fsBKill|
q9[..o gBabyl Reformation Flushes These Fields ]..o
fsMachine:f6u7
fsOSTeco"E :i7MIT-7 '
qBabyl Reformation Controlu0
0u4
q0-1"l
:@i1|:i2 fq2::"G 0'
.,(g2:).(
j :s@ at "l
@f	 l .,( @:f
	 ,<>()l
).x4'
)k q4|
m1Redistributed-by"E
m1From"E
m1Sender"E
fqMail-from:"G
f[BBind gMail-from:
qBabyl ..D[..d  0u4
j :s HOST "l
.u4 :s RCVD AT "l q4j
:@fll @flf(x4)l'
"# 0u4''
"# j @f	 l @flf(x4)l
9f~ RCVD AT "n
:f"n 0u4'''
]..d f]BBind'''''
q4"E q7u4 '
:@i6|:i2 fq2:"E'
"e q9[..o j:s[2]"l' ]..o'
i2: 5-(fsHPos)f"lw0'+1,40.i
.(g2:)j l <.-z;i     l>|
:@i1|:i2 fq2:"E'
fm62|
q0-2"l
m.m& Process Recipient FielduP
:@i1|1
0fo..qDebugging Babyl"e
:'1< q4,q5mP2w
>+0"n :i* Parsing error in 2:-fieldfg'
zj|'
m6MSG
fqDate:"n q9[..o j:s[Date]( ]..o )"e
.(1,m6Date)+6u2
fsOSTeco"n
q2j :x8
:l 0a-)"e -flk -@f 	k'
-4c 1a- "e di-'
q2j 1a"a @:f, l @f, l'
fsFDConvertu3 q3+1"e r'
:f"e q2,.k
332221000000.,q3fsFDConvert
-s  i '
"# q2j :k g8'
zj'''
m1From
fqSender:"n qSender:u2 f~From:2"n m1Sender''
m1Reply-To
 m1Redistributed-By
 m1To
 m1cc

 fqSubject:"n
q9[..o j:s[Subject][Re]( ]..o )"e
.(1,m6Subject)j 8diRe:   
0fo..qBabyl Remove Subject Labels"n
<
@f	 k
0,1a-!"n 0,1a-{"n 1;''
0,1a-!"e d'
0,1a-{"e .,(:fb};).k'
>'

    < @f	 k
3f~Re:@:; 3d >
zj''
m1Mail-From
m1Rcvd-Date
m6Redistributed-By
fqUnknown:"G gUnknown: fkc
< .-z;
1af	 "l
:fb:w 5-(fsHPos)f"lw0'+1,40.i'
l > '
z-b"e	iMessage:
	'

 i

5fsZ-(z-b)"n :i*Bounds not widefsErr'
[1[2[3[4 fsDFilew hk
 e[e\ fne^e]
m.m& Yes or No
 qBabyl File Versionu3
!RETRY!
 e?"n
fsDFileu1 ftThere is no Babyl file 1.
Do you want to create one? 
my"n
1@:< 0u2
fsDFile, m(m.mCreate Babyl File)
1u2 >w q2"e oRETRY''
"# ftWant to specify another filename? 
my"n m(m.m& Read Filename)Babyl fileu1
q1"n et1 fsOSTeco"n fsDVersion"e
q3"l 0u4'
"# q3"g q3u4'
"#
1u4 1:<er fsIFVersionu4 ec>w''
q4fsDVersionw''
oRETRY''
:i*No Babyl file f;Babyl-Catch''
:i*AReading Babyl filefsEchoDisplay
 er fsIFileu1
@ft 1
@y
@ft

0fsXModifiedw 0fsModifiedw

 j 1f~BABYL OPTIONS:
"e
zj -@f
	 
:d
0a-"n :i*Babyl bug: no ^_ at end of filefsErr
i'
j 1'
QBefore Babylizing File HookF"N U0 M0'W
iBABYL OPTIONS:
Version:5

10f~*APPEND*
"e 10d jl iAppend
   '
j s .fsVBw
m(m.m& Babylize Buffer)
0,fsZfsBoundariesw
0 [1[2[3[4
 ff&1"n '"# 5'u2
j :ff~BABYL OPTIONS:"n
:i*Not a Babyl file (no BABYL OPTIONS section)fsErr'
:s
Version:+1"n :i*No version found in BABYL OPTIONS sectionfsErr'
 @f	 l
1a:"d :i*Version must start with a digitfsErr'
\u1
q1-q2"e j 0'
ff&2"n
fsQPPtru4
hfx3
f[BBind g3
0u3'
q1,q2m(m.m& Convert Babyl File Version)
0,(fsZ)fsBoundariesw j :s
Version:+1"n
:i*No version found in BABYL OPTIONS section after conversion!!fsErr'
 :k q2\
ff&2"n
hfx3
q4fsQPUnwindw
g3 0u3'
j ft
Done. 1H[3[4 fsQPPtr[0
0,(fsZ)fsBoundariesw
:\u3 :\u4
ft
Converting Babyl file from version 3 to 4...

 :oCV 3 to 4
ft by steps:
 -"l
--1"e :i*I do not know how to convert 3 to 4fsErr'
    ,+1m(m.m& Convert Babyl File Version)
+1,:m(m.m& Convert Babyl File Version)'
--1"e :i*I do not know how to convert 3 to 4fsErr'
 q0fsQPUnwindw
,-1m(m.m& Convert Babyl File Version)
-1,:m(m.m& Convert Babyl File Version)
!CV 3 to 4!
[1
 j< :s
   ; .u1
:s
*** EOOH ***
+2"e
q1j l i*** EOOH ***
     '
q1j >




 !CV 4 to 3!

!CV 4 to 5!
[1[2[3
 j :s
Keywords:+1"e fk+2d iLabels:'
j< :s
;  @f
   k .-z;
.u1
< :fb{; -d -@f	 k i, 
:fb}"e :i*Oops -- no } after label!!fsErr'
      -d > :l -@f	 k i,
q1+1j 8f[IBase \u2 f]IBase
q1+6j i,
q2&4"n q1+6j i bad-header,'
q2&2"e q1+6j i unseen,'
q2&10."n q1+6j i answered,'
q2&20."n q1+6j i filed,'
q1j 1a-D"e q1+6j i deleted,'
q1j 5d q2&1+0i
>


 !CV 5 to 4!
[1[2[3
 j :s
Labels:+1"e fk+2d iKeywords:'
j< :s
;  @f
   k .-z;
0l :fb, recent,"l fk+1d'
0l 1a-0u2 d
0l :fb, unseen,"l fk+1d'"# q22u2'
0l :fb, bad-header,"l fk+1d q24u2'
0l :fb, answered,,,+1"e fk+1d q210.u2'
0l :fb, filed,,,+1"e fk+1d q220.u2'
8[..e 10000.+q2:\u2 ]..e
0l :fb, deleted,"l fk+1d 0:f2D'
0l :fb,,"e :i*Ooops--broken assumptionfsErr' -d
0l g2
0s,  <:fb; } {>
0l5c 1a-}"e d'
:l -d
0f-5"g i}' >
T[1[2
bj 0f[VB
0a-"n :i*Must have Control-_ just above VB fsErr'
       f]VB
zj 0f[VZ
14.,1a-14."n :i*Must have Control-L just below VZ fsErr'
       f]VZ
0u2
ff&1"n
"e oITSIFY'"# oITSIFIED''
zj -@f
	 l
0,0a-"e
j:l -@f0123456789l
0,0a-;"n oITSIFIED''
!ITSIFY!
m(m.m& ITSify TNX Mail)
1u2
!ITSIFIED!
bj @f
	 k
0s
<  i
0, recent, unseen,,
*** EOOH ***

@f
	 k
:s; >
zj -@f
 	k
-36f=
0, recent, unseen,,
*** EOOH ***"n :i*Mail file does not end with Control-_ fsErrw'
 -36d
q2&(qBabyl Convert TNX Flags to Labels"'n)"n
    bj m(m.m& Autolabel TNX Bit Labels)'

 qBabyl Autolabel Messages"n
bj m(m.m& AutoLabel Subject Labels)'

 bj i0[1 .[2 -[3
:s"l r'
0s

0uParsed Message Number
ff&1"e
fsVZu3
0,.fsBoundw j <:s;%1>
q1uMessage Number
q3fsVZw <:s;%1> q1u3
0fsVZw <:s;%1>
q1uNumber of Babyl Messages
q2j'
:iBabyl Modified Messages
fq*Survey* Buffer"G
q*Survey* Buffer[..o
hk 0fsModifiedw 0fsXModifiedw
]..o '
m(m.m& Babyl Select Message)
q3A[1[2 0f[VB 0f[VZ jl
0m.vBabyl XMail Optionw
0m.vBabyl XMail Append Optionw
0m.vBabyl MAIL Optionw
0m.vBabyl Version Optionw
0m.vBabyl No Original Optionw
0m.vBabyl Owner Optionw
0m.vBabyl No Reformation Option
0m.vBabyl Labels Option
0m.vBabyl Expiration-Check-Interval Option
0m.vBabyl Expiration-Check-Time Option
fsOSTeco"E 0 '"# 2 ' m.vBabyl Append Optionw
< 1a-@;
:fb:"l
r 0x1
c@f 	l :x2
1a"D2\w @f 	l (1a)-
"# :x1
1u2'
l
1:< q2uBabyl 1 Option
>"n
'
>
qBabyl Owner Optionf"nu1
q1fp"g ,f1:"l
f[BBind g1 j fsXUName:f6u2
j i, zj i,
j 0s  <:s; -d>
j :s,2,"l
q2uBabyl Owner Option''''w
1uBabyl Variables Reset
[0[1[2[3[4
QBabyl Keep TNX Received DateU0
QBabyl Convert TNX Flags to LabelsU3
j < .-z; .u2
:fb,; \u1 0,1a-;@:;
Q3"N
c :f@; x4 '
l z-.-q1u1
Q0"N
Q2J
IRcvd-Date: 
:FB,W -1C I

.U2 L '
q1"l 0u1 '
<9f~Mail from@:; l>
q2,.k
Q3"N
IX-Babyl-TNX-Bit-Flags: g4 '
<.,z-q1:fb;^_>
z-q1j
i
@f
 	k
>
 .-z"e ,0a-"e j ''
:i*Bad message filefsErrMf~(qBuffer Name)*Babyl*"n '
q..o-q:.b(qBuffer Index+4)"n '
fsZ"e :i..jBabyl [no file] '
f[InsLen
f[SString
[1[2[3[4[5[6[7 m(m.m& Push Message)
qBabyl Filenamesf"ew :i*???'u1
qBuffer Filenames"e :i11 (RO)'
qNumber Of Babyl Messages:\u2
b"e fsZ-z"e
:i3Babyl (Messages 1-2) 1 
f=..j3"n q3u..j' ''
qMessage Number:\u3
0f[VB -s
lc
.,(fb,,).-1x4
:@x4
0,fq4-1:g4u4
0l :fb, deleted,"l !<!:i7>'"# :i7'
0u6
1f<!BSML! :i*BSML,1m(m.m# Babyl N)w
1u6>w
q6"e :i44, 7last'
:i5Babyl (Message 3/24) 1 
f=..j5"n q5u..j'
W.:\[1 fn1j 0f[VB
-s
lc
.,(fb,,).-1x1
:@x1
0,fq1-1:g1u1
fq1"g q1'
0T0f[VB .[0 fnq0j [1[2
 -s
l

 :fb, deleted,"l Du2'
"# :fb, unseen,"l -u2'
"# :fb, answered,"l Au2'
"# :fb, recent,"l +u2'
"# :u2''''
0l fb,, :x1
fq1"g 1,fq1-1:g1u1 :i1{1} '
q2,q1{[0[1[2[3[4
 :f"g :i*( :i1 )u0'
"# 0u0 0u1'
m(m.m& Push To Buffer)*Babyl*
 m(m.m& Push Message)
ff&1"e
1m(m.m# Babyl J)w
qNumber of Babyl Messagesu2
1u3'
"# "l -u2 -1u3'
"e 1m(m.m# Babyl J)w
qNumber of Babyl Messagesu2
-1u3'
"g u2 1u3''
q3"g :i4Add'"# :i4Remove'
2,q0m(m.m& Read Babyl Label)Consider messages labeled: f"e'u0
2,q1m(m.m& Read Babyl Label)4 label: f"e'u1
m.m& Label Babyl Message
1,q2m(m.m& Map Over Labeled Messages)1,q3mL10 K[k
 m(m.m& Push To Buffer)*Babyl*
2,(:f"g :i*')(
    )m(m.m& Read Babyl Label)Delete messages labeled: f"e'uk
 0[Babyl N After D
m.m# Babyl D
fm(m.m& Label Map Command)kmd N[k
 m(m.m& Push To Buffer)*Babyl*
2,(:f"g :i*')(
    )m(m.m& Read Babyl Label)Undelete messages labeled: f"e'uk
 m.m& Remove Basic Label
fm(m.m& Label Map Command)k mudeletedw 5
f[DFile [k[1[2[3[4[5
 :f"g :i*( :i*u1 )uk'
"#	:ik :i1'
m(m.m& Push To Buffer)*Babyl*
fqk"e
2,m(m.m& Read Babyl Label)Output messages labeled: f"e'uk'
qBabyl File Versionu5
fq1"e
etk XMAIL
fsOSTeco"n
q5+1"e 0'"# q5'fsDVersionw
q5"e e[fne] 1u2
1:<er fsIFVersionu2 ec>w
q2fsDVersionw''
q5+1"e 1'(
)m(m.m& Read Filename)Output Labeled Messages to filef"ew'u1'
et1
fsOSTeco"n fsDVersion"e
q5"e
1u2 1:<er fsIFVersionu2 ec>w
q2fsDVersionw'
"# q5"g q5'"# 0'fsDVersionw'''
fsBConsu2
q2[Babyl O Filename
e[ e\ @fn|e^ e] q2fsBKill|
q2[..o 1:< er @y >w ]..o
ff&2"n
&1u3
&2u1'
"#
@ftRemove the label k? 
1m(m.m& Yes or No)u3
@ftMark messages as deleted? 
1m(m.m& Yes Or No)u1'
0[Babyl N After D
m.m# Babyl O
q3"n m.m& Label Babyl Message'
fsQPPtr(
    0[Babyl O Done Hook
q3"n qBabyl O Message Hookf"ew :i*'u4
@:i*|-mLkw 4|[Babyl O Message Hook'
1,(f)m(m.m& Label Map Command)k1,mO
)fsQPUnwindw
q2[..o 0,(fsZ)fsBoundw
f[DFile et[TECO] OUTPUT fsOSTeco"n 0fsDVersionw'
ei
f]DFile hpef ]..o
fsOFileu4 @ft
Written: 4 ... 
qBabyl O Done Hook
:i4
q1"n m.m# Babyl D
:i4mD'
qh"n :i44w mh'
q3"n @:i4|4w 1,-1mLk|'
fq4"g
1,(f)m(m.m& Label Map Command)k4'
@ftDone.  0fsEchoActivew #[.0[.2 :i*( :i.2
)u.0
m(m.m& Push Message)
ff&1"e 1m(m.m# Babyl J)w
1,z'"# 1,'(
)m(m.m& Map Over Labeled Messages).2.0
"e ftDone.
' "[.0[.1[.2[.3[.4[.5[.6
 :i*(
:i.0 )u.1
m.m& Babyl Select Messageu.2
"g -'1+qMessage Numberu.3
@fn| q.3umessage number |
0fsVBw 0fsVZw
"g -s'
"#   s r'
.u.5
0s, .0,
"g @:i.4|:@fl :cw .-z|
@:i.6|%.3w|'
"#   @:i.4|r-:@fl b-.|
@:i.6|q.3-1u.3|'
< 0,fsZfsBoundw
q.5j m.4;
.u.5
1a-
"n !<!@>'
m.6
l :fb"e !<!@>'
q.3uMessage Number
m.2
m.1
0s, .0, 0fsVZw
>
O[0[1[2[3  :i0
z-.:\u1
z-(fsVB):\u3
@fn| z-1:j"e j'
z-3fsVBw |
0fsVBw
-s

l
"l
:fb, 0,"e "n '
@ft
Not labeled 0 to begin with 0fsEchoActivew '
fk+1d'
"#
:fb, 0,"l "n '
@ft
Already labeled 0 0fsEchoActivew '
:l
f~0deleted"e 0l2c'
"# f~0unseen"e 0l2c'
"# f~0recent"e 0l2c'
"# f~0answered"e 0l2c''''
i 0,'
qMessage Number:\u0
qBabyl Modified Messagesu2
:iBabyl Modified Messages20m0

_[0[1[2  :i0
z-.:\u1 z-(fsVB):\u2
@fn| z-1:j"e j'
z-2fsVBw |
0fsVBw
-s
l
:fb, 0,"l -1'
0l2c
i 0,
qMessage Number:\u0
:fo..qBabyl Modified Messagesu1
q:..q(%1)u2
:i:..q(q1)20m0

0W[0[1[2  :i0
z-.:\u1 z-(fsVB):\u2
@fn| z-1:j"e j'
z-2fsVBw |
0fsVBw
-s
l
:fb, 0,"e 0'
fk+1d
qMessage Number:\u0
:fo..qBabyl Modified Messagesu1
q:..q(%1)u2
:i:..q(q1)20m0

-18:i*[0 .[1 fnq1j 0f[VB -s
l
:fb, 0,"'l0f[VB .[1 fnq1j -:s
"l l 1a-1"'e(
ff&1"n "n f1'"# f0''
)'
m(m.m& Make Dummy Message)
f:m(m.m& Reformed Bit)q0,fsZfsBoundw
j :s"e :i*Babyl bug: no Babyl Options section?fsErr'
 i
0, deleted,,
*** EOOH ***
From: Babyl

Babyl file  gBabyl Filenames i
is empty except for this dummy message.

 1uNumber of Babyl Messages
5ff"n '"# 1' m(m.mLabel Message)RemindNow
 V[k[0[1

 :f"g :ik'"# 0uk'
fqk:"g
+1"e oREUSE'
ff&1"e !REUSE! qBabyl Last | Labeluk'
"# "l :i1Previous'"# :i1Next'
2,m(m.m& Read Babyl Label)1 message labeled: f"e'uk''
qkuBabyl Last | Label
qMessage Numberu0
"l @m(m.m# Babyl ^P)'
"#   @m(m.m# Babyl ^N)'
"l -'1,1 m(m.m& Map Over Labeled Messages)wk
m(m.m& Babyl Select Message)
m(m.m& Check Message Label)k"e
q0m(m.m# Babyl J)
@ft(No more k) 0fsEchoActivew'
0[0 [1 .[2 fnq2j
0f[VB 0f[VZ
m.m& Label Babyl Message
<  :s
Subject: Re: ;
<
@f	 l
0,1a-!"n 0,1a-{"n 1;''
0,1a-!"e .-z(1,mLRemindNow)+z+1j
1u0'
0,1a-{"e .+1,(:fb};).-1x1
.-z(1,mL1)+zj
1u0'
> >
q0"n 1m.vBabyl Remove Subject Labelsw'
[0 [1 .[2 fnq2j
0f[VB 0f[VZ
m.m& Label Babyl Message
<  0,1a-
@:; l .u1
@:f:fb

;
q1,.:fb
X-Babyl-TNX-Bit-Flags: ;
8f[IBase w \u0 w f]IBase
:f@:; 0kk
1,(q0&1"'n*2+1)mLunseen    w q1j
1,(q0&2"'e*2+1)mLdeleted   w q1j
1,(q0&4"'e*2+1)mLRemindNow w q1j
1,(q0&8"'e*2+1)mLanswered  w q1j
:s;
>
z-."e '
:i*Babyl bug: Unable to convert TNX bits to labels?fserr[1[2[3[4[5[V
 :i5
5fsQVectoru1 1u:1(0)
f[BBind g()
@:iV|
[2[3
      @:fo12u3
q3"l -q3*5j q:1(0)*5,0i
q2u:1(-q3)'
|
i, j
0u4
< @f	 l .-z;
.u2
@:f,=l
.(-@f	 l q2,.x2)j c
fq2"e !<!>'
0a-="e q2u4 !<!>'
q1[..o
q2mV
q4"n  q4mV
:i34 = 2
fq5"e q3'"# :i*5,3'u5
q3mV
q2m.vBabyl 4 Labelabw
q2m.vBabyl 3 Labelabw'
]..o
0u4 >
q5,q1[1[2
qBabyl Labels Optionu1
fq1"l
:i1RemindNow,filed,reply'
q1fp-1"n
:i11,deleted,unseen,recent,answered,bad-header
q1m(m.m& Make Babyl Label Table)u1u2
q2uBabyl Label Abbrevs Spec
q1uBabyl Labels Option'
q1(]2]1)[CRL List
:i*[CRL Prefix
:9:i*[0 [1 :i*[2
0f[ModeMacro
m(m.m& Use Babyl Label Table)
fq1:"g
!READ!
&2"n 4[CRL Non-match Method
16+'2,q2m(m.m& Read Command Name)0f"ew
!ABORT!
:i*CfsEchoDisplayw 0'u1'
fq1"e oABORT'
&1"e 1',q1m(m.m& Add to Labels Option)"e q1u2 oREAD'w
0fo..qBabyl 1 Labelabf"nu1'w
q1.[0
@:foBabyl Labels Option0"g 1'
"n
@ft
Add 0 to label list?  1m(m.m& Yes or No)f"e'w'
z-.[1 z-(fsVB)[2 @fn|1:<z-q1j
z-q2fsVB>w|
0fsVBw
j :ff~BABYL OPTIONS:"n :i*There is no BABYL OPTIONS sectionfsErr'
 :s
Labels:+2"n
jl iLabels: RemindNow,filed,reply,

0:l'
.( g0
@f	 k
13,1a-13"n i,'
)j
qBabyl Labels OptionfsBKillw
:xBabyl Labels Option
m(m.m& Use Babyl Label Table)
1p[1[2
 m(m.m& Push To Buffer)*Babyl*
0f[VZ
z-.:\u1 z-(fsVB):\u2 0fsVBw
@fn|0fsVBw 0fsVZw z-1j z-2fsVBw|
0f[ModeMacro
j :ff~BABYL OPTIONS:"n :i*There is no BABYL OPTIONS sectionfsErr'


 j :s
Labels:+2"e
:x2'
"# :i2'''
fsQPPtr(
  f[BBind g2
:ft z+1+50/(fsWidth+1)+1f(<ft
   > ft--------
)f[Linesw  0u..h
@:i*|	0fsLinesw m(m.mDescribe)Edit Labels List 
	|f[HelpMacro
:i*Edit Labels List[..j
0[Auto Fill Mode

j <:s
;     ,>
j <:s,,; -d r>
zj -@f	 ,k
hx2
)fsQPUnwindw
j:s
Labels:+2"e 0L k'
"# jl'
fq2"g iLabels:2
'
q2uBabyl Labels Option
[0[1
 m(m.m& Push To Buffer)*Babyl*
:f"g :i*( :i1 )u0'
"# 1,fLabel messages containing string: f"e'u0
0u1'
fq0:"g 1,m(m.m& Read Line)For messages containing string: f"e'u0'
2,q1m(m.m& Read Babyl Label)Attach label: f"e'u1
m(m.m& Push Message)
m.m# Babyl ^F
m.m& Label Babyl Message
ff&1"n 1m(m.m# Babyl J)w'
j 0fsVBw -l
<  q0,1mF;
1,mL1w
zj >
ftDone.

 vff-1"e
2,m(m.m& Babyl Survey Several Messages)'
"# ff-3"e
m(m.m# Babyl J)
2,(-+1)m(m.m& Babyl Survey Several Messages)''
q*Survey* Bufferf"n[1 fq1'"e
@m(m.m# Babyl ^S)w
q*Survey* Bufferf"n[1 fq1'"e  ''
@fn| m(m.mSelect Buffer)*Babyl*|
q:.b( :i**Babyl* m(m.m& Find Buffer)+4 )m.vSvMenu Babyl Bufferw
m(m.mSelect Buffer)*Survey*
q..o m.vSvMenu Bufferw
f~ModeSurvey"e
m(m.m& Get Library Pointer)BABYL-(0fo..qBabyl Library Pointer)"n
       m(m.mSurvey Mode)'
qBABYL Loaded-qPrevious BABYL Loaded"N
m(m.mSurvey Mode)''
"# m(m.mSurvey Mode)'
0fo..qWindow 1 Buffer"n
[Window 1 Buffer [Window 1 Pointer
[Window 2 Buffer [Window 2 Pointer'
qBabyl Two Window Survey Menu"n
0fo..qWindow 2 Size"e
4m(m.m^R Two Windows)w
@fn~1:<@m(m.m^R One Window)>w
0fsErrorw~''
qBabyl Command Hookf"n[1 7m(q1(]1))'w
:i*Babyl [Editor Name
:i*Babyl [..j
1fsModeChangew
m(m.m& Jump To Current Survey Line)

[..o m(m.m& Survey-Select Message)
[1
qBABYL Loadedm.vPrevious BABYL Loadedw
 m(m.m& Get Library Pointer)BABYLm.vBabyl Library Pointerw
m(m.m& Init Buffer Locals)
1,(m.m& SvMenu ^RNormal Macro)m.QFS^RNormal
m.m^R SvMenu Argumentu1
1,q1m.q-
1,q1m.q0
1,q1m.q1
1,q1m.q2
1,q1m.q3
1,q1m.q4
1,q1m.q5
1,q1m.q6
1,q1m.q7
1,q1m.q8
1,q1m.q9
1,q1m.q,
1,q1m.q+
1,q1m.q*
1,q1m.q/
Afs^RInitu1
1,q1m.q.D
1,q1m.q
1,(33.fs^RInit)m.q 
1,(m.m^R Survey Menu T)m.qT
1m(m.m& Set Mode Line)Survey
qBabyl Command Hook[0[1 fsQPPtr[2
0f[ModeMacro f[ModeChange
q..0fsEchoOutw 0fsEchoActivew
m(m.m& Survey-Select Message)w
m(m.m& Reformed Bit)"e qBabyl No Reformation Option"e
m(m.m& Reform Header)''
q0"n 5m0'
ff&1"n m(m.m& Bounds Of Header)jw'
0fo..qWindow 2 Size"n
m.m^R Other Windowu1
.(
@m1w @fn|@m1w|
m(m.mSelect Buffer)*Babyl*w
)j
.-bfsWindoww
0u..h @v
q0"n 6m0'
m(m.m& Remove Basic Label)unseen
q2fsQPUnwindw
0'
ff"e .,zx1'
"# x1'
ft1
q0"n 6m0'
0[1[2[3[4[5
 qBabyl Command Hookf"ew :i*'u4
1@:f<!Babyl-Command-Abort!
q..0m(m.m& Babyl Macro Get) u1
0l @f l \u2
q2"E
q..0:fcfCEIJMQS"L
:i*No message selected f;Babyl-Command-Abort'
1u2'
q..0fsEchoOutw 0fsEchoActw
@fn| fsModeChange(
m(m.mSelect Buffer)*Survey*w
)fsModeChangew
m(m.m& Jump To Current Survey Line) |
fsModeChange( m(m.mSelect Buffer)*Babyl*w )fsModeChangew
q2 m(m.m# Babyl J)
m(m.m& Reformed Bit)"e qBabyl No Reformation Option"e
m(m.m& Reform Header)''
5m4
:i5 f@m1w
6m4
fq5"G :i*Arg-hackery is unimplemented in SvMenu f;Babyl-Command-Abort '
>f"Lu1 @ft
1.  0fsEchoActive'w
1#@fn| m(m.m& Jump To Current Survey Line) |
 [..o f[Window
fsQPPtr( [1
0l @f 	l
\u1
qSvMenu Babyl Bufferu..o
q1 m(m.m# Babyl J)
)fsQPUnwindw
:{0f[ReadOnly

 [9[0[1[2 .[3 [K[B[S[J
qMessage Numberu2
0l .-b"E l' @f l z-."E -l @f l' \u3
qBabyl Modified Messagesu9
fq9"g
.,.fsBoundariesw g9 \l
j<:x1  l .-z; :ff=1"e -k'>
hfx9 0,fsZfsBoundariesw
m.m& Get Labels for SurveyuK
qSvMenu Babyl BufferuB
q..ouS
m.m# Babyl JuJ
m.m& Babyl Resurvey One Messageu0
m9
:iBabyl Modified Messages
qBu..o q2mJ qSu..o'
j 3,q2:\u1
:s
1"l 0l '
"# [T[P[N
q3-q2"l
jl .uP 0uN
j <.-z; @f	 l
\uT qT"g
qT-q2"l
qN-q2"l
qT-qN"g .uP qTuN '''
"#
qN-q2"l .uP qTuN '
"# qT-qN"l .uP qTuN'''' l >'
"#
	zj .uP qNumber of Babyl Messages+1uN
	zj <-.; @f	 l
\uT qT"g
qT-q2"g
qN-q2"g
qT-qN"l .uP qTuN '''
"# qN-q2"g .uP qTuN '
"# qT-qN"g .uP qTuN'''' -l>'
qPj 0l '
~fsQPPtr[9
[0[1
q..0&127:i0
q0fsEchoOutw 0fsEchoActw
< 2,m.i
:fif0123456789-,+*/:;
fiu1 :i001
q1fsEchoOutw 0fsEchoActw >
@fiu..0
1fs^RArgpw  -1u1
fq0< %1:g0"d 3fs^RArgpw 1;' >
0(q9fsQPUnwind)@:m(q..0fs^RIndirectfs^RCMacro)
fq1"g
0:g1- "n :i1 1''
:i2Survey argument convention:
    No argument means survey all1 messages in the Babyl file.
    One positive argument n means survey the next n1 messages.
 fq1"e
:i22
    One negative argument -n means survey the previous n messages.'

 :i22
    Two arguments  m,n  mean survey n1 messages
	starting with message number m.
 q2qMessage Number[1  qNumber of Babyl Messages[2 [3[4
ff"e     1,q2'
ff-1"e
"g
,q2-q1+1fu3u3
q1,q3'
"#
-,q1-1fu3u3
q1-q3,q3''
ff-2"e
,1fu3w
q3,q2fu3u3
q3,q2'
,1fu3w
q3,q2fu3u3
"g
,q2-q3+1fu4u4
q3,q4'
"#
-,q3-1fu4u4
q3-q4,q4'vfm(m.m& Survey Args)[2[1
m(m.m& Push Message)
q1m(m.m# Babyl J)
q2m(m.m& Babyl Survey Several Messages)
.fm(m.mSurvey Labeled Messages)deleted <fm(m.m& Survey Args)[2[1
[b[f[k
m.m& Maybe Flush Outputuf
2,(:f"g :i*')(
    )m(m.m& Read Babyl Label)Survey messages labeled: f"e'uk
 m.m& Babyl Survey Several Messagesub
0mb
m(m.m& Push Message)
 q1m(m.m# Babyl J)
1f<!SurLab!
q2m(m.m& Label Map Command)k 1,mb mff;SurLab
    >
9[0[1[2
 1,fSurvey messages containing string: f"e'u0
fm(m.m& Survey Args)u2u1
m.m& Babyl Survey Several Messages
m.m# Babyl ^F
m.m& Maybe Flush Output
0mB
m(m.m& Push Message)
q1m(m.m# Babyl J)
0fsVBw -:sw
q2<mA1;
q0,1mF;
1,mBw
zj >w
fsListen"e ftDone.
'"# ftFlushed.'
0fm(m.mSurvey Labeled Messages)RemindNow [1[2[3[4[5
 m(m.m& Use Babyl Label Table)
8+2,fSurvey unlabeled with: u2
fm(m.m& Survey Args)u5u4
m(m.m& Push Message)
m.m& Babyl Survey Several Messages
m.m& Babyl Select Message
m.m& Maybe Flush Output
fq2"e	@:i2| fb 1a-13 |
@:i3| 0s,, |'
"#	@:i3| 0s, 2, |
@:i2| :fb |'
0,0mBw
q4m(m.m# Babyl J)
q4-1u1
0,(fsZ)fsBoundariesw
-s
q5<
mf1;
0fsVZw
m3
< @:fl c .-z;
1a-
"n !<!>'
%1w
l m2@; >
.-z;
q1uMessage Number
mS
1,mBw
zj >
fsListen"e ftDone.
'"# ftFlushed.'
/fm(m.mSurvey Unlabeled Messages)unseen 0fm(m.mSurvey Unlabeled Messages)deleted -fm(m.mSurvey Labeled Messages)unseen 
BABYLMJ[1
 ff&2"e :i*To continue editing this message use the C command.(
    )[Abort Resumption Message'
-2"'e,0m(m.m& Push To Edit Mail)
qBabyl C Hookf"nu1 m1'w
:m(m.mEdit and Mail Buffer):i*To resume, invoke the Send Mail command again with a numeric argument[Abort Resumption Message
ff&1"n 1,:m(m.m# Babyl C)'
1,:m(m.m# Babyl M)Off&2"n 0fo..qBabyl Init/Vars Processed"n ''
[1[2[3[4 f[DFile
 f[BBind
e[fne]
fsOSTecof"ew etDSK:EMACS;BABYL VARS'
"#-1"ew       etEMACS:BABYL.VARS'
"#w	       etDSK:<EMACS>BABYL.VARS''
e?"e
fsDFile m(m.m& Babyl Process Init Vars)'
etDSK: fsHSNamefsDSNamew
0fsdvers
etBABYL INIT
0u1
fsOSTeco-2"e
1:<er ec 1u1>w'
"# fsOSTeco"e
    et foo babini fs xuname fs dfn1'
e?"e 1u1''
q1"n er @y m(hx*)
1m.vBabyl Init/Vars Processedw '
etBABYL VARS
0u1
fsOSTeco-2"e
1:<er ec 1u1>w'
"# fsOSTeco"e
et foo bvars fs xuname fs dfn1'
    e?"e 1u1''
q1"e 1m.vBabyl Init/Vars Processedw
'
fsDFile m(m.m& Babyl Process Init Vars)
 1m.vBabyl Init/Vars Processedw
F[DFILE
FF&1"NFSDFILE'
"#FSOSTECO"E
ETFOO EVARS
FSXUNAMEFSDFN1'
"#ETEMACS.VARS'
FSHSNAMEFSDSNAM'
[1[3[4
Q..O[5F[BBINDQ..O[6
[..O
128*5,32:i*[2
*5:f2 /
"*5:f2 |!'!
1:<ER@Y>"L'
<.-Z;
@:F"EL!<!>'
1AF 	:"L@L!<!>'
.,(CS:.-2,.+1F=::"EC'
).-1X3
.u1@f	 l
1a-34"eq2[..d
.+1,(@fll).-1x4
]..d
@:i4"4"!''!'
"#.(:\u4)-."eq1-1j'
@f 	l
:@f"n
q1j:X4''
Q5U..O
FQ3-2:G3F:"'L+(
0:G3-:"'E)"L
M4U3'
"#F=3*"EM4'
"#Q4M.V3''
Q6U..O@L>
:@i*|[1fsqpptr[2
m(m.mKill Variable)MM & Process Init Varsw
:g(m.aAUX& Process Init Vars)u1
q2fsqpunwin
f:m(q1(]1))
|m.vMM & Process Init Vars
#fsQPPtr[0 [1[2
ff&2"e :i*To continue editing this message use the C command.(
    )[Abort Resumption Message'
-2"'e,1m(m.m& Push To Edit Mail)
0f[VB 0f[VZ
fsModified"n
ft
Last message being composed seems to have been aborted.
      Continue editing aborted message? 
    m(m.m& Yes or No)"n q0fsQPUnwindw
f@:m(m.m# Babyl C)''
qCurrent Babyl Template Nameu1
q1"n 0@fo..qBabyl Template 1u1'
0fsWindoww
q1"n hk g1
j zu2 0,1a-["e d
8+2f[IBase \u2 f]IBase
0,1a-]"e 0k d'' q2:jw'
"#
hk iTo: 
   .-2(
qBabyl CC Tof"nu1 icc:  g1 i
	  'w
fsOSTeco"n qBabyl Fcc Tof"nu1 iFcc:  g1 i
         ''w
qBabyl Reply-To Fieldf"nu1 iReply-to:  g1 i
	  'w
gBabyl Header/Text Separator i

	)j'
qBabyl M Hookf"nu1 m1'w
:m(m.mEdit and Mail Buffer)w[Current Babyl Template Name
 fsQPPtr(
:i*Babyl Template [CRL Prefix
q..q[CRL List
8+2,fTemplate: uCurrent Babyl Template Name
fqCurrent Babyl Template Name"e
@:m(m.mMail With Template)'
)fsQPUnwindw
f:m(m.m# Babyl M)[1[2
 "e hm(m.m& Save for Undo)Get Mail Template'
 :i*Babyl Template [CRL Prefix
q..q[CRL List
8+2,fTemplate: u1
fq1"e
1,@:m(m.mGet Mail Template)''
qBabyl Template 1u1
hk g1
j zu2 0,1a-["e d
8+2f[IBase \u2 f]IBase
0,1a-]"e 0k d''
q2:jw
=[0[1[2
 :i*Babyl Template [CRL Prefix
q..q[CRL List
4[CRL Non-match Method
16+8+2,fTemplate: u0
fq0"e f@:m(m.mSet Mail Template)'
.u1 hx2
fsQPPtr( f[BBind g2 j i[ 8+2[..e q1\ i]
hx*m.vBabyl Template 0w
)fsQPUnwindw
ftDo you want to make the 0 template permanent,
 by putting it into an EMACS or Babyl init or vars file now? 
 m(m.m& Yes or No)"e 0u..h 0'
f[DFile etDSK: fsHSNamefsDSNamew
e?BABYL INIT"n
e?BABYL VARS"n
fsOSTeco"e fsXUName:f6u1 et1 EVARS'"# etEMACS.VARS'
e?"n
fsOSTeco"e et1 EMACS'"# etEMACS.INIT'
e?"n
etBABYL VARS''''
ftPlease specify which init or vars file to use:

 [Previous Buffer
qBuffer Nameu1 @fn|m(m.mSelect Buffer)1|
@m(m.mFind File)
0u..h
z"n
fsOSTeco"e :i1C-M-C'"# :i1C-M-Z'
:i*Please set point for template, then exit with 1[..j
 ]..j'
m(m.m& Set Mode Line)
m(m.mInsert Mail Template Into VARS/Init File)0
@m(m.m^R Save File)w
0*[0[1[2[3
 :i*Babyl Template [CRL Prefix
q..q[CRL List
8+2,fTemplate: u0
fq0"e f@:m(m.mInsert Mail Template Into VARS/Init File)'
fsQPPtr( f[BBind
0fo..qBabyl Template 0f"ew :i*No template 0fsErr'u1
    g1
0s j <:s; r i c>
0u2 0u3
0s"!'! j <:s; r i c %2w>
!"!0s' j <:s; %3w>
hx1
)fsQPUnwindw
@ft
Is this a VARS file (as opposed to an init file)
 1m(m.m& Yes or No)"n
0l .,( i	Create mail template 0:
Babyl Template 0: "!'! g1 i"!'! i
	  ).f 0'
0l .,( i !* Create mail template 0: !
 
	q2+1-q3"l
i! q3-q2-1,"i!'! i! '
i:@i*" g1 i" m.vBabyl Template 0w!'! !'!
q2+1-q3"g
r !"!q2+1-q3,'i c'
i
	).f 0n[2

 qBabyl Edit Mail Hookf"nu2 m2'
"#w mBabyl Default Edit Mail Hook'
!Re-edit!
 0u..h
fsRGetty"e ft

qBabyl Header/Text Separatoru2
.(	j s
2
	-l )u2
q2-."l b,q2t ft..a q2,.t'
"# b,.t'
q2j f+'
0fsModifiedw 0fsXModifiedw

qBabyl Require Subjects"n
j 0sSubjectReS 0u2
<:s; 12.,(fk)a-12."n !<!>' r @f	 l 0,1a-:"e 1u2 1;'>
q2"e 1,m(m.m& Read Line)Subject: u2
	fq2"g j iSubject: 2
'''
z"e 0fsModifiedw 0fsXModifiedw '
1@:< fsOSTeco"e m(m.m& ITS Mail Buffer)'
     "# m(m.m& TNX Mail Buffer)' >"n
1fs mode change oRe-edit'
0fsModifiedw 0fsXModifiedw
&qCurrent Babyl Template Name[1
fq1:"g ' f~1Standard Reply"n '
qFrom:u1 fq1"g
j i
  fnj2d
:s
In-reply-to:"l j '
fqMessage-ID:"g
zj iIn-Reply-To: 
gMessage-ID: w-2f=
"ni
''
zj iIn-reply-to: Msg of 
   f[vb f[vz .,.fsBound
gDate: -2d
bj< :s,;w -d >
bj :sMondayTuesdayWednesdayThursdayFridaySaturdaySunday "N fkd '
      bj :sJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecember "N
	fk+3d '
bj :s "N r0k' zj -:s"N ck '
f]vz f]vb i from 1 -2f=
"n i
''
e[0[1[2[3
 -1"n
fsTopLine"g
f~Window 1 Buffer*Babyl*"e
1:<4@m(m.m^R One Window)>w'''
fsQPPtr(  qPre-*Mail* Buffer[..o
0f[VB 0f[VZ
.u0 fnq0j
:s"l r'"# zj' .u2
m(m.m& Bounds Of Header)u1j
q1,q2x2
-16"n .,q1x1'
"# m(m.m& Bounds Of Original Header)x1'
)fsQPUnwindw
qBabyl Header/Text Separatoru3
.u0
-:s3"e
fnq0j
zj'
"# q0j'
.:w
.f[VB fsZ-.f[VZ g1 g2
-4"n
j
< .-z;
2 f=
     "n 4,32i '
l > '
zj
0fsZw
0 f "g i
  '
 b,.,f~Buffer Name*Mail*"n
:i*Must be in *Mail* buffer fsErr'
 1,m(m.m& Read Line)Subject: [.1
q.1"n fq.1"g
.-z(bjl .,(iSubject: .1
	      ).f w)+zj
''
 1-[1[2
 f~Buffer Name*Mail*"n
:i*Must be in *Mail* buffer fsErr'
 0f[VB
z-.:\u1 fn z-1:j"e zj' 
j i

"l :i1Un-To'
"# -4"e :i1Cc'
"# :i1To''
1,m(m.m& Read Line)1: u2
q2"n fq2"g
"l q2m(m.m& Babyl Delete Recipient)'
"# q2,q1m(m.m& Babyl Add Recipient)'''
j @f
k
1&4:m(m.m^R Babyl Add To-Recipient)'-1:m(m.m^R Babyl Add To-Recipient){[1[2
j :s
1:"l
<l 1af	 :;>
0:l
0f+fq2-70"g -@f, 	k i,
	 '
"# i, ''
"# bjl i1: 
   0:l'
i2
u1
j < :s
To:
Cc: ;
< < :fb1;
1af,M@ :"l
fkc -@f	 l
	   0af:,
	   :"l
.,(:fb,"e :l').k'' >
l 1af	 "l 0:l 1;'
>
>
wqPre-*Mail* Buffer"n
:i*You are already in the process of sending mailfsErr'
 q..o[Pre-*Mail* Buffer
"n
0fo..qWindow 2 Size"e
qWindow 1 Size"N [Window 1 Size '
(fsHeight)-(fsEchoLines)-1/2-1uWindow 1 Size
1:< 4m(m.m^R Two Windows)f >w
@fn|1:<@m(m.m^R One Window)f>w
0fsErrorw|''
m(m.m& Push to Buffer)*Mail*
"n
f~ModeText"n m(m.mText Mode)'
0uBuffer Filenames
fsOSTeco"e !<! et*Mail* >'
"# etMAIL.TEMP''
m.m& Set Mode Linef[ModeMac
qEditor Name[..j :i..j..j 
1fsModeChangew
:l[Previous Buffer
qBuffer Name[0
@:i*|m(m.mSelect Buffer)0|(]0)[..n
m(m.mSelect Buffer)
:g[1[2[3[4[5 g(q..o(f[BBind))
-2f=
"n i
'

 m.m& Process Recipient Field
0[Babyl Strip Local Host
qBabyl Header/Text Separatoru2
j 1f[BothCase :s
2
"e :i*No text, just header fsErr'

 0u4
-l fsZ-.fsVZw
m(m.m& Maybe Insert In-Reply-To)
q..ou3 f[BBind q..ou2 q3[..o
fsMachine:f6,q2 mpORIG-TO
fsMachine:f6,q2 mpORIG-CC
q2[..o hk ]..o
fsMachine:f6,q2 mpTO
fq2"g	0l <k 0,1af	 :;>
q2[..o j
< .-z; :l 0f:fb@ :fx1
0l 1a-("n
1af"[!'!"l
:fb "l 0l i" :l i"!''!''
0l i( :l i)'
0l iRCPT: :lr i1
%4w
l k >
hfx1
]..o g1'
fsMachine:f6,q2 mpCC
fq2"g	0l <k 0,1af	 :;>
q2[..o j
< .-z; :l 0f:fb@ :fx1
0l 1a-("n
1af"[!'!"l
:fb "l 0l i" :l i"!''!''
0l i( :l i)'
0l iRCPT: :lr i1 (R-OPTION CC)
%4w
l k >
hfx1
]..o g1'
fsMachine:f6,q2 mpBCC
fq2"g	0l <k 0,1af	 :;>
q2[..o j
< .-z; :l 0f:fb@ :fx1
0l 1a-("n
1af"[!'!"l
:fb "l 0l i" :l i"!''!''
0l i( :l i)'
0l iRCPT: :lr i1 (R-OPTION BCC)
%4w
l k >
hfx1
]..o g1'
q4"e :i*No Recipients fsErr'
j iFROM-PROGRAM:BABYL
FROM-XUNAME: fsXUnamef6 i
FROM-UNAME: fsUnamef6 i

j :s
FROM:"e 3l iAUTHOR: fsXUnamef6 i
'"# 
AUTHOR:'
j :s
H:"l 
HEADER-FORCE: @fc'
"# 3l iHEADER-FORCE:RFC733
'
j :s
S:
Re:"l 
SUBJECT:'
j :s
R:"l 
REGISTERED: @fc'
0s:
j < .-z;
1af	 :"l l !<!>'
:fb"l r -@f	 k
0x1
:fo..qCOMSAT 1 FIELD"l
0l iUSER-HEADER:'
"# 0@fc'
l !<!>'
1a-15."e k !<!>'
:i*Garbage in message header fsErr
>

 0s
USER-HEADER:ORIG-TO:
USER-HEADER:ORIG-CC:
j <:s; 8r 5d>
0s:
j <.-z; 1af	 :"l -l
fb ;

.[0 <l .-z; 1af	 :; >
.-2-q0( q0-2j )u0 q0\ i.
l q0c ]0 '
l >

 zj iTEXT;-1

0,(fsZ)fsBoundariesw k
0fo..qDebugging Babyl"n :i*Debugging Babyl[..j  ]..j'

 f[DFile etDSK:.MAIL.;MAIL >
e\ fn e^
eihpef
@ft(mail queued) 0fsEchoActivew

f[DFile [1[2[3[4[5 0f[VB 0f[VZ
qBabyl Parser Control Flags7[Babyl Parser Control Flags
g(q..o( f[BBind ))
zj -2f=
"n i
'
q..ou3
f[BBind q..ou4 q3[..o
qBabyl Header/Text Separatoru1
j :s
1
"e :i*No text, just header fsErr'
0:l 0k
z-.fsVZ
q4m(m.m& Complete TNX Header)
0s
Fcc
j <:s; @f	 l 1a-:"e c :x2 l-k
etDSK:FOO.TXT fsHSnamefsDSnamew et2
0f[VZ m(m.m& Append to TNX Mail File) f]VZ '>
fsMachine:f6u2
m.m& Process Recipient Field
0[Babyl Strip Local Host
q2,q4mpFrom
 q2,q4mpSender
 q2,q4mpOrig-To
 q2,q4mpOrig-Cc
 q4[..o hk ]..o
q2,q4mpTo
q2,q4mpcc
q2,q4mpbcc
0s
Orig-To:
Orig-Cc:
Orig-Fcc:
j <:s; 0l 5d>
0s
Bcc:
j<:s; -4ck
<@f 	@; k>>
j <  @f	 l
15.,1a-15."e 0lk'"# l'
.-z; >
0,fsZfsBoundw
0fo..qDebugging Babyl"n :i*Debugging Babyl[..j  ]..j'

 qBabyl Queuing Functionu5
q4m(m.m5)
^e?EMACS:BABYL.USE-MMAILR"e
f:m(m.m& MMAILR Babyl Queuing Function)'




 [2 q..o[3 [4 [5
q4u..o j
etPS: :i5EMACS:
fsOSTeco-2"e etDSK: :i5DSK:<EMACS>'
1,m.m& Immediate Mailf"nu2
e?emacs:immediate-mail.exe"e
q3m2'
z-b"e ''w
e?<SYSTEM>XMAILR.FLAGS"n
e?<SYSTEM>MAILER.FLAGS"n
:i*No Mailer For Queued messagesfs err'
etDSK: fsHSnamefsDSnamew
< .-z; :x2 q3u..o
et[--UNSENT-MAIL--].2
f[DFile et[TECO] OUTPUT 0fsDVersionw ei
f]DFile hpef
@ft(Mail to 2 queued)
q4u..o 2l
>
-(@fz5QUEUE-MAIL.SAV)fz'
"#
 :f:fb@$  :l  2l 
j :i2
<.-z; :f:fb@ d :f~2"e :k'"# :fx2 0l 14.i g2 i
'   l k>
f[dfile
j <:s.ARPA
;
fkc :k
>
<:s
"@; !'! -2d i@ :l -d 0l c :x2
q2fsdfile
1:< 4,er >"e
g(fs I File)
	-@f0123456789k
-d :k'
"#
      :i* Local File does not exist: 2 @fg'w
>
f]dfile
zj
14.ii
   g3
etDSK: fsHSnamefsDSnamew
et[--NETWORK-MAIL--]..0
f[DFile et[TECO] OUTPUT 0fsDVersionw ei
f]DFile hpef
er 11.fs IF FDB&7777777777.,11.fs IF FDB EC
m(m.m& Run Mail Subfork)5QUEUE-XMAIL.EXE'

 0fsEchoActivew
[2 q..o[3 [4
q4u..o j
 :f:fb@$  :l  2l 
j :i2
<.-z; :f:fb@ d :f~2"e :k'"# :fx2 0l 14.i g2 i
' l k>
14.ii
 g3
fsXUName[d 8[..E fsDate:\ud ]..E
etMAILQ:[--QUEUED-MAIL--].NEW-D-U-BABYL.0
 f[DFile etDSK: fsMSnamefsDSname
et[TECO] OUTPUT 0fsDVersionw ei
f]DFile hpef
@ft(mail 
1:< -(@fzEMACS:WAKEMM.EXE)fz >
@ftqueued)
0fsEchoActivew
[0[1[3[4
 j < :s

; -k 2r >
m(m.m& Maybe Insert In-Reply-To)

 j 5f~Date:"n
:s
Date:"e
iDate: 
     0:l
.u1
212221000000.,fsDatefsFDConvertw
.-z( 0,-3a--"e 4r di  r'
-s  i 
q1+3j 0,1a- "e i,'
)+zj
qBabyl Day of Week Flag"n
.-z( 0l 6c .(s,r),.fx3 2d
)+zj i (3)'
'"# 0l fx1 bj g1'
'
fsXUname:f6u0
fsMachine:f6u3
fq3"g :i00 at 3'
j :s
From:"e
l iFrom: 
     2r .u1
qBabyl User Nameu3 fq3:"g q0u3'
g3
qBabyl Personal Nameu3
fq3"g q1j g3 i < :l i>'
q1j
'
@f 	l .u1
:l .u3
-:s<"n .-q1:"l
c .u1
:s>"'e + (.-q3"'g)"n
:i*Unmatched < ... > found in From: field fsErr'
      r .u3''
q3j q1,.f~0"n
fsXUName:f6u3
q1,.f~3"e
i at 
fsMachinef6'
"# 0l .u4 j :s
Sender:(q4j)"e iSender: 0
'''
j :s
S:
Re:"l
0k iSubject:'
j :s
Message-ID:"e
l iMessage-ID: < fsXUNamef6 .i fsDate\ i.BABYL@
fsMachinef6 i>
'
j < :s
To:
Cc: ;
@f 	,k i 
<:fb,; @f 	k i >
0l <:fb, , ; ,  2r>
0l 4c 0,1a-15."e
0,3af	 "l
0lk 0:l''
>
\[0[1[2[3[4[5[6[7[8[9[.0[.1[.2[.3 [..o
qBabyl ..D[..d
@fn|.-z(j 0,1a-15."e 2d')+z:j|
j i

f[VB f[VZ
qBabyl Strip Local Host"n fsMachine:f6u7
fsOSTeco"e :i7 at 7 at MIT-7 '
"# 
      :i* at 7fo..q Babyl Horribly Kludge Local Hostu7''
"# 0u7 '
u8 q..ou9
0s

j <:s"e 0' @f	 l 0,1a-:@; >
c @f	 k 5-(fsHPos)f"lw0',40.i .u0
< l 0,1af	 :; 0:k >
0:l .u1
< :s; @f	 l 0,1a-:"n ! <!>'
c 0k
< :l k 0,1af	 :; >
0fx2 q1j i, g2 .u1
>
q0j .f[VB fsZ-q1f[VZ
qBabyl Parser Control Flagsu0
<
@f	 ,k .-z; .u1 i 
.u.0
-1u6 0u2 0u.2
<
@f	 f"gd i 'w .-z;
1au5 q5"b c :o5 r'
q6:"g
@flu4u3 q4j
q3,q4f~at"e oAT'
q3-b,q4-b(q8u..o)g9
i  q9u..o ! <!>'
! <!:i*Text after > in recipientfsErr
!<! q1,.-1x.3
f[BBind g.3
q0&1"n
j :@f;:.[]l .-z"n
j :s"!'!"e
j @f	 l i"!'!
zj -@f	 l i"!'!'
"# j
< @f	 l
.-z;
0,1a-"!'!"e @fll'
"#
@flfsBoundw
< :@f;:.[]l .-z;
0,0a-\"n i\' c >
zj 0,fsZfsBoundw'
>'''
"#
j @f	 l 0,1a-"!'!"e
.u.0
zj -@f	 l 0,0a-"!'!"e
.u.2
q.0+1j @f	 0123456789!#$^&*-/=?`{}|~ ;:.[]
		  ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzl
.-q.2+1"e
d q.0j d''''
hx.3 f]BBind
r q1,.k g.3 c
.u.0 0u.2 0u2
q8u..o 0k q9u..o %6"e ! <!>' :i*Extra < in recipientfsErr
     !>! q6"e .-1u6 ! <!>' :i*Extra > in recipientfsErr
!,! r -@f k c 0;
!AT! q0&1"n -3d i@ d'
o@-AT
!@! q0&1"e -d 0a-32"n i ' iat 1a-32"n i  r''
!@-AT!
q2"n
q0&1"n .-z(q2j -d i%)+zj
q8u..o q.2j -d i% :l q9u..o''
.u2
q8u..o .u.2
0f"e
q9u..o -2:@fll .u3
-@fll .-q1-1"n :i*Null recipientfsErr'
.-b,q3-b(q2j q8u..o)g9'
-@f k i@ q9u..o ! <!>
!(! fll
>
q8u..o -@f k
q2"e
0f"e
q9u..o .u2 -:@fll .u3
-@fll .-q1-1"n :i*Null recipientfsErr'
.-b,q3-b(q2j q8u..o)g9'
i@ g()
q9u..o .-z(q6"g q6j'"# -@f, l'
q0&1"e i at '
"#	  i@
q0&2"n i''
g()
q0&3#3"e i'
)+zj'
"#
q9u..o
q0&3#3"e
.-z( <	! <!-@f
			 ,>l
!(! 0a-)"e
-@fll !<!>'
1; >
i
q2j @f	 l i
)+zj''
q8u..o
:l -s@ @fc :l
i

g(q9[..o q1+1,.x*(]..o)) 0a-,"e -d' i

q9u..o
q7"n
.-z( -@f,<>l .u3 -:s7"n fk+.-q3"e fkd ''
)+zj'
q0&5#5"e oFILL-BREAK'
fsSHPos-70"g  !FILL-BREAK!
q1-b-4"g .(q1j i
     	)+7j''
>
-@f, k
j
%fsQPPtr( e[fne]  f[BBind 1:<er 16fy ec>w hf~BABYL OPTIONS:
"e fsDFile[1 :i*Attempt to append TNX format mail to Babyl file 1fsErr'
    )fsQPUnwindw

 FF-1"E [0 '"# FS Date[0 '
 j h(20000000.,Q0 fsFDConvert ,i)\ i;000000000000

j e?"e fsDFilem(m.m& Babyl Append)"n jk'
z-.fsVZw er fsIFilefsDfilew @y
zj 0fsVZw'
f[DFile et[TECO] OUTPUT 0fsDVersionw ei
f]DFile hpef
b,.k k
E[1 e[e\fne^e]
er1 fsIFLengthu1 q1/5*5-5fsIFAccessw
 j @fn|b,.k| fsZ-.f[VZ @y zj f]VZ
1:<@:ei>"n 0' fsOFLength-q1"n :i*File changed size??fsErr'
 q1/5*5-5fsOFAccessw hp :ef 11,m(m.mProcess Babyl Init or Vars File)
qBabyl ..D"e
[1[2 128*5,40.:i1
40.u2 176.-40.<%2*5:f1AA>
"*5:f1 | !'!
\*5:f1 /
(*5:f1 (
)*5:f1 )
@:i2| *5:f1  |
<m2 >m2
,m2 @m2
q1uBabyl ..Dw'
fsOSTeco"n
f[DFile etPS: fsOSTeco-2"e etDSK:'
e?<SYSTEM>XMAILR.FLAGS"e
qBabyl Parser Control Flags6(
)uBabyl Parser Control Flags''
qBabyl Setup Hookf"n[1 m1'w
ne?SYSTEM:DECNET-MAILER.FLAGS"n
:i*No Mailer For Queued messagesfs err'
 :f:fb@$  :l  2l 
j :i2
<.-z; :f:fb@ d :f~2"e 0l k'"# :fx2 0l g2 k' k>
etDSK: fsHSnamefsDSnamew
< .-z; :x2 q3u..o
et[--DECNET-MAIL--].2
f[DFile et[TECO] OUTPUT 0fsDVersionw ei
f]DFile hpef
@ft(2: queued)
q4u..o l
>
     -(fz5QUEUE-DMAIL.EXE)fz
ke?SYSTEM:XMAILR.FLAGS"e
      -(fzSYS:XMAILR.EXE)fz'
    "#
      -(fzEMACS:EMAILER.EXE)fz'w
R[0 [1

 qBabyl Subfork Controlf"euBabyl Mailer Subfork
@ft Queuing...
   -(@fz)fz
'"#
   @ft Sending...
qBabyl Mailer Subfork"e
@fzuBabyl Mailer Subfork'"#
f*w qBabyl Mailer Subfork@fz'
f[b bind
<
fs listen"E
:i* ?Success unknown: ..o @fg '
fiu1 q1-177.@;
q1-176."e
j :s?:"n
-(qBabyl Mailer Subfork)fz
0uBabyl Mailer Subfork
sn:
:x0
:i*
Fatal error: 0; Abort & Reset...Done @fg '
     :s?"n
Error: ..o; Continuing... @fg '
     j :x0 @ft[0] 
hk
qBabyl Mailer Subfork @fz'
"# q1i' > w
'w
     @ftDone.

BBOARDM@:I*|
      QBBoard Babyl File"N @M(M.M # Babyl ^B) '
0[MM # Babyl Q
F@M(M.M # Babyl Q) 
| M.V MM # Babyl Q
@:I*|
      FS Z"E
0UBBoard Babyl File
0UBBoard Last Written '
QBBoard Babyl File"N
:I*I command not usable within BBoard FS Err '
0[MM # Babyl I
F@M(M.M # Babyl I) 
| M.V MM # Babyl I
@:I*|
      QBBoard Babyl File"N
1F<!Babyl-Command-Abort!
0[MM # Babyl ^N
FM(M.M # Babyl ^N)
>[0 Q0"N
@FT
0.  0 FS Echo ActiveW
QBBoard Q on N at Last Notice"N
	       ZJ @M(M.M # Babyl ^B) '
:FI U0
Q0-"E FI '
Q0-N"E FI '
Q0-n"E FI '
Q0-"E ZJ '
Q0-Q"E ZJ '
Q0-q"E ZJ ''
 '
0[MM # Babyl ^N
F@M(M.M # Babyl ^N) 
| M.V MM # Babyl ^N
[1F[Both Case
M(M.M & Initialize BBoard)
[0[1[2[3[4[5[6[7
Q..OU6
@:FN|M(M.M Select Buffer)*Babyl*|
F[D File
0 F[Mode Macro
M(M.M Select Buffer)*BBoards*
Q..OU7
FS Z"E
0ULast BBoard Argument
QBabyl Filenames UBBoard Babyl File
:I*C FS Echo Display
0 FS Echo Active
FS H Sname FS D Sname
ET Switch.ini
QBBoard Data FileF"N FS D File '
1:<ER @Y>"N
:I*No BBoard Data File (Default: HomeDirectory:Switch.ini) found FS Err ''
   FF-1"E
ULast BBoard Argument '
QBBoard Last WrittenU0
Q0"N
QMessage Number-QNumber of Babyl MessagesU4
Q6U..O .(0U1 <%1WL .-Z;>)J Q7U..O
Q1-((FS Height)-(FS Echo Lines)-1)U5
Q4"E Q5:"G O Use Last Written Date ''
Q6U..O
0 FS VBW 0 FS VZW
-:SRcvd-Date:W FKC
@F 	L
FS FD ConvertU0
Q5"G Q0-3U0 '
Q7U..O
! Use Last Written Date!
0 UBBoard Last Written
.,(:S 	W @F 	L :S 	
W @F 	L FKC.)K
0,Q0 FS FD Convert
L
FS H Sname FS D Sname
ET Switch.ini
QBBoard Data FileF"N FS D File '
@:EW HP EF
0 FS Modified '
QLast BBoard ArgumentU0
<.-Z;
0L 7F~BBOARD "N O Next'
7C .,(:S 	W.-1)X1
@F 	K
QBBoard Crl ListU3
0@FO31U2
Q2"E .,(:S W.-1)X2
@F 	K '
.U5 FS FD Convert U3 Q5J
Q2 F[D File
0U4
1:<1,ER
FS IF CDate U4 EC>
F]D File
Q4"E
QBBoard Sans Query"E
@FT 1 
0 FS Echo Active '
O Next ''
F[B Bind Q4FS FD Convert 0J FS FD Convert U4 F]B Bind
QBBoard Sans Query"N Q0-2"N Q4-Q3:"G O Next'
"# @FT 1  0 FS Echo Active O Read BBoard '''
Q0-2"N Q4-Q3:"G
@FT 1 
0 FS Echo Active
O Next ''
@:I*|FT Type Y, y, or Space to read this BBoard.
Type N, n, or Rubout to skip reading this BBoard.
Type Q or q to skip reading the remaining BBoards.| F[Help Macro
<@FT 1? 
FI:FC U5 @FT5
Q5-Y"E 0;'
Q5-N"E 0;'
Q5- "E 0;'
Q5-"E 0;'
Q5-Q"E 0;'
@FG >
F]Help Macro
Q5-N"E O Next '
Q5-"E O Next '
Q5-Q"E 0;'
! Read BBoard!
Q3 UBBoard Last Read
Q4 UBBoard Last Written
FS X UnameU0
FS H SnameU1
M(M.M Select Buffer)*Babyl*
F]Mode Macro
0[MM # Babyl I
0[MM # Babyl Q
M.M & Flush Old BBoard Notices[Before Babylizing File Hook
      1[Babyl Keep TNX Received Date
1F<!BBoard ^B Abort! Q2,1@M(M.M # Babyl I)>"N
@FT [Bad BBoard File: 2]  0 FS Echo Active 30: O Abort'
0 FS VBW 0 FS VZW 0J
<0U4 :S
;
:SRcvd-Date:;
1U4 @F 	L
FS FD ConvertU5
Q3-Q5:;>
QLast BBoard Argument-2"N
Q4"E @FT [No New Messages]  0 FS Echo Active O Abort ''
      M(M.M & Babyl Select Message)
:M(M.M & Calculate Message Number)
! Abort!
HK
0 F[Mode Macro
M(M.M Select Buffer)*BBoards*
QBBoard Last WrittenU0
O Use Last Written Date
! Next! L>
HK
0 FS Modified
@FT Done.  0 FS Echo Active
M(M.M Select Buffer)*Babyl*
F]Mode Macro
QBBoard Babyl FileU0
0UBBoard Babyl File
QBabyl Filenames-Q0"E  '
0[MM # Babyl I
Q0,@M(M.M # Babyl I) 8FS Z-25"L F;BBoard ^B Abort '
QLast BBoard Argument"N  '
[0[1[2[3[4
QBBoard Maximum SizeU0
FS Z-Q0:"G  '
QBBoard Last ReadU1
0 FS VBW 0 FS VZW 0J
:<(Q0-(Z-.)); .U4
FS FD ConvertU2
Q2"L F;BBoard ^B Abort '
Q1-Q2:;
:S,W \U3
L Q3C>"N F;BBoard ^B Abort '
Z-.-25"L Q4J '
0L
0,.K
1F[Both Case
M(M.M & Initialize BBoard)
[0[1[2 0[3 0[4
F[D File
FF-1"E U0' "# 0U0'
QBBoard Crl List [Crl List
Q0"E 18,M(M.M & Read Command Name)Add BBoard: U1 '
"# 18,M(M.M & Read Command Name)Remove BBoard: U1 '
Q1"E '
QBBoard Crl ListU2
Q0"E @:FO21F"G U1
Q:2(Q1) U1 '
"# ET FOO.TXT
FS H Sname FS D S name
5,0FBBoard File NameU4 ''
@:FN|M(M.M Select Buffer)*Babyl*|
0 F[Mode Macro
M(M.M Select Buffer)*BBoards*
FS Z"E
1U3
FS H Sname FS D Sname
ET Switch.ini
QBBoard Data FileF"N FS D File '
1:<ER @Y> '
.U2
Q0"E
J .,(:L.):FBBBOARD 1 "E
ZJ
-:S
BBOARD 1 "E
-:S
BBOARD 
2L
IBBOARD 1 
Q4"N
F[D File
Q4 FS D File
G(FS D File)
F]D File
I  '
0,FS Date FS FD Convert I
 '''
"#
J .,(:L.):FBBBOARD 1 "L 0LK'
J <:S
BBOARD 1 ; 0LK> '
Q2J
@:EW HP EF
Q3"N HK'
0 FS Modified
M(M.M Select Buffer)*Babyl*
F]Mode Macro
QBBoard Crl List"N '
[0[1[2[3[4
F[B Bind
QBBoard Regular Naming ConventionU4
Q4"N
G4 J :S*"E :I* No * in BBoard Regular Naming Convention '
      0,.-1X2 .+1,ZX3 HK
1,111100000001.EZ4
J <.-Z; S2 .U0 S3 FKC
Q0,.-1X1
0L .U0 G1 I=
.-Q0-1"G Q0+1,.-1FC '
L> '
GBBoard Names List
5 FS Q VectorU0
2U:0(0)
J <.-Z; .U1 :S="E :I*BBoard Specification must have = FS Err '
      Q1,.-1X2
:X3
@:FO02U4 Q4"L -Q4U4 Q0[..O Q4*5J 10,0I
Q2U:0(Q4) Q3U:0(Q4+1) ]..O ' L>
Q0 UBBoard Crl List
F]B Bind

BBSITEMail subsystemS Create option variables, call setup hook.
If the variable Babyl Setup Hook is non0 it is called at the end of Babyl's
    setup, each time Babyl or BabylM is loaded.
This object file was compressed on 7:13pm  Monday, 18 April 1988
by WANCHO on SIMTEL20.ARPA from the following source libraries:

   PS:<EMACS165>BABYL.EMACS.783,	02/07/88 15:22:44
   PS:<EMACS165>BABYLM.EMACS.167,	08/24/87 18:10:34
   PS:<EMACS165>BBOARD.EMACS.2,	10/27/84 11:44:19
   PS:<EMACS165>BBSITE.EMACS.7,	06/14/84 15:48:56QS Mail file editor subsystem.
Same as the Babyl and Re-Enter Babyl commands.IC Mail file editor subsystem.
String argument is Babyl filename.  It defaults, and can be
    overriden.  Describe the I command for details.
If Babyl was temporarily exited before, this command will re-enter it
    instead of starting a new session.  The # Babyl ^X command is
    the one that temporarily exits Babyl.
!DOC!
.(g(m.m~DOC~ Process Babyl Init or Vars File)
  -:sSubDoc"l 0:l 2r .,zk)j k!COD!
qSubDoc"n i
A pre-comma numeric argument means this should exit back to DDT or EXEC.
Remembers this in Babyl Standalone Job (non0 if exiting to DDT).';C Lets user change options for current Babyl file.
Will ask you about each of the various Babyl options that a Babyl file
    may have.
This command should only be called from within Babyl.
qSubDoc"n iPre-comma numarg means called by creator: dont check buffer,
    and dont print message about [..].nC Create a new Babyl file, with sample message.
Will ask you for the Babyl filename, or you can give it as a string
    argument.  With a standard default for a user's main Babyl file
    that reads the user's mail file.  Will ask you about each of the
    various Babyl options that a Babyl file may have.
Offers to send a message to BABYL-REQUEST@MIT-MC, requesting that
    you be added to INFO-BABYL@MIT-MC.
qSubDoc"n i
The filename may be passed as a pre-comma argument.' ^R Fill Region being smart about indentation.
Fills region something like ^R Fill Region, but will keep
    indentation and will not touch mail header or mail separator (e.g.
    dashes) lines.
In particular, this is good for filling an indented message yanked
    into a *Mail* buffer by the ^R Babyl Yank command.  It will
    respect indentation within the indented text too -- e.g. if the
    yanked message contains within it another yanked message, etc.
Will also check for an ITS-header subject and put it on its own line,
    in case the subject is very long and might be too long for the
    screen width.
M-x Undo<cr> will bring back the old text, in case filling caused more
    problems than it is worth.
With an explicit arg, this will try a different algorithm which may be
    useful for filling messages with indented paragraphs, but which
    will probably lose on some included messages.S Categorize current line.
Return	0 if not mail-related,
	1 if header line,
	2 if separator line,
	-1 if send header line.GC Break up a digest into individual messages.
The digest is assumed to be the currently selected message.  It will
    be replaced by the series of messages which made up the digest.  A
    "To:List-name" field will be added to each message header, for
    replying and visual identification of the source digest list. 
The option variable Undigestify Keep Digest controls what happens to
    the original digest.  This variable can have several values:
	0:	digest is discarded
	+n:	digest is kept, before the individual messages
	-n:	digest is kept, after them
	+1:	digest is additionally marked Deleted
	-1:	same
If a precomma arg is given it is used instead of the value of the
    variable.$S Find a line of numarg1 to numarg2 dashes.
Blanks before end of line are ignored.  We move past the found line if any.
Returns 0 for failure, -1 for success.XS Does the work.
Bounds must be around a digest and . must be just past Topics section
separator, before contents of the digest.
QL must contain list name of digest.
QD must hold & Find Digest Dash Separator.cC Only username.
Forces the From field to be just Username at Host, no personal name
    part.
Nice for Hermes, so other people can see your subject line in a
    survey, since Hermes doesn't truncate a long From field.BC# (^C on ITS, ^Z on Tops-20)  Return to DDT/EXEC temporarily.(C# Delete message and move backward.VC# Find and select message containing a specific string.
Given no numeric argument the search is forward, starting with the message
    after the current one.
Given a positive argument, N, searches forward for the Nth message to
    contain the string.
Given a negative argument, -N, the search is backward, starting with the
    message before the current one, for the Nth message to contain the
    string.
If no match is found, returns to current message.#C# Move to previous screenfull.C# Reformat a losing message that contains ^J's, ^H's, etc.
Replace them with their visual counterparts...
 ^H deletes character before it,
 ^J inserts carriage return + whitespace
 ^M becomes CRLF.
This is undoable.  (I.e. M-X Undo<cr> brings back old message.)#C# Jump to next unseen message.BC# Clear screen.  Given a numeric argument, keeps same window.6C# No-op, flushes argument, and goes to next line.hC# Move to next message, whether deleted or not.
If argument, n, goes to nth next.
qSubDoc"n i
1, NUMARG means dont print any error message (just throw quietly).
String precomma numarg is label to f;-throw to if fail.'1C# Append current message to a TNX mail file.`C# Move to previous message, whether deleted or not.
If argument, n, moves to nth previous.7C# Enter a recursive edit level on current message.HC# Survey-prefix.  Also ignores ^S^Q for VT52 lossage etc.
^S^A or ^SA is M-X Survey All Messages
^S^D or ^SD is M-X Survey Deleted Messages
       ^SUD is M-X Survey Undeleted Messages
^S^L or ^SL is M-X Survey Labeled Messages (reads a label)
       ^SUL is M-X Survey Unlabeled Messages (reads a label)
^S^M or ^SM is M-X Survey Messages Containing String (reads a string)
^S^F of ^SF is --ditto--
^S^R or ^SR is M-X Survey Reminders
	^SS is M-X Survey Seen Messages
       ^SUS is M-X Survey Unseen Messages
^S? shows this description and then reads another character.
To correct for stupid terminals, any number of ^S's followed by a ^Q
	are ignored.  This is for VT52s, H19s, maybe others.3C# Call ^R Display Load Average, for TNX users.yC# Temporarily exit Babyl.  Doesn't file out.
Exits to EMACS or DDT/EXEC, depending on how Babyl was called:
	If was 1,M-X Babyl or a BABYL job then will exit back to DDT/EXEC.
Repeating the M-X Babyl command will resume with state unchanged.%C# Execute a TECO command string.C# Print more of this message.
On printing terminal:  prints rest of message.
On display terminal:  goes to next screenful.
    n<Space> scrolls up n lines.
    9999 Space (or any semi-infinite numeric argument) goes to the
    end of the message.=C# What is left of this message? Gives line/window count.S Count number of physical screen lines from point.
Postcomma arg gives point to go back to.
Precomma arg means go backwards.$C# Into recursive edit level on survey.
No arguments means use the last survey.  If no last survey,
    we call .
M,N arguments means survey messages M through N.
N argument means survey next N messages.
-'<character> is like ^S<character>' but does not print while
    surveying.  (Except for a "Done" which is unavoidable without
    serious work.)
For more details, see documentation for M-X Survey Menu.dC# Return the message number of current message.
To reposition at top of current message, do .J:C# Accumulate a line, then execute it with no display.+S Uses ;-generated text, sets fsReread.&C# Type value of numeric argument.(C# Part of a Babyl numeric argument.3C# Move to next message and summarize it.
Given an argument, moves forward that many undeleted messages, and
    summarizes the intervening messages as well as the last one.
If the option variable Babyl A Mode Display is non-0, we will update
    the mode line.  (Default is to update it.)
Users on slow display terminals may want to disable updating, and use
    an occasional Z= instead, to see how many messages there are.#S survey next NUMARG2 msgs.
NUMARG1 has bits:
1, dont 1st empty survey buffer.
2, dont print as go.  ORed with Survey Quietly.
0 NUMARG just makes a label.BS msgBuf,surveyBuf NUMARGs.
MsgBuf bound so starts with CRLF.S Updates survey line.
Updates status char, length, labels, subject.
NUMARG is msg #.  Buffer should be survey buf.  This will be a
no-op if survey line not found.
Caller should bind:
	K: & Get Labels for Survey
	B: Babyl buffer
	S: survey buffer
	J: # Babyl J0C# S Delete this message, maybe select next.
Given numeric argument, n, means delete message n.
The option variable Babyl N After D controls whether Babyl
    automatically moves to another undeleted message after deleting
    this one.  Values are:
	1:  Try to do an automatic N -- move forward if can (default).
	-1: Try an N (go forward), but if no next message, try a P (go
	    backward) instead.
	0:  No movement.  You view the deleted message.
qSubDoc"n i
Pre-comma NUMARG is amount to N after this, e.g. -1 for the ^D
    command.'SC# Expunge deleted messages.  Handles empty file.
If expunging leaves the file with no messages, a dummy message is
    inserted, since many Babyl commands don't work without some
    message in the file.DC# Forward current message.  You can edit the message.
The mail will be set up to include the current message and a subject
    based on the original one if any.  You can then edit any of this
    before sending it off.  Describe Edit and Mail Buffer for details.
If you give a numeric argument of 2 we will try to use 2 windows, with
    the current message in the top and the message being sent in the
    bottom one.
If you give a numeric argument of 3 we will REMAIL the message instead
    of forwarding it. The variable Babyl Remail Control controls the
    action of 1F: 0 (read TO: and send); non0 (read TO: then edit and
    send). Babyl Remail Hook should be a TECO macro to run after message
    is set up. (Sorry. No 2 window mode yet...someday, 4F will do this.)
The option variable Babyl F Control controls the default action of F:
	0:  You are put in a recursive edit level on the outgoing
	    message, which has an empty To: field (point is there), a
	    subject based on the original one, and the forwarded
	    message yanked into the text field.  You can thus edit any
	    field and add comments.  On terminals with insert/delete
	    line capability, we try to optimize redisplay.
	1:  The To: and Subject: are read in the echo area, and you
	    are then put in a recursive edit level on the outgoing
	    message, with the header above the screen window, i.e.
	    with only the text field showing.  (This may be desirable
	    for users with slow terminals without insert/delete line
	    capability, or for users with printing terminals.)  Typing
	    Rubout to the subject prompt makes the message not have
	    any subject;  typing Return makes the default subject be
	    used.
	2:  Reads the To: and Subject: in the echo area, and then
	    mails the message, without entering a recursive edit
	    level.
1F or 2F will force the general default action -- i.e. as if Babyl F
    Control were 0.  (1F uses one window.)
After the message template is set up, runs any Teco program you
    provide in the variable Babyl F Hook.
When successfully exited (not aborted) it will run any Teco program
    you provide in the variable Babyl F Done Hook, passing it F's
    arguments.8C# Get any new mail received since Babyl was started.
1G means get mail from another mail file.  You will be asked for its
    filename.  Any kind of mail file can be read in (it figures out
    which kind it is):  ITS or TNX mail file, an RMail file, or
    another Babyl file.  The file will NOT be deleted -- you must do
    this manually, if desired.
The Append option (at the top of the Babyl file) determines where the
    new messages are put in the Babyl file and in what order:
	0: prepend messages to beginning of Babyl file
	1: append messages to end
	2: prepend and reverse order of new messages
	3: append and reverse
    Reversal is only done for the primary mail file, for the owner.
When G is done, it will run any Teco code in the variable Babyl G Done
    Hook.  Argument is 0 if no new mail, or the number of the last new
    message.
qSubDoc"n i
Pre-comma NUMARG of 1 means not a manual G -- called by I.'C# Reform or display original header.
If no argument, this forces the original header to be reformed.  (You
    can thus manually reform selected messages even if you don't have
    messages normally reformed automatically -- i.e. if you set the No
    Reformation option.)  Reparse original header.
If argument, e.g. 1H, makes the original header be the visible header,
    i.e. it unreforms.C# File out Babyl file, read in another.
After saving the current Babyl file (if necessary), asks for a Babyl
    file.  Default filename is DSK:homedir;username BABYL on ITS,
    DSK:<homedir>username.BABYL on TNX.  You can override this with
    the option variable Babyl Default File.
If the Babyl file has an Owner option (either one user name or several
    user names separated by commas), then only the specified user(s)
    can modify the file.
If file is not a Babyl file, we just read -- no deleting, no writing.
The variable Babyl File Version controls the version written.  See its
    description for details.
If you try to read in a Babyl file that does not exist, offers to
    create one, asking you about the various options.
If a numeric argument is given (e.g. 1I), deleting and writing are
    inhibited.  This is like forcing this user to definitely NOT be an
    owner.
Teco programmers: describe the variable Before Babylizing File Hook.
qSubDoc"n i
A pre-comma NUMARG is a filename, so wont ask.'=C# Jump to message with given number.
nJ goes to message n whether deleted or not.  ZJ goes to last message.
J goes to first non-deleted message.
-J goes to last non-deleted message.,C# Delete message and append to text to be Y(ank)ed.
K kills current message.  nK kills message n.
0K kills current message, but only appends the text of the message.kC# Attach/remove a label to the current message.
Given negative argument, removes the specified label.jC Attach/remove a label to the current message.
Given negative argument, removes the specified label.C# Go forward to next undeleted message.
If numeric argument, n, goes forward n undeleted messages.
qSubDoc"n i
Pre-comma NUMARG of 1 means not to print any error message if
    no next message.  Or pre-comma numarg of string is label to f; to.'9C# Write message to a Babyl file.
The message will be labeled recent in the file.  Any deleted label it
    had will be removed in that file.  Other labels remain.
The variable Babyl File Version controls the default version.  See its
    description.
If the variable Babyl O Confirm New File is non-0, you will be asked
    to confirm writing a message to a new file.  The default is 0.
Runs Babyl O Message Hook on the message in the file being written
    to.  (For instance, this might remove some temporary label, e.g.
    "file", used to mark messages for filing with the M-X Output
    Labeled Messages command.)
Runs Babyl O Done Hook when successfully done.  This runs in the
    current Babyl file -- not in the file just written to.
qSubDoc"n i
Pre-comma NUMARG means dont ask for filename -- just output to the default
   for O which is in Babyl O Filename.  If that variable is set to a buffer
   object, not a string, then output to the buffer, letting caller write the
   whole file.   The buffer should start with the whole current file.'GS Label this message "filed".
Designed to go on Babyl O Done Hook.*C# Move to previous undeleted message.C# File out Babyl file and exit Babyl.
Deleted messages are expunged from the file before exiting, and the
    survey buffer is emptied.
Giving a numeric argument of 1 means do not expunge, just exit.
qSubDoc"n i
1, NUMARG means just cleanup and file away, but dont exit.'zS Label message "answered", remove any "reply" label.
This is a function that is designed to go on Babyl R Done Hook. C# Write out the Babyl file.?C# Reply to message using bottom window, with message in top.
Describe Edit and Mail Buffer for details about message editing, and
    the general hooks available.
Numeric argument of 1 means just reply to the FROM field.
Numeric argument of 3 means automatically yank the message.  It will
    have the reformed header.
Numeric argument of 4 means automatically yank the message but with
    the original header.
Recipient names that start with INFO-, BBOARD@, or * will not be
    included in a CC.  (Thus you won't mistakenly reply to INFO-EMACS
    or *ITS or *AI etc.)
Some variables may be set by the user to control header formation if
    they are non-0:
Babyl Trim Recipient List: By making this 0 you can turn off any of
    this removal (including INFO-, BBOARD@, *, etc.) -- you get just
    the basic TOs and CCs based on the FROM, TO, CC, and Babyl CC To
    variable.  By making this negative, you disable the automatic INFO-,
    etc. removal only (duplicates and Babyl Dont Reply To are still
    removed).
Babyl CC To: should be a string, automatically inserted as a CC field.
Babyl Fcc To: should be a string, automatically inserted as a Fcc
    field on Tenex or Tops-20 systems.
Babyl Reply-To Field: should be a string, automatically inserted in a
    Reply-To field.
Babyl Require Subjects: if you don't supply a subject field, you will
    be asked for one before mailing.
Babyl Dont Reply To: should be a Teco search string, selecting CC
    people to remove.  Each recipient mailbox name (the user@host part
    only, not any personal name parts) is searched -- if the search is
    successful that recipient is removed.  This does not affect the
    INFO-xxx, BBOARD@, or *machine checks.  If this is 0, no removal
    searching is done;  if it is a null string, any CCs to yourself
    are removed, as if the string were "yourname@".
Babyl R Hook: a Teco program run just before entering the recursive
    edit level.
Babyl R Done Hook: a Teco program run when R completes successfully.
    By default, this hook labels the message "answered".>S Form the message template in buffer.
An internal routine of # Babyl R, and it should pass us its arguments.
Original message should be already parsed, and the *Mail* buffer selected.VC# Type some or all of this message.
Numeric argument is optional message number.[C# Undelete a message.
Giving no numeric argument means undelete current message if deleted,
    or go back to one that is deleted and undelete that.
Giving a numeric argument, n, means undelete message number n.nC# Edit and send mail, with template initialization.
!DOC! .(g(m.m~DOC~ Mail With Template))j k !COD!C# Access whole file.eC# Execute an extended EMACS command.
This is just like the EMACS ^R Extended Command command.C# Yank and reset (empty) text saved by K.
nY yanks into message number n.
0Y or -nY just discards the saved text, in case you mistakenly typed K..C# Return no. of messages in current file.2C# Go to the beginning of the current message.,C# Go to the end of the current message.C# Refill the current message.
The numeric argument specifies one or two things:  the fill column,
    and whether to consider indented lines as paragraph starters, as
    opposed to lines of a yanked message.
Fill Column:  If no argument, or a 0 argument, is given, the variable
    Fill Column is used.  Otherwise the absolute value of the argument
    is used.
Positive argument says to do default filling -- indented lines are not
    paragraph starters.
0 or negative argument says they are paragraph starters.
Thus, for example, plain \ does default, using default Fill Column.
    0\ does paragraph like filling, using default Fill Column.
This will not touch header or mail separator lines, and will respect
    indentation.  E.g. any yanked messages will be filled separately,
    keeping their indentation.
M-x Undo<cr> will bring back the old message in case filling caused
    problems.GC# Generate a list of Babyl commands, or just describe 1 character.dC# Move to next message with some label.
!DOC! .(g(m.m~DOC~ Next Labeled Message))j k !COD!S Quick help for Babyl commands.
Invoked from Babyl with ?, this function prompts for a Babyl command
character and describes what that command does.  If user answers the
prompt with *, all commands are described.  Typing [HELP] at the
prompt will get the standard EMACS helper.C Collect TECO garbage.SC# Delete the last character from accumulating argument.
Period, Z, digits, comma, plus, minus, etc. are characters that
    make up arguments.
If you rubout the entire argument, the echo area is cleared.=S Bound msg . is in.
Create dummy message if empty file.AS Remove deleted msgs, unlabels recent.
Sets msg# variables.S sets msg# var:S So return to original msg, window when caller exits.HS Return .,. around (reformed) header.
Point left at end of header.US Return .,. around original header +-.
Point is left at end of original header.<S Babyl command loop.
Note variable Babyl Command Hook.uS Returns 1char-command function for ASCII arg or:
1, means type its doc-string.
2, means type 1line brief doc.6S Maybe print --MORE-- and # of lines left in msg.(S Format header on msg.  Bounds set./S Parse header into field-name variables.
& Process Recipient Field parses a recipient field.
Leaves . at end of header if all ok.
0 NUMARG means this is not a numbered message (e.g. outgoing mail).
1 NUMARG means it is a numbered message (and thus we can perhaps avoid redoing
    the parse).
Pre-comma NUMARG says to be silent about a recognized bad header, and just
    -1fsErrThrow leaving point at top.  Else gives an error message.
The variable Unknown Field Flusher is 0 or a flusher string over the field
    name.  See code for details./S Reformat From:, Sender:, Reply-to: fields3S Create NET message header, inserted at point.)S and Babylize.  Leaves wide buffer.
Arg is filename.
May offer to create or ask for another filename.  Resets fsDFile.
Returns nonzero iff file was a Babyl file.}C Numeric argument is desired version to go to.
This command is invoked automatically by Babyl when necessary, so
    you probably will never need to use this yourself.
If you give no numeric argument, the conversion will be to the version
    that this Babyl assumes.
Buffer should contain a Babyl file.
Point is left at the top.
You may convert up or down in versions.
qSubDoc"n i
1, means convert virtual buffer which means copying.
Returns non-0 if conversion was necessary, 0 if not.'HS Internal routine.
NUMARG1 is from-version, NUMARG2 is to-version.qS Ensure a good Babyl/MAIL file format, autolabel.
Optional arg says mail-file type:  0=TNX, 1=Babyl, 2=ITS..S Buffer has BABYL and MAIL already.
Selects message, flushes survey.  Creates dummy msg if need.
If no NUMARG: Calculates msg#s, returns msg# of last new mail message.$S From options at top of buffer.8S Convert MAIL.TXTish stuff in buffer to ITS format.ZS Show msg and file properties.
Msg #, total #, labels, last, filename, whether (RO).-S Return 0 or list of labels for message.
S Status,labels.
In babyl buffer.
Returns 2 values:
First is status character.
Second is null or the curly-braced user label list.PC Add/remove label2 from label1'ed messages.
First string argument is label1, specifying which messages to
    consider.
Second string argument is label2, the label to add or remove from the
    considered messages.
No numeric argument means label all considered messages.
Numeric argument n (positive) means label the next n considered.
Numeric argument -n means unlabel the next n considered.
Numeric argument 0 means unlabel all considered messages.C Delete messages with some label.
String argument is label.
See also UnDelete Labeled Messages.
Numeric argument is number of messages (with the label) to delete,
    from the current message forward.
No numeric argument means delete all messages with the label.WC Undelete messages that have some label.
Numeric argument is number of messages (with the label) to undelete,
    from the current messageforward.
No numeric argument means undelete all the labeled messages.]
C Write messages with some label to a file.
String argument is the label.
This is like going to each of these messages, and using the O command
    to write it to the file, except that it does not read/write for
    each message: it collects all the messages first, then writes the
    file.
It asks whether the given label should be removed.  E.g. the label
    could be temporary, marking those files to output now.
Asks for filename.  Also asks if can mark messages as deleted.  (They
    are deleted only after the file is successfully written.)
Default filename is based on the label, say foo:  for ITS default is
    FOO XMAIL, for TNX it is FOO.XMAIL.  The version is controlled by
    the variable Babyl File Version.  See its description.
The filename may also be specified by a second string argument.
Numeric argument is number of labeled messages to output, from the
    current message forward.
No numeric argument means output such-labeled all messages in mail
    file.
There are two hooks that the user may provide: Babyl O Message Hook,
    which is run on each outgoing message as it is collected, and
    Babyl O Done Hook, which is run on each labeled message in the
    current Babyl file (this hook is run only after the file has been
    written).
qSubDoc"n i
Optional pre-comma numarg has bits to answer questions.'S NUMARG control, msg pushing, done.
No NUMARG: iterate over whole mail file, all msgs with label.
NUMARG:  iterate over next NUMARG msgs with label.
1, NUMARG: do not print Done -- is not.
STRARG1: Label name.
STRARG2: Teco to apply to each msg.
Mapper uses 1-dot qregs.3S Maps over labeled messages.
NUMARG1 is direction: 1 forward, -1 backward.
NUMARG2 is number of messages (in set) to apply to.
STRARG1 is teco commands.
STRARG2 is label.yS (Un)Label current message with string argument.
-1 means unlabel.
1, means do not warn "already labeled foo" etc.kS Label message with string argument, a basic label.
Returns 0 if not previously labeled, non0 if was.eS Unlabel message with string argument, label.
Returns 0 if not previously labeled, non0 if was.JS See if labeled with string argument.
Returns non0 iff labeled that.S Check or reset reformed bit.  Returns old value (0/-1).
NUMARG is new value (0/non0).
If no NUMARG, doesnt change it -- just returns it./S Make empty file have a (deleted) message.aC (Un)Labels RemindNow.
Negative argument means remove the reminder label from this message.C Move to next/previous message with some label.
| or 2| moves forward, -| or -2| moves backward.
No numeric arg, e.g. |, or -1 arg, e.g. -|, means use the last label
    again.  (If you explicitly give a string argument , though, it
    will be used.) The label defaults initially to RemindNow, for
    reminders.
With a numeric argument of -2, 1, or 2, will read the label to use.(S Subject begins with excl or {...}.)S Post-Babylizing conversion routine.FS numeric argument is string.
Returns abbrev-only-string,qvector.#S Prepare for calling & Read Command Name.
Binds CRL List and CRL Prefix for reading labels.
Ensures that Babyl Labels Option is a qvector, maybe converting.PS Read, process, and return label with completion.
String argument is prompt.
Returns 0 if aborted, else full label.  Label-abbrevs recognized and the
    full label returned.
NUMARG if any is label to use, else completing-read.
1, bit means do not confirm a label not in list.
2, bit means allow non-matches, i.e. new labels.S Ensure label is in valid list.
NUMARG is label to check.
1, means confirm new labels.
Returns 0 iff the user did not confirm a new label.?C Edit the list of valid labels for this Babyl file.
Goes into recursive editing level on the current label list, or
    allows you to create a new list.  Only uses a few lines of the
    screen.  A line of --------- ends this window.
The list has the format: label1,label2,...,labelN
You can define "bl" to be a label-abbrev for "BabylLabel" by using
    in place of the label the string "bl=BabylLabel".
The actual list in the option field will be one line only but while
    editing you can use multiple lines -- this command cleans it all
    up when you exit via ^R Exit.  If you do use several lines, be
    sure to include commas at the end of each line since only commas
    separate labels -- the end of the line is completely ignored.
Aborting via Abort Recursive Edit will leave the list unchanged,
    even if you have done some editing.  (You are editing a copy.)
An example label list might be: b=bug,i=info,babyl,f=feature$C Label search-selected messages.
1st string argument is a string.  Messages containing that string will
    be labeled.
2nd string argument is the label to add.
Given a numeric argument, it goes through the entire Babyl file,
    rather than just forward from the current message.
Each message containing the given string is labeled with the given
    label.
Note that the string is actually a Teco search string, so for
    instance, if you want to label messages containing "foo" OR "bar",
    you can provide the string "foobar".HC Edit Babyl file from a survey.
The last survey created is used, e.g. from a B command, or if none,
    you are asked what kind of survey to first perform.
Babyl commands which are not control characters work as usual (plus
    Control-D and Rubout), except that Space exits Survey Menu, just
    like ^R Exit.
Control characters may be executed as Babyl commands by quoting them
    with ^R Quoted Insert.
When the recursive edit level is exited we will go back to Babyl
    buffer, selecting the current survey line's message.
The option variable Babyl Two Window Survey Menu, if non-0, says that
    the survey should use one window, messages another.  Back to one
    window when exit Survey Menu.
The user can tailor Survey Menu by providing a Survey Mode Hook
    variable, or by providing a Babyl Command Hook.'S Execute Babyl commands from survey menu.
Most Babyl commands function as usual, applying to the message
    indicated by the cursor.  Space will exit recursive edit,
    selecting the message which had the cursor at its survey.
User can tailor by providing a Survey Mode Hook variable.4^R Type message text for current survey line.
Remove "unseen" label, if one.
If in 2-window mode, will display message in opposite window.
nT means type only n lines of text, no header (for 2-window mode the
    n is ignored -- any argument means just display text).
-nT will show just header lines.8S Used inside Survey Mode.
Note Babyl Command Hook.kS Select message in Babyl buffer from
the current survey line.
We leave with the Babyl buffer teco-selected, but with a cleanup handler
    pushed that will return to the survey buffer and select the current
    message's line.@S Put point on appropriate survey line.
Puts point on line corresponding to current message.  If line
not found, try to stay on whatever line we were on before.  Resurveys if
necessary.6S Put on digits, minus, and comma to get argumentsdS Return survey arg documentation.
String arg is kind of messages surveyed, e.g. "deleted", "".wS Canonicalize survey args to message#,itercount.
Validates message#s, so range is real.  Itercounts are positive.VC# Survey all or a range of messages.
 !DOC! g(m(m.m& Survey Arg Doc)) !COD!\C Survey messages labeled "deleted".
 !DOC! g(m(m.m& Survey Arg Doc)deleted) !COD!-C Survey all or some messages with some label.
String argument is label.  Messages with that label will be surveyed.
 !DOC! g(m(m.m& Survey Arg Doc)labeled) !COD!FC Surveys search-selected messages.
Surveys messages which contain a string (the string argument).
(Actually this is a Teco search string.)
 !DOC! g(m(m.m& Survey Arg Doc)matching) !COD!`C Survey messages with RemindNow label.
 !DOC! g(m(m.m& Survey Arg Doc)reminder) !COD!|C Survey messages not labeled somehow.
Given no (or null) string argument, surveys messages with no (user)
    labels.  A string argument is a label;  surveys messages without
    that label.
 !DOC! g(m(m.m& Survey Arg Doc)unlabeled) !COD!\C Survey messages not labeled "unseen".
 !DOC! g(m(m.m& Survey Arg Doc)seen) !COD!bC Survey messages not labeled "deleted".
 !DOC! g(m(m.m& Survey Arg Doc)undeleted) !COD!ZC Survey messages labeled "unseen".
 !DOC! g(m(m.m& Survey Arg Doc)unseen) !COD!2Mail-sending part of the Babyl mail subsystem.C# Continue editing the last message sent or aborted.
Describe Edit and Mail Buffer for details about message editing,
    and general hooks.
If you give a numeric argument of 2 we will use 2 windows, with the
    current message in the top and the message being sent in the
    bottom one.
Runs any Teco program in the variable Babyl C Hook after the message
    template has been set up.tS Edit and then send a message.
To continue editing a message aborted earlier, provide a numeric
    argument.~C Find init or vars file and process it.
Babyl init and vars files are similar to EMACS ones, though these
    should only be for customizing Babyl.  If you only use Babyl from
    WITHIN EMACS, you can customize it with your EMACS init or vars
    file.  You would then need no Babyl init or vars file.  But if you
    want to use Babyl outside EMACS, i.e. :BABYL on ITS or BABYL.EXE
    on TNX, then you should put Babyl customizing in a Babyl init or
    vars file.
Babyl checks your home directory for a Babyl init file, which should
    be Teco code: BABYL INIT (ITS) or BABYL.INIT (TNX).
If no init file is found, it looks for a vars file:  BABYL VARS (ITS)
    or BABYL.VARS (TNX).  This file should be in the same format as an
    EMACS vars file.
This processing is only done the first time Babyl is loaded, for
    reading or sending mail.  If you edit your Babyl init or vars file
    after this first entry to Babyl, you can give the M-X Process
    Babyl Init or Vars File command manually so that Babyl takes
    notice of the changes.
qSubDoc"n i
A 1, numarg means called from Babyl, so only process once.'0S Read the user's EVARS file of var settings1C# Edit and then send a message.
Describe Edit and Mail Buffer for details about message editing and
    general hooks.
If you give a numeric argument of 2 we will try to use 2 windows, the
    mail in the bottom window, the current message in the top one.
To continue editing a message aborted earlier, use the C command.
You may set the variable Babyl M Hook to a Teco program to run after
    the header is initialized.xC Edit and send mail, with template initialization.
Describe Edit and Mail Buffer for details about message editing and
    the general hooks available.
The message is initialized from a template, which may specify any
    header or text components.  The template is a variable, containing
    a copy of what the mail editing buffer should be initialized to.
    It can optionally start with a value for point, within brackets,
    e.g. it might start:  [35]To:
String argument is a template name.  The template variable name is
    formed from this name -- e.g. for a template named "Foo", the
    variable is named Babyl Template Foo.  If you are using the Babyl
    V command the template name is read with completion.
If you give a numeric argument of 2, we will try to use 2 windows,
    current message in top one, message being sent in bottom one.
See the M-X Set Mail Template command for aid in creating templates.
Runs the Teco program in the variable Babyl M Hook if one.  This
    program can check the variable Current Babyl Template Name, 0 for
    normal mailing, if it wants to further process the template.^C Template replaces current contents of *Mail* buffer.
String argument is template name.  If none, it will ask you for one,
    with completion. 
This command is like M-X Mail With Template, except it is for use
    after you are already in the recursive mail edit.
The M-X Undo command will get the original *Mail* contents back
    again.!C Create or reset a mail template from buffer contents.
See the M-X Mail With Template or # Babyl V command for using
    templates.
String argument is a template name.  If null, will read it in echo
    area.
The template is taken to be the entire contents of the buffer.  The
    current point will be remembered in the template.  This command is
    generally given while in a recursive mail edit level.,C Insert template setup code.
String argument is template name.
After using Set Mail Template, you can visit your init- or vars-file
    and use this command to insert something that will save this
    template for permanent use.
Asks which kind of code it should insert, VARS- or init-file.-	S Edit some mail to send in recursive edit level.
All the Babyl mail-sending commands (C, F, M, R, V) invoke this one.
To send the mail, exit the recursive edit level with ^R Exit.
To abort, use Abort Recursive Edit.  If you abort, you can
    continue editing the message later with the C command from Babyl
    or by giving Send Mail an argument.
The ^R Babyl Yank command will insert a copy of the current Babyl
    message if there is one.  (E.g. the one being replied to.)
Paragraph Delimiter is temporarily set so lines starting with "-"
    won't be considered part of a paragraph.  Thus the --Text...  line
    won't get in the way of a ^R Fill Paragraph.
If the variable Babyl Require Subjects is non-0, you will be asked to
    supply a subject line if you forgot to include it while editing.
The variable Babyl Edit Mail Hook may be set to a Teco program to run
    just before entering the recursive edit level.  If this variable
    is 0, we will connect C-M-Y to ^R Babyl Yank, C-M-\ to ^R Fill
    Indented Mail Region, and set the Paragraph Delimiter variable.
    This default action may be called by your hook, by:
	mBabyl Default Edit Mail Hook^S For both ITS and TNX, maybe adds field to header.
Caller has bounds set to just header.G^R Yank message being replied to and grow reply window.
Message is indented 4 spaces, and MARK is left before, point after,
    message.
Numeric argument of 4 ():  Message is not indented.
The original header is discarded; only the reformed one is yanked.
Numeric argument of 16 (): Original header is used instead.+^R Calls & Read Line for subject field.^R Calls & Read Line for new To-recipient.
NUMARG of 4 means ^R Babyl Add Cc-Recipient.
Negative NUMARG means ^R Babyl Delete Recipient. ^R Add new name to Cc field."^R Delete To- or Cc-recipient.S NUMARGs: name,fieldName.S NUMARG is recipient name.S Set up *Mail* buffer and window for editing.
Selects back when caller returns.
Non-0 pre-comma numeric argument means use 2-window mode.
Non-0 post-comma numeric argument means reset the buffer (no buffer filenames,
    default filename of *Mail* or MAIL.TEMP, Text Mode._S Push-select buffer STRARG.
When caller returns, the original buffer will be re-selected.3S Mail message as specified by buffer contents.+S Write buffer out to unsent-mail file.!S Numarg is recipient buffer.!S Numarg is recipient buffer.VS Make sure From and Date fields are there, etc.
Numarg is recipient-list buffer.4S Merge, reform and parse.  See source for args.0S Append buffer to default file, with header:S Append B,Z to NUMARG file. Returns non0 iff success.6S Create some variables needed, do init/vars file.S Do DECnet stuff-C Send off network mail in user directory5S Run Queue-Xmail to send our local mail, or
queue network mail and set bits in SYSTEM:XMAILR.FLAGS.
Note: if Babyl Subfork Control is non0, DONT dump after sending a message.' Library for reading BBoard Files. .S Initializations for the BBOARD Library. #C# Look for new BBoard Notices to read, or on to next BBoard.
With an argument of 1, does not delete old notices.  With an argument of 2,
queries about every BBoard whether or not it has new notices.  If BBoard Sans
Query is nonzero then BBoard are immediately read without querying. fS Flushes from the buffer messages older than
the current value of BBoard Last Read until the buffer's size is no larger than
BBoard Maximum Size or all messages but one have been deleted.  The buffer
should be in Twenex mail file format. Does nothing if Last BBoard Argument is
nonzero.  Throw to BBoard ^B Abort if the mail file appears to be bad. @C# Add BBoard to Switch.ini.  With nonzero argument, Remove BBoard. 
If the name given is not a System BBoard, the user will be prompted for the
name of the Twenex Mail File to be read. "S Initialize List of BBoards. ? Library of site-specific additions to the BBOARD Library. gS Initializations for the BBSITE Library.
Add any additional site-specific code to this function. $& SetUp BABYL Library
<ENTRY>
Babyl
Re-Enter Babyl
Edit Babyl Options
Create Babyl File
^R Fill Indented Mail Region
& Estimate Mail-Line Category
Undigestify Babyl Message
& Find Digest Dash Separator
& Babylize Digest Contents
Shorten From Field For Hermes
# Babyl ^C
# Babyl ^Z
# Babyl ^D
# Babyl ^F
# Babyl <Backspace>
# Babyl <Tab>
# Babyl <Linefeed>
# Babyl ^L
# Babyl <Return>
# Babyl ^N
# Babyl ^O
# Babyl ^P
# Babyl ^R
# Babyl ^S
# Babyl ^T
# Babyl ^]
# Babyl ^X
# Babyl <Altmode>
# Babyl <Space>
# Babyl ^W
& Count Screen Lines
# Babyl '
# Babyl .
# Babyl ;
& Babyl TYI Source
# Babyl =
# Babyl <Digit>, <Comma>, +, -, *, /, (, and )
# Argument Part
# Babyl A
& Babyl Survey Several Messages
& Babyl Survey One Message
& Babyl Resurvey One Message
# Babyl D
# Babyl E
# Babyl F
# Babyl G
# Babyl H
# Babyl I
# Babyl J
# Babyl K
# Babyl L
Label Message
# Babyl N
# Babyl O
& Babyl O Done Hook
# Babyl P
# Babyl Q
& Babyl R Done Hook
# Babyl S
# Babyl R
& Setup Reply Template
# Babyl T
# Babyl U
# Babyl V
# Babyl W
# Babyl X
# Babyl Y
# Babyl Z
# Babyl <
# Babyl >
# Babyl \
# Babyl ?
# Babyl |
the Babyl Helper
# Babyl <Rubout>
& Babyl Select Message
& Babyl Expunge
& Calculate Message Number
& Push Message
& Bounds Of Header
& Bounds Of Original Header
& Babyl Execute Options
& Babyl Macro Get
& Babyl --MORE--
& Reform Header
& Parse Header
& Babyl Process Sender Fields
& Form Header
& Read Babyl File
Convert Babyl File Version
& Convert Babyl File Version
& Babylize Buffer
& Initialize Babyl Buffer
& Reset Babyl Options
& ITSify TNX Mail
& Babyl Set Mode Line
& Babyl Get Message Labels
& Get Labels for Survey
Label Labeled Messages
Delete Labeled Messages
UnDelete Labeled Messages
Output Labeled Messages
& Label Map Command
& Map Over Labeled Messages
& Label Babyl Message
& Add Basic Label
& Remove Basic Label
& Check Message Label
& Reformed Bit
& Make Dummy Message
Remind Me Of This Message
Next Labeled Message
& AutoLabel Subject Labels
& Autolabel TNX Bit Labels
& Make Babyl Label Table
& Use Babyl Label Table
& Read Babyl Label
& Add to Labels Option
Edit Labels List
Label Messages Containing String
Survey Menu
Survey Mode
^R Survey Menu T
& SvMenu ^RNormal Macro
& Survey-Select Message
& Jump To Current Survey Line
^R SvMenu Argument
& Survey Arg Doc
& Survey Args
Survey All Messages
# Babyl B
Survey Deleted Messages
Survey Labeled Messages
Survey Messages Containing String
Survey Reminders
Survey Unlabeled Messages
Survey Seen Messages
Survey Undeleted Messages
Survey Unseen Messages
& Compressed BABYLM Library
# Babyl C
& Mail Message
Process Babyl Init or Vars File
& Babyl Process Init Vars
# Babyl M
Mail With Template
Get Mail Template
Set Mail Template
Insert Mail Template Into VARS/Init File
Edit and Mail Buffer
& Maybe Insert In-Reply-To
^R Babyl Yank
^R Babyl Add Subject: Field
^R Babyl Add To-Recipient
^R Babyl Add Cc-Recipient
^R Babyl Delete Recipient
& Babyl Add Recipient
& Babyl Delete Recipient
& Push To Edit Mail
& Push To Buffer
& ITS Mail Buffer
& TNX Mail Buffer
& Default Babyl Queuing Function
& MMAILR Babyl Queuing Function
& Complete TNX Header
& Process Recipient Field
& Append to TNX Mail File
& Babyl Append
& Setup BABYLM Library
& DECnet Mail Buffer
Net Mail
& Run Mail Subfork
& Compressed BBOARD Library
& Setup BBOARD Library
# Babyl ^B
& Flush Old BBoard Notices
# Babyl ^A
& Initialize BBoard
& Compressed BBSITE Library
& Setup BBSITE Library
\+8+fq(+4)[2 0[3
< %3,-q2f2u3 q3&1@; q3"l 0' >
f[BBind q3-1*5,q3*5g2 q:..o(0)+q2