diff options
Diffstat (limited to 'pat/patdiff.SH')
-rwxr-xr-x | pat/patdiff.SH | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/pat/patdiff.SH b/pat/patdiff.SH index 33ba90c..846b058 100755 --- a/pat/patdiff.SH +++ b/pat/patdiff.SH @@ -49,6 +49,8 @@ $startperl !GROK!THIS! cat >>patdiff <<'!NO!SUBS!' +use File::Temp qw/ tempfile tempdir /; + $RCSEXT = ',v' unless $RCSEXT; $TOPDIR = ''; # We are at top-level directory @@ -159,9 +161,11 @@ foreach $file (@ARGV) { close DIFF; system 'rcs', "-Nlastpat:$new", @files; } else { - ©right'expand("co -p -rlastpat $file", "/tmp/pdo$$"); - ©right'expand("co -p -r$new $file", "/tmp/pdn$$"); - open(DIFF, "$mydiff /tmp/pdo$$ /tmp/pdn$$ |") || + my $tmpo = File::Temp->new(); + my $tmpn = File::Temp->new(); + ©right'expand("co -p -rlastpat $file", "$tmpo"); + ©right'expand("co -p -r$new $file", "$tmpn"); + open(DIFF, "$mydiff $tmpo $tmpn |") || die "Can't run $mydiff"; while (<DIFF>) { # Contextual or unified diff if ($. == 1) { @@ -177,7 +181,7 @@ foreach $file (@ARGV) { } close DIFF; system 'rcs', "-Nlastpat:$new", @files; - unlink "/tmp/pdn$$", "/tmp/pdo$$"; + unlink "$tmpo", "$tmpn"; } } else { if ($mydiff eq '') { @@ -191,9 +195,11 @@ foreach $file (@ARGV) { } close DIFF; } else { - system "co -p -rlastpat $files >/tmp/pdo$$"; - system "cp $file /tmp/pdn$$"; - open(DIFF, "$mydiff /tmp/pdo$$ /tmp/pdn$$ |") || + my $tmpo = File::Temp->new(); + my $tmpn = File::Temp->new(); + system "co -p -rlastpat $files >$tmpo"; + system "cp $file $tmpn"; + open(DIFF, "$mydiff $tmpo $tmpn |") || die "$progname: can't fork $mydiff: $!\n"; while (<DIFF>) { # Contextual or unified diff @@ -209,7 +215,7 @@ foreach $file (@ARGV) { print PATCH; } close DIFF; - unlink "/tmp/pdn$$", "/tmp/pdo$$"; + unlink "$tmpo", "$tmpn"; } } } |