alias fordialog { set %geninp.1 $1 set %geninp.2 $2 set %geninp.3 $3 set %geninp.4 $4 set %geninp.5 $5 var %t = fordialog. $+ $trnum mrcdlg -m %t } dialog fordialog.* { title "" option dbu size -1 -1 173 94 text "", 1, 6 5 257 8, read multi combo 2, 5 60 163 170, drop edit result edit "NOTE: No specific, show the first 100 available entries.", 4, 4 51 165 8, disable link "Help?", 5, 7 79 20 8 button "&OK", 6, 77 77 44 13, ok default button "&Cancel", 7, 124 77 44 13, cancel } on *:dialog:fordialog.*:*:*:{ if ($devent == init) { mdx SetBorderStyle $dname 4 dialog -t $dname %geninp.2 did -a $dname 1 %geninp.1 didtok $dname 2 44 %forb.syntax } elseif ($devent == sclick) { if ($did == 6) { set %forblist forbid if (!$did(2).text) { %geninp.4 } elseif ($regex($did(2).text, /^[a-zA-Z\s]+$/)) { set %cfblist $calc($did(2).sel +1) $did(2) | %geninp.4 $did(2) } else { set %cfblist %linenum | %geninp.4 $did(2) } } elseif ($did == 7) { unset %forb.syntax %linenum } elseif ($did == 5) { var %r = $specialwin | window -kea %r | os help Forbid } } elseif ($devent == edit) { var %read $did(2,0) if (%read != $null) && ($regex(%read, /[a-zA-Z]/)) { var %t $did(2).lines, %i 1 while (%i <= %t) { var %line $did(2, %i) if (%line $+ * iswm %read) { set %linenum $calc(%i +1) %read | return } inc %i } } } elseif ($devent == close) { unset %linenum %geninp.* } }