summaryrefslogtreecommitdiffstats
path: root/contrib/sendmail/include/sendmail/cdefs.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/sendmail/include/sendmail/cdefs.h')
-rw-r--r--contrib/sendmail/include/sendmail/cdefs.h103
1 files changed, 103 insertions, 0 deletions
diff --git a/contrib/sendmail/include/sendmail/cdefs.h b/contrib/sendmail/include/sendmail/cdefs.h
new file mode 100644
index 0000000..bd7285bc
--- /dev/null
+++ b/contrib/sendmail/include/sendmail/cdefs.h
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 1991, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * By using this file, you agree to the terms and conditions set
+ * forth in the LICENSE file which can be found at the top level of
+ * the sendmail distribution.
+ *
+ * $Id: cdefs.h,v 8.5 1999/06/02 22:32:17 gshapiro Exp $
+ * @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+ */
+
+#ifndef _CDEFS_H_
+# define _CDEFS_H_
+
+# if defined(__cplusplus)
+# define __BEGIN_DECLS extern "C" {
+# define __END_DECLS };
+# else /* defined(__cplusplus) */
+# define __BEGIN_DECLS
+# define __END_DECLS
+# endif /* defined(__cplusplus) */
+
+/*
+ * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
+ * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
+ * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
+ * in between its arguments. __CONCAT can also concatenate double-quoted
+ * strings produced by the __STRING macro, but this only works with ANSI C.
+ */
+# if defined(__STDC__) || defined(__cplusplus)
+# define __P(protos) protos /* full-blown ANSI C */
+# ifndef __CONCAT
+# define __CONCAT(x,y) x ## y
+# endif /* ! __CONCAT */
+# define __STRING(x) #x
+
+# ifndef __const
+# define __const const /* define reserved names to standard */
+# endif /* ! __const */
+# define __signed signed
+# define __volatile volatile
+# if defined(__cplusplus)
+# define __inline inline /* convert to C++ keyword */
+# else /* defined(__cplusplus) */
+# ifndef __GNUC__
+# define __inline /* delete GCC keyword */
+# endif /* ! __GNUC__ */
+# endif /* defined(__cplusplus) */
+
+# else /* defined(__STDC__) || defined(__cplusplus) */
+# define __P(protos) () /* traditional C preprocessor */
+# ifndef __CONCAT
+# define __CONCAT(x,y) x/**/y
+# endif /* ! __CONCAT */
+# define __STRING(x) "x"
+
+# ifndef __GNUC__
+# define __const /* delete pseudo-ANSI C keywords */
+# define __inline
+# define __signed
+# define __volatile
+/*
+ * In non-ANSI C environments, new programs will want ANSI-only C keywords
+ * deleted from the program and old programs will want them left alone.
+ * When using a compiler other than gcc, programs using the ANSI C keywords
+ * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
+ * When using "gcc -traditional", we assume that this is the intent; if
+ * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
+ */
+# ifndef NO_ANSI_KEYWORDS
+# define const /* delete ANSI C keywords */
+# define inline
+# define signed
+# define volatile
+# endif /* ! NO_ANSI_KEYWORDS */
+# endif /* ! __GNUC__ */
+# endif /* defined(__STDC__) || defined(__cplusplus) */
+
+/*
+ * GCC1 and some versions of GCC2 declare dead (non-returning) and
+ * pure (no side effects) functions using "volatile" and "const";
+ * unfortunately, these then cause warnings under "-ansi -pedantic".
+ * GCC2 uses a new, peculiar __attribute__((attrs)) style. All of
+ * these work for GNU C++ (modulo a slight glitch in the C++ grammar
+ * in the distribution version of 2.5.5).
+ */
+# if !defined(__GNUC__) || __GNUC__ < 2 || \
+ (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+# define __attribute__(x) /* delete __attribute__ if non-gcc or gcc1 */
+# if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+# define __dead __volatile
+# define __pure __const
+# endif /* defined(__GNUC__) && !defined(__STRICT_ANSI__) */
+# endif /* !defined(__GNUC__) || __GNUC__ < 2 || \ */
+
+/* Delete pseudo-keywords wherever they are not available or needed. */
+# ifndef __dead
+# define __dead
+# define __pure
+# endif /* ! __dead */
+
+#endif /* ! _CDEFS_H_ */
OpenPOWER on IntegriCloud