X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=x2p%2Fs2p.PL;h=0a8d5298d3050adfa8a4f14409183f7078a915bf;hb=102b13d314016f7ec14c00406088a88475fe52db;hp=9b62caac9c8be490472abc5e7c4da2ed18855414;hpb=9ae2b9a01756a2a2ea4071ab263cdb052d634e1a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/x2p/s2p.PL b/x2p/s2p.PL index 9b62caa..0a8d529 100644 --- a/x2p/s2p.PL +++ b/x2p/s2p.PL @@ -3,6 +3,27 @@ use Config; use File::Basename qw(&basename &dirname); use Cwd; +use subs qw(link); + +sub link { # This is a cut-down version of installperl:link(). + my($from,$to) = @_; + my($success) = 0; + + eval { + CORE::link($from, $to) + ? $success++ + : ($from =~ m#^/afs/# || $to =~ m#^/afs/#) + ? die "AFS" # okay inside eval {} + : die "Couldn't link $from to $to: $!\n"; + }; + if ($@) { + require File::Copy; + File::Copy::copy($from, $to) + ? $success++ + : warn "Couldn't copy $from to $to: $!\n"; + } + $success; +} # List explicitly here the variables you want Configure to # generate. Metaconfig only looks for shell variables, so you @@ -543,7 +564,13 @@ $useEXTBRE =~ s/[^<>wWyB]//g; # gawk RE's handle these my $doAutoPrint = 1; # automatic printing of pattern space (-n => 0) my $doOpenWrite = 1; # open w command output files at start (-a => 0) my $svOpenWrite = 0; # save $doOpenWrite -my $doGenerate = $0 eq 's2p'; + +# lower case $0 below as a VMSism. The VMS build procedure creates the +# s2p file traditionally in upper case on the disk. When VMS is in a +# case preserved or case sensitive mode, $0 will be returned in the exact +# case which will be on the disk, and that is not predictable at this time. + +my $doGenerate = lc($0) eq 's2p'; # Collected and compiled script # @@ -765,7 +792,7 @@ sub makey($$$){ my $fc = substr($fr,$i,1); my $tc = substr($to,$i,1); if( exists( $tr{$fc} ) && $tr{$fc} ne $tc ){ - Warn( "ambiguos translation for character `$fc' in `y' command", + Warn( "ambiguous translation for character `$fc' in `y' command", $fl ); $error++; } @@ -1839,7 +1866,7 @@ See L<"Additional Atoms">. =over 4 -=item ambiguos translation for character `%s' in `y' command +=item ambiguous translation for character `%s' in `y' command The indicated character appears twice, with different translations. @@ -1918,7 +1945,7 @@ script or script file. =item string lengths in `y' command differ -The translation table strings in a B commanf must have equal lengths. +The translation table strings in a B command must have equal lengths. =item undefined label `%s' @@ -2025,9 +2052,9 @@ way you wish, provided you do not restrict others from doing the same. close OUT or die "Can't close $file: $!"; chmod 0755, $file or die "Can't reset permissions for $file: $!\n"; unlink 'psed'; -print "Linking s2p to psed.\n"; +print "Linking $file to psed.\n"; if (defined $Config{d_link}) { - link 's2p', 'psed'; + link $file, 'psed'; } else { unshift @INC, '../lib'; require File::Copy;