* extfs/ualz.in: New file - support for ALZip archives.
* extfs/Makefile.am: Add ualz. * extfs/extfs.ini: Likewise.
Этот коммит содержится в:
родитель
43eab2720a
Коммит
a24baacdf8
@ -1,3 +1,9 @@
|
|||||||
|
2005-07-20 Pavel Roskin <proski@gnu.org>
|
||||||
|
|
||||||
|
* extfs/ualz.in: New file - support for ALZip archives.
|
||||||
|
* extfs/Makefile.am: Add ualz.
|
||||||
|
* extfs/extfs.ini: Likewise.
|
||||||
|
|
||||||
2005-07-06 Pavel Tsekov <ptsekov@gmx.net>
|
2005-07-06 Pavel Tsekov <ptsekov@gmx.net>
|
||||||
|
|
||||||
* tar.c (tar_read_header): Properly handle non \0 terminated tar
|
* tar.c (tar_read_header): Properly handle non \0 terminated tar
|
||||||
|
@ -13,6 +13,7 @@ lslR
|
|||||||
mailfs
|
mailfs
|
||||||
patchfs
|
patchfs
|
||||||
rpms
|
rpms
|
||||||
|
ualz
|
||||||
uar
|
uar
|
||||||
uarj
|
uarj
|
||||||
uha
|
uha
|
||||||
|
@ -21,6 +21,7 @@ EXTFS_IN = \
|
|||||||
mailfs.in \
|
mailfs.in \
|
||||||
patchfs.in \
|
patchfs.in \
|
||||||
rpms.in \
|
rpms.in \
|
||||||
|
ualz.in \
|
||||||
uar.in \
|
uar.in \
|
||||||
uarj.in \
|
uarj.in \
|
||||||
uha.in \
|
uha.in \
|
||||||
@ -44,6 +45,7 @@ EXTFS_OUT = \
|
|||||||
mailfs \
|
mailfs \
|
||||||
patchfs \
|
patchfs \
|
||||||
rpms \
|
rpms \
|
||||||
|
ualz \
|
||||||
uar \
|
uar \
|
||||||
uarj \
|
uarj \
|
||||||
uha \
|
uha \
|
||||||
|
@ -8,6 +8,7 @@ ulha
|
|||||||
urar
|
urar
|
||||||
uha
|
uha
|
||||||
u7z
|
u7z
|
||||||
|
ualz
|
||||||
# For arj usage you need a special patch to unarj (see unarj.diff)
|
# For arj usage you need a special patch to unarj (see unarj.diff)
|
||||||
uarj
|
uarj
|
||||||
|
|
||||||
|
61
vfs/extfs/ualz.in
Обычный файл
61
vfs/extfs/ualz.in
Обычный файл
@ -0,0 +1,61 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Written by Pavel Roskin <proski@gnu.org>
|
||||||
|
# (C) 2005 The Free Software Foundation.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
UNALZ=unalz
|
||||||
|
|
||||||
|
mcualz_list ()
|
||||||
|
{
|
||||||
|
$UNALZ -l "$1" | @AWK@ -v uid=`id -nu` -v gid=`id -ng` '
|
||||||
|
{
|
||||||
|
if ($0 ~ /^[0-9][0-9][0-9][0-9]:[0-9][0-9]:[0-9][0-9] /)
|
||||||
|
{
|
||||||
|
split($1, date, ":")
|
||||||
|
time=$2
|
||||||
|
perm=$3
|
||||||
|
size=$4
|
||||||
|
sub(/^[^ ]* *[^ ]* *[^ ]* *[^ ]* *[^ ]* */, "")
|
||||||
|
file=$0
|
||||||
|
gsub(/\\/, "/", file)
|
||||||
|
if (perm ~ /.D../)
|
||||||
|
perm = "drwxr-xr-x"
|
||||||
|
else
|
||||||
|
perm = "-rw-r--r--"
|
||||||
|
printf "%s 1 %s %s %d %02d-%02d-%02d %s %s\n", perm, uid, gid, size, date[2], date[3], date[1], time, file
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'
|
||||||
|
}
|
||||||
|
|
||||||
|
mcualz_copyout ()
|
||||||
|
{
|
||||||
|
TMPDIR=`mktemp -d ${MC_TMPDIR:-/tmp}/mctmpdir-ualz.XXXXXX` || exit 1
|
||||||
|
|
||||||
|
# This is a workaround for a bug in unalz 0.50 - it crashes if the
|
||||||
|
# output directory is an absolute path.
|
||||||
|
dir=`dirname "$TMPDIR/$2"`
|
||||||
|
mkdir -p "$dir"
|
||||||
|
|
||||||
|
$UNALZ -d "$TMPDIR" "$1" "$2" >/dev/null
|
||||||
|
cat "$TMPDIR/$2" > "$3"
|
||||||
|
rm -rf "$TMPDIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
# override any locale for dates
|
||||||
|
LC_ALL=C
|
||||||
|
export LC_ALL
|
||||||
|
umask 077
|
||||||
|
|
||||||
|
cmd="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
case "$cmd" in
|
||||||
|
list) mcualz_list "$@" ;;
|
||||||
|
copyout) mcualz_copyout "$@" ;;
|
||||||
|
*) exit 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
Загрузка…
x
Ссылка в новой задаче
Block a user