Mattias Gaertner wrote:
On Sat, 02 Feb 2013 15:37:51 +0000
Mark Morgan Lloyd <[email protected]> wrote:

[...]
/usr/local/src/inifiles
/usr/local/src/inifiles/trunk

/usr/local/src/heavywethers
/usr/local/src/heavywethers/trunk
/usr/local/src/heavywethers/inifiles -> /usr/local/src/inifiles

with the project only referring to ../inifiles/trunk:

     <SearchPaths>
       <IncludeFiles Value="$(ProjOutDir);$(LazarusDir)\ide"/>
       <OtherUnitFiles Value="..\inifiles\trunk"/>
     </SearchPaths>
The relative path "../inifiles/trunk" is passed absolute to the
compiler. If for example your project directory
is /usr/local/src/heavywethers/trunk the IDE passes
-Fu/usr/local/src/heavywethers/inifiles/trunk
to the compiler.
Which presumably means that if there's an error the compiler reports the absolute path, and the IDE doesn't realise that it's already got that file open.

1. Why should the compiler report a wrong path?

That's not quite what I said. You pointed out that the IDE was converting the relative path to an absolute one which is what the compiler sees, the compiler reports an absolute path in any error message, and by the time it sees that the IDE's forgotten that it's already got the file open.

2. The files' inode may be the same, but for all other purposes they
are two different files.

In the case of a symlink- arguable. But I think the case you've pointed out is purely to do with the absolute/relative path to a file, and in that case it's definitely the same file.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to