$! ------------------ CUT HERE ----------------------- $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))' $! $! This archive created by VMS_SHARE Version 8.3 $! On 12-APR-1993 08:17:43.05 By user GOATHUNTER (@WKUVX1.BITNET) $! $! The VMS_SHARE software that created this archive $! was written by Andy Harper, Kings College London UK $! -- December 1992 $! $! Credit is due to these people for their original ideas: $! James Gray, Michael Bednarek $! $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER $! AND EXECUTE AS A COMMAND PROCEDURE ( @name ) $! $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING: $! 1. TICKLER.COM;1 $! 2. TICKLR.DESC;1 $! $set="set" $set symbol/scope=(nolocal,noglobal) $f=f$parse("SHARE_UNPACK_TEMP","SYS$SCRATCH:."+f$getjpi("","PID")) $e="write sys$error ""%UNPACK"", " $w="write sys$output ""%UNPACK"", " $ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!" $ if f$getsyi("CPU") .gt. 127 then $ goto start $ ve=f$getsyi("version") $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start $ e "-E-OLDVER, Must run at least VMS 4.4" $ v=f$verify(v) $ exit 44 $unpack: subroutine ! P1=filename, P2=checksum, P3=attributes $ if f$parse(P1) .nes. "" then $ goto dirok $ dn=f$parse(P1,,,"DIRECTORY") $ w "-I-CREDIR, Creating directory ''dn'" $ create/dir 'dn' $ if $status then $ goto dirok $ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped" $ delete 'f'* $ exit $dirok: $ x=f$search(P1) $ if x .eqs. "" then $ goto file_absent $ e "-W-EXISTS, File ''P1' exists. Skipped" $ delete 'f'* $ exit $file_absent: $ w "-I-UNPACK, Unpacking file ", P1 $ n=P1 $ if P3 .nes. "" then $ n=f $ if .not. f$verify() then $ define/user sys$output nl: $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='n' PROCEDURE GetHex(s,p)LOCAL x1,x2;x1:=INDEX(t,SUBSTR(s,p,1))-1;x2:=INDEX(t, SUBSTR(s,p+1,1))-1;RETURN 16*x1+x2;ENDPROCEDURE; PROCEDURE SkipPartsep LOOP EXITIF MARK(NONE)=END_OF(b);EXITIF INDEX(ERASE_LINE, "-+-+-+-+-+-+-+-+")=1;ENDLOOP;ENDPROCEDURE;PROCEDURE ProcessLine LOCAL c,s,l,b, n,p;c := ERASE_CHARACTER(1);s := ERASE_LINE;IF c = "X" THEN SPLIT_LINE; ENDIF; MOVE_HORIZONTAL(-1);l := LENGTH(s);p := 1;LOOP EXITIF p > l;c := SUBSTR(s,p,1); p := p+1;CASE c FROM ' ' TO '`' ['`']: COPY_TEXT(ASCII(GetHex(s,p))); p:=p+2;[ ' ']: p:=p+1;[INRANGE,OUTRANGE]: COPY_TEXT(c);ENDCASE;ENDLOOP;ENDPROCEDURE; PROCEDURE Decode POSITION(BEGINNING_OF(b));LOOP EXITIF MARK(NONE)=END_OF(b); IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=1 THEN SkipPartSep;ELSE ProcessLine; MOVE_HORIZONTAL(1);ENDIF;ENDLOOP;ENDPROCEDURE;SET(FACILITY_NAME,"UNPACK");SET( SUCCESS,OFF);SET(INFORMATIONAL,OFF);t:="0123456789ABCDEF";f:=GET_INFO( COMMAND_LINE,"file_name");b:=CREATE_BUFFER(f,f);Decode;WRITE_FILE(b,GET_INFO( COMMAND_LINE,"output_file"));QUIT; $ if p3 .eqs. "" then $ goto dl $ open/write fdl &f $ write fdl "RECORD" $ write fdl P3 $ close fdl $ w "-I-CONVRFM, Converting record format to ", P3 $ convert/fdl=&f &f-1 &P1 $dl: delete 'f'* $ checksum 'P1' $ if checksum$checksum .nes. P2 then $ - e "-E-CHKSMFAIL, Checksum of ''P1' failed." $ exit $ endsubroutine $start: $! $ create 'f' X$`20on`20warning`20then`20exit X$`20if`20p1`20.eqs.`20""`20then`20write`20sys$output`20- X"Enter`20a`20VMS`20date`20(like`20'5-SEP')`20or`20upcoming`20weekday`20(like V`20'THURS')`20or`20'HELP'" X$`20if`20p1`20.eqs.`20""`20then`20inquire`20p1`20"_$`20reminder`20date" X$`20if`20f$edit(`20p1`20,`20"trim,upcase"`20)`20.eqs.`20"HELP"`20then`20goto V`20helpstuff X$`20daylist`20=`20"SUN,MON,TUE,WED,THU,FRI,SAT,SUN,MON,TUE,WED,THU,FRI," X$`20sublist`20=`20f$extract(`20f$locate(`20f$extract(`200,3,`20f$edit(`20- X`20`20`20`20`20f$cvtime("tomorrow",,"weekday"),`20"upcase"`20)),`20daylist`20) V,`2028,`20daylist`20) X$`20daysoff`20=`20f$locate(f$extract(0,3,f$edit(p1,"trim,upcase")),",,,,"+subl Vist)/4 X$`20if`20daysoff`20.le.`207`20then`20p1`20=`20f$cvtime("+''daysoff'-","absolut Ve","date") X$`20tickdir`20=`20"''f$trnlnm("sys$login")'"`20-`20"`5D"`20+`20".TICKLER`5D" X$`20if`20f$search("sys$login:tickler.dir")`20.eqs.`20""`20then`20create`20/dir Vectory`20'tickdir' X$`20mailfile`20=`20tickdir`20+`20"''f$cvtime(p1,,"DATE")'.memo" X$`20procname`20=`20"''f$environment("procedure")'" X$`20utildir`20=`20f$parse(`20procname,,,"DEVICE")`20+`20f$parse(`20procname,,, V"DIRECTORY") X$`20define/user`20sys$input`20sys$command`20 X$`20define/user`20utildir`20'utildir' X$`20resubmit`20=`20f$search(mailfile) X$`20if`20p2`20.eqs.`20""`20 X$`20then`20 X$`20`09edit/command=utildir:tickler.edt`20'mailfile' X$`20`09if`20resubmit`20.nes.`20""`20then`20purge`20'mailfile' X$`20else X$`20`09if`20resubmit`20.nes.`20""`20then`20append`20'p2'`20'mailfile' X$`20`09if`20resubmit`20.eqs.`20""`20then`20copy`20'p2'`20'mailfile' X$`20endif X$`20if`20resubmit`20.eqs.`20""`20 X$`20then X$`20`09define/user`20utildir`20'utildir' X$`20`09submit/nolog/queue=sys$batch/after='p1'`20- X`09`09utildir:tickler_job/param='mailfile' X$`20endif X$`20exit X$helpstuff: X$`20type`20sys$input X X= X XTICKLER.COM`20`20by`20Al`20Beer X XThis`20command`20procedure`20lets`20you`20prepare`20a`20'tickler-file'`20type V`20reminder`20to`20be`20 Xreceived`20in`20your`20VMS`20MAIL`20on`20the`20desired`20day.`20`20MAIL`20will V`20notify`20you`20of`20your`20 Xmessage`20when`20you`20log`20in.`20`20The`20reminder`20can`20be`20updated`20un Vtil`20the`20day`20it`20is`20sent. XIn`20your`20LOGIN.COM,`20create`20a`20command`20symbol`20to`20invoke`20the`20t Vickler: X X$`20TIC*KLER`20:==`20@SYS$LOGIN:TICKLER X XPrepare`20messages`20by`20typing X X`20`20`20`20`20`20`20`20`20$`20TICKLER`20TOMORROW`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20to`20be`20reminded`20tomorrow X`20`20`20`20`20`20`20`20`20$`20TICKLER`20FRIDAY`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20to`20be`20reminded`20this`20coming`20Friday X`20`20`20`20`20`20`20`20`20$`20TICKLER`203-Nov`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20to`20be`20reminded`2011/03`20this`20year X`20`20`20`20`20`20`20`20`20$`20TICKLER`203-Nov-1992`20`20`20`20`20`20`20`20 V`20`20`20`20to`20be`20reminded`2011/03/92 X`20`20`20`20`20`20`20`20`20$`20TICKLER`20`20`20`20`20`20`20to V`20use`20text`20in`20a`20file`20as`20a`20reminder X`20`20`20`20`20`20`20`20`20$`20TICKLER`20HELP`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20to`20see`20this`20message X`20`20`20`20`20`20`20`20`20$`20TICKLER`20`20`20`20`20`20`20`20`20`20`20`20`20 V`20`20`20`20`20`20`20`20`20`20to`20be`20prompted`20for`20a`20date X XYou`20will`20be`20dropped`20into`20EDT`20and`20shown`20any`20existing`20remind Ver`20for`20the`20specified Xday.`20`20Quit`20if`20no`20changes`20are`20needed;`20otherwise,`20update`20the V`20reminder`20as`20desired Xand`20exit`20normally.`20The`20reminder`20file`20will`20be`20stored`20in`20you Vr`20`5Busername.TICKLER`5D Xsubdirectory.`20`20It`20will`20be`20deleted`20the`20day`20you`20are`20'tickled V'.`20 X X= X X`5Btickler_job.com`5D X X$`20mail`20'p1'`20'f$getjpi("","USERNAME"`20)`20/subject="Reminder`20for`20tod Vay" X$`20delete`20'p1'; $ call unpack TICKLER.COM;1 844819706 "" $! $ create 'f' XThis`20file`20features`20a`20program`20previously`20published`20in`20the`20Mar Vch/April`201993`20 Xissue`20of`20Digital`20Systems`20Journal.`20Originally`20run`20as`20part`20of V`20Alan`20H.`20Beer's`20 Xarticle,`20"TICKLER:`20A`20Daily`20Reminder`20System,"`20which`20ran`20on`20pa Vge`2014,`20this`20 Xcommand`20procedure`20lets`20you`20prepare`20a`20tickler-file`20type`20reminde Vr`20to`20be`20 Xreceived`20in`20your`20VMSmail`20on`20the`20desired`20day.`20Mail`20will`20not Vify`20you`20of`20your`20 Xmessage`20when`20you`20log`20in.`20The`20reminder`20can`20be`20updated`20until V`20the`20day`20it`20is`20 Xsent. $ call unpack TICKLR.DESC;1 1360808331 "" $ v=f$verify(v) $ exit