X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fzip-writer.c;h=e93ec887e8be952e08a3db28cd79c4b139ec8249;hb=ae1e48a9727327898aaf9662f53a9a1ec115ab11;hp=534e7ebab5734f1a4b572bb7c1abcc24de3af29a;hpb=9530bce28d817a0d106d34144289ba2b12d04c19;p=pspp diff --git a/src/libpspp/zip-writer.c b/src/libpspp/zip-writer.c index 534e7ebab5..e93ec887e8 100644 --- a/src/libpspp/zip-writer.c +++ b/src/libpspp/zip-writer.c @@ -17,6 +17,7 @@ #include #include "libpspp/zip-writer.h" +#include "libpspp/zip-private.h" #include #include @@ -119,8 +120,8 @@ zip_writer_add (struct zip_writer *zw, FILE *file, const char *member_name) char buf[4096]; /* Local file header. */ - offset = ftell (zw->file); - put_u32 (zw, 0x04034b50); /* local file header signature */ + offset = ftello (zw->file); + put_u32 (zw, MAGIC_LHDR); /* local file header signature */ put_u16 (zw, 10); /* version needed to extract */ put_u16 (zw, 1 << 3); /* general purpose bit flag */ put_u16 (zw, 0); /* compression method */ @@ -135,7 +136,7 @@ zip_writer_add (struct zip_writer *zw, FILE *file, const char *member_name) /* File data. */ size = crc = 0; - fseek (file, 0, SEEK_SET); + fseeko (file, 0, SEEK_SET); while ((bytes_read = fread (buf, 1, sizeof buf, file)) > 0) { put_bytes (zw, buf, bytes_read); @@ -144,7 +145,7 @@ zip_writer_add (struct zip_writer *zw, FILE *file, const char *member_name) } /* Data descriptor. */ - put_u32 (zw, 0x08074b50); + put_u32 (zw, MAGIC_DDHD); put_u32 (zw, crc); put_u32 (zw, size); put_u32 (zw, size); @@ -173,13 +174,13 @@ zip_writer_close (struct zip_writer *zw) if (zw == NULL) return true; - dir_start = ftell (zw->file); + dir_start = ftello (zw->file); for (i = 0; i < zw->n_members; i++) { struct zip_member *m = &zw->members[i]; /* Central directory file header. */ - put_u32 (zw, 0x02014b50); /* central file header signature */ + put_u32 (zw, MAGIC_SOCD); /* central file header signature */ put_u16 (zw, 63); /* version made by */ put_u16 (zw, 10); /* version needed to extract */ put_u16 (zw, 1 << 3); /* general purpose bit flag */ @@ -200,10 +201,10 @@ zip_writer_close (struct zip_writer *zw) free (m->name); } free (zw->members); - dir_end = ftell (zw->file); + dir_end = ftello (zw->file); /* End of central directory record. */ - put_u32 (zw, 0x06054b50); /* end of central dir signature */ + put_u32 (zw, MAGIC_EOCD); /* end of central dir signature */ put_u16 (zw, 0); /* number of this disk */ put_u16 (zw, 0); /* number of the disk with the start of the central directory */