this happens because 7z prompts for password in the background, so mc is locked up.
should fix when pressing enter on a .7z passworded file, and when F3-ing one.
diff --git a/src/vfs/extfs/helpers/u7z b/src/vfs/extfs/helpers/u7z
index 04f3f9c81..a56b3d848 100755
a
|
b
|
mcu7zip_list () |
43 | 43 | [ "${date_archive}"x = x ] && date_archive=`ls -lan "$1" 2>/dev/null | awk '{print $6, $7, $8}' 2>/dev/null` |
44 | 44 | [ "${date_archive}"x = x ] && date_archive="01-01-1970 00:00:00" |
45 | 45 | |
46 | | $P7ZIP l "$1" | sed -n " |
| 46 | $P7ZIP l -pDUMMYPASSWORDTOAVOID_MC_LOCKUP_whenpwdneeded "$1" | sed -n " |
47 | 47 | |
48 | 48 | # If the uncompressed size is missing, we copy the compressed size onto it. |
49 | 49 | # |
… |
… |
mcu7zip_list () |
68 | 68 | mcu7zip_copyout () |
69 | 69 | { |
70 | 70 | #first we check if we have old p7zip archive with prefix ./ in filename |
71 | | $P7ZIP l "$1" "$2" | grep -q "0 files, 0 folders" && \ |
| 71 | $P7ZIP l -pDUMMYPASSWORDTOAVOID_MC_LOCKUP_whenpwdneeded "$1" "$2" | grep -q "0 files, 0 folders" && \ |
72 | 72 | EXFNAME='*./'"$2" || EXFNAME="$2" |
73 | | $P7ZIP e -so "$1" "$EXFNAME" > "$3" 2>/dev/null |
| 73 | $P7ZIP e -pDUMMYPASSWORDTOAVOID_MC_LOCKUP_whenpwdneeded -so "$1" "$EXFNAME" > "$3" 2>/dev/null |
74 | 74 | } |
75 | 75 | |
76 | 76 | mcu7zip_copyin () |
… |
… |
mcu7zip_rm () |
90 | 90 | { |
91 | 91 | # NOTE: Version 4.20 fails to delete files in subdirectories |
92 | 92 | #first we check if we have old p7zip archive with prefix ./ in filename |
93 | | $P7ZIP l "$1" "$2" | grep -q "0 files, 0 folders" && \ |
| 93 | $P7ZIP l -pDUMMYPASSWORDTOAVOID_MC_LOCKUP_whenpwdneeded "$1" "$2" | grep -q "0 files, 0 folders" && \ |
94 | 94 | EXFNAME='*./'"$2" || EXFNAME="$2" |
95 | 95 | $P7ZIP d "$1" "$EXFNAME" 2>&1 | grep -q E_NOTIMPL > /dev/null 2>&1 && \ |
96 | 96 | { printf "Function not implemented...\n7z cannot delete from solid archive." >&2 ; exit 1 ; } |
… |
… |
mcu7zip_rm () |
99 | 99 | mcu7zip_rmdir () |
100 | 100 | { |
101 | 101 | #first we check if we have old p7zip archive with prefix ./ in filename |
102 | | $P7ZIP l "$1" "$2" | grep -q "0 files, 0 folders" && \ |
| 102 | $P7ZIP l -pDUMMYPASSWORDTOAVOID_MC_LOCKUP_whenpwdneeded "$1" "$2" | grep -q "0 files, 0 folders" && \ |
103 | 103 | EXFNAME='*./'"$2" || EXFNAME="$2" |
104 | 104 | $P7ZIP d "$1" "$EXFNAME"/ 2>&1 | grep -q E_NOTIMPL > /dev/null 2>&1 && \ |
105 | 105 | { printf "Function not implemented...\n7z cannot delete from solid archive." >&2 ; exit 1 ; } |
diff --git a/misc/ext.d/archive.sh b/misc/ext.d/archive.sh
index e6105fdc1..5f8cbe137 100755
a
|
b
|
do_view_action() { |
113 | 113 | 7z) |
114 | | 7za l "${MC_EXT_FILENAME}" 2>/dev/null || |
115 | | 7z l "${MC_EXT_FILENAME}" |
| 114 | 7za l -pDUMMYPASSWORDTOAVOID_MC_LOCKUP_whenpwdneeded "${MC_EXT_FILENAME}" 2>/dev/null || |
| 115 | 7z l -pDUMMYPASSWORDTOAVOID_MC_LOCKUP_whenpwdneeded "${MC_EXT_FILENAME}" |
116 | 116 | |