home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 3 / CDASC03.ISO / sorties / 2078 / direct.kml < prev    next >
Text File  |  1993-04-01  |  2KB  |  53 lines

  1. : > execute command in directory
  2. :DIREXEC
  3.     'editv getf DOSMODE';
  4.     if COMMAND() then
  5.         do
  6.         T = 'DOS DOSNOWAIT DOSQUIET DOS';
  7.         DOSMODE = WORD( SUBSTR( T , POS( DOSMODE , T ) ) , 2 );
  8.         'editv putf DOSMODE'; 'macro KEYMSG mode' DOSMODE;
  9.         end
  10.     else
  11.         do
  12.         'macro TEXTBEGIN'; if FIRST() then exit;
  13.         CMD = SUBSTR( FIELD.1() , FIELD.3() );
  14.         if CMD = '' then
  15.             do; 'editv getf CMD'; if CMD \= '' then 'text' CMD; exit; end
  16.         else if CMD = '@' then
  17.             do; 'macro GETPASSW'; exit; end
  18.         'editv putf CMD'; 'lowercase 1'; HEAD = POS( '#' , CMD );
  19.         if HEAD > 0 then do; HEAD = HEAD-1; TAIL = HEAD+2; end
  20.         else do; HEAD = LENGTH( WORD( CMD , 1 ) )+1; TAIL = HEAD; end
  21.         CMD = SUBSTR( CMD , 1 , HEAD )||DIRFILEID.1()||SUBSTR( CMD , TAIL );
  22.         HEAD = POS( '@' , CMD );
  23.         if HEAD > 0 then
  24.             do
  25.             'editv getf PASS'; if PASS = '' then 'macro GETPASSW'; 'editv getf PASS';
  26.             CMD = SUBSTR( CMD , 1 , HEAD-1 ) || PASS || SUBSTR( CMD , HEAD+1 );
  27.             end
  28.         if SUBSTR( CMD , 1 , 1 ) = '!' then 'synex' SUBSTR( CMD , 2 );
  29.         else DOSMODE CMD;
  30.         end
  31. : > get password
  32. :GETPASSW
  33.     'preserve'; 'color cmdline black';
  34.     do forever
  35.         'sos beep'; 'macro KEYMSG pass?'; 'readv CMD';
  36.         if WORD( READV.1 , 1 ) = WORD( READV.1 , 2 ) then leave;
  37.     end
  38.     'editv setf PASS' WORD( READV.1 , 1 ); 'restore';
  39. : > directory/edit file
  40. :DIREDIT
  41.     F = DIRFILEID.1(); 'macro PRESCURSMODE  ';
  42.     if F == '' then
  43.         'sos beep';
  44.     else if POS( '<DIR>' , UPPER( CURLINE.3() ) ) > 0 then
  45.         do
  46.         if SCROLLLOCK() then do; 'delete 1'; 'dirappend' F; end;
  47.         else 'dir' F;
  48.         'set curline 1';
  49.         end
  50.     else
  51.         'kedit' F '(nodefext';
  52.     'macro PRESCURSMODE';
  53.