[tex-live] Interference with Embarcadero C++Builder?

T T t34www at googlemail.com
Fri Nov 6 15:37:14 CET 2009


2009/11/6 Norbert Preining <preining at logic.at>:
> On Fr, 06 Nov 2009, Jörn Clausen wrote:
>> It seems the path .../RAD Studio/6.0/Bpl is already contained in the
>> path, and ...\RAD Studio\6.0\BPL should be added. Is there anything in
>
> Ouch ...
>        ...\BPL
> and
>        ...\Bpl
> is *the*same* on Windows.
>
> So yes, there is a problem, but I don't see that it is in TL:
> - the TL installer adds the texlive's bin/win32 to the path, but also
>  checks that the paths do not contain a tex already. So it recreates
>  the path variable, but in this it uses exactely what is returned
>  from the system path.
>
> - it seems that the check in RAD Studio is broken in the sense that
>  it checks without upper-casing (or lower-casing) the full path
>  before comparison.
>
> So the bug is in the RAD STudio, but it was triggered by us.
>
> The problem is that I don't see what we can make different. We keep exactely
> the path as returned from the perl library, i.e. as found in the registry.
> Why your program then insists on BPL instelad of Bpl ... no idea.

We should not change what's read from the registry, but we do - we
change backslashes to slashes in get_system_env/get_user_path - patch
below. Please check if I hadn't missed any occurrences of
get_system_env/get_user_path in case some code relies on that
substitution being in place (exclude adjust_reg_path_for_texlive, as
we don't want it there).

Cheers,

Tomek

Index: tlpkg/TeXLive/TLWinGoo.pm
===================================================================
--- tlpkg/TeXLive/TLWinGoo.pm	(revision 15934)
+++ tlpkg/TeXLive/TLWinGoo.pm	(working copy)
@@ -356,7 +356,6 @@

 sub get_system_path {
   my $value = get_system_env() -> {'/Path'};
-  $value =~ s/\\/\//g;
   # Remove terminating zero bytes; there may be several, at least
   # under w2k, and the FixSzNulls option only removes one.
   $value =~ s/[\s\x00]+$//;
@@ -376,7 +375,6 @@
 sub get_user_path {
   my $value = get_user_env() -> {'/Path'};
   return "" if not $value;
-  $value =~ s/\\/\//g;
   $value =~ s/[\s\x00]+$//;
   return $value;
 }
@@ -399,6 +397,7 @@
   my $path = expand_string(get_system_path());
   my $user_path = expand_string(get_user_path());
   $path = $path . ';' . $user_path if $user_path;
+  $path =~ s/\\/\//g;
   foreach $d (split (';',$path)) {
     $d =~ s/\/$//;
     return $d if -e $d.'/'.$prog;


More information about the tex-live mailing list