Ticket #1963 (closed defect: fixed)

Opened 6 years ago

Last modified 5 years ago

ISO9660 VFS doesn't recognize Joliet extension (losing long filenames)

Reported by: wjaguar Owned by: andrew_b
Priority: major Milestone: 4.7.5
Component: mc-vfs Version: 4.7.0.1
Keywords: Cc:
Blocked By: Blocking:
Branch state: Votes for changeset: committed-master

Description

The version of ISO9660 VFS in mc 4.7.0.1 (mc-4.7.0.1/vfs/extfs/iso9660.in) is trying to use awk for string-matching-based tests, instead of grep which previous versions used, and is doing it wrong. As the result, the two tests always default to true, and isoinfo gets called with Joliet extensions and charset conversion both disabled.

And this abuse of awk was entirely unnecessary, for grep is perfectly able to do matching with alternation. Which is demonstrated by the attached bugfix.

Attachments

isofs.patch (919 bytes) - added by wjaguar 6 years ago.

Change History

comment:1 follow-up: ↓ 2 Changed 6 years ago by slyfox

May I ask you to attach some simple small crafted ISO to check on?

comment:2 in reply to: ↑ 1 Changed 6 years ago by wjaguar

Replying to slyfox:

May I ask you to attach some simple small crafted ISO to check on?

Cannot the simple fact that a shell expression like:
echo "nothing" | gawk "/UCS level 1|NO Joliet/" && echo "TRUE"
does in fact print "TRUE", while an expression:
echo "nothing" | grep "UCS level 1\|NO Joliet" && echo "TRUE"
doesn't, be verified without an ISO? :-)

Anyway, here is one: http://mtpaint.sourceforge.net/temp/showbug.iso

comment:3 Changed 6 years ago by wjaguar

I updated the patch, so that it also gets rid of a spurious error message.

And regarding the original cause of #1485, which resulted in this breakage - the problem was really quite simple: in cdrtools 2.01.01 branch, isoinfo just could not use a nondefault encoding till version 2.01.01a68
So I suspect "UCS level 1" was never a problem by itself, and it just so happened that ISOs with non-latin filenames in original reporter's collection were made that way - "UCS level 3" ISOs produce all-underscores "names" too if the filenames are say cyrillic, and encoding is left at default (which is iso8859-1). Which means that when people upgrade to cdrtools 2.01.01a68 or later, for them the check for "UCS level 1" added in #1485 will act as a bug, not a feature.

Changed 6 years ago by wjaguar

comment:4 Changed 5 years ago by andrew_b

  • Status changed from new to accepted
  • Owner set to andrew_b
  • severity changed from no branch to on review
  • Milestone changed from 4.7 to 4.7.5

Created 1963_iso9660 branch. Parent branch is master.
changeset:3c85b567676b10b66e68eaf6e0af75bb331ff6c4

comment:5 Changed 5 years ago by angel_il

  • Votes for changeset set to angel_il

comment:6 Changed 5 years ago by slavazanko

  • Votes for changeset changed from angel_il to angel_il slavazanko
  • severity changed from on review to approved

comment:7 Changed 5 years ago by andrew_b

  • Status changed from accepted to testing
  • Votes for changeset changed from angel_il slavazanko to committed-master
  • Resolution set to fixed
  • severity changed from approved to merged

comment:8 Changed 5 years ago by andrew_b

  • Status changed from testing to closed
Note: See TracTickets for help on using tickets.