Ticket #4509: support-lzo-lzop-compression-format.patch

File support-lzo-lzop-compression-format.patch, 11.5 KB (added by TobiasW, 11 months ago)
  • lib/util.c

    diff --git a/lib/util.c b/lib/util.c
    index 4b5b37339..c4d5c46a5 100644
    a b get_compression_type (int fd, const char *name) 
    891891        && magic[2] == 'Z' && magic[3] == 'M' && magic[4] == 'A' && magic[5] == 0x00) 
    892892        return COMPRESSION_LZMA; 
    893893 
     894    /* LZO format - \x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a    lzop compressed data */ 
     895    if (magic[0] == 0x89 && magic[1] == 0x4c && 
     896        magic[2] == 0x5a && magic[3] == 0x4f && 
     897        magic[4] == 0x00 && magic[5] == 0x0d) 
     898        return COMPRESSION_LZO; 
     899 
    894900    /* XZ compression magic */ 
    895901    if (magic[0] == 0xFD 
    896902        && magic[1] == 0x37 
    decompress_extension (int type) 
    930936        return "/ulz4" VFS_PATH_URL_DELIMITER; 
    931937    case COMPRESSION_LZMA: 
    932938        return "/ulzma" VFS_PATH_URL_DELIMITER; 
     939    case COMPRESSION_LZO: 
     940        return "/ulzo" VFS_PATH_URL_DELIMITER; 
    933941    case COMPRESSION_XZ: 
    934942        return "/uxz" VFS_PATH_URL_DELIMITER; 
    935943    case COMPRESSION_ZSTD: 
  • lib/util.h

    diff --git a/lib/util.h b/lib/util.h
    index ec8b25ec5..1ead0fb97 100644
    a b enum compression_type 
    8484    COMPRESSION_LZIP, 
    8585    COMPRESSION_LZ4, 
    8686    COMPRESSION_LZMA, 
     87    COMPRESSION_LZO, 
    8788    COMPRESSION_XZ, 
    8889    COMPRESSION_ZSTD, 
    8990}; 
  • misc/ext.d/archive.sh

    diff --git a/misc/ext.d/archive.sh b/misc/ext.d/archive.sh
    index 840fd4717..12beb0158 100755
    a b do_view_action() { 
    3232    lzma) 
    3333        lzma -dc "${MC_EXT_FILENAME}" 2>/dev/null 
    3434        ;; 
     35    lzo) 
     36        lzop -dc "${MC_EXT_FILENAME}" 2>/dev/null 
     37        ;; 
    3538    xz) 
    3639        xz -dc "${MC_EXT_FILENAME}" 2>/dev/null 
    3740        ;; 
    do_view_action() { 
    6568        lzma -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ 
    6669            tar tvvf - 
    6770        ;; 
     71    tar.lzo|tzo) 
     72        lzop -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ 
     73            tar tvvf - 
     74        ;; 
    6875    tar.xz) 
    6976        xz -dc "${MC_EXT_FILENAME}" 2>/dev/null | \ 
    7077            tar tvvf - 
    do_view_action() { 
    114121        lz4 -dc "${MC_EXT_FILENAME}" | \ 
    115122            cpio -itv 2>/dev/null 
    116123        ;; 
     124    cpio.lzo) 
     125        lzop -dc "${MC_EXT_FILENAME}" | \ 
     126            cpio -itv 2>/dev/null 
     127        ;; 
    117128    cpio.xz) 
    118129        xz -dc "${MC_EXT_FILENAME}" | \ 
    119130            cpio -itv 2>/dev/null 
    do_open_action() { 
    177188    lzma) 
    178189        lzma -dc "${MC_EXT_FILENAME}" | ${pager} 
    179190        ;; 
     191    lzo) 
     192        lzop -dc "${MC_EXT_FILENAME}" | ${pager} 
     193        ;; 
    180194    xz) 
    181195        xz -dc "${MC_EXT_FILENAME}" | ${pager} 
    182196        ;; 
  • misc/ext.d/text.sh.in

    diff --git a/misc/ext.d/text.sh.in b/misc/ext.d/text.sh.in
    index 2bd6ca05c..357f9e11d 100644
    a b get_unpacker() { 
    3131    man.lzma) 
    3232        unpacker="lzma -dc" 
    3333        ;; 
     34    man.lzo) 
     35        unpacker="lzop -dc" 
     36        ;; 
    3437    man.xz) 
    3538        unpacker="xz -dc" 
    3639        ;; 
    do_view_action() { 
    6770    nroff.ms) 
    6871        nroff @MAN_FLAGS@ -ms "${MC_EXT_FILENAME}" 
    6972        ;; 
    70     man.gz|man.bz|man.bz2|man.lz|man.lz4|man.lzma|man.xz|man.zst) 
     73    man.gz|man.bz|man.bz2|man.lz|man.lz4|man.lzma|man.lzo|man.xz|man.zst) 
    7174        case "${MC_EXT_FILENAME}" in 
    7275        */log/*|*/logs/*) 
    7376            ${unpacker} "${MC_EXT_FILENAME}" 
    do_open_action() { 
    114117    nroff.ms) 
    115118        nroff @MAN_FLAGS@ -ms "${MC_EXT_FILENAME}" | ${pager} 
    116119        ;; 
    117     man.gz|man.bz|man.bz2|man.lz|man.lz4|man.lzma|man.xz|man.zst) 
     120    man.gz|man.bz|man.bz2|man.lz|man.lz4|man.lzma|man.lzo|man.xz|man.zst) 
    118121        case "${MC_EXT_FILENAME}" in 
    119122        */log/*|*/logs/*) 
    120123            ${unpacker} "${MC_EXT_FILENAME}" 
  • misc/filehighlight.ini

    diff --git a/misc/filehighlight.ini b/misc/filehighlight.ini
    index c31f562e6..28824238d 100644
    a b  
    2525    regexp=(^#.*|.*~$) 
    2626 
    2727[archive] 
    28     extensions=7z;Z;ace;apk;arc;arj;ark;bz2;cab;cpio;deb;gz;lha;lz;lz4;lzh;lzma;rar;rpm;tar;tbz;tbz2;tgz;tlz;txz;tzst;vsix;xz;zip;zoo;zst 
     28    extensions=7z;Z;ace;apk;arc;arj;ark;bz2;cab;cpio;deb;gz;lha;lz;lz4;lzh;lzma;lzo;rar;rpm;tar;tbz;tbz2;tgz;tlz;txz;tzo;tzst;vsix;xz;zip;zoo;zst 
    2929 
    3030[doc] 
    3131    extensions=chm;css;ctl;diz;doc;docm;docx;dtd;fodg;fodp;fods;fodt;htm;html;json;letter;lsm;mail;man;markdown;md;me;mkd;msg;nroff;odg;odp;ods;odt;pdf;po;ppt;pptm;pptx;ps;rtf;sgml;shtml;tex;text;txt;xls;xlsm;xlsx;xml;xsd;xslt 
  • misc/mc.ext.ini.in

    diff --git a/misc/mc.ext.ini.in b/misc/mc.ext.ini.in
    index 54ea7bf59..3d961a95c 100644
    a b Regex=\\.t(ar\\.lz4|lz4)$ 
    242242Open=%cd %p/utar:// 
    243243View=%view{ascii} @EXTHELPERSDIR@/archive.sh view tar.lz4 
    244244 
     245# .tar.lzo, .tzo 
     246[tar.lzo] 
     247Regex=\\.t(ar\\.lzo|zo)$ 
     248Open=%cd %p/utar:// 
     249View=%view{ascii} @EXTHELPERSDIR@/archive.sh view tar.lzo 
     250 
    245251# .tar.xz, .txz 
    246252[tar.xz] 
    247253Regex=\\.t(ar\\.xz|xz)$ 
    Shell=.cpio.lz4 
    318324Open=%cd %p/ucpio:// 
    319325View=%view{ascii} @EXTHELPERSDIR@/archive.sh view cpio.lz4 
    320326 
     327[cpio.lzo] 
     328Shell=.cpio.lzo 
     329Open=%cd %p/ucpio:// 
     330View=%view{ascii} @EXTHELPERSDIR@/archive.sh view cpio.lzo 
     331 
    321332[cpio.xz] 
    322333Shell=.cpio.xz 
    323334Open=%cd %p/ucpio:// 
    Regex=([^0-9]|^[^\\.]*)\\.([1-9][A-Za-z]*|[ln])\\.lzma$ 
    515526Open=@EXTHELPERSDIR@/text.sh open man.lzma %var{PAGER:more} 
    516527View=%view{ascii,nroff} @EXTHELPERSDIR@/text.sh view man.lzma %var{PAGER:more} 
    517528 
     529[man.lzo] 
     530Regex=([^0-9]|^[^\\.]*)\\.([1-9][A-Za-z]*|[ln])\\.lzo$ 
     531Open=@EXTHELPERSDIR@/text.sh open man.lzo %var{PAGER:more} 
     532View=%view{ascii,nroff} @EXTHELPERSDIR@/text.sh view man.lzo %var{PAGER:more} 
     533 
    518534[man.xz] 
    519535Regex=([^0-9]|^[^\\.]*)\\.([1-9][A-Za-z]*|[ln])\\.xz$ 
    520536Open=@EXTHELPERSDIR@/text.sh open man.xz %var{PAGER:more} 
    ShellIgnoreCase=true 
    882898Open=@EXTHELPERSDIR@/archive.sh view lz4 %var{PAGER:more} 
    883899View=%view{ascii} @EXTHELPERSDIR@/archive.sh view lz4 
    884900 
     901[lzo] 
     902Shell=.lzo 
     903ShellIgnoreCase=true 
     904Open=@EXTHELPERSDIR@/archive.sh view lzo %var{PAGER:more} 
     905View=%view{ascii} @EXTHELPERSDIR@/archive.sh view lzo 
     906 
    885907[wim] 
    886908Shell=.wim 
    887909ShellIgnoreCase=true 
  • misc/mc.menu.in

    diff --git a/misc/mc.menu.in b/misc/mc.menu.in
    index c491858f5..9d37e378a 100644
    a b shell_patterns=0 
    9393        tar cf - "$Pwd" | zstd -f > "$tar.tar.zst" && \ 
    9494        echo "../$tar.tar.zst created." 
    9595 
     968       Compress the current subdirectory (tar.lzo) 
     97        Pwd=`basename %d /` 
     98        echo -n "Name of the compressed file (without extension) [$Pwd]: " 
     99        read tar 
     100        [ "$tar"x = x ] && tar="$Pwd" 
     101        cd .. && \ 
     102        tar cf - "$Pwd" | lzop -f > "$tar.tar.lzo" && \ 
     103        echo "../$tar.tar.lzo created." 
     104 
    96105= f \.c$ & t r 
    97106+ f \.c$ & t r & ! t t 
    98107c       Compile and link current .c file 
    U Uudecode marked news articles (needs work) 
    228237        fi 
    229238        echo "Please test the output file before deleting anything." 
    230239 
    231 =+ f \.tar\.gz$ | f \.tar\.z$ | f \.tgz$ | f \.tpz$ | f \.tar\.lz$ | f \.tar\.lz4$ | f \.tar\.lzma$ | f \.tar\.7z$ | f \.tar\.xz$ | f \.tar\.zst | f \.tar\.Z$ | f \.tar\.bz2$ & t rl 
     240=+ f \.tar\.gz$ | f \.tar\.z$ | f \.tgz$ | f \.tpz$ | f \.tar\.lz$ | f \.tar\.lz4$ | f \.tar\.lzma$ | f \.tar\.lzo$ | f \.tar\.7z$ | f \.tar\.xz$ | f \.tar\.zst | f \.tar\.Z$ | f \.tar\.bz2$ & t rl 
    232241x       Extract the contents of a compressed tar file 
    233242        unset PRG 
    234243        case %f in 
    x Extract the contents of a compressed tar file 
    238247            *.tar.lz)   PRG="lzip -dc";; 
    239248            *.tar.lz4)  PRG="lz4 -dc";; 
    240249            *.tar.lzma) PRG="lzma -dc";; 
     250            *.tar.lzo)  PRG="lzop -dc";; 
    241251            *.tar.xz)   PRG="xz -dc";; 
    242252            *.tar.zst)  PRG="zstd -dc";; 
    243253            *)          exit 1;; 
  • misc/syntax/sh.syntax

    diff --git a/misc/syntax/sh.syntax b/misc/syntax/sh.syntax
    index e89142d66..3f4754d9e 100644
    a b wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._ 
    15641564    keyword whole lsusb cyan 
    15651565    keyword whole lzip cyan 
    15661566    keyword whole lziprecover cyan 
     1567    keyword whole lzop cyan 
    15671568    keyword whole lynx cyan 
    15681569    keyword whole MAKEDEV cyan 
    15691570    keyword whole MAKEFLOPPIES cyan 
  • src/editor/edit.c

    diff --git a/src/editor/edit.c b/src/editor/edit.c
    index 0ecaab2d9..9308f260f 100644
    a b static const struct edit_filters 
    142142    { "lz4 -cd %s 2>&1", "lz4 > %s", ".lz4" }, 
    143143    { "lzip -cd %s 2>&1", "lzip > %s", ".lz"}, 
    144144    { "lzma -cd %s 2>&1", "lzma > %s", ".lzma" }, 
     145    { "lzop -cd %s 2>&1", "lzop > %s", ".lzo"}, 
    145146    { "bzip2 -cd %s 2>&1", "bzip2 > %s", ".bz2" }, 
    146147    { "gzip -cd %s 2>&1", "gzip > %s", ".gz" }, 
    147148    { "gzip -cd %s 2>&1", "gzip > %s", ".Z" } 
  • src/vfs/extfs/helpers/iso9660.in

    diff --git a/src/vfs/extfs/helpers/iso9660.in b/src/vfs/extfs/helpers/iso9660.in
    index 5a6f1d565..f78db61cd 100644
    a b mcisofs_list () { 
    132132      *.lz)  MYCAT="lzip -dc";; 
    133133      *.lz4) MYCAT="lz4 -dc";; 
    134134      *.lzma) MYCAT="lzma -dc";; 
     135      *.lzo) MYCAT="lzop -dc";; 
    135136      *.xz)  MYCAT="xz -dc";; 
    136137      *.zst) MYCAT="zstd -dc";; 
    137138      *.bz2) MYCAT="bzip2 -dc";; 
  • src/vfs/extfs/helpers/lslR.in

    diff --git a/src/vfs/extfs/helpers/lslR.in b/src/vfs/extfs/helpers/lslR.in
    index 69b663b40..f568c02a5 100644
    a b case "$1" in 
    1515  *.lz)  MYCAT="lzip -dc";; 
    1616  *.lz4) MYCAT="lz4 -dc";; 
    1717  *.lzma) MYCAT="lzma -dc";; 
     18  *.lzo) MYCAT="lzop -dc";; 
    1819  *.xz)  MYCAT="xz -dc";; 
    1920  *.zst) MYCAT="zstd -dc";; 
    2021  *.bz2) MYCAT="bzip2 -dc";; 
  • src/vfs/extfs/helpers/mailfs.in

    diff --git a/src/vfs/extfs/helpers/mailfs.in b/src/vfs/extfs/helpers/mailfs.in
    index 5bb373b67..20cfae317 100644
    a b $bzcat="bzip2 -dc"; # bunzip2 to stdout 
    1111$lzipcat="lzip -dc";          # unlzip to stdout 
    1212$lz4cat="lz4 -dc";            # unlz4 to stdout 
    1313$lzcat="lzma -dc";            # unlzma to stdout 
     14$lzocat="lzop -dc";           # unlzo to stdout 
    1415$xzcat="xz -dc";              # unxz to stdout 
    1516$zstdcat="zstd -dc";          # unzstd to stdout 
    1617$file="file";                 # "file" command 
    if (/gzip/) { 
    194195    exit 1 unless (open IN, "$lz4cat $mbox_qname|"); 
    195196} elsif (/lzma/) { 
    196197    exit 1 unless (open IN, "$lzcat $mbox_qname|"); 
     198} elsif (/lzo/) { 
     199    exit 1 unless (open IN, "$lzocat $mbox_qname|"); 
    197200} elsif (/xz/) { 
    198201    exit 1 unless (open IN, "$xzcat $mbox_qname|"); 
    199202} elsif (/zst/) { 
  • src/vfs/extfs/helpers/patchfs.in

    diff --git a/src/vfs/extfs/helpers/patchfs.in b/src/vfs/extfs/helpers/patchfs.in
    index ee1e6515d..59fdde1fc 100644
    a b use File::Temp 'tempfile'; 
    1717my $lzip = 'lzip'; 
    1818my $lz4  = 'lz4'; 
    1919my $lzma = 'lzma'; 
     20my $lzo  = 'lzop'; 
    2021my $xz   = 'xz'; 
    2122my $zstd = 'zstd'; 
    2223my $bzip = 'bzip2'; 
    sub myin 
    8889        return "$lzip -dc $qfname"; 
    8990    } elsif (/^'*lzma/) { 
    9091        return "$lzma -dc $qfname"; 
     92    } elsif (/^'*lzo/) { 
     93        return "$lzo -dc $qfname"; 
    9194    } elsif (/^'*xz/) { 
    9295        return "$xz -dc $qfname"; 
    9396    } elsif (/^'*zst/) { 
    sub myout 
    114117        return "$lzip -c $sep $qfname"; 
    115118    } elsif (/^'*lzma/) { 
    116119        return "$lzma -c $sep $qfname"; 
     120    } elsif (/^'*lzo/) { 
     121        return "$lzo -c $sep $qfname"; 
    117122    } elsif (/^'*xz/) { 
    118123        return "$xz -c $sep $qfname"; 
    119124    } elsif (/^'*zst/) { 
  • src/vfs/sfs/sfs.ini

    diff --git a/src/vfs/sfs/sfs.ini b/src/vfs/sfs/sfs.ini
    index d817dc9f4..a7b059be0 100644
    a b lz4/1 lz4 < %1 > %3 
    1616ulz4/1  lz4 -d < %1 > %3 
    1717lzma/1  lzma < %1 > %3 
    1818ulzma/1 lzma -d < %1 > %3 
     19lzo/1   lzop < %1 > %3 
     20ulzo/1  lzop -d < %1 > %3 
    1921xz/1    xz < %1 > %3 
    2022uxz/1   xz -d < %1 > %3 
    2123zst/1   zstd < %1 > %3