anchor.diff:      end;
   end;
   
  +function ResolveFilename(uclass: TUClass; exfile: string): string;
  +begin
  +    if (exfile = '') then result := uclass.FullFileName
  +    else begin
  +        result := iFindFile(ExpandFileName(uclass.package.PackageDir+exfile));
  +    end;
  +end;
  +
   // Open a source file at a specific line
  -procedure Tfrm_UnCodeX.OpenSourceLine(uclass: TUClass; line, caret: integer);
  +procedure Tfrm_UnCodeX.OpenSourceLine(uclass: TUClass; line, caret: integer; exfile: string = '');
   var
       lst:    TStringList;
       i:      integer;
       exe:    string;
   begin
  +    exfile := ResolveFilename(uclass, exfile);
  +    if (not fileExists(exfile)) then begin
  +        Log('Could not open file '+exfile);
  +        exit;
  +    end;
  +
       if (OpenResultCmd = '') then begin
  -        ExecuteProgram(uclass.package.path+PATHDELIM+uclass.filename);
  +        ExecuteProgram(exfile);
           exit;
       end;
   
  
positive.code:     Purpose:
          Main window for the GUI
  
      $Id: unit_main.pas,v 1.131 2004-11-27 10:47:39 elmuerte Exp $
  *******************************************************************************}
  
  {
  
negative.code:         statustext : string; // current status text
          procedure NextBatchCommand;
          procedure ExecuteProgram(exe: string; params: TStringList = nil; prio: integer = -1; show: integer = SW_SHOW);
          procedure OpenSourceLine(uclass: TUClass; line, caret: integer; exfile: string = '');
          procedure OpenSourceInline(uclass: TUClass; line, caret: integer; exfile: string = '');      
      end;
  
      // status redirecting
  