diff options
author | joeyh <joeyh> | 2006-01-08 04:13:06 +0000 |
---|---|---|
committer | joeyh <joeyh> | 2006-01-08 04:13:06 +0000 |
commit | c5d64a7f9b1db4e98aff95c237342a793e40c6f5 (patch) | |
tree | f4565308ae0a0b8b8b1060b09571cbd4db28f762 /dh_link | |
parent | bb4488a4f39bd51224957a7d512e15bbbe6adc7f (diff) |
r1843: * dh_link: add special case handling for paths to a directory containing the
link. Closes: #346405
* dh_link: add special case handling for link to /
Diffstat (limited to 'dh_link')
-rwxr-xr-x | dh_link | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -105,6 +105,9 @@ sub expand_path { foreach $entry (@respath) { $result .= '/' . $entry; } + if (! defined $result) { + $result="/"; # special case + } return $result; } @@ -175,11 +178,11 @@ foreach my $package (@{$dh{DOPACKAGES}}) { # top level directories, leave it absolute. my @src_dirs=split(m:/+:,$src); my @dest_dirs=split(m:/+:,$dest); - if ($src_dirs[0] eq $dest_dirs[0]) { + if (@src_dirs > 0 && $src_dirs[0] eq $dest_dirs[0]) { # Figure out how much of a path $src and $dest # share in common. my $x; - for ($x=0; $x<$#src_dirs && $src_dirs[$x] eq $dest_dirs[$x]; $x++) {} + for ($x=0; $x<@src_dirs && $src_dirs[$x] eq $dest_dirs[$x]; $x++) {} # Build up the new src. $src=""; for (1..$#dest_dirs - $x) { @@ -188,6 +191,9 @@ foreach my $package (@{$dh{DOPACKAGES}}) { for ($x .. $#src_dirs) { $src.=$src_dirs[$_]."/"; } + if ($x > $#src_dirs && ! length $src) { + $src.="."; # special case + } $src=~s:/$::; } else { |