Skip to content

Commit

Permalink
Ticket #4559: extfs: u7z: bug with nested dirs in mkdir action.
Browse files Browse the repository at this point in the history
The -w option sets the working directory for the temporary archive 7-zip
builds when modifying an existing one. The option cant be used to set
the base path inside an archive when adding something into it.

When adding something to a 7z archive by its absolute path, 7zip only
uses the last part of the path by default. E.g. `7z a 1.7z
/tmp/a/b/date.txt` would add date.txt to the root dir inside the
archive. If we wanted the file to be under `a/b/` inside the archive as
well, it should be `7z a 1.7z /tmp/a`.

Closes #202.

Signed-off-by: Andrew Borodin <[email protected]>
  • Loading branch information
slowpeek authored and aborodin committed Jul 28, 2024
1 parent 7e2cf63 commit db77fd5
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/vfs/extfs/helpers/u7z
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ mcu7zip_mkdir ()
{
dir=`mktemp -d "${MC_TMPDIR:-/tmp}/mctmpdir-u7z.XXXXXX"` || exit 1
mkdir -p "$dir"/"$2"
$P7ZIP a -w"$dir" "$1" "$dir"/"$2" >/dev/null 2>&1
$P7ZIP a "$1" "$dir/${2%%/*}" >/dev/null 2>&1
rm -rf "$dir"
}

Expand Down

0 comments on commit db77fd5

Please sign in to comment.