[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