Annotation of coherent/g/usr/lib/uucp/tay104/uucp.h, revision 1.1

1.1     ! root        1: /* uucp.h
        !             2:    Header file for the UUCP package.
        !             3: 
        !             4:    Copyright (C) 1991, 1992 Ian Lance Taylor
        !             5: 
        !             6:    This file is part of the Taylor UUCP package.
        !             7: 
        !             8:    This program is free software; you can redistribute it and/or
        !             9:    modify it under the terms of the GNU General Public License as
        !            10:    published by the Free Software Foundation; either version 2 of the
        !            11:    License, or (at your option) any later version.
        !            12: 
        !            13:    This program is distributed in the hope that it will be useful, but
        !            14:    WITHOUT ANY WARRANTY; without even the implied warranty of
        !            15:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        !            16:    General Public License for more details.
        !            17: 
        !            18:    You should have received a copy of the GNU General Public License
        !            19:    along with this program; if not, write to the Free Software
        !            20:    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
        !            21: 
        !            22:    The author of the program may be contacted at [email protected] or
        !            23:    c/o Infinity Development Systems, P.O. Box 520, Waltham, MA 02254.
        !            24:    */
        !            25: 
        !            26: /* Get the system configuration parameters.  */
        !            27: #include "conf.h"
        !            28: #include "policy.h"
        !            29: 
        !            30: /* Get a definition for ANSI_C if we weren't given one.  */
        !            31: #ifndef ANSI_C
        !            32: #ifdef __STDC__
        !            33: #define ANSI_C 1
        !            34: #else /* ! defined (__STDC__) */
        !            35: #define ANSI_C 0
        !            36: #endif /* ! defined (__STDC__) */
        !            37: #endif /* ! defined (ANSI_C) */
        !            38: 
        !            39: /* Pass this definition into uuconf.h.  */
        !            40: #define UUCONF_ANSI_C ANSI_C
        !            41: 
        !            42: /* We always include some standard header files.  We need <signal.h>
        !            43:    to define sig_atomic_t.  */
        !            44: #if HAVE_STDDEF_H
        !            45: #include <stddef.h>
        !            46: #endif
        !            47: #include <stdio.h>
        !            48: #include <signal.h>
        !            49: 
        !            50: /* On some systems we need <sys/types.h> to get sig_atomic_t or
        !            51:    size_t or time_t.  */
        !            52: #if ! HAVE_SIG_ATOMIC_T_IN_SIGNAL_H && HAVE_SIG_ATOMIC_T_IN_TYPES_H
        !            53: #define USE_TYPES_H 1
        !            54: #else
        !            55: #if ! HAVE_SIZE_T_IN_STDDEF_H && HAVE_SIZE_T_IN_TYPES_H
        !            56: #define USE_TYPES_H 1
        !            57: #else
        !            58: #if ! HAVE_TIME_T_IN_TIME_H && HAVE_TIME_T_IN_TYPES_H
        !            59: #define USE_TYPES_H 1
        !            60: #endif
        !            61: #endif
        !            62: #endif
        !            63: 
        !            64: #ifndef USE_TYPES_H
        !            65: #define USE_TYPES_H 0
        !            66: #endif
        !            67: 
        !            68: #if USE_TYPES_H
        !            69: #include <sys/types.h>
        !            70: #endif
        !            71: 
        !            72: /* Make sure we have sig_atomic_t.  */
        !            73: #if ! HAVE_SIG_ATOMIC_T_IN_SIGNAL_H && ! HAVE_SIG_ATOMIC_T_IN_TYPES_H
        !            74: #ifndef SIG_ATOMIC_T
        !            75: /* There is no portable definition for sig_atomic_t.  */
        !            76: #define SIG_ATOMIC_T char
        !            77: #endif /* ! defined (SIG_ATOMIC_T) */
        !            78: typedef SIG_ATOMIC_T sig_atomic_t;
        !            79: #endif /* ! HAVE_SIG_ATOMIC_T_IN_SIGNAL_H && ! HAVE_SIG_ATOMIC_T_IN_TYPES_H */
        !            80: 
        !            81: /* Make sure we have size_t.  We use int as the default because the
        !            82:    main use of this type is to provide an argument to malloc and
        !            83:    realloc.  On a system which does not define size_t, int is
        !            84:    certainly the correct type to use.  */
        !            85: #if ! HAVE_SIZE_T_IN_STDDEF_H && ! HAVE_SIZE_T_IN_TYPES_H
        !            86: #ifndef SIZE_T
        !            87: #define SIZE_T unsigned
        !            88: #endif /* ! defined (SIZE_T) */
        !            89: typedef SIZE_T size_t;
        !            90: #endif /* ! HAVE_SIZE_T_IN_STDDEF_H && ! HAVE_SIZE_T_IN_TYPES_H */
        !            91: 
        !            92: /* Make sure we have time_t.  We use long as the default.  We don't
        !            93:    bother to let conf.h override this, since on a system which doesn't
        !            94:    define time_t long must be correct.  */
        !            95: #if ! HAVE_TIME_T_IN_TIME_H && ! HAVE_TIME_T_IN_TYPES_H
        !            96: typedef long time_t;
        !            97: #endif
        !            98: 
        !            99: /* Set up some definitions for both ANSI C and Classic C.
        !           100: 
        !           101:    P() -- for function prototypes (e.g. extern int foo P((int)) ).
        !           102:    pointer -- for a generic pointer (i.e. void *).
        !           103:    constpointer -- for a generic pointer to constant data.
        !           104:    BUCHAR -- to convert a character to unsigned.  */
        !           105: #if ANSI_C
        !           106: #if ! HAVE_VOID || ! HAVE_UNSIGNED_CHAR
        !           107:  #error ANSI C compiler without void or unsigned char
        !           108: #endif
        !           109: #define P(x) x
        !           110: typedef void *pointer;
        !           111: typedef const void *constpointer;
        !           112: #define BUCHAR(b) ((unsigned char) (b))
        !           113: #else /* ! ANSI_C */
        !           114: /* Handle uses of const, volatile and void in Classic C.  */
        !           115: #define const
        !           116: #define volatile
        !           117: #if ! HAVE_VOID
        !           118: #define void int
        !           119: #endif
        !           120: #define P(x) ()
        !           121: typedef char *pointer;
        !           122: typedef const char *constpointer;
        !           123: #if HAVE_UNSIGNED_CHAR
        !           124: #define BUCHAR(b) ((unsigned char) (b))
        !           125: #else /* ! HAVE_UNSIGNED_CHAR */
        !           126: /* This should work on most systems, but not necessarily all.  */
        !           127: #define BUCHAR(b) ((b) & 0xff)
        !           128: #endif /* ! HAVE_UNSIGNED_CHAR */
        !           129: #endif /* ! ANSI_C */
        !           130: 
        !           131: /* Make sure we have a definition for offsetof.  */
        !           132: #ifndef offsetof
        !           133: #define offsetof(type, field) \
        !           134:   ((size_t) ((char *) &(((type *) 0)->field) - (char *) (type *) 0))
        !           135: #endif
        !           136: 
        !           137: /* Only use inline with gcc.  */
        !           138: #ifndef __GNUC__
        !           139: #define __inline__
        !           140: #endif
        !           141: 
        !           142: /* Get the string functions, which are used throughout the code.  */
        !           143: #if HAVE_MEMORY_H
        !           144: #include <memory.h>
        !           145: #else
        !           146: /* We really need a definition for memchr, and this should not
        !           147:    conflict with anything in <string.h>.  I hope.  */
        !           148: extern pointer memchr ();
        !           149: #endif
        !           150: 
        !           151: #if HAVE_STRING_H
        !           152: #include <string.h>
        !           153: #else /* ! HAVE_STRING_H */
        !           154: #if HAVE_STRINGS_H
        !           155: #include <strings.h>
        !           156: #else /* ! HAVE_STRINGS_H */
        !           157: extern char *strcpy (), *strncpy (), *strchr (), *strrchr (), *strtok ();
        !           158: extern char *strcat (), *strerror (), *strstr ();
        !           159: extern size_t strlen (), strspn (), strcspn ();
        !           160: #if ! HAVE_MEMORY_H
        !           161: extern pointer memcpy (), memchr ();
        !           162: #endif /* ! HAVE_MEMORY_H */
        !           163: #endif /* ! HAVE_STRINGS_H */
        !           164: #endif /* ! HAVE_STRING_H */
        !           165: 
        !           166: /* Get what we need from <stdlib.h>.  */
        !           167: #if HAVE_STDLIB_H
        !           168: #include <stdlib.h>
        !           169: #else /* ! HAVE_STDLIB_H */
        !           170: extern pointer malloc (), realloc (), bsearch ();
        !           171: extern long strtol ();
        !           172: extern char *getenv ();
        !           173: #endif /* ! HAVE_STDLIB_H */
        !           174: 
        !           175: /* NeXT uses <libc.h> to declare a bunch of functions.  */
        !           176: #if HAVE_LIBC_H
        !           177: #include <libc.h>
        !           178: #endif
        !           179: 
        !           180: /* Make sure we have the EXIT_ macros.  */
        !           181: #ifndef EXIT_SUCCESS
        !           182: #define EXIT_SUCCESS (0)
        !           183: #endif
        !           184: #ifndef EXIT_FAILURE
        !           185: #define EXIT_FAILURE (1)
        !           186: #endif
        !           187: 
        !           188: /* If we need to declare errno, do so.  I don't want to always do
        !           189:    this, because some system might theoretically have a different
        !           190:    declaration for errno.  On a POSIX system this is sure to work.  */
        !           191: #if ! HAVE_ERRNO_DECLARATION
        !           192: extern int errno;
        !           193: #endif
        !           194: 
        !           195: /* If the system has the socket call, guess that we can compile the
        !           196:    TCP code.  */
        !           197: #define HAVE_TCP HAVE_SOCKET
        !           198: 
        !           199: /* If the system has the t_open call, guess that we can compile the
        !           200:    TLI code.  */
        !           201: #define HAVE_TLI HAVE_T_OPEN
        !           202: 
        !           203: /* The boolean type holds boolean values.  */
        !           204: typedef int boolean;
        !           205: #undef TRUE
        !           206: #undef FALSE
        !           207: #define TRUE (1)
        !           208: #define FALSE (0)
        !           209: 
        !           210: /* The openfile_t type holds an open file.  This depends on whether we
        !           211:    are using stdio or not.  */
        !           212: #if USE_STDIO
        !           213: 
        !           214: typedef FILE *openfile_t;
        !           215: #define EFILECLOSED ((FILE *) NULL)
        !           216: #define ffileisopen(e) ((e) != NULL)
        !           217: #define ffileeof(e) feof (e)
        !           218: #define cfileread(e, z, c) fread ((z), 1, (c), (e))
        !           219: #define ffilereaderror(e, c) ferror (e)
        !           220: #define cfilewrite(e, z, c) fwrite ((z), 1, (c), (e))
        !           221: #ifdef SEEK_SET
        !           222: #define ffileseek(e, i) (fseek ((e), (long) (i), SEEK_SET) == 0)
        !           223: #define ffilerewind(e) (fseek ((e), (long) 0, SEEK_SET) == 0)
        !           224: #else
        !           225: #define ffileseek(e, i) (fseek ((e), (long) (i), 0) == 0)
        !           226: #define ffilerewind(e) (fseek ((e), (long) 0, 0) == 0)
        !           227: #endif
        !           228: #define ffileclose(e) (fclose (e) == 0)
        !           229: 
        !           230: #else /* ! USE_STDIO */
        !           231: 
        !           232: #if HAVE_UNISTD_H
        !           233: #include <unistd.h>
        !           234: #endif
        !           235: 
        !           236: typedef int openfile_t;
        !           237: #define EFILECLOSED (-1)
        !           238: #define ffileisopen(e) ((e) >= 0)
        !           239: #define ffileeof(e) (FALSE)
        !           240: #define cfileread(e, z, c) read ((e), (z), (c))
        !           241: #define ffilereaderror(e, c) ((c) < 0)
        !           242: #define cfilewrite(e, z, c) write ((e), (z), (c))
        !           243: #ifdef SEEK_SET
        !           244: #define ffileseek(e, i) (lseek ((e), (long) i, SEEK_SET) >= 0)
        !           245: #define ffilerewind(e) (lseek ((e), (long) 0, SEEK_SET) >= 0)
        !           246: #else
        !           247: #define ffileseek(e, i) (lseek ((e), (long) i, 0) >= 0)
        !           248: #define ffilerewind(e) (lseek ((e), (long) 0, 0) >= 0)
        !           249: #endif
        !           250: #define ffileclose(e) (close (e) >= 0)
        !           251: 
        !           252: #endif /* ! USE_STDIO */
        !           253: 
        !           254: /* A prototype for main to avoid warnings from gcc 2.0
        !           255:    -Wmissing-prototype option.  */
        !           256: extern int main P((int argc, char **argv));
        !           257: 
        !           258: /* Some standard routines which we only define if they are not present
        !           259:    on the system we are compiling on.  */
        !           260: 
        !           261: #if ! HAVE_GETLINE
        !           262: /* Read a line from a file.  */
        !           263: extern int getline P((char **pz, size_t *pc, FILE *e));
        !           264: #endif
        !           265: 
        !           266: #if ! HAVE_REMOVE
        !           267: /* Erase a file.  */
        !           268: #undef remove
        !           269: extern int remove P((const char *zfile));
        !           270: #endif
        !           271: 
        !           272: #if ! HAVE_STRDUP
        !           273: /* Copy a string into memory.  */
        !           274: extern char *strdup P((const char *z));
        !           275: #endif
        !           276: 
        !           277: #if ! HAVE_STRSTR
        !           278: /* Look for one string within another.  */
        !           279: extern char *strstr P((const char *zouter, const char *zinner));
        !           280: #endif
        !           281: 
        !           282: #if ! HAVE_STRCASECMP
        !           283: #if HAVE_STRICMP
        !           284: #define strcasecmp stricmp
        !           285: #else /* ! HAVE_STRICMP */
        !           286: /* Rename strcasecmp to avoid ANSI C name space.  */
        !           287: #define strcasecmp xstrcasecmp
        !           288: extern int strcasecmp P((const char *z1, const char *z2));
        !           289: #endif /* ! HAVE_STRICMP */
        !           290: #endif /* ! HAVE_STRCASECMP */
        !           291: 
        !           292: #if ! HAVE_STRNCASECMP
        !           293: #if HAVE_STRNICMP
        !           294: #define strncasecmp strnicmp
        !           295: #else /* ! HAVE_STRNICMP */
        !           296: /* Rename strncasecmp to avoid ANSI C name space.  */
        !           297: #define strncasecmp xstrncasecmp
        !           298: extern int strncasecmp P((const char *z1, const char *z2, size_t clen));
        !           299: #endif /* ! HAVE_STRNICMP */
        !           300: #endif /* ! HAVE_STRNCASECMP */
        !           301: 
        !           302: #if ! HAVE_STRERROR
        !           303: /* Get a string corresponding to an error message.  */
        !           304: #undef strerror
        !           305: extern char *strerror P((int ierr));
        !           306: #endif
        !           307: 
        !           308: /* Get the appropriate definitions for memcmp, memcpy, memchr and
        !           309:    bzero.  */
        !           310: #if ! HAVE_MEMCMP
        !           311: #if HAVE_BCMP
        !           312: #define memcmp(p1, p2, c) bcmp ((p1), (p2), (c))
        !           313: #else /* ! HAVE_BCMP */
        !           314: extern int memcmp P((constpointer p1, constpointer p2, size_t c));
        !           315: #endif /* ! HAVE_BCMP */
        !           316: #endif /* ! HAVE_MEMCMP */
        !           317: 
        !           318: #if ! HAVE_MEMCPY
        !           319: #if HAVE_BCOPY
        !           320: #define memcpy(pto, pfrom, c) bcopy ((pfrom), (pto), (c))
        !           321: #else /* ! HAVE_BCOPY */
        !           322: extern pointer memcpy P((pointer pto, constpointer pfrom, size_t c));
        !           323: #endif /* ! HAVE_BCOPY */
        !           324: #endif /* ! HAVE_MEMCPY */
        !           325: 
        !           326: #if ! HAVE_MEMCHR
        !           327: extern pointer memchr P((constpointer p, int b, size_t c));
        !           328: #endif
        !           329: 
        !           330: #if ! HAVE_BZERO
        !           331: #if HAVE_MEMSET
        !           332: #define bzero(p, c) memset ((p), 0, (c))
        !           333: #else /* ! HAVE_MEMSET */
        !           334: extern void bzero P((pointer p, int c));
        !           335: #endif /* ! HAVE_MEMSET */
        !           336: #endif /* ! HAVE_BZERO */
        !           337: 
        !           338: /* Look up a character in a string.  */
        !           339: #if ! HAVE_STRCHR
        !           340: #if HAVE_INDEX
        !           341: #define strchr index
        !           342: extern char *index ();
        !           343: #else /* ! HAVE_INDEX */
        !           344: extern char *strchr P((const char *z, int b));
        !           345: #endif /* ! HAVE_INDEX */
        !           346: #endif /* ! HAVE_STRCHR */
        !           347: 
        !           348: #if ! HAVE_STRRCHR
        !           349: #if HAVE_RINDEX
        !           350: #define strrchr rindex
        !           351: extern char *rindex ();
        !           352: #else /* ! HAVE_RINDEX */
        !           353: extern char *strrchr P((const char *z, int b));
        !           354: #endif /* ! HAVE_RINDEX */
        !           355: #endif /* ! HAVE_STRRCHR */
        !           356: 
        !           357: /* Turn a string into a long integer.  */
        !           358: #if ! HAVE_STRTOL
        !           359: extern long strtol P((const char *, char **, int));
        !           360: #endif
        !           361: 
        !           362: /* Lookup a key in a sorted array.  */
        !           363: #if ! HAVE_BSEARCH
        !           364: extern pointer bsearch P((constpointer pkey, constpointer parray,
        !           365:                          size_t celes, size_t cbytes,
        !           366:                          int (*pficmp) P((constpointer, constpointer))));
        !           367: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.