On Tue, 25 Mar 2014 21:07:45 +0100 (CET) Michael Van Canneyt <mich...@freepascal.org> wrote:
>[...] > > For example a way to tell fpc to use the PWD environment > > variable? > > No. > > Because if you do a Chdir('ABC') inside a FPC program, 'a FPC program' sounds as if you are talking about console programs in general. My question is only about the compiler. > the CWD variable is no longer valid. > So it would require us to keep track of what you do. What can I do to the compiler, that needs tracking? > We could hook the Chdir and SetDirectory calls. But that would go > wrong at the first direct syscall or library call that changes the > current directory. > > So, FPC uses a system call to get the correct (resolved) CWD directory. > This is the only guaranteed mechanism. What's wrong with this: if GetEnvironmentVariable('PWD')<>'' then SetCurrentDir(GetEnvironmentVariable('PWD')); ? > So, the best Lazarus can do is resolve all directories before calling the > compiler. If you mean with "resolve" to convert relative paths to absolute paths: That is not sufficient. For example when the program uses a unit in the same directory, the compiler uses its current directory. > Since you brought it up: > IMHO Lazarus must do this resolving anyhow, because now Lazarus does not work > at all with symlinks, e.g. to find filenames and resolve packages. Regardless > of what the compiler does. > > I submitted bugreports on the list about this in the past. I remember some problems. Formerly the IDE resolved symlinks, which was wrong. This was fixed. Mattias _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal