[PATCH] extfs scripts fixes
Adam Byrtek 'alpha'
alpha at student.uci.agh.edu.pl
Sun Dec 8 18:06:47 UTC 2002
Hi. I've checked any tried to fix all current mc extfs scrips. Results
can be seen in the patch attached.
Every change is explained in the updated extfs-status document (also
attached). There are some clues for repository admin there, labeled
'CVS:'
BTW it would be great if someone with an RPM system could test 'rpms'
and 'trpm' scripts and send any remarks/patches.
Regards
alpha
--
_.|._ |_ _. : Adam Byrtek, alpha@(irc.pl|debian.org)
(_|||_)| |(_| : gg 1802819, pgp 0xB25952C0
| : jid alpha.jabberpl.org
-------------- next part --------------
MULTIPLE FILES:
fixed error handling: removed 2>/dev/null to pass errors to mc
without this if something wrong occurs (for example uzip or awk not exists),
mc shows only empty archive, there is no error message
================
a (mtools)
---------
DONE: removed error redirection to /dev/null
now you get a message when sth is wrong
works ok
apt
---
DONE: 'millenium bug' parse error fixed
added non-interactive remove using dpkg
tested - works ok
audio
---
DONE: quited mode turned on
track number padded with zeroes (track-1 = track-01)
(so the tracks are sorted)
tested, works ok
bpp
---
could not test
deb
---
DONE: added note about hard links
install message changed a little
works ok
CVS: somebody should 'mv deb.in deb' - because deb.in
doesn't use any autoconf variables
deba, debd
----------
DONE: 'millenium bug' fixed
added note about apt extfs
deba - redirected sterr of command that could fail
debd - LANG=C changed into LC_ALL=C to fix dates
messages changed a little
works ok
dpkg
---
DONE: perl 'millenium bug' fixed
ftplist
-------
DONE: date (locale) problem fixed
works ok
hp48
---
could not test
lslR
---
DONE: added export LC_ALL="C"
mailfs
---
list: wrong 'file size'
copyout: ok, but with f3 some mails are being trimmed (strange):
>From flaverey3w at mail-online.dk Tue Nov 19 09:34:25 2002
Return-Path: <flaverey3w at mail-online.dk>
Delivered-
patchfs
---
works with SIMPLE unified diff right now.
rpm
---
ok
rpms
---
not checked - need somebody with rpm system
trpm
---
not checked - need somebody with rpm system
uar
---
ok
uarj
---
not tested
CVS: mv arj arj.in (uses awk)
ucpio
---
ok
uha
---
not tested
ulha
---
ok
uzip
---
ok
urar
---
DONE: -p arg to 'cp' removed (it breaks permisions)
works ok
uzoo
----
DONE: 'dirty hack' cleanup (create file in /tmp, not ~/.mc)
works ok
=========
TODO LATER:
- audio: add cddb support
- patchfs: rewrite
- fix mailfs
TO TEST:
- rpms
- trpm
- uarj
-------------- next part --------------
diff -u extfs/a extfs.alpha/a
--- extfs/a 2002-11-08 19:06:15.000000000 +0100
+++ extfs.alpha/a 2002-12-08 14:04:24.000000000 +0100
@@ -29,29 +29,29 @@
/mkdir/ && do {
shift; shift;
exit 1 if scalar(@ARGV) != 1;
- system("$mmd $disk:/$ARGV[0] >/dev/null 2>&1");
+ system("$mmd $disk:/$ARGV[0] >/dev/null");
exit 0; };
/rmdir/ && do {
shift; shift;
exit 1 if scalar(@ARGV) != 1;
- system("$mrd $disk:/$ARGV[0] >/dev/null 2>&1");
+ system("$mrd $disk:/$ARGV[0] >/dev/null");
exit 0; };
/rm/ && do {
shift; shift;
exit 1 if scalar(@ARGV) != 1;
- system("$mdel $disk:/$ARGV[0] >/dev/null 2>&1");
+ system("$mdel $disk:/$ARGV[0] >/dev/null");
exit 0; };
/copyout/ && do {
shift; shift;
exit 1 if scalar(@ARGV) != 2;
( $src, $dest ) = @ARGV;
- system("$mcopy $disk:/$src $dest >/dev/null 2>&1");
+ system("$mcopy $disk:/$src $dest >/dev/null");
exit 0; };
/copyin/ && do {
shift; shift;
exit 1 if scalar(@ARGV) != 2;
( $dest, $src ) = @ARGV;
- system("$mcopy $src $disk:/$dest >/dev/null 2>&1");
+ system("$mcopy $src $disk:/$dest >/dev/null");
exit 0; };
/.*/ && do { # an unfamiliar command
exit 1; };
diff -u extfs/apt extfs.alpha/apt
--- extfs/apt 2000-01-03 00:48:55.000000000 +0100
+++ extfs.alpha/apt 2002-12-08 18:07:39.000000000 +0100
@@ -11,7 +11,7 @@
my ($dt) = @_;
my (@time);
@time = localtime($dt);
- $bt = sprintf "%02d-%02d-%02d %02d:%02d", $time[4], $time[3], $time[5], $time[2], $time[1];
+ $bt = sprintf "%02d-%02d-%02d %02d:%02d", $time[4], $time[3], $time[5]%100, $time[2], $time[1];
return $bt;
}
@@ -296,13 +296,13 @@
system("rm -f /etc/apt/apt.conf");
} elsif( $archive eq 'sources.list' ) {
system("rm -f /etc/apt/sources.list");
-# This interact with user - it can't be execute :-(
-# } elsif( $archive =~ /\.deb[ad]?$/ ) {
-# my $name = $archive;
-# $name =~ s%.*/%%g;
-# $name =~ s%_.*%%g;
-# system("apt-get remove $name");
-# die("extfs: $archive: Operation not permitted\n") if $? != 0;
+ } elsif( $archive =~ /\.debd?$/ ) {
+ # uncommented and changed to use dpkg - alpha
+ my $name = $archive;
+ $name =~ s%.*/%%g;
+ $name =~ s%_.*%%g;
+ system("dpkg --remove $name >/dev/null");
+ die("extfs: $archive: Operation not permitted\n") if $? != 0;
} else {
die "extfs: $archive: Operation not permitted\n";
}
@@ -312,11 +312,10 @@
$pressupdate=<<EOInstall;
WARNING
- Don\'t use this method if you are not willing to retrieve new lists
- of packages.
+ Don\'t use this method if you don't want to retrieve new lists of packages.
+ ==========================================================================
This is not a real file. It is a way to retrieve new lists of packages.
-
To update this information go back to the panel and press Enter on this file.
EOInstall
@@ -324,10 +323,10 @@
$pressupgrade=<<EOInstall;
WARNING
- Don\'t use this method if you are not willing to perform an upgrade.
+ Don\'t use this method if you are not willing to perform an upgrade.
+ ===================================================================
This is not a real file. It is a way to perform an upgrade.
-
To upgrade this information go back to the panel and press Enter on this file.
EOInstall
diff -u extfs/audio extfs.alpha/audio
--- extfs/audio 2000-04-10 14:29:30.000000000 +0200
+++ extfs.alpha/audio 2002-12-08 17:24:48.000000000 +0100
@@ -4,23 +4,23 @@
#
# (C) 2000 The Free Software Foundation.
#
-# FIXME: it would be much nicer to use names like track-01.wav, like cdfs does.
-#
audiofs_list ()
{
cdparanoia -Q -d $1 2>&1 | grep '^[ 0-9][ 0-9][ 0-9]\.' | while true
do
read A B C || break
+ A=`echo $A | sed 's/\.//'`
SIZE=$[44+$B*2352]
- echo "-r--r--r-- 4 0 0 $SIZE Jan 1 0:00 track${A}wav"
+ if (( $A < 10 )); then A="0$A"; fi
+ echo "-r--r--r-- 4 0 0 $SIZE Jan 1 0:00 track-${A}.wav"
done
}
audiofs_copyout ()
{
-TRACK=`echo $2 | sed 's/track//' | sed 's/\.wav//'`
-cdparanoia -d $1 -v $TRACK $3
+ TRACK=`echo $2 | sed 's/track-0*//' | sed 's/\.wav//'`
+ cdparanoia -q -d $1 $TRACK $3 >/dev/null
}
if [ ! -b $2 ]
diff -u extfs/deb extfs.alpha/deb
--- extfs/deb 2002-12-08 13:56:56.000000000 +0100
+++ extfs.alpha/deb 2002-12-08 17:28:58.000000000 +0100
@@ -23,6 +23,7 @@
{
#
# CAVEAT: Hard links are listed as if they were symlinks
+# [hard links are prohibited in debs by Debian Policy - alpha]
# Empty directories do not appear at all
#
local($archivename)=@_;
@@ -170,10 +171,10 @@
$pressinstall=<<EOInstall;
WARNING
- Don\'t use this method if you are not willing to reinstall everything...
+ Don\'t use this method if you are not willing to reinstall everything...
+ =======================================================================
This is not a real file. It is a way to install the package you are browsing.
-
To install this package go back to the panel and press Enter on this file.
In Debian systems, a package is automatically upgraded when you install a new
diff -u extfs/deba extfs.alpha/deba
--- extfs/deba 2000-01-03 00:48:55.000000000 +0100
+++ extfs.alpha/deba 2002-12-08 18:02:02.000000000 +0100
@@ -4,14 +4,14 @@
# This software is under GNU license
# last modification: 1999-12-08
#
-# deba
+# deba (part of apt extfs)
sub bt
{
my ($dt) = @_;
my (@time);
@time = localtime($dt);
- $bt = sprintf "%02d-%02d-%02d %02d:%02d", $time[4], $time[3], $time[5], $time[2], $time[1];
+ $bt = sprintf "%02d-%02d-%02d %02d:%02d", $time[4], $time[3], $time[5]%100, $time[2], $time[1];
return $bt;
}
@@ -108,7 +108,7 @@
print "-r--r--r-- 1 root root $info_size $date INFO\n";
- chop($debd = `dpkg -s $archive | grep -i ^Version | sed 's/^version: //i'`);
+ chop($debd = `dpkg -s $archive 2> /dev/null | grep -i ^Version | sed 's/^version: //i'`);
chop($deba = `apt-cache show $archive | grep -i ^Version | sed 's/^version: //i'`);
if( ! $debd ) {
print "-r-xr--r-- 1 root root $install_size $date INSTALL\n";
@@ -154,22 +154,22 @@
$pressinstall=<<EOInstall;
- WARNING
- Don\'t use this method if you are not willing to install this package...
+ WARNING
+ Don\'t use this method if you are not willing to install this package...
+ =======================================================================
This is not a real file. It is a way to install the package you are browsing.
-
To install this package go back to the panel and press Enter on this file.
EOInstall
$pressupgrade=<<EOInstall;
- WARNING
- Don\'t use this method if you are not willing to upgrade this package...
+ WARNING
+ Don\'t use this method if you are not willing to upgrade this package...
+ =======================================================================
This is not a real file. It is a way to upgrade the package you are browsing.
-
To upgrade this package go back to the panel and press Enter on this file.
EOInstall
diff -u extfs/debd extfs.alpha/debd
--- extfs/debd 2000-01-03 00:48:55.000000000 +0100
+++ extfs.alpha/debd 2002-12-08 18:10:36.000000000 +0100
@@ -4,14 +4,14 @@
# This software is under GNU license
# last modification: 1999-12-08
#
-# debd
+# debd (part of apt extfs)
sub bt
{
my ($dt) = @_;
my (@time);
@time = localtime($dt);
- $bt = sprintf "%02d-%02d-%02d %02d:%02d", $time[4], $time[3], $time[5], $time[2], $time[1];
+ $bt = sprintf "%02d-%02d-%02d %02d:%02d", $time[4], $time[3], $time[5]%100, $time[2], $time[1];
return $bt;
}
@@ -140,7 +140,7 @@
- if ( open(PIPEIN, "LANG=C ls -l /var/lib/dpkg/info/$archive.* |") ) {
+ if ( open(PIPEIN, "LC_ALL=C ls -l /var/lib/dpkg/info/$archive.* |") ) {
while(<PIPEIN>) {
chop;
next if /\.list$/;
@@ -270,66 +270,66 @@
$pressremove=<<EOInstall;
- WARNING
- Don\'t use this method if you are not willing to remove this package...
+ WARNING
+ Don\'t use this method if you are not willing to remove this package...
+ ======================================================================
This is not a real file. It is a way to remove the package you are browsing.
-
To remove this package go back to the panel and press Enter on this file.
EOInstall
$presspurge=<<EOInstall;
- WARNING
- Don\'t use this method if you are not willing to purge this package...
+ WARNING
+ Don\'t use this method if you are not willing to purge this package...
+ =====================================================================
This is not a real file. It is a way to purge the package you are browsing.
-
To purge this package go back to the panel and press Enter on this file.
EOInstall
$pressreconfigure=<<EOInstall;
- WARNING
- Don\'t use this method if you are not willing to reconfigure this package...
+ WARNING
+ Don\'t use this method if you are not willing to reconfigure this package...
+ ===========================================================================
This is not a real file. It is a way to reconfigure the package you are browsing.
-
To reconfigure this package go back to the panel and press Enter on this file.
EOInstall
$pressreinstall=<<EOInstall;
- WARNING
+ WARNING
Don\'t use this method if you are not willing to reinstall this package...
+ =========================================================================
This is not a real file. It is a way to reinstall the package you are browsing.
-
To reinstall this package go back to the panel and press Enter on this file.
EOInstall
$pressselect=<<EOInstall;
- WARNING
- Don\'t use this method if you are not willing to select this package...
+ WARNING
+ Don\'t use this method if you are not willing to select this package...
+ ======================================================================
This is not a real file. It is a way to select the package you are browsing.
-
To select this package go back to the panel and press Enter on this file.
EOInstall
$pressunselect=<<EOInstall;
- WARNING
+ WARNING
Don\'t use this method if you are not willing to unselect this package...
+ ========================================================================
This is not a real file. It is a way to unselect the package you are browsing.
-
To unselect this package go back to the panel and press Enter on this file.
EOInstall
diff -u extfs/deb.in extfs.alpha/deb.in
--- extfs/deb.in 2000-01-03 00:50:56.000000000 +0100
+++ extfs.alpha/deb.in 2002-12-08 17:28:55.000000000 +0100
@@ -23,6 +23,7 @@
{
#
# CAVEAT: Hard links are listed as if they were symlinks
+# [hard links are prohibited in debs by Debian Policy - alpha]
# Empty directories do not appear at all
#
local($archivename)=@_;
@@ -170,10 +171,10 @@
$pressinstall=<<EOInstall;
WARNING
- Don\'t use this method if you are not willing to reinstall everything...
+ Don\'t use this method if you are not willing to reinstall everything...
+ =======================================================================
This is not a real file. It is a way to install the package you are browsing.
-
To install this package go back to the panel and press Enter on this file.
In Debian systems, a package is automatically upgraded when you install a new
diff -u extfs/dpkg extfs.alpha/dpkg
--- extfs/dpkg 2000-01-03 00:48:55.000000000 +0100
+++ extfs.alpha/dpkg 2002-12-08 18:13:43.000000000 +0100
@@ -11,7 +11,7 @@
my ($dt) = @_;
my (@time);
@time = localtime($dt);
- $bt = sprintf "%02d-%02d-%02d %02d:%02d", $time[4], $time[3], $time[5], $time[2], $time[1];
+ $bt = sprintf "%02d-%02d-%02d %02d:%02d", $time[4], $time[3], $time[5]%100, $time[2], $time[1];
return $bt;
}
@@ -266,9 +266,9 @@
WARNING
Don\'t use this method if you are not willing to configure all
non configured packages.
+ =============================================================
This is not a real file. It is a way to configure all non configured packages.
-
To configure packages go back to the panel and press Enter on this file.
EOInstall
@@ -278,9 +278,9 @@
WARNING
Don\'t use this method if you are not willing to remove all
unselected packages.
+ ==========================================================
This is not a real file. It is a way to remove all unselected packages.
-
To remove packages go back to the panel and press Enter on this file.
EOInstall
@@ -290,10 +290,10 @@
WARNING
Don\'t use this method if you are not willing to forget about
uninstalled unavailable packages.
+ ============================================================
This is not a real file. It is a way to forget about uninstalled
unavailable packages.
-
To forget this information go back to the panel and press Enter on this file.
EOInstall
@@ -303,10 +303,10 @@
WARNING
Don\'t use this method if you are not willing to erase the existing
information about what packages are available.
+ ==================================================================
This is not a real file. It is a way to erase the existing information
about what packages are available.
-
To clear this information go back to the panel and press Enter on this file.
EOInstall
diff -u extfs/ftplist.in extfs.alpha/ftplist.in
--- extfs/ftplist.in 2002-08-19 00:40:37.000000000 +0200
+++ extfs.alpha/ftplist.in 2002-12-08 18:20:10.000000000 +0100
@@ -47,9 +47,11 @@
}
printf "lrwxrwxrwx 1 %-8d %-8d %8d %s %2d %5s %s -> %s\n", uid, 0, length(a[5]), a[1], a[2], a[3], a[4], a[5]
}
-}' 2>/dev/null
+}'
}
+export LC_ALL="C"
+
case "$1" in
list) mcftplistfs_list $2; exit 0;;
esac
diff -u extfs/lslR.in extfs.alpha/lslR.in
--- extfs/lslR.in 2002-02-12 18:47:27.000000000 +0100
+++ extfs.alpha/lslR.in 2002-12-08 18:21:14.000000000 +0100
@@ -3,6 +3,8 @@
# Based on previous version of lslR
# Modified by Tomas Novak <tnovak at ipex.cz> April 2000
# (to allow spaces in filenames)
+#
+# WARNING: assumes that lslR was generated with C locale!
ZCAT="gunzip -c"
CAT="cat"
@@ -38,9 +40,11 @@
# Cannot assign to $9, or spaces in the filename would be reduced.
attr=substr($0, 1, length($0)-length(name))
printf "%s%s%s\n", attr, dir, name
-}' 2>/dev/null
+}'
}
+export LC_ALL="C"
+
case "$1" in
list) mclslRfs_list "$2"; exit 0;;
esac
diff -u extfs/uar.in extfs.alpha/uar.in
--- extfs/uar.in 2002-12-07 13:59:25.000000000 +0100
+++ extfs.alpha/uar.in 2002-12-08 17:45:49.000000000 +0100
@@ -26,7 +26,7 @@
id[2] = $3;
}
printf("-%9s 1 %8d %8d %8d %s %s %s %s\n", perms, id[1], id[2], $(NF-5), $(NF-4), $(NF-3), date, $(NF));
- }' 2>/dev/null
+ }'
}
mcarfs_copyout ()
diff -u extfs/uarj extfs.alpha/uarj
--- extfs/uarj 1998-12-16 07:16:27.000000000 +0100
+++ extfs.alpha/uarj 2002-12-08 17:43:29.000000000 +0100
@@ -18,7 +18,7 @@
path=$1;
getline;
printf "-rw-r--r-- 1 %-8d %-8d %8d %s-%s %s %s\n", uid, 0, $1, substr($4,4), substr($4,1,2), substr($5,1,5), path
-}' 2>/dev/null
+}'
}
mcarjfs_copyout ()
diff -u extfs/ucpio.in extfs.alpha/ucpio.in
--- extfs/ucpio.in 1999-05-30 21:20:34.000000000 +0200
+++ extfs.alpha/ucpio.in 2002-12-08 17:42:55.000000000 +0100
@@ -51,7 +51,7 @@
# FIXME: Try harder to generate a unique directory if this fails
mkdir -m 0700 $TMPDIR || exit 1
cd $TMPDIR
- uni_cat "$1" | cpio -icumd "$2" 2>/dev/null
+ uni_cat "$1" | cpio -icumd "$2"
mv "$2" "$3"
cd /
rm -rf $TMPDIR
diff -u extfs/uha.in extfs.alpha/uha.in
--- extfs/uha.in 2000-05-09 03:18:31.000000000 +0200
+++ extfs.alpha/uha.in 2002-12-08 17:46:41.000000000 +0100
@@ -8,7 +8,7 @@
mchafs_list ()
{
- eval $HA lf $1 2>/dev/null |@AWK@ -v uid=${UID-0} '
+ eval $HA lf $1 |@AWK@ -v uid=${UID-0} '
{ date="JanFebMarAprMayJunJulAugSepOctNovDec" }
/^===========/ {next}
{
@@ -26,13 +26,13 @@
$1,1,0,0,filesize, substr(date,(a[2]-1)*3+1,3),a[3],a[1],t[1],t[2],\
path,filename
}
-}' 2>/dev/null
+}'
}
mchafs_copyout ()
{
cd /tmp
- eval $HA xy $1 $2 >/dev/null 2>&1
+ eval $HA xy $1 $2 >/dev/null
mv -f $2 $3
}
diff -u extfs/ulha.in extfs.alpha/ulha.in
--- extfs/ulha.in 2001-12-18 23:55:21.000000000 +0100
+++ extfs.alpha/ulha.in 2002-12-08 17:37:45.000000000 +0100
@@ -91,14 +91,14 @@
next;
}
- ' 2> /dev/null
+ '
}
# The 'copyout' command executive to copy displayed files to a destination
mc_lha_fs_copyout()
{
- $LHA_GET $1 $2 > $3 2> /dev/null
+ $LHA_GET $1 $2 > $3
}
# The 'copyin' command executive to add something to the archive
@@ -117,7 +117,7 @@
[ -e ${DIR2} ] || mkdir -p ${DIR2}
ln $3 $2 || exit
- $LHA_PUT $1 $2 2> /dev/null
+ $LHA_PUT $1 $2
rm -r ${ONE2}
}
@@ -128,7 +128,7 @@
trap "rm $TMPCMD; rmdir $TMPDIR; exit 0" 1 2 3 4 15
# FIXME: Try harder to generate a unique directory if this fails
mkdir -m 0700 $TMPDIR || exit 1
- $LHA_GET $1 $2 > $TMPCMD 2> /dev/null
+ $LHA_GET $1 $2 > $TMPCMD
chmod a+x $TMPCMD 2> /dev/null
$TMPCMD 2> /dev/null
rm $TMPCMD
diff -u extfs/urar.in extfs.alpha/urar.in
--- extfs/urar.in 2002-08-26 06:44:20.000000000 +0200
+++ extfs.alpha/urar.in 2002-12-08 17:15:55.000000000 +0100
@@ -41,7 +41,7 @@
$6="-rw-r--r--"
printf "%s 1 %-8d %-8d %8d %3s %2d %4d %s %s\n", $6, uid, 0, $1, substr(date, (a[2]-1)*3+1, 3), a[1], a[3], $5, str
}
-}' 2>/dev/null
+}'
}
mcrarfs_copyin ()
@@ -58,7 +58,8 @@
mkdir -p "$di"
fi
# (cp -p) to preserve date, but $2 is dated now!
- cp -p $3 "$3.dir/$2"
+# [-p breaks permissions, removed - alpha]
+ cp $3 "$3.dir/$2"
$RAR a "$1" "$2" >/dev/null
cd $pwd
rm -rf $3.dir
@@ -66,7 +67,7 @@
mcrarfs_copyout ()
{
- $UNRAR p -c- -inul "$1" "$2" > $3 2>/dev/null
+ $UNRAR p -c- -inul "$1" "$2" > $3
}
mcrarfs_mkdir ()
@@ -80,15 +81,15 @@
mkdir -p "$2"
# rar cannot create an empty directory
touch "$2"/.rarfs
- $RAR a -r "$1" "$2" &>/dev/null
- $RAR d "$1" "$2"/.rarfs &>/dev/null
+ $RAR a -r "$1" "$2" >/dev/null
+ $RAR d "$1" "$2"/.rarfs >/dev/null
cd $pwd
rm -rf $dir
}
mcrarfs_rm ()
{
- $RAR d "$1" "$2" &>/dev/null
+ $RAR d "$1" "$2" >/dev/null
}
umask 077
diff -u extfs/uzip.in extfs.alpha/uzip.in
--- extfs/uzip.in 2002-11-28 23:59:52.000000000 +0100
+++ extfs.alpha/uzip.in 2002-12-08 17:40:40.000000000 +0100
@@ -76,7 +76,7 @@
sub mczipfs_rmdir {
my ($qfile) = map { &zipquotemeta($_) } @_;
&checkargs(1, 'archive directory', @_);
- &safesystem("$cmd_delete $qarchive $qfile/ >/dev/null 2>&1", 12);
+ &safesystem("$cmd_delete $qarchive $qfile/ >/dev/null", 12);
exit;
}
@@ -87,7 +87,7 @@
my ($qafile, $qfsfile) = map { &zipquotemeta($_) } @_;
&checkargs(1, 'archive file', @_);
&checkargs(2, 'local file', @_);
- &safesystem("$cmd_extract $qarchive $qafile > $qfsfile 2>/dev/null", 11);
+ &safesystem("$cmd_extract $qarchive $qafile > $qfsfile", 11);
exit;
}
diff -u extfs/uzoo.in extfs.alpha/uzoo.in
--- extfs/uzoo.in 2000-09-21 22:58:11.000000000 +0200
+++ extfs.alpha/uzoo.in 2002-12-08 17:14:38.000000000 +0100
@@ -31,39 +31,32 @@
printf "drwxr-xr-x 1 %-8d %-8d %8d %s %2d %4d %02d:%02d %s\n", uid, 0, $1, $5, $4, $6, a[1], a[2], $8
else
printf "-rw-r--r-- 1 %-8d %-8d %8d %s %2d %4d %02d:%02d %s\n", uid, 0, $1, $5, $4, $6, a[1], a[2], $8
-}' 2>/dev/null
+}'
exit 0
}
mczoofs_copyout ()
{
- $ZOO xp $1 $2 | tail +6l > $3 2>/dev/null
+ $ZOO xp $1 $2 | tail +6l > $3
exit 0
}
# zoo is stupid and won't be happy when the name has no extension.
-# We have to do a small trick :) [pretty dirty, broken hack -- pavel]
-if echo $2 | grep '\.zoo$' >/dev/null; then
- :
+# We have to do a small trick :)
+
+if echo $2 | grep '\.zoo$' &>/dev/null; then
+ ARCHIVE=$2
else
- SYMLINK=$HOME/.mc/temporary.$2.zoo
- if test -f $SYMLINK; then
- SYMLINK=$HOME/.mc/temporary.$2.
- fi
- if test -f $SYMLINK; then
- echo "Ugh. I did not expect this to happen. Cleanup your ~/.mc."
- sleep 5
- exit 1
- fi
- ln -s $2 $SYMLINK
+ SYMLINK=/tmp/mc-uzoo-tmp.zoo
+ ln -fs $2 $SYMLINK || exit 1;
trap 'rm -f $SYMLINK' 0 1 2 3 5 13 15
- $2=$SYMLINK
+ ARCHIVE=$SYMLINK
fi
umask 077
case "$1" in
- list) mczoofs_list $2; exit $?;;
- copyout) mczoofs_copyout $2 $3 $4; exit $?;;
+ list) mczoofs_list $ARCHIVE; exit $?;;
+ copyout) mczoofs_copyout $ARCHIVE $3 $4; exit $?;;
esac
exit 1
More information about the mc-devel
mailing list