Home | History | Annotate | Download | only in zic
      1 /*
      2  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
      3  * Use is subject to license terms.
      4  */
      5 
      6 #ifndef	_PRIVATE_H
      7 #define	_PRIVATE_H
      8 
      9 #pragma ident	"%Z%%M%	%I%	%E% SMI"
     10 
     11 /*
     12  * This file is in the public domain, so clarified as of
     13  * June 5, 1996 by Arthur David Olson (arthur_david_olson (at) nih.gov).
     14  */
     15 
     16 /*
     17  * This header is for use ONLY with the time conversion code.
     18  * There is no guarantee that it will remain unchanged,
     19  * or that it will remain at all.
     20  * Do NOT copy it to any system include directory.
     21  * Thank you!
     22  */
     23 
     24 #ifdef	__cplusplus
     25 extern "C" {
     26 #endif
     27 
     28 /*
     29  * Nested includes
     30  */
     31 #include <sys/types.h>	/* for time_t */
     32 #include <stdio.h>
     33 #include <errno.h>
     34 #include <string.h>
     35 #include <limits.h>	/* for CHAR_BIT */
     36 #include <time.h>
     37 #include <stdlib.h>
     38 #include <libintl.h>	/* for F_OK and R_OK */
     39 #include <unistd.h>
     40 #include <sys/wait.h>
     41 
     42 /* static char	privatehid[] = "@(#)private.h	7.55"; */
     43 
     44 #define	GRANDPARENTED	"Local time zone must be set--see zic manual page"
     45 
     46 /* Unlike <ctype.h>'s isdigit, this also works if c < 0 | c > UCHAR_MAX.  */
     47 #define	is_digit(c)		((unsigned)(c) - '0' <= 9)
     48 
     49 /*
     50  * Private function declarations.
     51  */
     52 char 	*icatalloc(char *old, const char *new);
     53 char 	*icpyalloc(const char *string);
     54 char 	*imalloc(int n);
     55 void 	*irealloc(void *pointer, int size);
     56 void	ifree(char *pointer);
     57 const char	*scheck(const char *string, const char *format);
     58 
     59 /*
     60  * Finally, some convenience items.
     61  */
     62 
     63 #ifndef TRUE
     64 #define	TRUE	1
     65 #endif /* !defined TRUE */
     66 
     67 #ifndef FALSE
     68 #define	FALSE	0
     69 #endif /* !defined FALSE */
     70 
     71 #ifndef TYPE_BIT
     72 #define	TYPE_BIT(type)	(sizeof (type) * CHAR_BIT)
     73 #endif /* !defined TYPE_BIT */
     74 
     75 #ifndef TYPE_SIGNED
     76 #define	TYPE_SIGNED(type) (((type) -1) < 0)
     77 #endif /* !defined TYPE_SIGNED */
     78 
     79 /*
     80  * INITIALIZE(x)
     81  */
     82 
     83 #ifndef INITIALIZE
     84 #ifdef lint
     85 #define	INITIALIZE(x)	((x) = 0)
     86 #endif /* defined lint */
     87 #ifndef lint
     88 #define	INITIALIZE(x)
     89 #endif /* !defined lint */
     90 #endif /* !defined INITIALIZE */
     91 
     92 #ifdef	__cplusplus
     93 }
     94 #endif
     95 
     96 #endif	/* _PRIVATE_H */
     97