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)