diff options
author | Piotr Strzelczyk <piotr@eps.gda.pl> | 2009-11-09 00:42:20 +0000 |
---|---|---|
committer | Piotr Strzelczyk <piotr@eps.gda.pl> | 2009-11-09 00:42:20 +0000 |
commit | 8e63c701619069796c0ff9f29d462db905585e41 (patch) | |
tree | 80d0a3540ac8efc0145ee1b44552669233a6572f /Master | |
parent | 98b4381ea1f0b638b1afa3c786439d407fb4f81b (diff) |
don't slash the path
git-svn-id: svn://tug.org/texlive/trunk@15949 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/tlpkg/TeXLive/TLWinGoo.pm | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/Master/tlpkg/TeXLive/TLWinGoo.pm b/Master/tlpkg/TeXLive/TLWinGoo.pm index 9efc7c39356..52a0233a39a 100644 --- a/Master/tlpkg/TeXLive/TLWinGoo.pm +++ b/Master/tlpkg/TeXLive/TLWinGoo.pm @@ -356,7 +356,6 @@ forward slashes. 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 @@ expandable. 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 @@ sub win_which_dir { 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; @@ -498,9 +497,9 @@ to system or user PATH variable in the registry (depending on $mode). sub adjust_reg_path_for_texlive { my ($action, $tlbindir, $mode) = @_; die("Unknown path action: $action\n") - if ($action ne 'add') and ($action ne 'remove'); + if ($action ne 'add') && ($action ne 'remove'); die("Unknown path mode: $mode\n") - if ($mode ne 'system') and ($mode ne 'user'); + if ($mode ne 'system') && ($mode ne 'user'); debug("Warning: [pdf]tex program not found in $tlbindir\n") if (!is_a_texdir($tlbindir)); my $path = ($mode eq 'system') ? get_system_path() : get_user_path(); @@ -508,18 +507,23 @@ sub adjust_reg_path_for_texlive { my $tlbindir_short = uc(short_name($tlbindir)); my ($d, $d_short, @newpath); my $tex_dir_conflict = 0; + my @texdirs; foreach $d (split (';', $path)) { $d_short = uc(short_name(expand_string($d))); $d_short =~ s!/!\\!g; ddebug("adjust_reg: compar $d_short with $tlbindir_short\n"); if ($d_short ne $tlbindir_short) { push(@newpath, $d); - $tex_dir_conflict += is_a_texdir($d); + if (is_a_texdir($d)) { + $tex_dir_conflict++; + push(@texdirs, $d); + } } } if ($action eq 'add') { if ($tex_dir_conflict) { - debug("Warning: conflicting [pdf]tex found on the $mode path in $d; appending texlive bin dir to the front."); + log("Warning: conflicting [pdf]tex program found on the $mode path ", + "in @texdirs; appending $tlbindir to the front of the path."); unshift(@newpath, $tlbindir); } else { push(@newpath, $tlbindir); @@ -532,8 +536,11 @@ sub adjust_reg_path_for_texlive { debug("TLWinGoo: adjust_reg_path_for_texlive: calling unsetenv_reg in $mode\n"); unsetenv_reg("Path", $mode); } - if (($action eq 'add') and ($mode eq 'user') and tex_dirs_on_path(get_system_path())) { - tlwarn("Warning: conflicting [pdf]tex found on the system path in $d; not fixable in user mode."); + if ( ($action eq 'add') && ($mode eq 'user') ) { + @texdirs = tex_dirs_on_path( get_system_path() ); + return 0 unless (@texdirs); + tlwarn("Warning: conflicting [pdf]tex program found on the system path ", + "in @texdirs; not fixable in user mode."); return 1; } return 0; |