/*
     POPS.rexx  v 1.0, Pavel ãÉÚek 1997
     
dÁvka pro ARexxovÙ port POPSu, urÃenÁ k pÒekladu cizojazyÃnÙch slov  v
BD  Editoru 1.2 a vyÓÓÉm. DÁvka vezme aktuÁlnÉ slovo na pozici kurzoru
v BD Editoru, poÓle ji POPSu, a vÙsledek zobrazÉ  v  oknÅ,  kter×  vÁm
umoÚnÉ tento vÙsledek editovat (napÒ. zvolit nejvhodnejÓÉ z nabÉzenÙcb
pÒekladu). VÙsledek je pÒi odpovÅdi OK vloÚen pÒed pÒeklÁdan× slovo.

 Promennou popspath zmÅÎte na plnou cestu k POPSu !

*/

/* CESTA K PROGRAMU POPS */
popspath='Utilities:Text_Editors/pops/'

options results

/* spusteni POPSu, pokud jiz nebezi */
if ~show(ports, 'rexx_pops') then
do
    pragma(directory,popspath)
    address command
    'run <nil: >nil: ' || popspath || 'pops NOACTIVE DATA ' || popspath || 'pops.dat'
    'sys:rexxc/waitforport rexx_pops'
end

/* dotaz na aktualni slovo */
address 'BDEDITOR'

'QUERY WORD'
word = result

/* preklad */
address 'rexx_pops' 

'search' || word
word = result

/* oznameni vysledku (pokud je preklad) + pripadne okopirovani do editoru */
address 'BDEDITOR'

if word ~= 'Nenalezeno' then
do
     'REQUESTSTRING TITLE=Preklad STRING=' || word
     if rc = 0 then
     do
	  word = result

	  /* test, zda jsme na pocatku slova + pripadny prechod na zacatek slova */
	  'CURSOR LEFT'
	  'QUERY CHAR'
	  znak = result
	  'CURSOR RIGHT'
	  if 0 ~= pos(znak, xrange('A', 'Z') || xrange('a', 'z')) then
	       'CURSOR BOW'
     
	  /* vlozeni prekladu do textu */
	  if (znak ~= 32) && (znak ~= 9) && (znak ~= 13) && (znak ~= 10) then
	       INSERT SPACE
	  'TEXT ' || word
	  INSERT SPACE
     end
end

exit

