Author: jilles
Date: Sat Jul  1 13:03:02 2017
New Revision: 320532
URL: https://svnweb.freebsd.org/changeset/base/320532

Log:
  MFC r318592: compress: Allow uncompress -c with multiple pathnames,
  as required by POSIX.
  
  Per POSIX, allow passing multiple pathnames to uncompress -c, concatenating
  the uncompressed data.
  
  Passing multiple pathnames to compress -c remains disallowed, since the
  result cannot be decompressed.
  
  PR:           219387

Modified:
  stable/10/usr.bin/compress/compress.c
  stable/10/usr.bin/compress/tests/compress_test.sh
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.bin/compress/compress.c
==============================================================================
--- stable/10/usr.bin/compress/compress.c       Sat Jul  1 12:57:00 2017        
(r320531)
+++ stable/10/usr.bin/compress/compress.c       Sat Jul  1 13:03:02 2017        
(r320532)
@@ -128,7 +128,7 @@ main(int argc, char *argv[])
                exit (eval);
        }
 
-       if (cat == 1 && argc > 1)
+       if (cat == 1 && style == COMPRESS && argc > 1)
                errx(1, "the -c option permits only a single file argument");
 
        for (; *argv; ++argv)

Modified: stable/10/usr.bin/compress/tests/compress_test.sh
==============================================================================
--- stable/10/usr.bin/compress/tests/compress_test.sh   Sat Jul  1 12:57:00 
2017        (r320531)
+++ stable/10/usr.bin/compress/tests/compress_test.sh   Sat Jul  1 13:03:02 
2017        (r320532)
@@ -161,6 +161,27 @@ compress_uncompress_file_2_body()
        atf_check cmp file2 expectfile2
 }
 
+atf_test_case compress_uncompress_file_minusc_1
+compress_uncompress_file_minusc_1_head()
+{
+       atf_set "descr" \
+           "Test compressing and uncompressing some data, passing two 
filenames to uncompress -c"
+}
+compress_uncompress_file_minusc_1_body()
+{
+       printf '%01000d\n' 7 8 >expectfile1
+       printf '%01000d\n' 8 7 >expectfile2
+       cp expectfile1 file1
+       cp expectfile2 file2
+       atf_check compress file1 file2
+       atf_check -s exit:1 cmp -s file1.Z expectfile1
+       atf_check -s exit:1 cmp -s file2.Z expectfile2
+       atf_check -s exit:1 cmp -s file1.Z file2.Z
+       atf_check -x 'uncompress -c file1.Z file2.Z >all'
+       atf_check -x 'cat expectfile1 expectfile2 >expectall'
+       atf_check cmp all expectall
+}
+
 atf_init_test_cases()
 {
        atf_add_test_case uncompress_file_1
@@ -171,4 +192,5 @@ atf_init_test_cases()
        atf_add_test_case compress_uncompress_minusc_1
        atf_add_test_case compress_uncompress_file_1
        atf_add_test_case compress_uncompress_file_2
+       atf_add_test_case compress_uncompress_file_minusc_1
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to