]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/portab/portab.h
private strndup() implementation in case libc does not provide it
[ngircd-alex.git] / src / portab / portab.h
index 83e11313d4ae3aa1ff555cd40ecf6eee1d40b514..a968a3b9bd924fbbe6e04eee47d1dc5f4f925e21 100644 (file)
@@ -1,22 +1,21 @@
 /*
  * ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2005 Alexander Barton (alex@barton.de)
+ * Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  * Please read the file COPYING, README and AUTHORS for more information.
- *
- * $Id: portab.h,v 1.22 2005/07/31 20:13:11 alex Exp $
- *
- * Portability functions and declarations (header for libngbportab).
  */
 
-
 #ifndef __PORTAB__
 #define __PORTAB__
 
+/**
+ * @file
+ * Portability functions and declarations (header)
+ */
 
 #include "config.h"
 
@@ -48,7 +47,7 @@
 
 /* compiler features */
 
-#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7))
+#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 7))
 # define PUNUSED(x) __attribute__ ((unused)) x
 # define UNUSED     __attribute__ ((unused))
 #else
@@ -99,13 +98,20 @@ typedef unsigned char bool;
 #endif
 #endif
 
+#ifdef NeXT
+#define S_IRUSR 0000400                /* read permission, owner */
+#define S_IWUSR 0000200                /* write permission, owner */
+#define S_IRGRP 0000040                /* read permission, group */
+#define S_IROTH 0000004                /* read permission, other */
+#define ssize_t int
+#endif
+
 #undef GLOBAL
 #define GLOBAL
 
 
 /* SPLint */
 
-
 #ifdef S_SPLINT_S
 #include "splint.h"
 #endif
@@ -113,18 +119,21 @@ typedef unsigned char bool;
 
 /* target constants  */
 
-#ifndef TARGET_OS
-#define TARGET_OS "unknown"
+#ifndef HOST_OS
+#define HOST_OS "unknown"
 #endif
 
-#ifndef TARGET_CPU
-#define TARGET_CPU "unknown"
+#ifndef HOST_CPU
+#define HOST_CPU "unknown"
 #endif
 
-#ifndef TARGET_VENDOR
-#define TARGET_VENDOR "unknown"
+#ifndef HOST_VENDOR
+#define HOST_VENDOR "unknown"
 #endif
 
+#ifdef __HAIKU__
+#define SINGLE_USER_OS
+#endif
 
 /* configure options */
 
@@ -148,6 +157,10 @@ extern size_t strlcpy PARAMS(( char *dst, const char *src, size_t size ));
 extern char * strdup PARAMS(( const char *s ));
 #endif
 
+#ifndef HAVE_STRNDUP
+extern char * strndup PARAMS((const char *s, size_t maxlen));
+#endif
+
 #ifndef HAVE_STRTOK_R
 extern char * strtok_r PARAMS((char *str, const char *delim, char **saveptr));
 #endif
@@ -157,6 +170,10 @@ extern char * strtok_r PARAMS((char *str, const char *delim, char **saveptr));
 extern int vsnprintf PARAMS(( char *str, size_t count, const char *fmt, va_list args ));
 #endif
 
+#ifndef HAVE_GAI_STRERROR
+#define gai_strerror(r) "unknown error"
+#endif
+
 #ifndef PACKAGE_NAME
 #define PACKAGE_NAME PACKAGE
 #endif