Roll in changes from "christian.gennerat" <christian.gennerat@vz.cit.alcatel.fr>
Этот коммит содержится в:
родитель
49061a6fc1
Коммит
27a09e8635
@ -1,3 +1,9 @@
|
|||||||
|
1999-04-21 Pavel Machek <pavel@artax.karlin.mff.cuni.cz>
|
||||||
|
|
||||||
|
* urar.in, uzip.in: rolled in patches from "christian.gennerat"
|
||||||
|
<christian.gennerat@vz.cit.alcatel.fr> for better handling of
|
||||||
|
spaces and copyin-feature-addon.
|
||||||
|
|
||||||
1999-04-18 Miguel de Icaza <miguel@nuclecu.unam.mx>
|
1999-04-18 Miguel de Icaza <miguel@nuclecu.unam.mx>
|
||||||
|
|
||||||
* extfs.c (get_path_from_entry): Fix a crash here.
|
* extfs.c (get_path_from_entry): Fix a crash here.
|
||||||
|
@ -2,9 +2,12 @@
|
|||||||
#
|
#
|
||||||
# Written by andrey joukov
|
# Written by andrey joukov
|
||||||
# (C) 1996 2:5020/337.13@fidonet.org
|
# (C) 1996 2:5020/337.13@fidonet.org
|
||||||
# beta version 1.0
|
# Updated by christian.gennerat@alcatel.fr 1999
|
||||||
|
# beta version 2.0
|
||||||
#
|
#
|
||||||
UNRAR=rar
|
DRAR=/usr/bin
|
||||||
|
RAR=$DRAR/rar
|
||||||
|
UNRAR=$DRAR/unrar # Prefer unrar (freeware)
|
||||||
#
|
#
|
||||||
# NOTE: rar ver 2.0 by Eugene Roshal
|
# NOTE: rar ver 2.0 by Eugene Roshal
|
||||||
# ftp.elf.stuba.sk/pub/pc/pack
|
# ftp.elf.stuba.sk/pub/pc/pack
|
||||||
@ -12,12 +15,12 @@ UNRAR=rar
|
|||||||
|
|
||||||
mcrarfs_list ()
|
mcrarfs_list ()
|
||||||
{
|
{
|
||||||
$UNRAR v -c- $1 | @AWK@ -v uid=${UID-0} '
|
$UNRAR v -c- "$1" | @AWK@ -v uid=${UID-0} '
|
||||||
BEGIN { flag=0; date="JanFebMarAprMayJunJulAugSepOctNovDec" }
|
BEGIN { flag=0; date="JanFebMarAprMayJunJulAugSepOctNovDec" }
|
||||||
/^-------/ { flag++; if (flag > 1) exit 0; next }
|
/^-------/ { flag++; if (flag > 1) exit 0; next }
|
||||||
{
|
{
|
||||||
if (flag == 0) next
|
if (flag == 0) next
|
||||||
if (NF == 1) str = $1
|
if ( !/ [0-9][0-9]:[0-9][0-9] /) str = $0 # there is no time spec in this line
|
||||||
else {
|
else {
|
||||||
if (str ~ /^\^/)
|
if (str ~ /^\^/)
|
||||||
str=substr(str, 2)
|
str=substr(str, 2)
|
||||||
@ -36,14 +39,37 @@ else {
|
|||||||
}' 2>/dev/null
|
}' 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mcrarfs_copyin ()
|
||||||
|
{
|
||||||
|
# copyin by christian.gennerat@alcatel.fr
|
||||||
|
# preserve pwd. It is clean, but is it necessary?
|
||||||
|
pwd=`pwd`
|
||||||
|
# Create a directory and copy in it the tmp file with the good name
|
||||||
|
mkdir $3.dir
|
||||||
|
cd $3.dir
|
||||||
|
di="${2%/*}"
|
||||||
|
# if file is to be written upper in the archive tree, make fake dir
|
||||||
|
if test "$di" != "${2##*/}" ; then
|
||||||
|
mkdir -p "$di"
|
||||||
|
fi
|
||||||
|
# (cp -p) to preserve date, but $2 is dated now!
|
||||||
|
cp -p $3 "$3.dir/$2"
|
||||||
|
$RAR a "$1" "$2" >/dev/null
|
||||||
|
cd $pwd
|
||||||
|
rm -rf $3.dir
|
||||||
|
}
|
||||||
|
|
||||||
mcrarfs_copyout ()
|
mcrarfs_copyout ()
|
||||||
{
|
{
|
||||||
$UNRAR p -c- -inul $1 $2 > $3 2>/dev/null
|
$UNRAR p -c- -inul "$1" "$2" > $3 2>/dev/null
|
||||||
}
|
}
|
||||||
umask 077
|
umask 077
|
||||||
|
|
||||||
|
# uncomment this line for debugging
|
||||||
|
#echo "`date +%T` ${0##*/} $1 $2 to=$3 tmp=$4" >>/tmp/${0##*/}.log
|
||||||
case "$1" in
|
case "$1" in
|
||||||
list) mcrarfs_list $2; exit 0;;
|
list) mcrarfs_list "$2"; exit 0;;
|
||||||
copyout) mcrarfs_copyout $2 $3 $4; exit 0;;
|
copyin) mcrarfs_copyin "$2" "$3" $4; exit 0;;
|
||||||
|
copyout) mcrarfs_copyout "$2" "$3" $4; exit 0;;
|
||||||
esac
|
esac
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
#
|
#
|
||||||
# Written by Jakub Jelinek 1995
|
# Written by Jakub Jelinek 1995
|
||||||
|
# Updated by Christian Gennerat 1999
|
||||||
#
|
#
|
||||||
# (C) 1995 The Free Software Foundation.
|
# (C) 1995,1999 The Free Software Foundation.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
XZIP=zip
|
|
||||||
XUNZIP=unzip
|
DZIP=/usr/bin
|
||||||
XZIPINFO="unzip -Z"
|
XZIP="$DZIP/zip -g"
|
||||||
|
XUNZIP="$DZIP/unzip"
|
||||||
|
XZIPINFO="$DZIP/unzip -Z"
|
||||||
#
|
#
|
||||||
#If you don't have zipinfo, set ZIPINFO=
|
#If you don't have zipinfo, set ZIPINFO=
|
||||||
#
|
#
|
||||||
@ -17,28 +20,30 @@ mczipfs_list ()
|
|||||||
DOZIPINFO=no
|
DOZIPINFO=no
|
||||||
if test -n "$XZIPINFO"; then
|
if test -n "$XZIPINFO"; then
|
||||||
DOZIPINFO=
|
DOZIPINFO=
|
||||||
$XZIPINFO -l $1 | @AWK@ -v uid=${UID-0} -v zipfile=$1 -v xunzip=${XUNZIP-unzip} '
|
$XZIPINFO -l "$1" | @AWK@ -v uid=${UID-0} -v zipfile=$1 -v xunzip=${XUNZIP-unzip} '
|
||||||
/^Archive/ { next }
|
/^Archive/ { next }
|
||||||
/^[0-9]*\ file/ { next }
|
/^[0-9]*\ file/ { next }
|
||||||
/unx/ {
|
/unx/ {
|
||||||
|
split($0,a,":")
|
||||||
|
nam = substr(a[2],4)
|
||||||
if ($1 ~ /^l/ ) {
|
if ($1 ~ /^l/ ) {
|
||||||
arrow=" -> "
|
arrow=" -> "
|
||||||
linkname=""
|
linkname=""
|
||||||
cmd=xunzip " -p " zipfile " " $10
|
cmd=xunzip " -p " zipfile " " nam
|
||||||
cmd | getline linkname
|
cmd | getline linkname
|
||||||
} else {
|
} else {
|
||||||
arrow=""
|
arrow=""
|
||||||
linkname=""
|
linkname=""
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($10 ~ /^\^/)
|
if (nam ~ /^\^/)
|
||||||
$10=substr($10, 2)
|
nam=substr(nam, 2)
|
||||||
split($8, a, "-")
|
split($8, a, "-")
|
||||||
if (a[3] < 50)
|
if (a[3] < 50)
|
||||||
a[3] = 2000 + a[3]
|
a[3] = 2000 + a[3]
|
||||||
else
|
else
|
||||||
a[3] = 1900 + a[3]
|
a[3] = 1900 + a[3]
|
||||||
printf "%s 1 %-8d %-8d %8d %3s %2d %4d %s %s%s%s\n", $1, uid, 0, $4, a[2], a[1], a[3], $9, $10, arrow, linkname
|
printf "%s 1 %-8d %-8d %8d %3s %2d %4d %s %s%s%s\n", $1, uid, 0, $4, a[2], a[1], a[3], $9, nam, arrow, linkname
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@ -49,7 +54,7 @@ exit 214
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if test -n "$DOZIPINFO"; then
|
if test -n "$DOZIPINFO"; then
|
||||||
$XUNZIP -v $1 | @AWK@ -v uid=${UID-0} '
|
$XUNZIP -v "$1" | @AWK@ -v uid=${UID-0} '
|
||||||
BEGIN { hyphens=0 }
|
BEGIN { hyphens=0 }
|
||||||
/^Archive/ { next }
|
/^Archive/ { next }
|
||||||
/^\ Length/ { next }
|
/^\ Length/ { next }
|
||||||
@ -66,15 +71,36 @@ else
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
mczipfs_copyout ()
|
mczipfs_copyin ()
|
||||||
{
|
{
|
||||||
$XUNZIP -p $1 $2 > $3 2>/dev/null
|
# preserve pwd. It is clean, but is it necessary?
|
||||||
|
pwd=`pwd`
|
||||||
|
# Create a directory and copy in it the tmp file with the good name
|
||||||
|
mkdir $3.dir
|
||||||
|
cd $3.dir
|
||||||
|
di="${2%/*}"
|
||||||
|
# if file is to be written upper in the archive tree, make fake dir
|
||||||
|
if test "$di" != "${2##*/}" ; then
|
||||||
|
mkdir -p "$di"
|
||||||
|
fi
|
||||||
|
# (cp -p) to preserve date, but $2 is dated now!
|
||||||
|
cp -p $3 "$3.dir/$2"
|
||||||
|
$XZIP "$1" "$2" >/dev/null
|
||||||
|
cd $pwd
|
||||||
|
rm -rf $3.dir
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mczipfs_copyout ()
|
||||||
|
{
|
||||||
|
$XUNZIP -p "$1" "$2" > $3 2>/dev/null
|
||||||
|
}
|
||||||
umask 077
|
umask 077
|
||||||
|
|
||||||
|
#echo "`date +%T` ${0##*/} $1 $2 to=$3 tmp=$4" >>/tmp/${0##*/}.log
|
||||||
case "$1" in
|
case "$1" in
|
||||||
list) mczipfs_list $2; exit 0;;
|
list) mczipfs_list "$2"; exit 0;;
|
||||||
copyout) mczipfs_copyout $2 $3 $4; exit 0;;
|
# delete) mczipfs_delete "$2" "$3" ; exit 0;;
|
||||||
|
copyin) mczipfs_copyin "$2" "$3" $4 ; exit 0;;
|
||||||
|
copyout) mczipfs_copyout "$2" "$3" $4 ; exit 0;;
|
||||||
esac
|
esac
|
||||||
exit 1
|
exit 1
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user