#include <stdlib.h>
#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_SYS_MODE_H
/* apparently AIX needs this for S_ISLNK */
+#ifndef S_ISLNK
#include <sys/mode.h>
#endif
+#endif
#ifdef HAVE_FNMATCH
#include <fnmatch.h>
#include "lib/getopt.h"
#endif
+#ifndef S_IFLNK
+#define S_IFLNK 0120000
+#endif
#ifndef S_ISLNK
#define S_ISLNK(mode) (((mode) & S_IFLNK) == S_IFLNK)
int fd,size,p_size,p_offset,p_len;
};
+/* we need this function because of the silly way in which duplicate
+ entries are handled in the file lists - we can't change this
+ without breaking existing versions */
+static int flist_up(struct file_list *flist, int i)
+{
+ while (!flist->files[i].name) i++;
+ return i;
+}
+
+
#include "byteorder.h"
#include "version.h"
#include "proto.h"
#define bzero(buf,n) memset(buf,0,n)
#endif
-#define SUPPORT_LINKS (HAVE_READLINK && defined(S_ISLNK))
+#define SUPPORT_LINKS HAVE_READLINK
#define SUPPORT_HARD_LINKS HAVE_LINK
-#ifndef S_ISLNK
-#define S_ISLNK(x) 0
-#endif
-
-#if !SUPPORT_LINKS
-#define lstat stat
-#endif
-
#ifndef HAVE_LCHOWN
#define lchown chown
#endif