`[0 +8+fq(+4)[1 0fo10f"g+q1' +fq()+4u1 fq1"l 0' ,q1:m(q1+4(]1]0))~Z^}7~Zl~Z~Z{~Z~Z ~Z#}\~Z?~Z'~Z]~Z6~Z{~ZE~Z~ZT~Z~Zc~Z}pqBAzpw~ZMqcr9wESzOp~V^‹Ck~( x. +K1 C!cK&7,e94g+lF/S2e`CmozA&oB(BJ5nUCn`Qn_pwopqrEr9rws9tDuFvoyz{Mz#-nU;zKz#YziC';ŝ=LCYj Hl I$5cG;5JO%`25Z3?5EnOut4iC~I5jjoy'ȉE/]w-{Km[|gnMsW;gj+iK.xFwJL%_!o7|).e! =Uf:BgI[TFa+r{KoIa!bLM&R_+qrQps\4m6W%4& fE0SuHQ5Q$RMa\[y@0R8tI=[uy0PRb7mps |z/3Q$' Qk9@m( \((w)1+E-5]-=+*-s|qiGH4F;G;,HGuDUCcS?]$5h_L| L L 5L %L _L :L  NL L cL L xL!L!L!/L!"L!YL!7L! !K@ !!b!L""5#"OEw"iE"Ai"9"V@$"D"i`""|vK# 4#L#1k#"/#W#5&=#}*I#HO##[}$#,h#n#S$}$4$4 $;3$'$a>2$:>i$$M?($?t$`@:$o$$%%%i%;%Q%e#%{>%2%%% % z%E& E&'&1o&E&['&oE&Q&L&\N&c&sd' `/'-Hm'G'3|'?'P)'F'mPF'e(2(} (Yg(@3N(,((P) )s)OG)kη)CZ)UGF)cGj)?*]6**Mv2*9o*LA*[4*j~*}+%+KKK+1й+O+SO+O}+no},#,W,?x,W`C,y^#,[8,^ I,p- I-!J-"G)-.?-;--Wo-eI-][-.Ok.U.*r.s.u.px.q*.r///A`f/1t2/st/AL9/Sx9//qN0v0Q0q0Q80C0,30]g0r1}1 ^k1T}1QxM1=t1Iu11hF12 !25}2+i2ks2Kl>2sx2u&2uT3t(3)v3Iĵ3c#3C~I33fw34 47 4'z'4:4Gp]4Ur4_4l4f Z# Argument Part# Babyl '# Babyl ( ~# Babyl ) ~# Babyl * ~# Babyl + ~# Babyl , ~# Babyl - ~# Babyl .# Babyl / ~# Babyl 0 ~# Babyl 1 ~# Babyl 2 ~# Babyl 3 ~# Babyl 4 ~# Babyl 5 ~# Babyl 6 ~# Babyl 7 ~# Babyl 8 ~# Babyl 9 ~# Babyl ;# Babyl <# Babyl # Babyl # Babyl , , +, -, *, /, (, and )# Babyl # Babyl # Babyl # Babyl # Babyl # Babyl =# Babyl ># Babyl ?# Babyl A# Babyl B# Babyl C# Babyl D# Babyl E# Babyl F# Babyl G# Babyl H# Babyl I# Babyl J# Babyl K# Babyl L# Babyl M# Babyl N# Babyl O# Babyl P# Babyl Q# Babyl R# Babyl S# Babyl T# Babyl U# Babyl V# Babyl W# Babyl X# Babyl Y# Babyl Z# Babyl \# Babyl ^C# Babyl ^D# Babyl ^F# Babyl ^H ~# Babyl ^I ~# Babyl ^J ~# Babyl ^L# Babyl ^M ~# Babyl ^N# Babyl ^O# Babyl ^P# Babyl ^R# Babyl ^S# Babyl ^T# Babyl ^V ~# Babyl ^W# Babyl ^X# Babyl ^Z# Babyl ^[ ~# Babyl ^]# Babyl ^` ~# Babyl |# Babyl ~& Add Basic Label& Add to Labels Option& Append to TNX Mail File& AutoLabel Subject Labels& Babyl --MORE--& Babyl Add Recipient& Babyl Append& Babyl Delete Recipient& Babyl Execute Options& Babyl Expunge& Babyl Get Message Labels& Babyl Macro Get& Babyl O 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& Convert Babyl File Version& Count Screen Lines& DECnet Mail Buffer& Default Babyl Queuing Function& Estimate Mail-Line Category& Find Digest Dash Separator& Form Header& Get Labels for Survey& Initialize Babyl Buffer& 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 Reply Template& Survey Arg Doc& Survey Args& Survey-Select Message& SvMenu ^RNormal Macro& TNX Mail Buffer& Use Babyl Label TableBabylConvert Babyl File VersionCreate Babyl FileDelete Labeled MessagesEdit and Mail BufferEdit Babyl OptionsEdit Labels ListGet Mail TemplateInsert Mail Template Into VARS/Init FileLabel Labeled MessagesLabel MessageLabel Messages Containing StringMail With TemplateNet MailNext Labeled MessageOutput Labeled MessagesProcess Babyl Init or Vars FileRe-Enter BabylRemind Me Of This MessageSet Mail TemplateShorten From Field For HermesSurvey All MessagesSurvey Deleted MessagesSurvey Labeled MessagesSurvey MenuSurvey 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 ~DOC~ # Babyl ~DOC~ # Babyl , , +, -, *, /, (, and )~DOC~ # Babyl ~DOC~ # Babyl ~DOC~ # Babyl ~DOC~ # Babyl ~DOC~ # Babyl ~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 ^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~ & 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~ & 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~ & Form Header~DOC~ & Get Labels for Survey~DOC~ & Initialize Babyl Buffer~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 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~ ~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 Template~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~BABYL80fo..qBABYL Loaded-12270405177"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.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.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.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  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  12270405177m.vBABYL Loaded' m(m.m& SetUp BABYLM Library) f:m(m.mBabyl)m(m.m& Push to Buffer)*Babyl* 1f[^RMore fsZ"e m(m.mText Mode) 1f  > ' "# @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  [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-Abort [H[U[V[Y[1[2 0[3 f[DFile "e :i3 fq3"e 0u3'' fsXUName:f6uU 1:"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: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.  1fw 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.'  [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:"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 0[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 .-b[p qNumber of Babyl Messages :itTo: l at MIT-MC  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"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)fsOSTeco"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 [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"E ' q1m(m.m# Babyl J) :i*No more unseen f;Babyl-Command-Abort ff&1"n fsWindow(f+)fsWindoww ' f+ -[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 ' FS 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,f Add 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:@:; 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' [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'' :i*CfsEchoDisplayw qBabyl Standalone Job"e f;Babyl-Catch' 100000.fsExitw f@m(m.m^R Execute Minibuffer)w fsRGETTY"n 1: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 q0"l 2[Survey Quietly @m(m.m# Babyl ^S)' "# f':m(m.mSurvey Menu)qMessage Number:\[1 :i551 0[..J :I..JBabyl-Shhh m(m.m& Read Line);uBabyl Shh Text m.m& Babyl TYI SourcefsTYISourcew qBabyl Shh Text[3 fq3:"g 0fsTYISourcew 0' 0:g3fsReReadw 1,fq3:g3uBabyl Shh Text 0= :i550 0qMessage 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) [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  [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' ! 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; flk -@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'' 1fw 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 fsTopLine+q0fs^RVPosw q1j q2"e 0@:f'' ' q9fsQPUnwindw qBabyl F Done Hookf"nu1 m1'w [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).[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 [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;' > [1[2 qBabyl O Filename[3[4 q3fp-99"g q3'f[DFile e[ e\ fn e^ e] ff&2"e 5,f Add message tou1 qBabyl File Versionu4 et1 fsOSTeco"n fsDVersion"e q4"e 1u2 1: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:"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 "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;' > qBuffer 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-Catchm.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 fsQPPtr[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) 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 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"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)fsVB+(fsWindow)fsWindoww 0,fsZfsBoundw fm(m.m^R Extended Command)w [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  qNumber of Babyl Messages:\[1 :i551 0bj 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:  @:fi-233."e fsReRead' 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? fq5"g 0,fq5-1:g5u5 0' :i*C fsEchoDisplayw [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 .[0[1[2 0f[vb 0f[vz :s"l r' .u2 0s  0u1 j < .,q2:fb; %1w > q1uMessage Number q0jq0,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,.0f[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 ff"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'' "E 1,m.m# Babyl 2f"N 'w' q1-8"E :i2' "# q1-9"E :i2' "# q1-10"E :i2' "# q1-13"E :i2' "# q1-27"E :i2' "# q1-32"E :i2'''''' "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,(f1f"L wfq1'):g1u1 ft2: 1  ' [1[2 .-z"n .( 0u2 <%2wl.-z;> )j ft( q2:= z-./(fsWidth*q2) ft lines)--MORE--' [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 x [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: 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 ' [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 ' [0[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  fsZ-(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: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. 1 [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}' > [1 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 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) !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 qBabyl Autolabel Messages"n bj m(m.m& AutoLabel Subject Labels)' bj 0[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) q3[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"D \w @f l (1a)-"E 2u2 ''' "# :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 QBabyl Keep TNX Received DateU0 j < .-z; .u2 :fb,; \u1 0,1a-;@:; l z-.-q1u1 Q0"N Q2J IRcvd-Date:  :FB,W -1C I  .U2 L ' q1"l 0u1 ' <9f~Mail from@:; l> q2,.k <.,z-q1:fb;^_> z-q1j i @f k > .-z"e ,0a-"e j '' :i*Bad message filefsErrf~(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' 0u6 1fw q6"e :i44, 7last' :i5Babyl (Message 3/24) 1  f=..j5"n q5u..j' .:\[1 fn1j 0f[VB -s lc .,(fb,,).-1x1 :@x1 0,fq1-1:g1u1 fq1"g q1' 00f[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 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 [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  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: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: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 > [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  0[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  -1: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 ff"n '"# 1' m(m.mLabel Message)RemindNow [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' [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 ::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: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-------- )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,f Label 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@:ff"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):i*[1 [2 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 [0[1[2 1,f Survey 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 q2w fsListen"e ftDone. '"# ftFlushed.' fm(m.mSurvey Labeled Messages)RemindNow [1[2[3[4[5 m(m.m& Use Babyl Label Table) 8+2,f Survey 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 fm(m.mSurvey Unlabeled Messages)deleted fm(m.mSurvey Labeled Messages)unseen BABYLM[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)ff&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:BABYL.VARS'' e?"e fsDFile m(m.m& Babyl Process Init Vars)' etDSK: fsHSNamefsDSNamew 0fsdvers etBABYL INIT 0u1 fsOSTeco-2"e 1: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: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:"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,f Template: 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,f Template: 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,f Template: 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,f Template: 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 ' 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 '' [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 14:m(m.m^R Babyl Add To-Recipient)-1:m(m.m^R Babyl Add To-Recipient){[1[2 j :s 1:"l 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 !' "# etMAIL.TEMP'' m.m& Set Mode Linef[ModeMac qEditor Name[..j :i..j..j  1fsModeChangew :[Previous Buffer qBuffer Name[0 @:i*|m(m.mSelect Buffer)0|(]0)[..n m(m.mSelect Buffer) :[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 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 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 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 .-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:' 1,m.m& Immediate Mailf"nu2 e?emacs:immediate-mail.exe"e q3m2' z-b"e ''w e?XMAILR.FLAGS"n e?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: fsHSnamefsDSname 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'' > p[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 ' "# f~7MIT-OZ"e :i7 at OZ.AI.MIT.EDU%OZ.AI.MIT.EDU at MC.LCS.MIT.EDU%OZ.AI.MIT.EDU at XX.LCS.MIT.EDU at 7%7 at MIT-MC.ARPA%7 at MIT-MC%7 at MIT-XX.ARPA%7 at MIT-XX ' "# :i7 at 7 ''' "# 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 ! ' ! in recipientfsErr ! 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( < ! 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: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 [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 q1uBabyl ..Dw' fsOSTeco"n f[DFile etPS: fsOSTeco-2"e etDSK:' e?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 e?SYSTEM:XMAILR.FLAGS"e -(fzSYS:XMAILR.EXE)fz' "# -(fzEMACS:EMAILER.EXE)fz'w [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. Mail 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 4:08pm Monday, 12 January 1987 by JAR on MIT-OZ from the following source libraries: OZ:BABYL.EMACS.774, 06/17/86 15:57:00 OZ:BABYLM.EMACS.166, 01/12/87 15:44:01S Mail file editor subsystem. Same as the Babyl and Re-Enter Babyl commands.C 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 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.C 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.S 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.C 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.C# (^C on ITS, ^Z on Tops-20) Return to DDT/EXEC temporarily.C# Delete message and move backward.C# 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 brings back old message.)C# Jump to next unseen message.C# Clear screen. Given a numeric argument, keeps same window.C# No-op, flushes argument, and goes to next line.C# 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.'C# Append current message to a TNX mail file.C# Move to previous message, whether deleted or not. If argument, n, moves to nth previous.C# Enter a recursive edit level on current message.C# 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.C# 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 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. -' is like ^S' 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.C# Return the message number of current message. To reposition at top of current message, do .JC# 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.C# 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.S 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 JC# 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.'C# 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.C# 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.C# 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: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.C# Attach/remove a label to the current message. Given negative argument, removes the specified label.C 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.'C# 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.'S 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.C# 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.C# 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.C# 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 will bring back the old message in case filling caused problems.C# Generate a list of Babyl commands, or just describe 1 character.C# 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.C# 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.S Remove deleted msgs, unlabels recent. Sets msg# variables.S sets msg# varS So return to original msg, window when caller exits.S Return .,. around (reformed) header. Point left at end of header.S 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.S 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: fieldsS 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.'S 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.S Convert MAIL.TXTish stuff in buffer to ITS format.S 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.C 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.C 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.S 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.S Label message with string argument, a basic label. Returns 0 if not previously labeled, non0 if was.S Unlabel message with string argument, label. Returns 0 if not previously labeled, non0 if was.S 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.C (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 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.S 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=featureC 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".C 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.^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.S Used inside Survey Mode. Note Babyl Command Hook.S 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.S Put on digits, minus, and comma to get argumentsS 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.C# 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!C 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!C Survey messages not labeled "deleted".  !DOC! g(m(m.m& Survey Arg Doc)undeleted) !COD!C Survey messages labeled "unseen".  !DOC! g(m(m.m& Survey Arg Doc)unseen) !COD!Mail-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.'S Read the user's EVARS file of var settingsC# 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 HookS For both ITS and TNX, maybe adds field to header. Caller has bounds set to just header.^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.S 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.S Make sure From and Date fields are there, etc. Numarg is recipient-list buffer.S Merge, reform and parse. See source for args.S Append buffer to default file, with headerS Append B,Z to NUMARG file. Returns non0 iff success.S Create some variables needed, do init/vars file.S Do DECnet stuffC Send off network mail in user directoryS 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.& SetUp BABYL Library 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 # Babyl # Babyl # Babyl ^L # Babyl # Babyl ^N # Babyl ^O # Babyl ^P # Babyl ^R # Babyl ^S # Babyl ^T # Babyl ^] # Babyl ^X # Babyl # Babyl # Babyl ^W & Count Screen Lines # Babyl ' # Babyl . # Babyl ; & Babyl TYI Source # Babyl = # Babyl , , +, -, *, /, (, 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 & 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 & 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 +8+fq(+4)[2 0[3 < %3,-q2f2u3 q3&1@; q3"l 0' > f[BBind q3-1*5,q3*5g2 q:..o(0)+q2