mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-22 20:36:50 +03:00
Roll in changes from "christian.gennerat" <christian.gennerat@vz.cit.alcatel.fr>
This commit is contained in:
parent
49061a6fc1
commit
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>
|
||||
|
||||
* extfs.c (get_path_from_entry): Fix a crash here.
|
||||
|
@ -2,9 +2,12 @@
|
||||
#
|
||||
# Written by andrey joukov
|
||||
# (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
|
||||
# ftp.elf.stuba.sk/pub/pc/pack
|
||||
@ -12,12 +15,12 @@ UNRAR=rar
|
||||
|
||||
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" }
|
||||
/^-------/ { flag++; if (flag > 1) exit 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 {
|
||||
if (str ~ /^\^/)
|
||||
str=substr(str, 2)
|
||||
@ -36,14 +39,37 @@ else {
|
||||
}' 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 ()
|
||||
{
|
||||
$UNRAR p -c- -inul $1 $2 > $3 2>/dev/null
|
||||
$UNRAR p -c- -inul "$1" "$2" > $3 2>/dev/null
|
||||
}
|
||||
umask 077
|
||||
|
||||
# uncomment this line for debugging
|
||||
#echo "`date +%T` ${0##*/} $1 $2 to=$3 tmp=$4" >>/tmp/${0##*/}.log
|
||||
case "$1" in
|
||||
list) mcrarfs_list $2; exit 0;;
|
||||
copyout) mcrarfs_copyout $2 $3 $4; exit 0;;
|
||||
list) mcrarfs_list "$2"; exit 0;;
|
||||
copyin) mcrarfs_copyin "$2" "$3" $4; exit 0;;
|
||||
copyout) mcrarfs_copyout "$2" "$3" $4; exit 0;;
|
||||
esac
|
||||
exit 1
|
||||
|
@ -1,13 +1,16 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# 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
|
||||
XZIPINFO="unzip -Z"
|
||||
|
||||
DZIP=/usr/bin
|
||||
XZIP="$DZIP/zip -g"
|
||||
XUNZIP="$DZIP/unzip"
|
||||
XZIPINFO="$DZIP/unzip -Z"
|
||||
#
|
||||
#If you don't have zipinfo, set ZIPINFO=
|
||||
#
|
||||
@ -17,28 +20,30 @@ mczipfs_list ()
|
||||
DOZIPINFO=no
|
||||
if test -n "$XZIPINFO"; then
|
||||
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 }
|
||||
/^[0-9]*\ file/ { next }
|
||||
/unx/ {
|
||||
split($0,a,":")
|
||||
nam = substr(a[2],4)
|
||||
if ($1 ~ /^l/ ) {
|
||||
arrow=" -> "
|
||||
linkname=""
|
||||
cmd=xunzip " -p " zipfile " " $10
|
||||
cmd=xunzip " -p " zipfile " " nam
|
||||
cmd | getline linkname
|
||||
} else {
|
||||
arrow=""
|
||||
linkname=""
|
||||
}
|
||||
|
||||
if ($10 ~ /^\^/)
|
||||
$10=substr($10, 2)
|
||||
if (nam ~ /^\^/)
|
||||
nam=substr(nam, 2)
|
||||
split($8, a, "-")
|
||||
if (a[3] < 50)
|
||||
a[3] = 2000 + a[3]
|
||||
else
|
||||
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
|
||||
}
|
||||
{
|
||||
@ -49,7 +54,7 @@ exit 214
|
||||
fi
|
||||
fi
|
||||
if test -n "$DOZIPINFO"; then
|
||||
$XUNZIP -v $1 | @AWK@ -v uid=${UID-0} '
|
||||
$XUNZIP -v "$1" | @AWK@ -v uid=${UID-0} '
|
||||
BEGIN { hyphens=0 }
|
||||
/^Archive/ { next }
|
||||
/^\ Length/ { next }
|
||||
@ -66,15 +71,36 @@ else
|
||||
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
|
||||
|
||||
#echo "`date +%T` ${0##*/} $1 $2 to=$3 tmp=$4" >>/tmp/${0##*/}.log
|
||||
case "$1" in
|
||||
list) mczipfs_list $2; exit 0;;
|
||||
copyout) mczipfs_copyout $2 $3 $4; exit 0;;
|
||||
list) mczipfs_list "$2"; 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
|
||||
exit 1
|
||||
|
Loading…
Reference in New Issue
Block a user