Changeset View
Changeset View
Standalone View
Standalone View
usr.bin/gzip/zdiff
Show All 32 Lines | case $0 in | ||||
*) prog=diff | *) prog=diff | ||||
;; | ;; | ||||
esac | esac | ||||
USAGE="usage: $0 [options] file1 [file2]" | USAGE="usage: $0 [options] file1 [file2]" | ||||
check_suffix() { | check_suffix() { | ||||
case "$1" in | case "$1" in | ||||
*[._-][Zz]) | *[._-][Zz]) | ||||
setvar $2 "${1%??}" | eval "$2=\${1%??}" | ||||
setvar $3 "gzip -cdqf" | eval "$3=\"gzip -cdqf\"" | ||||
jilles: This used to work with filenames containing `"`, ``` and `$` but no longer does. Likewise for… | |||||
;; | ;; | ||||
*[._-]bz) | *[._-]bz) | ||||
setvar $2 "${1%???}" | eval "$2=\${1%???}" | ||||
setvar $3 "bzip2 -cdqf" | eval "$3=\"bzip2 -cdqf\"" | ||||
;; | ;; | ||||
*[._-]gz) | *[._-]gz) | ||||
setvar $2 "${1%???}" | eval "$2=\${1%???}" | ||||
setvar $3 "gzip -cdqf" | eval "$3=\"gzip -cdqf\"" | ||||
;; | ;; | ||||
*[._-]xz) | *[._-]xz) | ||||
setvar $2 "${1%???}" | eval "$2=\${1%???}" | ||||
setvar $3 "xz -cdqf" | eval "$3=\"xz -cdqf\"" | ||||
;; | ;; | ||||
*[._-]bz2) | *[._-]bz2) | ||||
setvar $2 "${1%????}" | eval "$2=\${1%????}" | ||||
setvar $3 "bzip2 -cdqf" | eval "$3=\"bzip2 -cdqf\"" | ||||
;; | ;; | ||||
*[._-]lzma) | *[._-]lzma) | ||||
setvar $2 "${1%?????}" | eval "$2=\${1%?????}" | ||||
setvar $3 "xz -cdqf" | eval "$3=\"xz -cdqf\"" | ||||
;; | ;; | ||||
*.t[ag]z) | *.t[ag]z) | ||||
setvar $2 "${1%??}"ar | eval "$2=\${1%??}ar" | ||||
setvar $3 "gzip -cdqf" | eval "$3=\"gzip -cdqf\"" | ||||
;; | ;; | ||||
*.tbz) | *.tbz) | ||||
setvar $2 "${1%??}"ar | eval "$2=\${1%??}ar" | ||||
setvar $3 "bzip2 -cdqf" | eval "$3=\"bzip2 -cdqf\"" | ||||
;; | ;; | ||||
*.tbz2) | *.tbz2) | ||||
setvar $2 "${1%???}"ar | eval "$2=\${1%???}ar" | ||||
setvar $3 "bzip2 -cdqf" | eval "$3=\"bzip2 -cdqf\"" | ||||
;; | ;; | ||||
*.t[lx]z) | *.t[lx]z) | ||||
setvar $2 "${1%??}"ar | eval "$2=\${1%??}ar" | ||||
setvar $3 "xz -cdqf" | eval "$3=\"xz -cdqf\"" | ||||
;; | ;; | ||||
*) | *) | ||||
setvar $2 "$1" | eval "$2=\$1" | ||||
setvar $3 "" | eval "$3=\"\"" | ||||
;; | ;; | ||||
esac | esac | ||||
} | } | ||||
# Pull out any command line flags so we can pass them to diff/cmp | # Pull out any command line flags so we can pass them to diff/cmp | ||||
# XXX - assumes there is no optarg | # XXX - assumes there is no optarg | ||||
flags= | flags= | ||||
▲ Show 20 Lines • Show All 52 Lines • Show Last 20 Lines |
This used to work with filenames containing ", ` and $ but no longer does. Likewise for all other eval "$2= below.