X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flibpspp%2Fzip-test.c;h=777b37a795259c2f4ca93062e8378d197cfd9140;hb=4045b0283a12c8fbc0211b0449cbd0e51f51470e;hp=011d123841535b3e853ef4a66b730d9b1955f14c;hpb=6e097c89af440da90b43ce90864394c4d0c843d5;p=pspp diff --git a/tests/libpspp/zip-test.c b/tests/libpspp/zip-test.c index 011d123841..777b37a795 100644 --- a/tests/libpspp/zip-test.c +++ b/tests/libpspp/zip-test.c @@ -30,7 +30,6 @@ #include #include -#include "xalloc.h" /* Exit with a failure code. (Place a breakpoint on this function while debugging.) */ @@ -43,32 +42,32 @@ check_die (void) int main (int argc, char **argv) { - if ( argc < 4) + if (argc < 4) { fprintf (stderr, "Usage zip-test: {r|w} archive file0 file1 ... filen\n"); check_die (); } - if ( 0 == strcmp ("w", argv[1])) + if (0 == strcmp ("w", argv[1])) { int i; struct zip_writer *zw = zip_writer_create (argv[2]); for (i = 3; i < argc; ++i) { - FILE *fp = fopen (argv[i], "r"); - if (!fp ) check_die (); + FILE *fp = fopen (argv[i], "rb"); + if (!fp) check_die (); zip_writer_add (zw, fp, argv[i]); } zip_writer_close (zw); } - else if ( 0 == strcmp ("r", argv[1])) + else if (0 == strcmp ("r", argv[1])) { const int BUFSIZE=256; char buf[BUFSIZE]; int i; struct string str; struct zip_reader *zr = zip_reader_create (argv[2], &str); - if ( NULL == zr) + if (NULL == zr) { fprintf (stderr, "Could not create zip reader: %s\n", ds_cstr (&str)); check_die (); @@ -77,15 +76,15 @@ main (int argc, char **argv) { int x = 0; struct zip_member *zm ; - FILE *fp = fopen (argv[i], "w"); - if ( NULL == fp) + FILE *fp = fopen (argv[i], "wb"); + if (NULL == fp) { int e = errno; fprintf (stderr, "Could not create file %s: %s\n", argv[i], strerror(e)); check_die (); } zm = zip_member_open (zr, argv[i]); - if ( NULL == zm) + if (NULL == zm) { fprintf (stderr, "Could not open zip member %s from archive: %s\n", argv[i], ds_cstr (&str)); @@ -96,8 +95,9 @@ main (int argc, char **argv) { fwrite (buf, x, 1, fp); } + zip_member_finish (zm); fclose (fp); - if ( x < 0) + if (x < 0) { fprintf (stderr, "Unzip failed: %s\n", ds_cstr (&str)); check_die ();