/* Portability declarations. Requires sys/types.h.
- Copyright (C) 1988 Free Software Foundation
+ Copyright (C) 1988, 1992 Free Software Foundation
This file is part of GNU Tar.
along with GNU Tar; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+/* AIX requires this to be the first thing in the file. */
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#else /* not __GNUC__ */
+#if HAVE_ALLOCA_H
+#include <alloca.h>
+#else /* not HAVE_ALLOCA_H */
+#ifdef _AIX
+ #pragma alloca
+#else /* not _AIX */
+char *alloca ();
+#endif /* not _AIX */
+#endif /* not HAVE_ALLOCA_H */
+#endif /* not __GNUC__ */
+
#include "pathmax.h"
#ifdef _POSIX_VERSION
#define PTR void *
#else
#define PTR char *
-#define const
#endif
-/* Since major is a function on SVR4, we can't use `ifndef major'. */
-#ifdef MAJOR_IN_MKDEV
-#include <sys/mkdev.h>
+/* Since major is a function on SVR4, we can't just use `ifndef major'. */
+#ifdef major /* Might be defined in sys/types.h. */
#define HAVE_MAJOR
#endif
-#ifdef MAJOR_IN_SYSMACROS
-#include <sys/sysmacros.h>
+
+#if !defined(HAVE_MAJOR) && defined(MAJOR_IN_MKDEV)
+#include <sys/mkdev.h>
#define HAVE_MAJOR
#endif
-#ifdef major /* Might be defined in sys/types.h. */
+
+#if !defined(HAVE_MAJOR) && defined(MAJOR_IN_SYSMACROS)
+#include <sys/sysmacros.h>
#define HAVE_MAJOR
#endif
#if !defined(__MSDOS__) && !defined(STDC_HEADERS)
#include <memory.h>
#endif
+#ifdef index
+#undef index
+#endif
+#ifdef rindex
+#undef rindex
+#endif
#define index strchr
#define rindex strrchr
#define bcopy(s, d, n) memcpy(d, s, n)
#define CMD_UPDATE 6 /* -u */
#define CMD_EXTRACT 7 /* -x */
#define CMD_DELETE 8 /* -D */
-#define CMD_VERSION 9 /* --version */
+#define CMD_VERSION 9 /* +version */
/* -[0-9][lmh] */
/* CMD_CAT -A */
TAR_EXTERN int f_exclude; /* -X */
TAR_EXTERN int f_compress; /* -z */
/* -Z */
-TAR_EXTERN int f_do_chown; /* --do-chown */
-TAR_EXTERN int f_totals; /* --totals */
-TAR_EXTERN int f_remove_files; /* --remove-files */
-TAR_EXTERN int f_ignore_failed_read; /* --ignore-failed-read */
-TAR_EXTERN int f_checkpoint; /* --checkpoint */
-TAR_EXTERN int f_show_omitted_dirs; /* --show-omitted-dirs */
-TAR_EXTERN char *f_volno_file; /* --volno-file */
+TAR_EXTERN int f_do_chown; /* +do-chown */
+TAR_EXTERN int f_totals; /* +totals */
+TAR_EXTERN int f_remove_files; /* +remove-files */
+TAR_EXTERN int f_ignore_failed_read; /* +ignore-failed-read */
+TAR_EXTERN int f_checkpoint; /* +checkpoint */
+TAR_EXTERN int f_show_omitted_dirs; /* +show-omitted-dirs */
+TAR_EXTERN char *f_volno_file; /* +volno-file */
/*
* We default to Unix Standard format rather than 4.2BSD tar format.
union record *endofrecs();
void anno();
-#if defined (HAVE_VPRINTF) && __STDC__
+#if !defined (VPRINTF_MISSING) && defined (__STDC__)
void msg(char *, ...);
void msg_perror(char *, ...);
#else