{$e err.log.text}
{setc foros:=true}
program testlist;
              {line before}
   uses {$u-}{$u n/SULib} StdUnit,
             {$u garbage} garbage,
             {$u pas/listunit} listunit,
             {$u garbage} garbage;

   label 999;

   var
      lfname: sustr;
      WhatUserTyped, ILib_WhatUserTyped: PromptState;
      i, iorslt: integer;

   begin
      suinit; initlistunit;
      REPEAT
        Write('List file - ');
        SUGetFN(@lFName, WhatUserTyped, '', '', '.TEXT');
        IF WhatUserTyped = SUEscape THEN GOTO 999;
        IF WhatUserTyped = SUInvalid THEN
          WriteLn('Bad file name');
        IF WhatUserTyped = SUValid THEN
          BEGIN
          iorslt := openlisting(@lFName);
          IF IOResult > 0 THEN
            BEGIN
            Writeln('Open error: ', iorslt:1);
            WhatUserTyped := SUInvalid;
            END;
          END;
      UNTIL WhatUserTyped IN [SUValid, SUNone, SUDefault];

      writeln;
      writeln('File is open. About to creat file.');

      for i := 1 to 1000 do
         begin
         putstr(concat('Line #', putintp(i, -4)^), 0);
         putcf(chr(13));
         end;

      writeln('File is created. About to close it.');

      closelisting(listlock);
999:
   end.

