HowToUseWalnutVersion4.2Releaseas[Indigo]Documentation>HowToUseWalnut.tioga,.pressCamefrom[Indigo]Manual>HowToUseWalnut.tioga,.pressByWillie-SueHaugelandLasteditedByWillie-SueHaugelandonJune8,19839:36amJimDonahueonJune2,19831:17pmAbstractWalnutisacomputermailsysteminterfacethatrunsinCedar.Itprovidesfacilitiestosendandretrievemail(usingtheGrapevinemailtransportsystem),andtodisplayandclassifypreviouslyretrievedmessages.Walnutisunderactivedevelopment.ThisdocumentdescribeshowtoobtainanduseWalnut4.2,thelatestversionofWalnutreleasedwithCedar4.2.HowtoUseWalnut:Contents0.Introduction1.Databasestructure2.Userinterface3.Becomingauser4.Copingwithreleasesandcrashes5.Userprofileoptions6.Shortfallsandwishes[Ifyouarereadingthisdocumenton-line,tryusingtheTiogaLevelsandLinesmenus(ifyoucan)toinitiallybrowsethetopfewlevelsofitsstructurebeforereadingitstraightthrough.]XEROXXeroxCorporationPaloAltoResearchCenter3333CoyoteHillRoadPaloAlto,California94304DRAFTForInternalXeroxUseOnlyDRAFTp ^{~vq YWr TosT26Fr R LsR/4wr QAsQA r O sO "5$]()-Q0Mn "A%)r JsJT ]#(.1586<\=C H ?%t!(+27:AD B^ MCn20%,(Q,t < Su 9F: 5:B 2: /Z: , : (: %n: #v "  E//p#)+0$37w<?DG x |Rz!$'+70*2S4CG N3@Zu 0%+X017: CkEk Leg)!+"%q ,y2+ 8: A}C J "%( 04'575<AkCKEV I=] F'<: $j&(,/058;@?BG E  $&+ 4:< C Cb 6!$(C-J/2!69A AB A{&-%y'=(+-TVm$edtoDeleted.UsingtheActiveandDeletedHOWTOUSEWALNUT31.DatabaseStructureWeshalldescribeauser'smodelofWalnut'sdatabase.ThismodelsuppressesmanydetailswhoseunderstandingwouldberequiredinwritinganewapplicationonWalnut'sdatabase,butareirrelevantforaccessingthedatabasethroughWalnut'suserinterface.Walnut'sdatabasecontainstwoentitytypes:messageandmessageset.AmessageentitycorrespondstoamessageretrievedfromtheGrapevinemailtransportsystem.Likealldatabaseentitiesithasaname,consistingofthesender'sRNameconcatenatedwithauniquemessageIDprovidedbyGrapevine.Amessagealsohasseveralimmutableproperties:itssender,itssubject,andsoon.ItsunreadpropertyisaBOOLwhosevalueisTRUEwhenthemessageisfirststoredinthedatabase,andissettoFALSEwhenthemessageisfirstdisplayed.Amessageentityisalsoamemberofoneormoremessagesets.Amessagesetentityisnamedbyatextstringcontainingnoembeddedblanks.Therearetwodistinguishedmessagesets:ActiveandDeleted.Anewly-retrievedmessageismadeamemberofActive.AmessagethatisremovedfromallothermessagesetsisaddedtoDeleted.UsingtheActiveandDeletedmessagesetsinthiswayensuresthateachmessagebelongstoatleastonemessageset.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg't ^ x [<z!$"(/)2F6 =@AEa Y 52 %F&|)v 028z>yACf XA )p C% ( Uts $z( U)#Ux-GU-Uz/U1U58x6U Se !"(r.c14;o>DR T!$%z%RR&Rx(rR)QR /1f39 >4 FtPlPO{%' 0B2%7:=BN zNTNx}NsNz hN Nx$bN%YN(+* -z/5N/Nx3N4N9; yMADKv< I|9p"<#&(a+1J46P;=ACGG+ "@),.25~8\ @FtzF.xF.F.zF.F.xF.=F.(j-/239?:?AwFDI{y!&&)9*.06:=@ADbB'v$'*005:68;>RC%y'=(+<TVm$g"<#&(a+1J46P;=ACG$M+ "@),.25~8\ @Ft{"x""{""x"="(j-/239?:?AwF I{y!&&)9*HOWTOUSEWALNUT42.UserInterfaceWalnutimplementsfourviewertypes:theWalnutcontrolviewer,themessagesetdisplayviewer,themessagedisplayviewer,andthemessagecompositionviewer.WhenWalnutisrunningthereisoneWalnutcontrolviewer,andanynumberofinstancesoftheotherviewertypes.TheiconicformoftheWalnutcontrolviewerisamailbox.AnythingthatcanbedonewithWalnutcanbedonebystartingfromthecontrolviewer(sometimesbycreatingotherviewers).Walnut'suserinterfaceattemptstobeconsistentwithconventionsusedelsewhereinCedar.ClickingLEFTonabuttonrepresentingaWalnutentity(amessageoramessageset)"selects"theentity(makesitanimpliedparametertootheroperations);clickingMIDDLEonsuchabuttonopenstheentity(displaysmoreinformationsomehow).ThisisanalogoustothebehavioroficonsinCedar.Unlessotherwisespecified,hereafter"click"means"clickwiththeLEFTmousebutton".2.1MessagesetsThemessagesetsinaWalnutdatabasearerepresentedbybuttonsintheWalnutcontrolviewer.TheActiveandDeletedmessagesetbuttonsalwaysappearfirst;othermessagesetbuttonsappearinalphabeticalorder.Theremaybeseveralrowsofthesebuttons.Tocreateanewmessageset(containingnomessages)typeitsnameintotheMsgSet:fieldofthecontrolviewer,thenclickCreate.Amessagesetbuttonwiththisnamewillappear.Similarly,todeleteanexistingmessageset,typeitsnameandclickDelete.Walnutrequestsconfirmationifthemessagesetcontainsanymessages.Ifyoudeleteamessagesetcontainingmessages,themessagesaredeletedfromtheset(asifclickingeachmessagewithCTRL-LEFTasdescribedbelow)beforethesetisdestroyed.Tofindouthowmanymessagesarecurrentlyinamessageset,typethenameofthesetandclickSizeOf.Tocreateamessagesetdisplayviewer,clickMIDDLEonthecorrespondingmessagesetbuttonofthecontrolviewer.Theiconicformofamessagesetdisplayerisastackofenvelopes.Themessagesetdisplayercontainsaone-linebuttonforeachmessageintheset.EachmessagebuttonlooksmuchlikealineinthetopwindowofLaurel:itshowsthedateofthemessage,thenameofthesender(orTo:fieldifthesenderisthecurrentuser),andthemessagesubject.Atmostoneofthemessagebuttonsinasetisselected(shownwithagreybackground).Toselectamessage,clickLEFTonit;toselectanddisplayamessage,clickMIDDLEonit.Todeleteamessagefromthemessageset,clickCTRL-LEFTonit;itsbuttonwilldisappear.(Notethatifthismessagebelongedtonoothermessageset,itisaddedtotheDeletedset,andhenceisstillaccessible.)Amessagesetdisplayeralsocontainsseveralcommandbuttonsthatoperateontheselectedmessage.Categorieslists(intheWalnutcontrolwindow)themessagesetsinwhichtheselectedmessageappears(amessagecansimultaneouslybeinseveralmessagesets).MoveToaddsthemessagefromthemessagesettoallofthemessagesetsselectedinthecontrolwindow,afterfirstdeletingitfromthemessageset.Displaydisplaystheselectedmessage.Deletedeletesthemessagefromthemessageset;ifitthusbecomesamemberofnoothermessagesets,thenitismovedtotheDeletedmessageset.AddToaddsthemessagestotheselectedsetswithoutfirstdoingthedeletion.Finally,theActivemessagesetincludesaNewMailbuttonthatreadsnewmailandaddsthemessagesreadtothismessageset.FortheMoveTo,Delete,andAddTobuttons,LEFT-clickingsimplyperformstheoperationdescribedabove,whileRIGHT-orMIDDLE-clickingperformstheoperationanddisplaysthenextmessageintheset.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg't ^ x [ -G $'Z,Z1"58j=@ D Y HK %g -&2_6s;Z<AE{F XWT"$*z,8.2@6;"=BErG/ V"!%'J**,.2M5y:u=?BD U  Se !'/* R[< @!# ), 4j7=?TDr Px P P$U "&(h-/06$8>p@D O? 8 9 %dr*oO?+^O?x/O?/O?14'5G9=?C M   q 'b)+p1!26b8 K(R f#8',03r5~K6&Kx8K9K<u G )x D~%( /168:@D Bs B BxjBBs7B4BxBB&!Y&e*/|26<>8CDG A/  $#&(,. >$ %'.Y1u3[7&: s=>xB/>B>EkG/ = Fbs= = x= != %(,i/z258f= CE ;e |*!$s( ;e);ex,;e-;e28 @NAD7 9 "YC#%*, 39A'CpFSs 4x 2L/B$r'2L(2Lx,c2L-2L._0 9>AEhG 0 !&[(w.T/04\6 .*PI"$).0m39/:=v@D7 ,ap! "(+).0!4169;X=CmE * }$"$u&+/2L4:?AEG )4 Ax;M!&)*- 68<]=|C!rFQ)4F)4x '  QX"r%n'&\'x*'*',7.0461;?AF %r % %x%B%H ! '+-/17<>@D $> a #GU!%') !'ku>#G'.25:Cs  xC(s!%+.$36c84D7-~a (*,Y06Bs ?xh? ?/!#(+.,.03<8;a@BgDTg!#&g(.s xos xC *| #8(+,v-06\7<>@D7E7s"E#Cx'(- s %xv%% &((-046 7s77x/7Y7fb$s%7&7x+7,F7/2}58;>YAtC: @s  x si g x C s  x# $W r( )m x+~ + 05K;=TCd m>r m mx] mR mr m mxB m7 m"E(*p03A8o:=CDG%y'=(+ *TVm$n"E,#C,x',(,- s *xv** &((-046 (s((x/(Y(fb$s%(&(x+(,F(/2}58;>YAtC&w: #@HOWTOUSEWALNUT52.2MessagesAsdescribedabove,amessagecanbedisplayedbyclickingMIDDLEonamessagebuttonofamessagesetdisplayer.Thiscreatesamessagedisplayviewer,whoseiconicformisanenvelope(clickingSHIFT-MIDDLEonamessagebuttoncausesthecreatedviewertofilltheentirecolumn).Themessagewithinsuchaviewerisnoteditable.Thisviewerisassociatedwiththemessagesetthatcreatedit,soclickingMIDDLEonanothermessageofthesamemessagesetshowsthisnewmessageinthesamemessagedisplayer.Thisisdesignedtoavoidaproliferationofmessagedisplayers.Ofcourse,therearetimeswhenyoureallywanttocreateviewersonseveraldifferentmessagesinoneset.Clickingamessagedisplayer'sFreezebutton(whichthendisappears)permanentlybindsthemessagetothemessagedisplayer.Ifallmessagedisplayersforagivenmessagesetarefrozen,thenMIDDLEclickinginthemessagesetcreatesanewdisplayer.Afrozenmessagedisplayercannotbeunfrozen,butcanbedestroyed.Amessagedisplayerhasseveralotherbuttons.TheCategoriesbuttonisthesameasthatonmessagesetdisplayers.AnswerandForwardcreateaWalnutSendviewerinitializedeitherwithaproperheadingforananswertothemessageoracopyofthemessageforforwarding.ThePrintbuttonusestheTSettertoprintthemessage--itwillcomplain(intheWalnutcontrolwindow)iftheTSetterisnotloaded.AndtheremainingSplit,PlacesandLevelsbuttonsarefromTioga.2.3SendingmailTocreateamessagecompositionviewerclicktheNewFormmenuitemintheWalnutcontrolviewer,orusetheAnswerorForwardbuttonsonamessagedisplayviewer.Iniconicformthisvieweristhebackofanenvelope,withthetitle"WalnutSend...6/02/83".ThemessagecompositionviewerisaTiogaviewerfortypinginthemessageheaderfieldsandmessagebody.NewForm,PrevMsg,andGetFormmenuitemsareguardedwhiletheSenderisdirty.Whenacommandrequiresconfirmation,appropriatebuttonsappearintheviewermenuarea;thecontrolwindowisusedformessages.ClickingtheClearbuttonofamessagecompositionviewercausesitsmessagetexttobereplacedbyastandardmessageform.PrevMsgrestoresthecontentsofthelastsuccessfullysentmessage.GetFormloadsintotheviewerthefilewhosenameiscurrentlyselected(ifnofileextensionisgivenandnofileisfoundwiththeselectedname,theextension".form"isused);italsosetstheinputfocusatthefirstplaceholder.ConfirmandDenybuttonsappearforconfirmationiftheexistingmessagetexthasbeenedited.StoreMsgstoresthecontentsoftheviewerintheselectedfile;thisgivesawaytosavepartiallycomposedmessages.TheSplit,PlacesandLevelsmenuitemsaretheusualTiogaoperations;ifamessagecompositionviewerissplit,thenNewForm,PrevMsgandGetFormoperationsonasplitviewerwillcauseallbuttheonebuggedtobedestroyed(themessagecompositionviewerbecomes"unsplit").ThiswillalsohappenifAnswerorForwardreuseasplitmessagecompositionviewer.ClickingtheSendbuttoninitiatesthesendingprocess.Ifthemessageisaddressedtoapublicdistributionlistortomorethantwentyindividuals,itprobablyshouldcontainaReply-To:field.Ifitdoesnot,amessageisprintedinthecontrolwindowandbuttonslabeledSelf,All,andCancelappear.Thesebuttonsmean"Reply-To:sender","noReply-To:field",and"Reply-To:senderbutdon'tsend",respectively.Iferrorsoccurinsending,amessageisprintedinthecontrolwindow.Ifthetransmissionissuccessful,themessageissavedandanewformappears;RIGHT-clickingSendcausesthemessagecompositionviewertobecomeiconicaftersyntaxcheckinghasbeendone.WhileaSendisinprogress,theviewerisnoteditable.AnAbortSendbuttonisvisibleduringpartofthesendingprocess,shouldyoudecidenottosendthemessage.ThelastsuccessfullysentmessagecantorestoredbyclickingPrevMsg.ClickingtheDestroybuttonasksforconfirmationifthereisanunsentmessageintheviewer.ItisWALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg'u _, )x [=!#)+gr0a[1P[x4[5[67=AvCD" Z5 ] *#.(4-E169;=Dr X x0XXW$&+m/146:AD VC9?!w$)* 14C6<>NA.F G U?rU?U?xxU?3U?h^!B#&,5.<2347<>p@D! S ^$ "= *C,1 8;?CzE Q "%)/57U: =WBD7 PI sPIPIx(PIPI#A * 37&9?AD7 N b #b$(.+0x27r;!N<Nx?N@NE,G  L!S "$d(.49h;B DG KS Hl!o%@+vs.H/~Hx6%H6H:BDG G1p sPG1BG1xG1nG1s!G1"~G1x'G1(DG1+-/2F5: AEHe E\. $%p'((F+-:/47 >sAEBExEEEE C ZDp!<"$&,/1x6m;*@BED B; X $>sB; B;x!B;s"B;#B;x'B;(?B;s*QB;+#B;x.B;/B;3669u > )ix ; $'s*?;+<;x0;1;479(;l@;D 9 7s99x99s99x9c9"$%+?/5N7&;1>ALEG/ 8N " '^ /&175 >C:DE 6Y h"&)t.s3=64:6x9Z6s:?6;&6x?6@6sCq6D6x 4 ^#$(- .)4}9 B/ 3Xiv#.%*A/l046Q 08s00x0k0( -% -i16*8=@HBD  /5 ( ns/5/5x$/5$/5)h,136Q9 @Cs -x"--7 ,"&*,Q2G79;>DVE + ,A!v%'.%3M48:V=+?B=E *?   s*?*?x*?&*?s!4*?"1*?x$*?%*?).m0 8:#<~AF ( Us((x/((!X&(h*/03 8,;=@BDF &O $u>m1"y&/(*.2 9;3}A>EG !& o=@%!& .3k9) @CF s7*x?sGx !$*< 1 Msxh"%7*s0q24:;B.DEU \ bz4" )+W145:;BFH9  re %{*-a2Ys7$8 x9s:v;ix<<s?@xDEV    #R&,03 :?=AEK f &>"#)(*/R03I7=?XA  q 9#"]#&*'r0c1-x34Ns9}:ex=l>AD7   #(-0737;s<=x@A%B$C p YDsUpHpx$p%p)?*/368J:?E  ZB"^%d( /28@:<BPDys !xz! !sz x x  N!6#m +,0l138(=z?"A|FH#%y'=(+ TVm$m o=@%!& .3k9) @CF ?is7?i*?ix?i??isG?i?ix?i?i !$*< 1 <Ms<<x<<h"%7*s0q24:;B.DEU ;= bz4" )+W145:;BFH9 9 re %{*-a2Ys7$98 9x99s:v9;i9x<9<9sHOWTOUSEWALNUT6abadideatodestroyamessagecompositionviewerwhilemessagetransmissionisinprogress.2.4RetrievingmailWalnutpollsthemailserversatregularintervals.Ifthereisnewmailforthelogged-inuser,theWalnutcontrolviewerdisplaysamessagelikeYouhavenewmailat27-Sep-8214:28:45PDTClickingtheNewMailbuttonineitherthecontrolviewerortheActivemessagesetviewerretrievesallthenewmail.Youcan"buttonahead"duringmessageretrieval.ThenewmessagesappearasbuttonsatthebottomoftheActivemessagesetviewer,witha"?"intheleftmostcolumnofeachnewmessagebuttontoshowthatthemessageisunread.Ifthecontrolwindowisiconicandthereisnewmail,theflagontheiconisraised;forconvenience,thereisaNewMailbuttonintheActiveMsgSetdisplayer,whichwillretrievethewaitingmail.2.5GlobaloperationsTheWalnutcontrolviewerhasafewmorebuttonsthatwillnowbedescribed.ClickingCommitcommitsallchangesthatyouhavemadetoWalnut'sdatabase.TheonlyotheroperationsthatautomaticallycommitdatabasechangesareDestroyandCloseAll.IfyouperformaWalnutoperationthatupdatesthedatabaseandthenbootorrollbackwithoutdoingaCommit,theeffectsofthatoperationareinthelogandwillbeperformedonthedatabaseandthencommittedwhenyounextrunWalnut.TheCloseAllbuttonfurnishesaquickwayofendingasessionwithWalnut.CloseAlldestroysallmessagedisplayers,andclosesallmessagesetdisplayers.ThenitexecutesaCommitandclosestheWalnutcontrolviewer.TheArchiveoperationprovidesawaytocopyasetofmessagesintoafilethatcanlaterbereadbyeitherWalnutorLaurel.TypeafilenameintotheOnFile:fieldandclickArchive.Allmessagesinthecurrentlyselectedmessagesetsarecopiedtothenamedfile(ifthefilenamehasnoextension,".ArchiveLog"isassumed).Clickingthe(guarded)ExpungebuttonexpungestheWalnutdatabase:allmessagesintheDeletedsetdisappearwithoutatrace.(LaurelpurgesdeletedmessageseverytimeyouQuitorchangemailfiles.)WithouttheExpungeoperation,Walnut'sdatabasewouldgrowwithoutbound.TheExpungeoperationmayfailifyourdiskisnearlyfull;thisisamotivationforregularExpunges.Section4containsmoreinformationonthistopic.Finally,clickingtheDestroybuttoncausesWalnuttocommitandthenclosetheWalnutdatabase.Thisisagoodthingtodobeforebootingorrollingback;itreducesthepossibilityofmanglingthedatabase.Walnutregistersseveralinfrequently-usedcommandswiththeCedarExecutive.Allofthecommandnamescontaintheprefix"Walnut",sotypingWalnut*?totheExecutiveenumeratesthem.TheWalnutcommandcreatesaWalnutcontrolviewerifyoushouldhappentoDestroyyours.TheWalnutExpungecommandhasthesameeffectasclickingExpunge,butcanbeusedwhenthecontrolviewerdoesnotexist.TheWalnutOldMailReadercommandisdescribedinSection3,andtheWalnutScavengecommandisdescribedinSection4.WalnutNewMailsimulatesclickingtheNewMailbutton.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg'x _/  uIs %)-2 :=CG/ V$N#s TcZ\"l(\x Q"s~Q{QxkQ2Q $k&+v/138>=?D  P=  I!U&8*0^ 6:= C+G Nz 5%',x/03C47]<ACjF LV7#%t+,/$39(:>AE"F KG m&: ?" *.Y/s1 KG2 KGx7 KG7KG;=Ks?KG@KGDCx I !.9# u FL ) x BM D!|$+',/2g5y7x >sD"BEBx AR!%'-5 8A;? F ? hq"Ks$?%?x*?*?s,?-?x2 ?3?57=?>rCe > l "2#).1s2>3>x7>8>:?@Ce <\ ? MW "%*-p07q;&=@C 9s99xO99 $'):-.36s<~9={9xBE9C 9G 86h E!1E$' .2K39ds:86;86x@C86@86CG/ 6 4} H!j$9%)(*I,^.367:3<?|BDG 2i s)M#&s)2i**2ix.%2i.2i1O4s752i8(2ix<2i=f2i?EG/ 0"WQ %'*/e2'4Z79=@C /s / / xR// , ys,,x ,!,%V+X-28:@bB Db * /F!%s*60369^<~>1BE )MQc #))-M05:=Ce ' o!"#%1 ,!.i3':c?N@E % v| #s7#4#x#n##'Z,G-258C ! + \/[%&+r/W058} ?$AG/ 1 |8&,/2)6% =?L@C.  "D8!s% ' x, , -06C =}AsD E x d=L#$',027<s>d@,d x YE`s#$ix)1*,/=1:48C:?mCG s x !.'D)/{1y68;s><? x nMqs n!n x*n+qn06s8_n9]nx>Pn?n%y'=(+ CTVm$as75J8(Jx<J=fJ?EG/ IV"WQ %'*/e2'4Z79=@C Gs G G xRGG E+ ysE+E+x E+!E+%V+X-28:@bB Db C HOWTOUSEWALNUT73.BecomingaUser3.1StandardusageFirst,bringoverthelatestWalnutbytypingBringover/a/pTop>WalnuttotheExecutive;thiswillalsoretrieveWalnutSend,Cypress,andAlpineUserImpls.TheselatterfileswillbeloadedbyWalnut(AlpineUserImplsonlyifneeded).EdityourpersonalprofiletocontainalloftheentriesspecifiedinWalnutDefault.profile(publicinWalnut.df).Theonlyprofileentrythatmostuserswillwanttoexperimentwithis"InitialActiveRight:TRUE";makingitFALSEcausestheActivemessagesetdisplayertocreateitselfintheleftviewercolumn,likeallothermessagesetdisplayers.TostartWalnut,typeWalnuttotheExecutive.Thiswillspendalongtimeloading,butfinallyaWalnutcontrolviewerwillappear.YoucanincludeWalnutinacheckpoint.Besurenottoclickcheckpointuntilthemessage"Walnut4.2"appearsintheWalnutcontrolviewertypescript.MessageandMessagesetdisplayersgetupdatedaftereachrollback;ifadisplayedmessageormessagesethassincebeendeleted,theviewerwillbedestroyed.ToreadaLaurelorHardymailfile,orafilecreatedbyWalnut'sArchiveoperation,firstrunWalnutasjustdescribed.ThentypeWalnutOldMailReader{optionalmessagesetname}totheExecutive.Ifyoufailtospecifyamessagesetname,themessageswillbeplacedinActive.Ifthespecifiedmessagesetdoesnotexist,itwillbecreated.3.2UsingAlpineforWalnutdatabasestorageTheAlpineserver"Luther.alpine"canbeusedtostoreWalnutdatabases.UsingAlpineimprovesWalnutperformancesomewhat,especiallyforoperationsthatwritetotheWalnutdatabase.ItfreesupspaceonthelocaldiskthatisotherwiseoccupiedbytheWalnutdatabase.ItalsoreducesthecostofusingWalnutonapublicmachine(youmoveonlythelogtothenewmachine,nottheloganddatabase.)ThedrawbackofusingAlpineisthatonoccasionitmayabortWalnut'stransaction;Walnutwillrecoverfromthisgracefully,butitmaytakesometimetoreplayyouruncommittedactionsstoredinthelog.Transactionabortsareinfrequent,soonbalancetheAlpineserverisanimprovementoverthelocaldisk.ContactKarenKollingtoobtainanAlpineaccount.UsingAlpinechangestheprocedureforWalnutinstallationonlyslightly.Edityourpersonalprofiletocontaintheentries:Walnut.WalnutSegmentFile:"[Luther.alpine]Walnut.segment"Walnut.WalnutLogFile:"YourName.WalnutDBLog"Withyourprofileinthisstate,youmustrunAlpineUserImplsbeforeinvokingtheWalnutcommand.OnewayofensuringthisistoincludetheitemsRunAlpineUserImpls;RunAndCallWalnutinyourCommandsFrom:profileentry.ItisoktotakeacheckpointafterrunningAlpineUserImplsandWalnut.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg't ^ nu [ )x XWLo!#s Uqx Sa  q" +03R>CF Q %(+) O>|#%x'4). 35|C*G M H"&),S/1m 8;=;y Kx K KyKKxKjKH#(*02E689;"=q?D* JH &~ G's ERx B  !; #,&R+.2X38k=AD. @\$e} &2(1+-|/2B 9,C >  $9 +u139Q;x AD5 =  L^%',.1Z48r=@FDG ;f 8O=1!$&(/*/17=? CF 7C% ,s 4x044!$'L+17'9C 2M  ]-"#)6+b/17:<ABH  0 K_|!"$&(u -V )m!,x */" $&)+/ 3 ;?C (`  #&$ ,/3*47?<-BD(G} & 8l#")+-2{9:=wBDG % ~Q?Rt!%(*-(.139<>G@C# #j , "(:),|05 =3BD ! h x! $')-1D 9>tBDpF  Rg  d"\'N).23p5R =@CFI tHI< ,$ 5a#D%*k 1q4 ~q#o%s , [x / !$'j161;>B 9 (!$s & #Tx BHso Bl B x B B!,%t&(/*+./ 69>  %y'=(+ OTVm$ .WalnutLogFile:"YourName.WalnutDBLog"Withyourprofileinthisstate,youmustrunAlpineUserImplsbeforeinvokingtheWalnutcommand.OnewayofensuringthisistoincludHOWTOUSEWALNUT8TherearetwowaystocreateaWalnutdatabaseonAlpine.Thefirstistofollowtheprocedureabove,inwhichcaseWalnutwillnoticetheabsenceofadatabaseandcreateonebyscavengingfromthelog.ThesecondistocopythedatabasefromthelocaldisktotheAlpineserver,usingtheprocedurecall_AlpineCmds.Copy[to:"[Luther.alpine]Walnut.segment",from:"Walnut.segment"]YoumustrunAlpineUserImplsbeforeattemptingtocallthisprocedure.FormoreinformationonAlpineoperationsconsult[Indigo]AlpineUser>HowToUseAlpine.msg.WALNUT4.2x"g'y#&g'$g'%x'g'y(g'x*gg'y+g'sHDg'x _/7t<Y %+V-w3 58:w<@@C  ]Y9:7#%*,-3z6D:Y=?% F( [ <K"$(*T-0i24W8="@C  Z9s WE"Y-E Vx Sp! c$ +-A/2j 9i1#& .36<AoD XM uJ!h$(- 0366E U4 "&.+125D8:=lCG T"6us!?T"!T"x$T"%7T"'s*PT"*T"x0T"1WT"4s7dT"7T"x:T";[T"=AB$E* R{qVsR{R{xAFs PxzPP_G %5',1n6:L?BG/ M sMFMxkMM KMgS4!'*],=168n9;s?KAK x IZ m@ !$g *-xs/IZ1*IZ x9IZ:=IZ;7=AF G) b"[s$G%]Gx(G):G-|0327;G@CFs F xF 9F y $),2.47u9 @BE*s DdxDdDdQ f"'Y)K 139s:DdDdH  B e* #"%f*5/179@0B~ At" !#*d, 36^9; @GE8G ?n G  4"#~(L-/2Q89s>AhsC\;DDC;Dx 9c H$`%s(9)9 x29295d8> E 7 W=hP#&J+l-3}5672 =@DM 6N \;?/ $-%(]+,0/5*7<&>BDDF 4  9/ T!"'*/25:R@,CE 2 zBO "#~(*/91BE 1Xqr\1X1Xx1X1Xs!1X"1Xx(&1X(1X,/4:<> Er /x ^/ /b#&),/ 5;]=A^C .  g!m#).2G5 79?iBE`G ,b^S|1"%4(*?,F-o/ )pD a#e%'+U.Y/159 C# $ 2- "%'-/16%y'=(+ TVm$3successfuldelivery,ifSendwasclickedwithRIGHTWalnut.InitialActiveRight:BOOL_TRUE;truesaystobringuptheactivemessagesetontherightcolumn,falseonleft.Walnut.InitialActiveOpen:BOOL_FALSE;truesaysopenamessagesetvieweronActive.Walnut.InitialActiveIconic:BOOL_FALSE;iftrueandInitialActiveOpen=TRUE,thentheActivemessagesetviewerisopenedasanicon.Walnut.MsgSetButtonBorders:BOOL_FALSE;ifTRUE,putsbordersaroundtheMsgSetbuttonsinthecontrolwindow.Walnut.EnableTHOWTOUSEWALNUT105.UserprofileoptionsBelowisacompletelistofallofthecurrentWalnutuserprofileoptions(copiedfromUserProfile.doc):Walnut.ReplyToSelf:BOOL_FALSE;ifTRUE,causeswalnuttoautomaticallysupplyaReply-To:field,ifappropriate.Walnut.DestroyAfterSend:BOOL_FALSE;ifTRUE,causessendertobedestroyedafterasuccessfuldelivery,ifSendwasclickedwithRIGHTWalnut.InitialActiveRight:BOOL_TRUE;truesaystobringuptheactivemessagesetontherightcolumn,falseonleft.Walnut.InitialActiveOpen:BOOL_FALSE;truesaysopenamessagesetvieweronActive.Walnut.InitialActiveIconic:BOOL_FALSE;iftrueandInitialActiveOpen=TRUE,thentheActivemessagesetviewerisopenedasanicon.Walnut.MsgSetButtonBorders:BOOL_FALSE;ifTRUE,putsbordersaroundtheMsgSetbuttonsinthecontrolwindow.Walnut.EnableTailRewrite:BOOL_FALSE;ifTRUE,performs"tailrewrite"onExpunge.Walnut.WalnutSegmentFile:TOKEN_"Walnut.Segment";valueisthenameofthefiletobeusedforthewalnutdatabase.Walnut.WalnutLogFile:TOKEN_"Walnut.DBLog";Nameoflogfile.WALNUT4.2x!g'y"g'#g'%#x'"g'y(Ag'x*g'y+dg'sG~g't ^ x [bUu9 z"%1(-h26Y;Q@F( Yu X>{X>yX>X>{X>y7X>X>{!X>zVyeVVzVmV &*=+r15/6 u S'{QS'yOS'S'{S'y!qS'"*S'{%S'zQuyeQuQuzQumQusB%,(_) /56d9{>y>>{">y$(>$>{'>z=e- e"',k.0]4u 9{9y9w9{ S9y!9"9{%~9z8e-"#u 4{4y4<4{" 4#4z2P8 "%'*1.1u /{/y/o/{>/ /z-x%y'=(+TVm$t!X/{!/z-- "X%c*-=>?,;x%y'=(+TVm$/5"76;Y<AOCDu |y|"y$($|'{-e- e"',k.0]4u |yw| Sy!"HOWTOUSEWALNUT116.ShortfallsandWishesWhatfollowsisalistingofknowndeficienciesandcontemplatedextensionstoWalnut.Nobodyguaranteesthateverythinglistedbelowwillbeimplemented.Butthelistdoesindicatesomedirectionsforfuturework,andmayprovidecontextforyourownWalnutwishes.SendbothbugreportsandwishestoWalnutSupport^.6.1MessagesetsItwouldbenicetoallowselectionofmorethanonemessageinamessageset(perhapsevenspanningmessagesets).Whenamessagesetdisplayeriscreated,itshoulddisplaythenewestmessagesfirst(perhapsbypaintingfromthebottomoftheviewertowardsthetop),sincethesearemostlikelytobeaccessed.6.2RetrievingmailItseemsdesirabletomakemailretrievalacontinuousbackgroundactivity.ThiswouldtendtoinsulateusersfromtheresponsetimeofGrapevine.Oncemailretrievalisimplementedinthebackground,anaturalnextstepistoprovidesomemeansforauserproceduretoclassifyincomingmailaccordingtoitssignificance,fileitinsetsotherthanActive,lettheuserknowthestatusofhisnewmail("Youhaveimportantnewmail").TheprocedurethatstoresnewmailinthedatabaseshouldunderstandtheIn-Reply-Torelationship.Eventually,usersshouldbeabletowritequeriesorothercommandsthatexploitthisrelationship.6.3SendingmailItshouldbepossibletoforwardoranswermultiplemessages.Thisseemstorequiretheabilitytoselectmultiplemessages.Feedbackfrommailparseerrorscanbeimproved.Whendisplayingamessagecontainingaparseerrororbadarecipient,thepointoferrorinthemessageheadershouldbehighlighted.Whensendingasequenceofmessageswiththemessagecompositionviewer,youtendtoclickSend,waitforthefeedback"sending...",thenmaketheviewericonic(toreclaimthescreenarea)andfinallyclickNewFormtocreateanewviewer.Itwouldbesmoothertoreusethesamemessagecompositionviewer,butwithoutwaitingforthemessagetobesent(sincethiscantakequiteawhile).Sinceitisquiteunusualtohavetwomessagesintransit(ascontrastedwithtwomessagesbeingcomposed)atthesametime,thiscanbeachievedbypassingresponsibilityforthemessagefromthemessagecompositionviewertotheWalnutcontrolviewerwhenmessageparsingiscomplete,andclearingthecompositionviewerforreuse.Anyerrorsintransmissionwouldbereportedinthecontrolviewerratherthanthecompositionviewer.6.4GlobaloperationsWalnutneedsawaytomakequeries.(Thisiswhatdatabasesareallabout!)Forstarters,we'dliketohavesomethinganalogoustoLaurel'sSearchMailprogramforperformingtextpatternmatchinginthemessagesofamessageset.TheWalnutExpungeoperationcurrentlyrequiresmoreresources(suchasdiskspace)thanWalnutrequirestoperformotheroperationsonthesamedatabase.Thisisunfortunate,sinceitmeansthatausercangetstuckinasituationwherehemusthand-edithisWalnut.DBLoginordertorecover.WALNUT4.2x!g'y"g'#g'%#x'"g'y(Ag'x*g'y+dg'sG~g't ^ Szx []&W*" *B- 5 :D3 Y  \ "$& /257E:z?CD XX Mg$'*t-28%;?&B F VFu Sb )x P]#%)p,/5@7&8>@kFI Nl  K4!y&(5,14*8>AG JJO"\'})-$046s9=?=A-u F ) x CKrj>!X&(0 /^ 7=@@DG BF!" ?AP "N#&E ./<369; <AEK = T yR:$m'./1 9@ u 4 )ix 1|, "'E,36: DE + ^"  l  $6%(C-2"68 )7[$('4). 6;-=@BE ' )a*"&)-k1p38}:?BEK % 5#6$(*1 26q8EG/  e|$e ,/ 1h6:CF  W#{ *0{2 :<AG  K' a m2 Z&6+/58:f=SAD Ly+ #%x)/24Q <>?A-EHe G qN&!#'1-gs/ G0 G x9a G9 G;>@r%y'=(+ TVm$responsibilityforthemessagefromthemessagecompositionviewertotheWalnutcontrolviewerwhenmessageparsingiscomplete,andclearingthecompositionviewerforreuse.Anyerrorsintransmissionwouldbereportedinthecontrolviewerratherthanthecompositionviewer.WALNUT4.2x!g'y"g'#g'%#x'"g' LAUREL TIMESROMAN TIMESROMAN TIMESROMANLOGO HELVETICA TIMESROMAN TIMESROMANY HELVETICA HELVETICA HELVETICA HELVETICA8}:?BEK O 5#6$(*1 26q8EG/ J e|$e ,/ 1h6: