Ticket #2471: mc-4.7.0.10-iso9660-semicolon.patch

File mc-4.7.0.10-iso9660-semicolon.patch, 1.3 KB (added by asy, 14 years ago)
  • lib/vfs/mc-vfs/extfs/iso9660.in

    a b  
    2424    fi 
    2525    ISOINFO="isoinfo -R" 
    2626    isoinfo -d -i "$1" 2>/dev/null | @GREP@ "UCS level 1\|NO Joliet" > /dev/null || ISOINFO="$ISOINFO $JOLIET_OPT" 
     27 
     28    if [ `isoinfo -d -i "$1" 2>/dev/null | @GREP@ "Joliet with UCS level 3 found" | wc -l` == 1 ] ; then 
     29        if [ `isoinfo -d -i "$1" 2>/dev/null | @GREP@ "NO Rock Ridge" | wc -l` == 1 ] ; then 
     30            SEMICOLON="YES" 
     31        fi 
     32    fi 
    2733} 
    2834 
    2935mcisofs_list () { 
     
    3844  *)     MYCAT="cat";; 
    3945esac 
    4046 
    41 $ISOINFO -l -i "$1" | @AWK@ ' 
     47$ISOINFO -l -i "$1" 2>/dev/null | @AWK@ -v SEMICOLON=$SEMICOLON ' 
    4248BEGIN { 
    4349  dir=""; 
    4450  # Pattern to match 8 first fields. 
     
    6066  sub(irx, "", name) 
    6167  sub("^----------   0    0    0", "-r--r--r--   1 root root", attr) 
    6268  sub(" $", "", name) 
     69  # for Joliet UCS level 3 
     70  if (SEMICOLON = "YES") sub(";1$", "", name); 
    6371  ## sub(";[0-9]+$", "", name) ## would break copyout 
    6472  # skip . and .. 
    6573  if (name ~ /^\.\.?/) next; 
     
    6876} 
    6977 
    7078mcisofs_copyout () { 
    71         $ISOINFO -i "$1" -x "/$2" > "$3"  
     79        if [ "x$SEMICOLON" == "xYES" ]; then 
     80            $ISOINFO -i "$1" -x "/$2;1" 2>/dev/null > "$3" 
     81        else 
     82            $ISOINFO -i "$1" -x "/$2" 2>/dev/null > "$3" 
     83        fi 
    7284} 
    7385 
    7486LC_ALL=C