[BUG] urar extfs in mc-4.6.0-pre2

Andrew V. Samoilov sav at bcs.zp.ua
Thu Jan 2 12:48:35 UTC 2003


Tomas Styblo wrote:
> * Dmitry Semyonov <Dmitry.Semyonov at oktet.ru> [Mon, 30 Dec 2002]:
> 
>>I have only unrar installed. This shall be enough to brouse rar
>>archives and to extract files from them.  I'll try to upgrade to
>>unrar 3.x (after Jan,9), and see how it works.  But even if it
>>will work, do you think it is OK to use such unrar detection
>>code that can't properly detect old versions of unrar inside
>>urar extfs script?
> 
> 
> The problem is not that mc can't find the unrar executable.
> 
> There is a bug in the new urar script.
> 
> The pre1 version of the script goes like:
> 
> DRAR=/usr/bin
> RAR=$DRAR/rar
> UNRAR=$DRAR/unrar # Prefer unrar (freeware)
> 
> 
> The pre2 version goes like:
> 
> RAR=rar
> UNRAR=unrar # Prefer unrar (freeware)
> if ! unrar >/dev/null 2>&1; then
>     UNRAR=$RAR
> fi
> 
> 
> Therefore it fails if the rar executable is not present in the
> system, because the "if ! unrar" test always fails. It always
> fails, because unrar exits with code "7" if it is called with no
> arguments.
> 
> Both the rar and unrar executables are installed by default if you
> use the above mentioned version 3 of the rar package. It's
> probably the easiest solution for you now. But the urar script of
> course should be fixed.
> 
> The bugfix patch is attached to this message.
> 
> 
> 
> ------------------------------------------------------------------------
> 
> diff -purN mc-4.6.0-pre2/vfs/extfs/urar.in mc-4.6.0-pre2.new/vfs/extfs/urar.in
> --- mc-4.6.0-pre2/vfs/extfs/urar.in	Thu Dec 12 15:08:25 2002
> +++ mc-4.6.0-pre2.new/vfs/extfs/urar.in	Mon Dec 30 00:57:01 2002
> @@ -6,17 +6,22 @@
>  #            Andrew V. Samoilov <sav at bcs.zp.ua> 2000
>  # beta version 2.0
>  #
> -RAR=rar
> -UNRAR=unrar # Prefer unrar (freeware)
> +RAR=`which rar 2>/dev/null`
> +UNRAR=`which unrar 2>/dev/null` # Prefer unrar (freeware)

Unfortunatelly which is not portable.  I don't know is it documented in 
unrar to return 7 if it was called without arguments, or this is some 
random value dependent on compiler, architecture and temperature.

-- 
Regards,
Andrew V. Samoilov






More information about the mc-devel mailing list