MemoExpress — File Browser
MemoExpressv1.7b / MemoExpressv1.7b / memoexpress.mrc
memoexpress.mrc — 33.21 KB — Download this file
menu status,menubar {
MemoExpress v1.7b:$m
}
alias memo.play var %x = 1 | while $play(%x).fname { if $nopath($play(%x).fname) = $nopath($erm(out)) { return $true } | inc %x }
alias msend a dialog -ma $u $u
alias memos {
if $version < 5.91 { %o = $err(25) }
if $i($c) { %o = Missing $ifmatch }
if $i($bmp(top2)) { %o = $ifmatch }
if $i($bmp(bottom)) { %o = %o $ifmatch }
if $i($md.x) { %o = %o $ifmatch }
if $i($bd.x) { %o = %o $ifmatch }
if $i($dd.x) { %o = %o $ifmatch }
var %a = $scriptdir $+ memo1.dll
if $i(%a) { %o = %o $ifmatch }
var %a = $scriptdir $+ memo2.dll
if $i(%a) { %o = %o $ifmatch }
if %o { okwin $e. $err(18) %o %p | unset %o %p | return }
$mem.init
}
alias -l i if $isfile($1-) = $false { return $1- }
on 1:dialog:smemo:*:*:{
if $de(init) {
mdx SetMircVersion $version
mdx MarkDialog $u
mdx SetBorderStyle 120,121 windowedge
mdx SetControlMDX 120 toolbar nodivider flat > [ $bd.x ]
mdx SetControlMDX 121 toolbar nodivider flat list > [ $bd.x ]
did -i $u 120,121 1 bmpsize 16 16
$md.ico($u,4,2) | $md.ico($u,0,2) | $md.ico($u,4,1) | $md.c(1,Send) | $md.c | $md.c(2,Encode) | $md.c | $md.c(3,Delete) | $md.c
did -i $u 121 1 setimage icon large 3, $+ $scriptdir $+ memo2.dll
did -a $u 121 +a 1 To: $+ $chr(9) $+ Names list
s.send
}
if $de(dclick) { if $d(3) { did -d $u 3 $did($u,3).sel | r } }
if $de(sclick) || $de(menu) {
if $d(120) { var %bt = $did(120).sel
if %bt = 2 {
if $s.err { $s.err(-) | $e }
if $erm(s.open) { var %time = $ifmatch | goto p }
else { var %time = $mem.out }
write -i1 %time [message]
if $numtok($mem.rec,160) = 1 { send.lab $mem.out $mem.rec $mem.txt | ads $mem.rec }
else { var %c = 1
while $gettok($mem.rec,%c,160) { send.lab $mem.out $gettok($mem.rec,%c,160) $mem.txt | ads $gettok($mem.rec,%c,160) | inc %c } }
write -i1 %time $chr(32) $crlf $+ [data] $+ $crlf $+ to= $+ $mem.rec $+ $crlf $+ memo= $+ $mem.txt
:p
mem.lab $erm(out1) | $mem.t dialog -x $u | $ewm out %time
.play -cptmessage $me %time
}
if %bt = 4 { if $mem.txt { %enc.mode = 1 | a dialog -ma enc.w enc.w } | else { a okwin $e. $err(9) } }
if %bt = 6 { did -r $u 3,6,12 | if $erm(s.open) { .remove $ifmatch } | did.c }
}
if $d(121) { bmemo 1 }
}
if $d(21) { if $sfile($shrt(outbox).1,Open existing memo,&Open) { var %a = $readini $ifmatch data to, %b = $gettok(%a,1,160), %c = $gettok(%a,2-,160), %d = $readini $ifmatch data memo | did -r $u 3,6 | did.c
$ewm s.open $ifmatch
did -a $u 6 $replace(%d,$chr(160),$crlf)
m.len $didtok($u,6,160)
did -i $u 1 0 %b
if %c { didtok $u 3 160 %c }
} }
if $d(22) { if $s.err { $s.err(-) | $e }
if $sfile($mem.out,Save existing memo,&Save) { var %a = $ifmatch
if $isfile(%a) { if $?!="Overwrite $nopath(%a) ?" = $false { $e } | .remove %a }
write -i1 %a $chr(32) $crlf $+ [data] $+ $crlf $+ to= $+ $mem.rec $+ $crlf $+ memo= $+ $mem.txt
} }
if $d(42) { did $iif($erm(asav) = 1,-u,-c) $u 42 | $ewm asav $iif($erm(asav) = 1,0,1) }
if $d(7) && $did(1) && $did(1) !isin $didtok($u,3,160) { did -i $u 3 1 $did(1) | did.c | r }
if $d(1) { $mem.t r }
if $devent = edit && $d(6) {
if $didtok(6,160) { m.len $ifmatch }
else { did -r $u 12 } }
:end
}
on 1:dialog:newmemo:*:*:if $de(init) { did -a $dname 1 %m.nm | unset %m.nm } | if $d(2) { $m }
on 1:dialog:m.set:*:*:{ if $de(init) { settings } | if $did(10).seltext { var %mem.x = $ifmatch } | if $de(edit) { if $d(10) { if $isalias(%mem.x) = $true { a okwin Conflict %mem.x $err(5) $isalias(%mem.x).fname $err(6) } } } | if $de(sclick) {
if $d(13) { if $erm(exp.f) { ed main exp.f | did -ar m.set 13 $err(23) } | else { if $input(Name of file,1,$err(23),expired) { $ewm exp.f $scriptdir $+ inbox\ $+ $ifmatch } } | did -ar m.set 13 $err(23) $iif($erm(exp.f),: $nopath($erm(exp.f)),: ???) } | if $d(10) { if $isalias(%mem.x) = $true { a okwin $e. %mem.x $err(4) $isalias(%mem.x).fname } | else { if %mem.x { alias $gettok($erm(fkey),1,160) | $ewm fkey $instok($remtok($erm(fkey),%mem.x,1,160),%mem.x,1,160) | alias %mem.x $m } } }
if $d(1) { var %exp = $did(6).text | if $isalias(%mem.x) = $false && %mem.x { $ewm fkey $instok($remtok($erm(fkey),%mem.x,1,160),%mem.x,1,160) | alias %mem.x $m } | if $exp(%exp) = ok { $ewm expire.lst $instok($remtok($erm(expire.lst),%exp,1,160),%exp,1,160) | $ewm expire %exp } } }
}
on 1:dialog:okwin:init:0:.$mem.t(ok) dialog -t okwin MemoExpress %okwin.title | did -a okwin 1 %okwin.text | did -f okwin 2 | unset %okwin.*
on 1:dialog:enc.w:*:*:{ var %a = $dname, %b = did -c %a | if $de(init) { enc.setup | didtok %a 1 160 $er(encrypt,base) | %b 1 1 | didtok %a 2 160 $er(encrypt,offset) | %b 2 1 }
if $de(sclick) || $de(edit) { var %c = $did(1), %d = $did(2) | if $base || $oset && $did { beep 1 1 | did -c %a $did 0 | enc.er $err($iif($did = 1,12,13)) | $e } | if $d(9) { if $gettok($er(encrypt,base),1,160) != %c || $er(encrypt,4) = $null { enc.er $err(14) | em.code %c %d }
if $mem.txt && %enc.mode = 1 && $dg($u) { dialog -c %a | var %smemo.enc = $em.enc($mem.txt) | did -r $u 6 | did -a $u 6 %smemo.enc } | if $p && %enc.mode = 0 { dialog -c %a | var %smemo.enc = $em.dec($replace($gettok(%v.v.temp,5-,32), ,-)) | did -r $m 4 | memcon.v decode | did -a $m 4 $replace(%smemo.enc,-,$crlf) | %dec.pos = $em.pos | write -dl $+ %dec.pos $b | write -il $+ %dec.pos $b $reptok($p,$gettok($p,5-,32),$replace(%smemo.enc,-, ),1,32) | %v.v.temp = $read -l $+ %dec.pos $b | unset %dec.* } | unset %enc.* } }
:end
}
alias -l exp if $$1 >= 1 || $1 = never { return ok }
alias -l a $iif($dialog($3),dres $1 -v $3,.timer $+ $1 $+ $2 -m 1 1 $1-)
alias -l base return $iif($did(enc.w,1) !isnum 1-125000,1,0)
alias -l oset return $iif($did(enc.w,2) !isnum 1-3,1,0)
alias -l dres if $3 = $m && $erm(scr) = -dmo { $1 -e $m } | else { $1- }
;mdx specifics
alias -l md.x return $scriptdir $+ mdx\mdx.dll
alias -l bd.x return $scriptdir $+ mdx\bars.mdx
alias -l dd.x return $scriptdir $+ mdx\dialog.mdx
alias -l md.ico return did -i $1 120 1 setimage icon large $2 $+ , $+ $scriptdir $+ memo $+ $3 $+ .dll
alias -l md.b return did -a $m 120 $iif($1-,$1 $chr(9) $+ $2-,-)
alias -l md.c return did -a $u 120 $iif($1-,$1 $chr(9) $+ $2-,-)
alias -l mdx {
if !$i($md.x) {
var %a = $dll($md.x,$1,$2-)
}
}
alias -l ctxt did -i $m 4 $1 $2-
;end mdx specifics
on 1:dialog:memos:*:*:{ var %dn = did -c $m, %du = did -u $m, %do = $ewm, %dw = $did(3).sel | if $did { var %u = $did } | if $de(dclick) && $d(3) && $p && $nonews { %reply = $m.wh | msend }
if $de(init) {
mdx SetMircVersion $version | mdx MarkDialog $m | mdx SetDialog $m icon 0 $scriptdir $+ memo.ico | mdx SetControlMDX 44 positioner > [ $dd.x ] | mdx SetBorderStyle 120 windowedge | mdx SetControlMDX 120 toolbar nodivider flat > [ $bd.x ] | did -i $m 120 1 bmpsize 16 16 | $md.ico($m,0,1) | $md.ico($m,1,1) | $md.ico($m,2,1) | $md.ico($m,3,1) | $md.ico($m,4,1) | $md.ico($m,0,2) | $md.ico($m,1,2) | $md.ico($m,2,2) | $md.b(1,Compose) | $md.b | $md.b(2,Reply) | $md.b | $md.b(3,Forward) | $md.b | $md.b(4,Block) | $md.b | $md.b(5,Delete) | $md.b | $md.b(6,Decode) | $md.b | $md.b($iif($erm(agent) = 0,+c,+xc) 7,MSAgent switch) | $md.b | $md.b(8,Help) | $md.b
mdx SetColor 4 background [ $rgb(255,255,255) ] )
mdx SetColor 4 textbg [ $rgb(255,255,255) ] )
memo.v
}
if $de(sclick) || $de(menu) { var %s = $did(%u).state
if $d(120) { var %bt = $did(120).sel
if %bt = 14 {
if $erm(agent) { $ewm agent 0 | s.a }
else { a.sa }
}
if %bt = 16 { a dialog -ma mhelp mhelp }
if %bt = 2 { msend }
if $p && $nonews && %bt = 12 { %enc.mode = 0 | a dialog -ma enc.w enc.w }
if $nonews { if %bt = 4 { %reply = $m.wh | msend } | if %bt = 6 { %fwd = on | msend } }
if %bt = 8 && %dw > 0 && $nonews { memos.d | $ewm blocked $addtok($erm(blocked),$gettok($p,4,32),160) | memo.del | mem.lab Now blocking $gettok($p,4,32) }
if %bt = 10 && $did(3).lines > 0 { memo.del } | if $d(17) { unset %v.* }
}
if $d(18) { a dialog -ma m.set m.set }
if $did(44) = $err(34) && $subdg { subdg }
if $did(44) = $err(27) { mghide }
if $did(44) = $err(28) { mgshow }
if %u isnum 81-84 { if %s = 0 { %dn %u } | else { did -u $m %u } | ew track %u $did(%u).state | m.title }
if $did isnum 112-113 { mrun $scriptdir $+ $did($did).text }
if $d(17) || $d(43) && $ag { mghide }
if $d(148) { a.sa }
if $d(121) { bmemo 1 }
if $d(101) { set -u60 %mem.list on | mso list | mem.lab $err(21) }
if $d(102) { set -u300 %mnews on | mso news | mem.lab $err(22) }
if $d(91) { $mem.t s.srch }
if $d(21) { if $sfile($mem.in,Open Memo File,&Open) { mem.f $ifmatch } }
if $d(53) && %dw { if DALnews isin $did(3,1) { okwin $e. $err(11) } | else { if $sfile($mem.in,Export to Memo File,&Export) { var %az = $ifmatch | if $chr(32) isin $nopath(%az) { okwin $e. $err(17) } | else { set %export %az | memo.del } } } }
if $d(72) { %do scr -dmo | %dn 72 | d.rs }
if $d(73) { %do scr -m | %dn 73 | d.rs }
if $d(75) { %do not 1 | %dn 75 | %du 76 }
if $d(76) { %do not 0 | %dn 76 | %du 75 }
if $d(77) { bmemo }
if $d(79) { if %s = 0 { %dn %u | if $isfile($erm(sound)) = $true { splay $shortfn($erm(sound)) } } | else { %du %u } | %do mode $did(79).state }
if $d(13) { a wavset }
if $d(3) { memcon.v $did(3).sel } }
:end
}
alias -l subdg var %a = m.set block.l smemo enc.w mHelp a.s | var %x = 1 | while $gettok(%a,%x,32) { var %b = $ifmatch | if $dialog(%b) { if $isid { var %c = %c %b } | else { dialog -r %b } } | inc %x } | if %c { return %c }
alias -l mghide if $ag { .gstop memo | mgopts -i memo off | .ghide memo }
on 1:PLAYEND:unset %send.err | if $filename = $erm(out) && $erm(out.rcv) = 1 && $erm(asav) = 0 { ed main out.rcv | .remove $filename }
raw 440:*:if $erm(out.rcv) != 0 { ores 0 | okwin $e. $err(10) Memo: $nopath($erm(out)) | %send.err = 1 | halt }
on ^*:notice:*:*:{
if $nick = Memoserv && $network = DALnet {
if $ef(ident,$1-) && $erm(out.rcv) != 0 { ores 0 | okwin $e. $err(10) Memo: $nopath($erm(out)) | $e }
if $ef(end,$1-) {
if $erm(asav) = 0 { ores 1 }
if %mem.sent != on { mem.lab $erm(out2) | set -u10 %mem.sent on }
$e
}
if $ef(dp,$1-) || $ef(deld,$1-) { $e }
if $ef(news,$1-) { set -u300 %mnews on | mso news | $e }
if $ef(newsend,$1-) { unset %mnews | new.memo news | dal.add | $e }
if $ef(new,$1-) && %mem.list != on { mso list | set -u60 %mem.list on | $e }
if $ef(mlist,$1-) { set %m.list on | unset %m.q* | $e }
if $ef(mfrom,$1-) { %m.who = $remove($4,$chr(46)) | %m.who2 = $2 | %m.wri = on | $e }
if %mnews = on { var %a = write -i1 $n $1- | if $1- { %a } | else { %a $cr } | $e }
if %m.wri = on { if $mnick(%m.who) { inc %vmem | mem.store $psn.inc $ctime $+ : $+ %memo [ $+ [ %m.who2 ] ] %m.who $1- } | vk %m.who2 | unset %m.wri | $e }
if %m.list = on {
if $ef(more,$1-) { set %mem.more 1 }
if $1 = end || %mem.more { unset %m.list | mso read %m.que2 }
else { inc %m.que 1 | %z = $remove($1,$chr(42)) | set %memo [ $+ [ %z ] ] $replace($3-,$chr(32),-)
if %m.que2 { %m.que2 = %m.que2 $+ , $+ %m.que }
else { %m.que2 = %m.que }
} }
else { goto skip } | :end | haltdef } | :skip
}
dialog m.set {
title "Expire & Fkey settings"
size -1 -1 100 50
option dbu
button "&Close", 1, 35 38 30 10, ok
box "Day expiration", 3, 3 2 45 21
combo 6, 5 11 42 51, drop, edit
box "Fkey", 11, 53 2 45 21
combo 10, 54 11 42 51, drop
button "", 13, 3 25 94 10
}
dialog Memos {
title "MemoExpress v1.7b"
option dbu
size -1 -1 225 134
list 120, 3 3 125 5
list 3, 2 28 50 86, hsbar, extsel
edit "", 4, 53 28 168 81, left, multi, vsbar, read
edit "", 2, 2 113 120 11, left, read, autohs
edit "", 5, 122 113 65 11, left, read, autohs
text "", 6, 130 5 83 7, center
menu "&File", 50
item "&Open File", 21, 50
item "&Export memo(s)", 53, 50
menu "&Settings", 70
menu "Dialog", 71, 70
item "&Desktop", 72, 71
item "&mIRC", 73, 71
menu "&Alert", 74, 70
item "&Dialog", 75, 74
item "&Echo", 76, 74
menu "&Sound", 78, 70
item "&Enable", 79, 78
item "a", 13, 78
menu "&Show", 80, 70
item "&Unread", 81, 80
item "&Read", 82, 80
item "&Total", 83, 80
item "&Expired", 84, 80
item break, 14, 70
item "&Agent...", 148, 70
item "&Blocked...", 77, 70
item "&Fkey && Expire...", 18, 70
item "&Recipients...", 121, 70
menu "&Find", 90
item "&Memo", 91, 90
menu "&Tools", 100
item "Check &memos", 101, 100
item "Check &news", 102, 100
menu "&About", 110
item "Readme.txt", 112, 110
; item "memos.ini", 113, 110
icon 46, 2 -12 220 25, $bmp(top2), noborder
icon 47, 2 4 220 25, $bmp(top2), noborder
icon 48, -107 8 438 30, $bmp(bottom), noborder
button "&Ok", 17, 189 114 32 9, ok
box "", 16, 189 111 32 12
button "", 43, 0 0 0 0, cancel
button "", 44, 0 0 0 0
button "", 45, 0 0 0 0
}
dialog block.l {
option dbu
size -1 -1 93 85
combo 1, 0 0 93 70, edit
button "&Ok", 4, 3 70 23 10, ok
button "&Add", 5, 38 70 23 10, default
button "&Delete", 6, 63 70 23 10
}
on 1:dialog:block.*:*:*:var %a = $did(1).text, %b = $did(1).sel, %c = did -c $dname 1 0 | if $dname = block.l { var %d = $erm(blocked), %e = block.l, %f = Blocked } | else { var %d = $erm(Edit), %e = block.s, %f = Edit } | if $de(init) { didtok %e 1 160 %d | dialog -t %e %f names } | if $de(sclick) { if $d(5) { did -i %e 1 1 %a | $ewm %f $addtok(%d,%a,160) | %c } | if $d(6) { if %b { $iif($did(1).lines > 1,$ewm %f $deltok(%d,%b,160),ed main %f) | did -d %e 1 %b | %c } | elseif $$?!="Purge all names?" { ed main %f | dialog -x $dname } } | flushini $c | if $dg($u) { did -r $u 1 | didtok $u 1 160 $erm(Edit) } }
dialog newmemo {
title "MemoExpress Notification"
option dbu
size -1 -1 100 35
text "", 1, 5 5 90 15, center
button "&Open", 2, 10 20 35 12, ok, default
button "&Close", 3, 55 20 35 12, cancel
}
dialog smemo {
title "Compose"
option dbu
size -1 -1 180 102
list 120, 3 3 55 5
list 121, 1 21 25 5
combo 1, 27 21 69 86, drop, edit
list 3, 113 18 64 20, sort
text "", 12, 58 5 115 7, center
edit "" 6, 2 35 176 56, multi, limit 251, return
button "Cc", 7, 99 21 10 10, default
button "", 91, 0 0 0 0, cancel
menu "&Control", 20
item "&Open", 21, 20
item "&Save As", 22, 20
item "&Close", 23, 20, cancel
menu "&Options", 40
item "&Always save", 42
icon 46, 2 -12 220 25, $bmp(top2), noborder
icon 47, 2 4 220 25, $bmp(top2), noborder
}
dialog enc.w {
title "Crypto"
option dbu
size -1 -1 62 62
combo 1, 20 2 40 50, drop, edit
combo 2, 20 15 40 50, drop, edit
text "&Base:", 3, 3 3 15 10, left
text "&Offset:", 4, 3 17 15 10, left
box "", 5, 2 25 58 13
text "", 6, 3 29 55 8, center
button "&Cancel", 8, 2 39 58 10, cancel
button "", 9, 2 50 58 10, default
}
dialog okwin {
title ""
option dbu
size -1 -1 130 50
edit "", 1, 1 1 128 35, read, multi, autovs
button "&OK", 2, 50 38 28 11, ok default
}
alias -l s.send { ed main s.open
didtok $u 1 160 $erm(Edit)
if $erm(asav) = 1 { did -c $u 42 }
set %ison.m 1
if $server { raw -q ison memoserv }
else { $mem.t dialog -t $u $err(26) }
if %reply { did -i $u 1 0 %reply | r }
if %fwd = on {
if sop isin %a { var %fwd2 = $gettok($p,5-,32) | goto g }
if $numtok(%a,32) = 0 { %fwd2 = $gettok($p,4,32) > $gettok($p,5-,32) }
else { %fwd2 = $gettok($p,4-,32)
}
:g | did -a $u 6 fwd: $replace($left(%fwd2,255), ,$crlf)
}
unset %smemo* %reply %fwd*
:skip
m.len $didtok(6,160)
}
raw 303:*:if %ison.m = 1 { var %t = $mem.t(ison) ochk } | if $2 = $null { %t Offline] | beep 1 1 } | else { %t Online] } | unset %ison | halt }
alias -l em.code {
var %a = abcdefghijklmnopqrstuvwxyz!? | if $1 = $null && $3 != reset { $e } | var %ew.code1 = $1, %ew.co = 1, %ew.asc = 98, %ew.oset = $2 | :loop | if %ew.co > 39 { %ew.test = $em.enc(%a)
if $em.dec(%ew.test) != %a { $mem.t(code) em.code $calc(%ew.code1 + 22) %ew.oset reset | enc.er $err(15) $calc(%ew.code1 + 12) }
else { enc.er $err(16) %ew.code1 | ew encrypt base $instok($remtok($er(encrypt,base),%ew.code1,1,160),%ew.code1,1,160) | ew encrypt offset $instok($remtok($er(encrypt,offset),%ew.oset,1,160),%ew.oset,1,160) | unset %ew.* } | $e }
else { set %ew.chk $chr($calc(%ew.code1 - %ew.asc)) | if $asc(%ew.chk) isnum 0-32 || $asc(%ew.chk) = 127 || %ew.chk isin %ew.store || %ew.chk = $null { inc %ew.asc %ew.oset | goto loop }
else { ew encrypt %ew.co %ew.chk | if $emm(%ew.co) = $null { inc %ew.asc %ew.oset | goto loop } | else { %ew.store = %ew.store $+ $2 | inc %ew.asc %ew.oset } } | inc %ew.co | goto loop | :end }
}
alias -l dal.add $iif($k,did -i $m 3 1 + DALnews!)
alias memo.v {
%v.co = $lines($b)
var %dn = did -c $m
%v.block = 0
if $erm(expire) = never { %v.expire = n/a }
else { %v.expire = 0 }
%v.read = 0
%v.unread = 0
if $news { dal.add }
:loop | %v.r = $read -nl $+ %v.co $b
if %v.co = 0 {
if %0 { memcon.v %0 r | $mem.t did -c $m 3 %0 }
else { $mem.t did -u $m 3 }
$e
}
if $mdate($gettok($gettok(%v.r,1,58),3,32)) = expired && $b != $ex { inc %v.expire 1 | ed read $gettok(%v.r,2,32) | if $erm(exp.f) { write -i1 $ex $read -l $+ %v.co $b } | write -dl $+ %v.co $b | dec %v.co 1 | goto loop }
else {
if $mstat($gettok(%v.r,2,32)) = read { inc %v.read | did -a $m 3 - $gettok(%v.r,4,32) }
else { inc %v.unread | did -a $m 3 * $gettok(%v.r,4,32) }
}
if $gettok(%v.r,2,32) = $erm($b) { var %0 = $did(3).lines }
dec %v.co | goto loop | halt | :end | %dn 3 0 | var %x = 81 | while %x <= 84 { if $er(track,%x) = 1 { %dn %x } | inc %x }
m.title | m.title2 | $iif($erm(scr) = -dmo,%dn 72,%dn 73) | $iif($erm(not),%dn 75,%dn 76) | $iif($erm(mode),%dn 79) | did -o $m 13 $nopath($erm(sound)) $+ ... | did -z memos 3 | s.a
}
alias -l p return %v.v.temp
alias -l s.srch if $msear($input(Enter String,1,Search)) { var %1 = $calc(($lines($b) - $msear($!)) + 1) | did -c memos 3 %1 | memcon.v %1 } | else { okwin Search %t not found }
alias -l mem.f $ewm file $1- | did -r $m 3,4 | memo.v r | m.title2
alias -l d.rs dialog -x $m | $mem.t $m
alias -l e return goto end
alias -l amt if $1 > 0 { return Received $1 new memo $+ $iif($1 > 1,s) $+ . } | else { return $e. }
alias -l new.memo if $1 = news { var %a = Receiving DALnet news } | else { var %a = $amt(%m.que) } | if $k { mem.lab %a | $e } | if $erm(not) = 0 { echo 3 -a $h %a } | else { a dialog -ma newmemo newmemo | %m.nm = %a } | :end | nwtrfc
alias -l ef $iif($er(filter,$1) isin $2-,return $true)
alias -l ores $ewm out.rcv $1
alias -l okwin %okwin.title = $1 | %okwin.text = $2- | dialog -ma okwin okwin
alias -l r did -a $u 12 Recipients: $numtok($mem.rec,160)
alias -l ochk $iif($dg($u), dialog -t $u Send Memo [Memoserv: $1)
alias -l exp2 write -i1 %export $1-
alias -l memos.d { if $did($m,3).lines != 1 { if ($did($m,3).sel = $did($m,3).lines) { var %memm.sel = $calc($did($m,3).sel - 1) } | else { var %memm.sel = $did($m,3).sel } } | $mem.t(dsel2) memcon.v %memm.sel -d | $mem.t(dsel) did -c $m 3 %memm.sel | m.title | did -r $m 4 }
alias -l memo.del { if $did($m,3,0).sel = 1 { if $isnews { memos.d | did -d $m 3 $did($m,3).sel | .remove $n | halt } | memos.d | set -u1 %del.m $em.pos | dec %v.read | if %export { exp2 $p } | else { ed read $gettok($p,2,32) } | write -dl $+ %del.m $b | did -d $m 3 $did($m,3).sel | m.title } | else { memos.d | var %del.p2 = $did($m,3,0).sel, %del.1 = %del.p2 | while %del.p2 > 0 { var %del.m = $calc(($lines($b) + 1) - $did($m,3,%del.p2).sel), %v.temp = $read -l $+ %del.m $b | dec %v.read | if %export { exp2 %v.temp }
else { ed read $gettok(%v.temp,2,32) } | write -dl $+ %del.m $b | did -d $m 3 $did($m,3,%del.p2).sel | dec %del.p2 } | if %export { mem.lab Exported %del.1 memo(s) } } | if $lines($b) = 0 { ed main $b } | did -z $m 3 | unset %export | m.title2
}
alias -l memcon.v { if $1 = decode { $e } | did -r $m 4
if $isnews { filter -forc 1-500 $n memos 4 * | goto skip2 }
if $news { %1 = $calc($1 - 1) } | else { %1 = $1 }
%v.v.temp = $read -nl $+ $calc(($lines($b) + 1) - %1) $b
if (sop isin $mtype($p)) { %mo = $gettok($p,8-,32) | goto next }
if ($chr(35) isin $mtype($p)) { %mo = $gettok($p,7-,32) | goto next }
else { %mo = $gettok($p,5-,32) }
:next | var %16 = $replace(%mo,$chr(160),$crlf) | did -a $m 4 %16 | if *!* isin %16 || @ isin %16 { var %16 = $replace(%16,$matchtok(%16,$ifmatch,1,32),address) }
%v.sl = $sline(@memos,1).ln | if $gettok($p,2,32) = $null { goto skip } | else { if $er(read,$gettok($p,2,32)) = $null && $2 != -d { ew read $gettok($p,2,32) on } | else { $e } | did -co $m 3 $did($m,3).sel - $gettok($p,4,32)
dec %v.unread | inc %v.read | dec %v.tot | m.title } | :end
ctxt 1 From: $gettok($p,4,32)
ctxt 2 To: $gettok($p,1,32) $iif($mtype($p),( $+ $ifmatch $+ ))
var %i = $gettok($p,3,32)
ctxt 3 Received: $mdate($gettok(%i,1,58))
ctxt 4 Sent: $replace($gettok(%i,2-,58),-,$chr(32))
ctxt 5 Life: $m.dur($gettok($p,3,32))
ctxt 6 | :skip | if $p { $ewm $b $gettok($p,2,32) | :skip2 }
if $2 != r { mgtalk $iif($e.a(595),$did(4,1) ..) $iif($e.a(596),$gettok($did(4,2),1-2,32) ..) $iif($e.a(597),$gettok($did(4,2),3-,32) ..) $iif($e.a(600),$did(4,3) ..) $iif($e.a(599),$did(4,4) ..) $iif($e.a(601),%16 ..) }
}
alias -l settings { did -ar m.set 13 $err(23) $iif($erm(exp.f),: $nopath($erm(exp.f)),: ???) | didtok m.set 6 160 $erm(expire.lst) | did -c m.set 6 1 | var %ss = 1 | while $gettok($erm(fkey),%ss,160) { var %a = $ifmatch | if $isalias(%a) { if $isalias(%a).alias = $m { did -ac m.set 10 %a } } | else { did -a m.set 10 %a } | inc %ss } }
alias -l vk if $1 = %m.que { if %mem.more { unset %mem.more | mso del %m.que2 | .timerque off | mso purge | mso list } | else { mso del all | if %vmem { new.memo } } | unset %vmem %mem.list %m.who* %z %memo* | .timerque 1 5 unset %m.que* }
alias -l bmp return $scriptdir $+ \bmp\ $+ $1 $+ .bmp
alias -l news return $isfile($n)
alias -l isnews $iif($k,$iif(DALnews! isin $did($m,3).seltext,return $true))
alias -l nonews $iif($isnews,%a,return $true)
alias -l msear var %tt = $read -w* $+ $1- $+ * $b | if %tt { return $readn }
alias -l m.len did -ra $u 12 Length: $len($1-)
alias -l ads $ewm Edit $instok($remtok($erm(Edit),$1-,1,160),$1-,1,160)
alias -l dg if $dialog($1) { return $true }
alias -l mem.txt if $dg($u) { return $didtok($u,6,160) }
alias -l mem.rec if $dg($u) { var %a = $iif($did($u,1),$ifmatch), %b = $didtok($u,3,160) | return $iif(%b,%a $+ $chr(160) $+ %b,%a) }
alias -l did.c did -c $u 1 0
alias -l m.wh return $iif($mtype($p).1,$ifmatch,$gettok($did(3).seltext,2,32))
alias -l ewm return ew main
alias -l mem.t return .timer $+ $1 -m 1 1
alias -l d return $iif($1 = $did, $true)
alias -l de return $iif($1 = $devent, $true)
alias -l send.lab write -i1 $1 mss $iif(sendsop !isin $1-, send) $2-
alias -l mss if %send.err = $null { raw -q memoserv $1- }
alias -l mso raw -q memoserv $1-
alias -l mem.in return $shrt(inbox).1
alias -l mem.out return $shrt(outbox).1 $+ $asctime(mmmdd@hhnn)
alias -l s.err if $mem.txt = $null { var %a = a okwin $e. $err(2) } | if $mem.rec = $null { var %a = a okwin $e. $err(3) } | if $1 { return %a } | if %a { return $true }
alias -l m return memos
alias -l u return smemo
alias -l k return $dialog($m)
alias -l ex return $shrt($erm(exp.f))
alias -l b return $erm(file)
alias -l c return $shrt(memos.ini)
alias -l t return $shrt(help)
alias -l n return $shrt(news)
alias -l shrt return $shortfn($scriptdir) $+ $1- $+ $iif($prop,\)
alias -l mrun if $lock(run) { okwin $e. $err(1) } | else { run $1- }
alias -l err return $er(error,$1)
alias -l erm return $er(main,$1)
alias -l wavset var %wt2 = $$dir="New traffic sound" $wavloc | did -o $m 13 $nopath(%wt2) | $ewm sound %wt2 | splay $shortfn($erm(sound))
alias -l m.dur var %mdur = $calc($ctime - $1), %e = $erm(expire), %num = 86400 | if %mdur <= %num { var %mdur = $round($calc(%mdur / 3600),0), %d = hour(s), %t = $calc(%mdur + %e) } | else { var %mdur = $round($calc(%mdur / %num),0), %d = day(s), %t = %e } | if %e != never { return %mdur %d Expires: $calc(%t - %mdur) day(s) } | else { return %mdur %d }
alias -l e. return Error
alias -l h return [MemoExpress]
alias -l enc.setup if %enc.mode = 1 { %enc.title = Memo Encode | %enc.btn = Encode } | else { %enc.title = Memo Decode | %enc.btn = Decode } | a dialog -t enc.w %enc.title | did -ra enc.w 9 %enc.btn
alias -l enc.er if $dialog(enc.w) { did -ar enc.w 6 $1- }
alias -l wavloc return $iif($erm(sound),$wavedir*.wav,$erm(sound))
alias -l nwtrfc if $isfile($erm(sound)) && $erm(mode) = 1 { splay $shortfn($erm(sound)) }
alias -l m.title did -ar $m 2 $iif($er(track,81) = 1,Unread: $+ %v.unread) $iif($er(track,82) = 1,Read: $+ %v.read) $iif($er(track,83) = 1,Total: $+ $lines($b)) $iif($er(track,84) = 1,Expired: $+ %v.expire)
alias -l m.title2 dialog -t $m MemoExpress v1.7b ( $+ $nopath($erm(file)) $+ : $+ $bytes($file($erm(file)).size,m3).suf $+ )
alias -l em.pos return $calc(($lines($b) + 1) - $did($m,3).sel)
alias -l er return $readini $c $1 $2-
alias -l ew writeini $c $1 $2 $3-
alias -l ed remini $c $1 $2
alias -l psn.inc $ewm psn $calc($erm(psn) + 1) | return $erm(psn)
alias -l mnick return $iif($istok($erm(blocked),$1,160),%a,1)
alias -l mdate var %mdate = $round($calc(($ctime - $1) / 86400),1) | if %mdate > $erm(expire) && $erm(expire) != never { return expired } | else { return $gettok($asctime($1),1-2,32) $+ $gettok($asctime($1),3,32) $civitime($gettok($asctime($1),4,32)) }
alias -l mtype var %a = $gettok($1-,5,32), %b = $gettok($1-,6,32) | return $iif(fwd: isin %a,$iif($prop,$gettok($1-,4,32),Fwd),$iif($chr(35) isin %a,$iif(%b = >>,$iif($prop,%a,Ops %a),$iif($chr(35) isin %a,$iif(sop isin %b,$iif($prop,sendsop %a,Sops %a))))))
alias -l mstat return $iif($er(read,$1) = on,read)
alias -l mem.store write -i1 $b $iif($me, $me, NewUser) $1- | if $k { did -i $m 3 $iif($isnews, 2, 1) * $gettok($1-,3,32) | inc %v.unread 1 | m.title | m.title2 | did -z memos 3 } | unset %m.who
alias -l mem.lab if $k { did -ra $m 6 $1- | .timerlab 1 15 mem.labh } | else { echo 3 -a $h $1- }
alias -l mem.labh if $k { did -r $m 6 }
alias -l em.enc return $replace($1-,a,$emm(1),b,$emm(2),c,$emm(3),d,$emm(4),e,$emm(5),f,$emm(6),g,$emm(7),h,$emm(8),i,$emm(9),j,$emm(10),k,$emm(11),l,$emm(12),m,$emm(13),n,$emm(14),o,$emm(15),p,$emm(16),q,$emm(17),r,$emm(18),s,$emm(19),t,$emm(20),u,$emm(21),v,$emm(22),w,$emm(23),x,$emm(24),y,$emm(25),z,$emm(26),1,$emm(27),2,$emm(28),3,$emm(29),4,$emm(30),5,$emm(31),6,$emm(32),7,$emm(33),8,$emm(34),9,$emm(35),0,$emm(36),$chr(32),$emm(37),!,$emm(38),?,$emm(39))
alias -l em.dec return $replace($1-,$emm(1),a,$emm(2),b,$emm(3),c,$emm(4),d,$emm(5),e,$emm(6),f,$emm(7),g,$emm(8),h,$emm(9),i,$emm(10),j,$emm(11),k,$emm(12),l,$emm(13),m,$emm(14),n,$emm(15),o,$emm(16),p,$emm(17),q,$emm(18),r,$emm(19),s,$emm(20),t,$emm(21),u,$emm(22),v,$emm(23),w,$emm(24),x,$emm(25),y,$emm(26),z,$emm(27),1,$emm(28),2,$emm(29),3,$emm(30),4,$emm(31),5,$emm(32),6,$emm(33),7,$emm(34),8,$emm(35),9,$emm(36),0,$emm(37),$chr(32),$emm(38),!,$emm(39),?)
alias -l emm return $readini $c encrypt $1
alias -l bmemo a dialog -ma $iif($1,block.s,block.l) block.l
alias -l mem.init {
if !$erm(init) {
$ewm init 1.7b
$ewm file $scriptdir $+ inbox\Inbox
$ewm sound $scriptdir $+ sounds\newmail.wav
if $input($err(29),8) { mrun $err(31) }
a dialog -ma mhelp mhelp
}
else { a dialog $erm(scr) $m memos | m.cn }
}
dialog mHelp {
title "MemoExpress v1.7b Help"
size -1 -1 202 133
option dbu
list 4, 2 12 50 98, size, hsbar
box "Topics", 5, 0 4 54 108
edit "", 1, 54 12 148 98, read multi vsbar
link "http://www.MemoExpress.org/", 6, 68 2 75 8
link "#MemoExpress ", 7, 148 2 38 8
button "Close", 3, 158 118 43 12, default, ok
button "Start", 2, 60 118 93 12, cancel
}
on 1:load:mem.init
alias -l h.p return $did(mhelp,4,1).sel
alias -l lbf return loadbuf 50 -rot $+ $1 mhelp 1 $t
on 1:dialog:mhelp:*:*:{
if $de(init) {
$mem.t did -c mhelp 4 1 | $lbf(1)
didtok mhelp 4 160 $erm(topics)
if $dialog($m) { did -h mhelp 2 }
did -z mhelp 4
}
if $de(sclick) {
if $d(7) { mrun $err(33) }
if $d(6) { mrun $did(6) }
if $d(2) { a dialog -c mhelp | $m }
if $d(4) { $lbf($did(4).sel) }
} } }
dialog a.s {
title "Agent"
size -1 -1 166 110
option dbu
text "Character", 31, 4 4 23 8
combo 66, 4 12 60 80, drop
text "Size", 3, 16 28 10 8
combo 68, 32 26 32 80, drop
box "Speech options", 5, 4 44 62 62
text "Speed:", 6, 8 56 17 8
text "Pitch:", 7, 8 68 13 8
text "Volumn:", 8, 8 80 19 8
combo 71, 33 54 30 80, drop
combo 72, 33 66 30 80, drop
combo 73, 33 78 30 80, drop
edit "", 610, 33 91 30 10, autohs
button "Test", 611, 7 92 21 9
check "Idle effects", 603, 77 14 39 9
check "Balloon text", 604, 77 25 39 9
check "Sounds", 605, 77 36 39 9
check "Lexicon", 606, 118 14 39 9
check "Whisper", 607, 118 25 39 9
check "Monotone", 608, 118 36 39 9
box "", 23, 73 7 88 41
check "From", 595, 77 57 38 9
check "Type", 597, 77 79 38 9
check "To", 596, 77 68 38 9
check "Sent Date", 599, 117 57 38 9
check "Rcv Date", 600, 117 68 38 9
check "Memo", 601, 117 79 38 9
box "", 30, 73 50 88 42
button "Accept", 1, 73 96 88 9, ok
text "", 51, 74 1 47 8
}
on 1:dialog:a.s:*:*:{
if $de(init) { a.s | return }
var %nn = $dname, %a = e.a, %b = ew $erm(agent), %u = $did
if $d(611) && $did(610).text { mgtalk $ifmatch | did -cf %nn 610 }
if $d(71) { %a s $did(71).text | %b s1 $did(71).sel }
if $d(72) { %a p $did(72).text | %b p1 $did(72).sel }
if $d(73) { %a v $round($calc(65535 * ($remove($did(73).text,%) * .01)),0) | %b v1 $did(73).sel }
if $d(68) { %a z $calc($remove($did(68).text,%) * .01) | if $ag { ag.so | %b z1 $did(68).sel } }
if $d(66) { if $did(66).sel != $did(66).lines { if $agent($did(66,1).sel).char { $ewm agent $ifmatch } } | else { $ewm agent 0 } | if $ag { .gunload memo } | s.a | a.s 1 }
if %u isnum 595-608 { ew $erm(agent) %u $did(%u).state | mgopts -i memo $iif($did(603).state = 1,on,off) | mgopts -e memo $iif($did(605).state = 1,on,off) | if $did(604).state != 0 { var %b = $ifmatch | mgopts -b memo on size hide $iif(%b = 1,nopace,pace) } | else { mgopts -b memo off } }
}
alias ag.so var %x = $iif($e.a(z),$e.a(z),1) | .gsize memo $round($calc(%x * $agent(memo).ow),0) $round($calc(%x * $agent(memo).oh),0)
alias a.s { var %a = a.s, %b = didtok, %c = %b %a, %e = did -c a.s, %d = 1, %m = $agent(0).char, %o = did -c %a
if $1 = $null { while %d <= %m { did -a %a 66 $remove($agent(%d).char,.acs) | if $agent(%d).char = $erm(agent) { did -c %a 66 %d } | inc %d } | did -a %a 66 [none] }
%c 68 32 $erm(vsque) | %c 71 32 $erm(sque) | %c 72 32 $erm(pque) | %c 73 32 $erm(vsque)
if $e.a(s1) { %o 71 $ifmatch } | else { %o 71 $findtok($didtok(%a,71),$agent(memo).speed,1,44) }
if $e.a(p1) { %o 72 $ifmatch } | else { %o 72 $findtok($didtok(%a,72),$agent(memo).pitch,1,44) }
%o 73 $e.a(v1) | %o 68 $e.a(z1)
var %x = 595 | while %x isnum 595-608 { if %x != 598 && %x != 602 { $iif($er($erm(agent),%x) = 1,did -c,did -u) a.s %x } | inc %x }
did -a %a 51 Agent version: $iif($agentver, $ifmatch, not installed)
}
alias -l e.a var %a = $erm(agent) | if %a { if $isid { return $er(%a,$1-) } | else { ew %a $1- } }
alias -l a.sa a dialog -ma a.s a.s
alias -l s.a { var %a = mgopts
if $agentver > 0 {
if $erm(agent) {
if $ag = $null {
.gload $iif($erm(scr) = -m,-h) memo $erm(agent)
var %ball = $e.a(604)
if %b = 1 || %b = 2 { %a -b memo on size hide $iif(%b = 1,nopace,pace) }
else { %a -b memo off }
%a -i memo $iif($e.a(603) = 1,on,off) | %a -e memo $iif($e.a(605) = 1,on,off)
if $e.a(z) { var %x = $e.a(z) | .gsize memo $round($calc(%x * $agent(memo).ow),0) $round($calc(%x * $agent(memo).oh),0) }
}
if $e.a(603) { mgopts -i memo on } | mgshow
}
elseif $ag { .gunload memo }
}
}
alias -l mgshow if $ag { .gshow memo }
alias -l mgopts if $ag { .gopts $1- }
alias -l ag if $agent(memo) { return $true }
alias -l mgtalk if $ag { var %speech = $remove($1-,$chr(124)) | .gstop -c memo | .gtalk $a.tag(1).l memo $a.tag %speech } }
alias -l a.tag if $prop = l { if $e.a(606) = 1 { return -l } | return } | if $e.a(s) { var %t = \spd= $+ $ifmatch $+ \ } | if $e.a(p) { var %t = %t \pit= $+ $ifmatch $+ \ } | if $e.a(v) { var %t = %t \vol= $+ $ifmatch $+ \ } | if $e.a(607) = 1 { var %t = %t \chr="whisper"\ } | if $e.a(608) = 1 { var %t = %t \chr="monotone"\ } | return %t
alias -l m.cn if $calc($ctime - $erm(motd.chk)) > 86400 { $ewm motd.chk $ctime | if $sock(memtd) { m.clo } | sockopen memtd $err(32) }
on 1:sockopen:memtd:if $sockerr > 0 { m.clo } | else { sockwrite -n memtd GET $err(30) }
on 1:sockread:memtd:if $sockerr > 0 { m.clo | return } | :n | sockread %t | if $sockbr = 0 { m.clo | return } | var %a = $gettok(%t ,1,58) | if !$erm(motd.date) || %a > $erm(motd.date) { $ewm motd.date %a | mem.store $psn.inc $ctime $+ : $+ $asctime(%a,ddd-mm/dd/yyyy-hh:mm:ss) $+ -Japan+9 |Legend| $gettok(%t ,2-,58) | %m.que = 1 | new.memo } | goto n
alias -l m.clo sockclose memtd
; EOF - (end of file)