mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-22 20:36:50 +03:00
Ticket #3933: report iso9660 listing errors.
Variation 1: Steps to reproduce: * create empty .iso file (touch foo.iso) * run 'mc' and press enter on empty .iso Expected result: some error about invalid file format (sililar to what F3 view would yield). Actual result: mc elters a file as if it would be empty valid file. Variation 2: Steps to reproduce: * pick valid .iso file * deinstall all helper tools that handle .sio (isoinfo, xorriso, etc.) * run 'mc' and press enter on empty .iso Expected result: some error about invalid file format (sililar to what F3 view would yield) Actual result: mc enters a file as if it would be empty valid file Variation 2 is especially confusing for users as it does not hint them that they should install a tool to get it working. They just observe silently broken behaviour. Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
parent
3a1f3d7ff7
commit
afdc9719f3
@ -93,6 +93,8 @@ xorriso_rm() {
|
||||
|
||||
# tested to comply with isoinfo 2.0's output
|
||||
test_iso () {
|
||||
which isoinfo 2>/dev/null || (echo "isoinfo not found" >&2; return 1)
|
||||
|
||||
CHARSET=$(locale charmap 2>/dev/null)
|
||||
if test -z "$CHARSET"; then
|
||||
CHARSET=$(locale 2>/dev/null | @GREP@ LC_CTYPE | sed -n -e 's/.*\.\(.*\)"$/\1/p')
|
||||
@ -119,6 +121,8 @@ test_iso () {
|
||||
}
|
||||
|
||||
mcisofs_list () {
|
||||
local lsl r
|
||||
|
||||
# left as a reminder to implement compressed image support =)
|
||||
case "$1" in
|
||||
*.lz) MYCAT="lzip -dc";;
|
||||
@ -133,7 +137,11 @@ mcisofs_list () {
|
||||
*) MYCAT="cat";;
|
||||
esac
|
||||
|
||||
$ISOINFO -l -i "$1" 2>/dev/null | @AWK@ -v SEMICOLON=$SEMICOLON '
|
||||
lsl=$($ISOINFO -l -i "$1" 2>/dev/null)
|
||||
r=$?
|
||||
test $r -gt 0 && return $r
|
||||
|
||||
echo "$lsl" | @AWK@ -v SEMICOLON=$SEMICOLON '
|
||||
BEGIN {
|
||||
dir="";
|
||||
# Pattern to match 8 first fields.
|
||||
@ -183,8 +191,8 @@ shift
|
||||
case "$cmd" in
|
||||
list)
|
||||
xorriso_list "$@" || {
|
||||
test_iso "$@";
|
||||
mcisofs_list "$@";
|
||||
test_iso "$@" || exit 1
|
||||
mcisofs_list "$@" || exit 1
|
||||
}
|
||||
exit 0
|
||||
;;
|
||||
|
Loading…
Reference in New Issue
Block a user