# HG changeset patch
# User Lasse Collin <lasse.collin@tukaani.org>
# Date 1610402231 -7200
#      Mon Jan 11 23:57:11 2021 +0200
# Node ID 119d3ce1d749752c0c1d0fdc5b1f96e6befffded
# Parent  3cb6bcc5ecdef57ceb563c9f1ad872d0d84adb04
Scripts: Add zstd support to xzdiff.

diff --git a/src/scripts/xzdiff.1 b/src/scripts/xzdiff.1
--- a/src/scripts/xzdiff.1
+++ b/src/scripts/xzdiff.1
@@ -6,7 +6,7 @@
 .\"
 .\" License: GNU GPLv2+
 .\"
-.TH XZDIFF 1 "2011-03-19" "Tukaani" "XZ Utils"
+.TH XZDIFF 1 "2021-01-11" "Tukaani" "XZ Utils"
 .SH NAME
 xzcmp, xzdiff, lzcmp, lzdiff \- compare compressed files
 .SH SYNOPSIS
@@ -34,8 +34,9 @@
 .BR lzma (1),
 .BR gzip (1),
 .BR bzip2 (1),
+.BR lzop (1),
 or
-.BR lzop (1).
+.BR zstd (1).
 All options specified are passed directly to
 .BR cmp (1)
 or
@@ -68,6 +69,7 @@
 .BR gzip (1),
 .BR bzip2 (1),
 .BR lzop (1),
+.BR zstd (1),
 .BR zdiff (1)
 .SH BUGS
 Messages from the
diff --git a/src/scripts/xzdiff.in b/src/scripts/xzdiff.in
--- a/src/scripts/xzdiff.in
+++ b/src/scripts/xzdiff.in
@@ -80,19 +80,23 @@
       xz1=gzip;;
     *[-.]lzo | *.tzo)
       xz1=lzop;;
+    *[-.]zst | *.tzst)
+      xz1='zstd -q';;
     *)
       echo >&2 "$0: $1: Unknown compressed file name suffix"
       exit 2;;
   esac
   case $1 in
-    *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lzo)
-      FILE=`expr "X$1" : 'X\(.*\)[-.][abglmoxzZ2]*$'`;;
+    *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *[-.]lzo | *[-.]zst)
+      FILE=`expr "X$1" : 'X\(.*\)[-.][abglmostxzZ2]*$'`;;
     *.t[abglx]z)
       FILE=`expr "X$1" : 'X\(.*[-.]t\)[abglx]z$'`ar;;
     *.tbz2)
       FILE=`expr "X$1" : 'X\(.*[-.]t\)bz2$'`ar;;
     *.tzo)
       FILE=`expr "X$1" : 'X\(.*[-.]t\)zo$'`ar;;
+    *.tzst)
+      FILE=`expr "X$1" : 'X\(.*[-.]t\)zst$'`ar;;
   esac
   xz_status=$(
     exec 4>&1
@@ -103,16 +107,18 @@
     *[-.]bz2 | *.tbz | *.tbz2) xz1=bzip2;;
     *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz1=gzip;;
     *[-.]lzo | *.tzo) xz1=lzop;;
+    *[-.]zst | *.tzst) xz1='zstd -q';;
   esac
   case $2 in
     *[-.]bz2 | *.tbz | *.tbz2) xz2=bzip2;;
     *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz2=gzip;;
     *[-.]lzo | *.tzo) xz2=lzop;;
+    *[-.]zst | *.tzst) xz2='zstd -q';;
   esac
   case $1 in
-    *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -)
+    *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -)
       case "$2" in
-        *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -)
+        *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -)
           if test "$1$2" = --; then
             xz_status=$(
               exec 4>&1
@@ -176,7 +182,7 @@
     esac;;
   *)
     case "$2" in
-      *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | -)
+      *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | *[-.]lzo | *.tzo | *[-.]zst | *.tzst | -)
         xz_status=$(
           exec 4>&1
           ($xz2 -cdf -- "$2" 4>&-; echo $? >&4) 3>&- |