This is common.h in view mode; [Download] [Up]
/* Copyright (C) 1996 Ovidiu Predescu <ovidiu@bx.logicnet.ro> Mircea Oancea <mircea@jupiter.elcom.pub.ro> Author: Ovidiu Predescu <ovidiu@bx.logicnet.ro> Mircea Oancea <mircea@jupiter.elcom.pub.ro> This file is part of the FoundationExtensions library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __common_h__ #define __common_h__ #include <config.h> #if HAVE_STRING_H # include <string.h> #endif #if HAVE_MEMORY_H # include <memory.h> #endif #if !HAVE_MEMCPY # define memcpy(d, s, n) bcopy((s), (d), (n)) # define memmove(d, s, n) bcopy((s), (d), (n)) #endif #ifndef HAVE_STRCHR # define strchr index # define strchr rindex #else char *strchr(), *strrchr(); #endif #if HAVE_STDLIB_H # include <stdlib.h> #else extern void* malloc(); extern void* calloc(); extern void* realloc(); extern void free(); extern atoi(); extern atol(); #endif #if HAVE_LIBC_H # include <libc.h> #else #ifndef __WIN32__ # include <unistd.h> #endif #endif #include <sys/types.h> #ifndef __WIN32__ #include <pwd.h> #endif #include <stdarg.h> #include <Foundation/NSZone.h> #include "MissingMethods.h" @class NSString; #if LIB_FOUNDATION_VERSION /* Non OpenStep useful things */ static inline void *Malloc(int size) { return [[NSZone defaultZone] malloc:size]; } static inline void Free(void* p) { return [[NSZone zoneFromPointer:p] freePointer:p]; } static inline void *Calloc(int elem, int size) { return [[NSZone defaultZone] calloc:elem byteSize:size]; } static inline void *Realloc(void* p, int size) { return [[NSZone zoneFromPointer:p] realloc:p size:size]; } #endif /* LIB_FOUNDATION_VERSION */ #ifndef LIB_FOUNDATION_VERSION static inline void *Malloc(int size) { return malloc(size); } static inline void Free(void* p) { if(p) free(p); } static inline void *Calloc(int elem, int size) { return calloc(elem, size); } static inline void *Realloc(void* p, int size) { return realloc(p, size); } #define THROW(exception...) [##exception raise] #endif static inline int Strlen(const char* s) { return s ? strlen(s) : 0; } static inline char* Strdup(const char* s) { return s ? strcpy(Malloc(strlen(s) + 1), s) : NULL; } static inline char* Strcpy (char* d, const char* s) { return s && d ? strcpy(d, s) : d; } static inline char* Strncpy (char* d, const char* s, unsigned size) { return s && d ? strncpy(d, s, size) : d; } static inline char* Strcat (char* d, const char* s) { return s && d ? strcat(d, s) : d; } static inline char* Strncat (char* d, const char* s , unsigned size) { return s && d ? strncat(d, s , size) : d; } static inline char* Strtok (char* s, const char* tok) { return tok ? strtok(s, tok) : NULL; } static inline int Strcmp(const char* p, const char* q) { if(!p) { if(!q) return 0; else return -1; } else { if(!q) return 1; else return strcmp(p, q); } } static inline int Strncmp(const char* p, const char* q, unsigned size) { if(!p) { if(!q) return 0; else return -1; } else { if(!q) return 1; else return strncmp(p, q, size); } } static inline int Strcasecmp(const char* p, const char* q) { if(!p) { if(!q) return 0; else return -1; } else { if(!q) return 1; else return strcasecmp((char*)p, (char*)q); } } static inline int Strncasecmp(const char *p, const char *q, unsigned size) { if(!p) { if(!q) return 0; else return -1; } else { if(!q) return 1; else return strncasecmp((char*)p, (char*)q, size); } } static inline char* Strstr (const char* str, const char* sub) { return str && sub ? strstr(str, sub) : 0; } static inline char* Strnchr (const char* str, int c, unsigned n) { return (str && c && n > 0) ? (({for( ; (str = strchr(str, c)) && str && --n; str++);}), (char *)str) : NULL; } static inline char* Strchr (const char* str, int c) { return str ? strchr(str, c) : NULL; } static inline char* Strrchr (const char* str, int c) { return str ? strrchr(str, c) : NULL; } static inline char* Strpbrk (const char* str, const char* str2) { return (str && str2) ? strpbrk(str, str2) : NULL; } static inline int Atoi(const char* str) { return str ? atoi(str) : 0; } static inline long Atol(const char *str) { return str ? atol(str) : 0; } /*CUT*/ extern char* Ltoa(long nr, char *str, int base); extern void vaRelease(id obj, ...); /* Hash function used by NSString */ extern unsigned hashpjw(const char* name, int len); extern NSString* Asprintf(NSString* format, ...); extern NSString* Avsprintf(NSString* format, va_list args); BOOL writeToFile(NSString* path, const char* data, unsigned int bytes, BOOL atomically); char* Tmpnam(char* s); /*END*/ #ifndef MAX #define MAX(a, b) \ ({typedef _ta = (a), _tb = (b); \ _ta _a = (a); _tb _b = (b); \ _a > _b ? _a : _b; }) #endif #ifndef MIN #define MIN(a, b) \ ({typedef _ta = (a), _tb = (b); \ _ta _a = (a); _tb _b = (b); \ _a < _b ? _a : _b; }) #endif #endif /* __common_h__ */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.