Под руку иногда попадаются архивы формата ARJ с кириллическими именами файлов внутри, которые mc отображает кракозябрами и поэтому обработать не может.
Данный патч добавляет возможность перекодировки таких имён из кодировки, которую можно указать в переменной окружения MC_UARJ_CP (если не определена, кодировка подразумевается cp866) в локальную.
Может ещё кому пригодится. Просто нет времени заморачиваться с тикетами к разработчикам.
--- uarj.orig 2011-11-01 10:41:10.579654146 +0200
+++ uarj 2011-11-01 11:47:44.193802602 +0200
@@ -10,13 +10,18 @@
# - http://www.sourceforge.net/projects/arj/
# - http://arj.sourceforge.net/
+CP=${MC_UARJ_CP=cp866}
+tocp () { echo "$1" | iconv -t $CP
+}
+fromcp () { iconv -f $CP
+}
ARJ="arj -+ -ja1"
mcarjfs_list ()
{
- $ARJ v "$1" | gawk -v uuid=$(id -ru) '
+ $ARJ v "$1" | fromcp | gawk -v uuid=$(id -ru) '
{
if (($0 ~ /^[0-9]+\) .*/)||($0 ~ /^------------ ---------- ---------- -----/)){
if (filestr ~ /^[0-9]+\) .*/) {
@@ -60,7 +65,7 @@
mcarjfs_copyout ()
{
- $ARJ e -y "$1" "$2" -jw"$3" >/dev/null 2>/dev/null
+ $ARJ e -y "$1" "`tocp "$2"`" -jw"$3" | fromcp >/dev/null 2>/dev/null
}