diff options
Diffstat (limited to 'libre/lesspipe/libarchive.patch')
-rw-r--r-- | libre/lesspipe/libarchive.patch | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/libre/lesspipe/libarchive.patch b/libre/lesspipe/libarchive.patch new file mode 100644 index 000000000..b4fb48788 --- /dev/null +++ b/libre/lesspipe/libarchive.patch @@ -0,0 +1,100 @@ +diff --git a/configure b/configure +index cbd34af..5df4a31 100755 +--- a/configure ++++ b/configure +@@ -405,8 +405,7 @@ LESS_ADVANCED_PREPROCESSOR N # always interpret textlike files (html, ...) + # compression programs + bzip2 Y # include bzip2 and unzip code, it is fairly essential + unzip Y +-rar Y +-unrar Y ++bsdtar Y # bsdtar is the best free as in freedom alternative for rar + lzip N # default for lzma, lzip, xz, 7za should probably be N + lzma Y + xz Y +diff --git a/lesspipe.sh b/lesspipe.sh +index c80c75b..262a47b 100755 +--- a/lesspipe.sh ++++ b/lesspipe.sh +@@ -276,12 +276,8 @@ get_cmd () { + cmd=(isrpm "$2" "$file2") + elif [[ "$1" = *Zip* || "$1" = *ZIP* ]] && cmd_exist unzip; then + cmd=(istemp "unzip -avp" "$2" "$file2") +- elif [[ "$1" = *RAR\ archive* ]]; then +- if cmd_exist unrar; then +- cmd=(istemp "unrar p -inul" "$2" "$file2") +- elif cmd_exist rar; then +- cmd=(istemp "rar p -inul" "$2" "$file2") +- fi ++ elif [[ "$1" = *RAR\ archive* ]] && cmd_exist bsdtar; then ++ cmd=(bsdtar xOf "$2" "$file2") + elif [[ "$1" = *7-zip\ archive* || "$1" = *7z\ archive* ]] && cmd_exist 7za; then + cmd=(istemp "7za e -so" "$2" "$file2") + elif [[ "$1" = *7-zip\ archive* || "$1" = *7z\ archive* ]] && cmd_exist 7zr; then +@@ -534,14 +530,9 @@ isfinal() { + elif [[ "$1" = *Zip* || "$1" = *ZIP* ]] && cmd_exist unzip; then + msg "use zip_file${sep}contained_file to view a file in the archive" + istemp "unzip -lv" "$2" +- elif [[ "$1" = *RAR\ archive* ]]; then +- if cmd_exist unrar; then +- msg "use rar_file${sep}contained_file to view a file in the archive" +- istemp "unrar v" "$2" +- elif cmd_exist rar; then +- msg "use rar_file${sep}contained_file to view a file in the archive" +- istemp "rar v" "$2" +- fi ++ elif [[ "$1" = *RAR\ archive* ]] && cmd_exist bsdtar; then ++ msg "use rar_file${sep}contained_file to view a file in the archive" ++ bsdtar tf "$2" + elif [[ "$1" = *7-zip\ archive* || "$1" = *7z\ archive* ]] && cmd_exist 7za; then + typeset res + res=$(istemp "7za l" "$2") +diff --git a/lesspipe.sh.in b/lesspipe.sh.in +index 407bc7d..753f3c5 100755 +--- a/lesspipe.sh.in ++++ b/lesspipe.sh.in +@@ -323,17 +323,10 @@ get_cmd () { + elif [[ "$1" = *Zip* || "$1" = *ZIP* ]] && cmd_exist unzip; then + set -A cmd istemp "unzip -avp" "$2" "$file2" + #endif +-#ifdef unrar +- elif [[ "$1" = *RAR\ archive* ]]; then +- if cmd_exist unrar; then +- set -A cmd istemp "unrar p -inul" "$2" "$file2" +- elif cmd_exist rar; then +- set -A cmd istemp "rar p -inul" "$2" "$file2" +- fi +-#elif rar +- elif [[ "$1" = *RAR\ archive* ]] && cmd_exist rar; then +- set -A cmd istemp "rar p -inul" "$2" "$file2" +-#endif ++#ifdef bsdtar ++ elif [[ "$1" = *RAR\ archive* ]] && cmd_exist bsdtar; then ++ set -A cmd bsdtar xOf "$2" "$file2" ++#endif + #ifdef 7za + elif [[ "$1" = *7-zip\ archive* || "$1" = *7z\ archive* ]] && cmd_exist 7za; then + set -A cmd istemp "7za e -so" "$2" "$file2" +@@ -705,19 +698,10 @@ isfinal() { + msg "use zip_file${sep}contained_file to view a file in the archive" + istemp "unzip -lv" "$2" + #endif +-#ifdef unrar +- elif [[ "$1" = *RAR\ archive* ]]; then +- if cmd_exist unrar; then +- msg "use rar_file${sep}contained_file to view a file in the archive" +- istemp "unrar v" "$2" +- elif cmd_exist rar; then +- msg "use rar_file${sep}contained_file to view a file in the archive" +- istemp "rar v" "$2" +- fi +-#elif rar +- elif [[ "$1" = *RAR\ archive* ]] && cmd_exist rar; then ++#ifdef bsdtar ++ elif [[ "$1" = *RAR\ archive* ]] && cmd_exist bsdtar; then + msg "use rar_file${sep}contained_file to view a file in the archive" +- istemp "rar v" "$2" ++ bsdtar tf "$2" + #endif + #ifdef 7za + elif [[ "$1" = *7-zip\ archive* || "$1" = *7z\ archive* ]] && cmd_exist 7za; then |