diff -Naur mc.old/vfs/extfs/u7z mc/vfs/extfs/u7z
old
|
new
|
|
2 | 2 | # |
3 | 3 | # extfs support for p7zip |
4 | 4 | # Written by Pavel Roskin <proski@gnu.org> |
| 5 | # Some Bugfixes/workarounds by Sergiy Niskorodov <sgh@mail.zp.ua> |
5 | 6 | # Licensed under GNU GPL version 2 or later version. |
6 | 7 | |
7 | | P7ZIP=7za |
| 8 | P7ZIP=`which 7z` || \ |
| 9 | P7ZIP=`which 7za` |
8 | 10 | |
9 | 11 | mcu7zip_list () |
10 | 12 | { |
… |
… |
|
19 | 21 | |
20 | 22 | mcu7zip_copyout () |
21 | 23 | { |
22 | | $P7ZIP e -so "$1" "$2" > "$3" 2>/dev/null |
| 24 | #first we check if we have old p7zip archive with prefix ./ in filename |
| 25 | $P7ZIP l "$1" "$2" | grep -q "0 files" && \ |
| 26 | EXFNAME=*./"$2" || EXFNAME="$2" |
| 27 | $P7ZIP e -so "$1" "$EXFNAME" > "$3" 2>/dev/null |
23 | 28 | } |
24 | 29 | |
25 | 30 | mcu7zip_copyin () |
… |
… |
|
31 | 36 | { |
32 | 37 | dir=`mktemp -d "${MC_TMPDIR:-/tmp}/mctmpdir-u7z.XXXXXX"` || exit 1 |
33 | 38 | mkdir -p "$dir"/"$2" |
34 | | $P7ZIP a -w"$dir" "$1" "$2" >/dev/null 2>&1 |
| 39 | $P7ZIP a -w"$dir" "$1" "$dir"/"$2" >/dev/null 2>&1 |
35 | 40 | rm -rf "$dir" |
36 | 41 | } |
37 | 42 | |
38 | 43 | mcu7zip_rm () |
39 | 44 | { |
40 | 45 | # NOTE: Version 4.20 fails to delete files in subdirectories |
41 | | $P7ZIP d "$1" "$2" >/dev/null 2>&1 |
| 46 | #first we check if we have old p7zip archive with prefix ./ in filename |
| 47 | $P7ZIP l "$1" "$2" | grep -q "0 files" && \ |
| 48 | EXFNAME=*./"$2" || EXFNAME="$2" |
| 49 | $P7ZIP d "$1" "$EXFNAME" 2>&1 | grep -q E_NOTIMPL &> /dev/null && \ |
| 50 | { echo -e "Function not implemented...\n7z cannot delete from solid archive." >&2 ; exit 1 ; } |
42 | 51 | } |
43 | 52 | |
44 | 53 | mcu7zip_rmdir () |
45 | 54 | { |
46 | | $P7ZIP d "$1" "$2"/ >/dev/null 2>&1 |
| 55 | #first we check if we have old p7zip archive with prefix ./ in filename |
| 56 | $P7ZIP l "$1" "$2" | grep -q "0 files" && \ |
| 57 | EXFNAME=*./"$2" || EXFNAME="$2" |
| 58 | $P7ZIP d "$1" "$EXFNAME"/ 2>&1 | grep -q E_NOTIMPL &> /dev/null && \ |
| 59 | { echo -e "Function not implemented...\n7z cannot delete from solid archive." >&2 ; exit 1 ; } |
47 | 60 | } |
48 | 61 | |
49 | 62 | # override any locale for dates |