#include <config.h>
#include "libpspp/zip-writer.h"
+#include "libpspp/zip-private.h"
#include <errno.h>
#include <stdlib.h>
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 */
/* 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);
}
/* Data descriptor. */
- put_u32 (zw, 0x08074b50);
+ put_u32 (zw, MAGIC_DDHD);
put_u32 (zw, crc);
put_u32 (zw, size);
put_u32 (zw, size);
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 */
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 */