* extfs/patchfs.in: Minor cleanups by Adam Byrtek <alpha@debian.org>.
Этот коммит содержится в:
родитель
4d548cc4b1
Коммит
5e267e2ab6
@ -1,3 +1,7 @@
|
|||||||
|
2003-03-10 Adam Byrtek <alpha@debian.org>
|
||||||
|
|
||||||
|
* extfs/patchfs.in: Minor cleanups.
|
||||||
|
|
||||||
2003-03-10 Pavel Roskin <proski@gnu.org>
|
2003-03-10 Pavel Roskin <proski@gnu.org>
|
||||||
|
|
||||||
* extfs.c (extfs_cmd): Quote localname - it's based on the entry
|
* extfs.c (extfs_cmd): Quote localname - it's based on the entry
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
#
|
#
|
||||||
# Written by Adam Byrtek <alpha@debian.org>, 2002
|
# Written by Adam Byrtek <alpha@debian.org>, 2002
|
||||||
#
|
#
|
||||||
# extfs to handle patches in context and unified diff format
|
# Extfs to handle patches in context and unified diff format.
|
||||||
|
# Known issues: When name of file to patch is modified during editing,
|
||||||
|
# hunk is duplicated on copyin. It is unavoidable.
|
||||||
|
|
||||||
use bytes;
|
use bytes;
|
||||||
use strict;
|
use strict;
|
||||||
@ -12,7 +14,7 @@ use File::Temp 'tempfile';
|
|||||||
# standard binaries
|
# standard binaries
|
||||||
my $bzip = 'bzip2';
|
my $bzip = 'bzip2';
|
||||||
my $gzip = 'gzip';
|
my $gzip = 'gzip';
|
||||||
my $file = 'file';
|
my $fileutil = 'file';
|
||||||
|
|
||||||
# date parsing requires Date::Parse from TimeDate module
|
# date parsing requires Date::Parse from TimeDate module
|
||||||
my $parsedates = eval 'require Date::Parse';
|
my $parsedates = eval 'require Date::Parse';
|
||||||
@ -61,7 +63,7 @@ sub myin
|
|||||||
{
|
{
|
||||||
my ($qfname)=(quotemeta $_[0]);
|
my ($qfname)=(quotemeta $_[0]);
|
||||||
|
|
||||||
$_=`$file $qfname`;
|
$_=`$fileutil $qfname`;
|
||||||
if (/bzip/) {
|
if (/bzip/) {
|
||||||
return "$bzip -dc $qfname";
|
return "$bzip -dc $qfname";
|
||||||
} elsif (/gzip/) {
|
} elsif (/gzip/) {
|
||||||
@ -77,7 +79,7 @@ sub myout
|
|||||||
my ($qfname,$append)=(quotemeta $_[0],$_[1]);
|
my ($qfname,$append)=(quotemeta $_[0],$_[1]);
|
||||||
my ($sep) = $append ? '>>' : '>';
|
my ($sep) = $append ? '>>' : '>';
|
||||||
|
|
||||||
$_=`$file $qfname`;
|
$_=`$fileutil $qfname`;
|
||||||
if (/bzip/) {
|
if (/bzip/) {
|
||||||
return "$bzip -c $sep $qfname";
|
return "$bzip -c $sep $qfname";
|
||||||
} elsif (/gzip/) {
|
} elsif (/gzip/) {
|
||||||
@ -309,12 +311,6 @@ sub copyin
|
|||||||
my ($archive,$name,$src)=(@_);
|
my ($archive,$name,$src)=(@_);
|
||||||
my ($fsrc,$fdst,$f,@files);
|
my ($fsrc,$fdst,$f,@files);
|
||||||
my ($unified,$context)=(0,0);
|
my ($unified,$context)=(0,0);
|
||||||
my ($cmd1,$cmd2);
|
|
||||||
|
|
||||||
error 'File must have .diff or .patch extension'
|
|
||||||
unless $name=~/\.(diff|patch)(\.(bz|bz2|gz|z|Z))?$/;
|
|
||||||
|
|
||||||
$file=~s/^(PATCH-(CREATE|REMOVE)\/)?(.*)\.diff$/$3/;
|
|
||||||
|
|
||||||
# build filelist
|
# build filelist
|
||||||
open I, myin($src).'|';
|
open I, myin($src).'|';
|
||||||
@ -338,8 +334,8 @@ sub copyin
|
|||||||
rm ($archive, map($_.'.diff',@files));
|
rm ($archive, map($_.'.diff',@files));
|
||||||
close I;
|
close I;
|
||||||
|
|
||||||
$cmd1=myin($src);
|
my $cmd1=myin($src);
|
||||||
$cmd2=myout($archive,1);
|
my $cmd2=myout($archive,1);
|
||||||
system("$cmd1 | $cmd2")==0
|
system("$cmd1 | $cmd2")==0
|
||||||
or error "Can't write to archive";
|
or error "Can't write to archive";
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user