diff -up unzoo-4.4/unzoo.c.warnings unzoo-4.4/unzoo.c --- unzoo-4.4/unzoo.c.warnings 2015-03-30 14:30:36.169829567 -0400 +++ unzoo-4.4/unzoo.c 2015-03-30 14:38:42.082812600 -0400 @@ -247,8 +247,13 @@ *H */ #include <stdio.h> +#include <stdlib.h> #include <string.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <utime.h> + /**************************************************************************** ** @@ -617,8 +622,8 @@ char Cmd [256]; ** members with the correct time as stored in the archive. */ #ifdef SYS_IS_UNIX -unsigned int Secs [2]; -#define SETF_TIME(patl,secs) (Secs[0]=Secs[1]=(secs),!utime((patl),Secs)) +struct utimbuf Secs; +#define SETF_TIME(patl,secs) (Secs.actime=Secs.modtime=(secs),!utime((patl),&Secs)) #endif #ifdef SYS_IS_DOS_DJGPP unsigned long Secs [2]; @@ -1465,7 +1470,7 @@ struct { int DescReadArch () { /* read the text at the beginning */ - BlckReadArch(Descript.text,20L); Descript.text[20] = '\0'; + BlckReadArch(Descript.text,20L); Descript.text[19] = '\0'; /* try to read the magic words */ if ( (Descript.magic = WordReadArch()) != (unsigned long)0xfdc4a7dcL )