This is pcn_c_hdr.h in view mode; [Download] [Up]
/* * PCN System * Author: Steve Tuecke * Argonne National Laboratory * * Please see the DISCLAIMER file in the top level directory of the * distribution regarding the provisions under which this software * is distributed. * * pcn_c_hdr.h * * A standard, portable C header file for getting string procedure * declaration, etc. */ #ifndef _PCN_INCLUDE_PCN_C_HDR_H #define _PCN_INCLUDE_PCN_C_HDR_H #ifdef s2010 #define PCN_DONT_INCLUDE_STRING #define PCN_DONT_INCLUDE_ANSI extern int strlen(); extern char *strcpy(); extern char *strncpy(); extern char *strcat(); extern char *strncat(); extern char *strchr(); extern char *strrchr(); extern void *memcpy(); extern void *memset(); #endif /* s2010 */ #ifndef PCN_DONT_INCLUDE_STRING #include <string.h> #endif #ifdef PCN_INCLUDE_STRINGS #include <strings.h> #endif #ifndef PCN_DONT_INCLUDE_ANSI #include <stddef.h> #include <stdlib.h> #else /* !PCN_DONT_INCLUDE_ANSI */ #ifndef atof extern double atof(); #endif #if defined(s2010) #define MALLOC_RETURN char #else #define MALLOC_RETURN void #endif extern void free(); extern MALLOC_RETURN *malloc(); extern MALLOC_RETURN *realloc(); #ifdef symmetry #include <sys/types.h> #ifndef NULL #define NULL ((void *) 0) #endif #endif /* symmetry */ #endif /* !PCN_DONT_INCLUDE_ANSI */ #ifdef PCN_SYSV #include <stdio.h> extern FILE *fdopen(); #endif /* PCN_SYSV */ /* * Some procedure defines to provide for portability... */ #ifdef PCN_STRCHR_TO_INDEX #define strchr(S,C) index(S,C) #define strrchr(S,C) rindex(S,C) #endif #ifdef PCN_MEMCPY_TO_BCOPY #define memcpy(Dest,Src,Length) bcopy(Src,Dest,Length) #endif #ifdef PCN_NO_MEMMOVE #define memmove(Dest,Src,Length) \ { \ char *__Src = ((char *) (Src)); \ char *__Dest = ((char *) (Dest)); \ char *__EndSrc = (__Src + (Length)); \ char *__EndDest = (__Dest + (Length)); \ if ( (__Src < __Dest) && (__Dest < __EndSrc) ) \ { \ /* Overlapping, with __Dest > __Src, so copy from end */ \ while (__EndSrc > __Src) \ { \ *(--__EndDest) = *(--__EndSrc); \ } \ } \ else if ( (__Dest < __Src) && (__Src < __EndDest) ) \ { \ /* Overlapping, with __Dest < __Src, so copy from beginning */ \ while (__Src < __EndSrc) \ { \ *(__Dest++) = *(__Src++); \ } \ } \ else if ( __Src != __Dest ) \ { \ /* Non-overlapping (and not the same), so memcpy() can be trusted */ \ memcpy(Dest,Src,Length); \ } \ } #endif /* PCN_NO_MEMMOVE */ #ifdef PCN_USE_BZERO #define ZeroOutMemory(Where,Size) bzero(Where,Size) #else #define ZeroOutMemory(Where,Size) memset(Where,0,Size) #endif #ifdef PCN_GETWD_TO_GETCWD extern char *getcwd(); #define getwd(S) getcwd(S,MAX_PATH_LENGTH) #else extern char *getwd(); #endif #ifdef PCN_REMOVE_TO_UNLINK #define remove(Filename) unlink(Filename) #endif #ifdef PCN_RENAME_TO_LINK #define rename(OldName, NewName) _p_rename_to_link(OldName, NewName) #endif #endif /* _PCN_INCLUDE_PCN_C_HDR_H */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.