[BACK]Return to progs.priv.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / tic

Annotation of src/usr.bin/tic/progs.priv.h, Revision 1.10

1.10    ! deraadt     1: /* $OpenBSD: progs.priv.h,v 1.9 2010/01/12 23:22:14 nicm Exp $ */
1.1       millert     2:
                      3: /****************************************************************************
1.9       nicm        4:  * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
1.1       millert     5:  *                                                                          *
                      6:  * Permission is hereby granted, free of charge, to any person obtaining a  *
                      7:  * copy of this software and associated documentation files (the            *
                      8:  * "Software"), to deal in the Software without restriction, including      *
                      9:  * without limitation the rights to use, copy, modify, merge, publish,      *
                     10:  * distribute, distribute with modifications, sublicense, and/or sell       *
                     11:  * copies of the Software, and to permit persons to whom the Software is    *
                     12:  * furnished to do so, subject to the following conditions:                 *
                     13:  *                                                                          *
                     14:  * The above copyright notice and this permission notice shall be included  *
                     15:  * in all copies or substantial portions of the Software.                   *
                     16:  *                                                                          *
                     17:  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
                     18:  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
                     19:  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
                     20:  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
                     21:  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
                     22:  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
                     23:  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
                     24:  *                                                                          *
                     25:  * Except as contained in this notice, the name(s) of the above copyright   *
                     26:  * holders shall not be used in advertising or otherwise to promote the     *
                     27:  * sale, use or other dealings in this Software without prior written       *
                     28:  * authorization.                                                           *
                     29:  ****************************************************************************/
                     30:
                     31: /****************************************************************************
1.9       nicm       32:  *  Author: Thomas E. Dickey                    1997-on                     *
1.1       millert    33:  ****************************************************************************/
                     34: /*
1.10    ! deraadt    35:  * $Id: progs.priv.h,v 1.9 2010/01/12 23:22:14 nicm Exp $
1.1       millert    36:  *
                     37:  *     progs.priv.h
                     38:  *
                     39:  *     Header file for curses utility programs
                     40:  */
                     41:
                     42: #include <ncurses_cfg.h>
                     43:
1.7       millert    44: #if USE_RCS_IDS
1.1       millert    45: #define MODULE_ID(id) static const char Ident[] = id;
                     46: #else
                     47: #define MODULE_ID(id) /*nothing*/
                     48: #endif
                     49:
                     50: #include <stdlib.h>
                     51: #include <ctype.h>
                     52: #include <string.h>
                     53: #include <sys/types.h>
                     54:
                     55: #if HAVE_UNISTD_H
                     56: #include <unistd.h>
                     57: #endif
                     58:
                     59: #if HAVE_SYS_BSDTYPES_H
                     60: #include <sys/bsdtypes.h>      /* needed for ISC */
                     61: #endif
                     62:
                     63: #if HAVE_LIMITS_H
                     64: # include <limits.h>
                     65: #elif HAVE_SYS_PARAM_H
1.10    ! deraadt    66: # include <sys/param.h>                /* only if no limits.h */
1.1       millert    67: #endif
                     68:
                     69: #if HAVE_DIRENT_H
                     70: # include <dirent.h>
                     71: # define NAMLEN(dirent) strlen((dirent)->d_name)
1.9       nicm       72: # if defined(_FILE_OFFSET_BITS) && defined(HAVE_STRUCT_DIRENT64)
                     73: #  if !defined(_LP64) && (_FILE_OFFSET_BITS == 64)
                     74: #   define     DIRENT  struct dirent64
                     75: #  else
                     76: #   define     DIRENT  struct dirent
                     77: #  endif
                     78: # else
                     79: #  define      DIRENT  struct dirent
                     80: # endif
1.1       millert    81: #else
1.9       nicm       82: # define DIRENT struct direct
1.1       millert    83: # define NAMLEN(dirent) (dirent)->d_namlen
                     84: # if HAVE_SYS_NDIR_H
                     85: #  include <sys/ndir.h>
                     86: # endif
                     87: # if HAVE_SYS_DIR_H
                     88: #  include <sys/dir.h>
                     89: # endif
                     90: # if HAVE_NDIR_H
                     91: #  include <ndir.h>
                     92: # endif
                     93: #endif
                     94:
1.9       nicm       95: #include <assert.h>
1.1       millert    96: #include <errno.h>
                     97:
                     98: #if DECL_ERRNO
                     99: extern int errno;
                    100: #endif
                    101:
                    102: #if HAVE_GETOPT_H
                    103: #include <getopt.h>
                    104: #else
                    105: /* 'getopt()' may be prototyped in <stdlib.h>, but declaring its
                    106:  * variables doesn't hurt.
                    107:  */
                    108: extern char *optarg;
                    109: extern int optind;
                    110: #endif /* HAVE_GETOPT_H */
                    111:
                    112: #include <curses.h>
1.3       millert   113: #include <term_entry.h>
1.1       millert   114: #include <tic.h>
1.9       nicm      115: #include <nc_tparm.h>
                    116:
1.1       millert   117: #include <nc_alloc.h>
1.9       nicm      118: #if HAVE_NC_FREEALL
                    119: #undef ExitProgram
                    120: #ifdef USE_LIBTINFO
                    121: #define ExitProgram(code) _nc_free_tinfo(code)
                    122: #else
                    123: #define ExitProgram(code) _nc_free_tic(code)
                    124: #endif
                    125: #endif
1.1       millert   126:
                    127: /* usually in <unistd.h> */
                    128: #ifndef STDOUT_FILENO
                    129: #define STDOUT_FILENO 1
                    130: #endif
                    131:
                    132: #ifndef STDERR_FILENO
                    133: #define STDERR_FILENO 2
                    134: #endif
                    135:
                    136: #ifndef EXIT_SUCCESS
                    137: #define EXIT_SUCCESS 0
                    138: #endif
                    139:
                    140: #ifndef EXIT_FAILURE
                    141: #define EXIT_FAILURE 1
1.4       millert   142: #endif
                    143:
                    144: #ifndef R_OK
                    145: #define        R_OK    4               /* Test for readable.  */
                    146: #endif
                    147:
                    148: #ifndef W_OK
                    149: #define        W_OK    2               /* Test for writable.  */
                    150: #endif
                    151:
                    152: #ifndef X_OK
                    153: #define        X_OK    1               /* Test for executable.  */
1.1       millert   154: #endif
                    155:
                    156: #ifndef F_OK
                    157: #define        F_OK    0               /* Test for existence.  */
                    158: #endif
                    159:
                    160: /* usually in <unistd.h> */
                    161: #ifndef STDOUT_FILENO
                    162: #define STDOUT_FILENO 1
                    163: #endif
                    164:
                    165: #ifndef STDERR_FILENO
                    166: #define STDERR_FILENO 2
                    167: #endif
                    168:
                    169: /* may be in limits.h, included from various places */
                    170: #ifndef PATH_MAX
                    171: # if defined(_POSIX_PATH_MAX)
                    172: #  define PATH_MAX _POSIX_PATH_MAX
                    173: # elif defined(MAXPATHLEN)
                    174: #  define PATH_MAX MAXPATHLEN
                    175: # else
                    176: #  define PATH_MAX 255 /* the Posix minimum pathsize */
                    177: # endif
                    178: #endif
                    179:
                    180: /* We use isascii only to guard against use of 7-bit ctype tables in the
                    181:  * isprint test in infocmp.
                    182:  */
1.7       millert   183: #if !HAVE_ISASCII
1.1       millert   184: # undef isascii
                    185: # if ('z'-'a' == 25) && ('z' < 127) && ('Z'-'A' == 25) && ('Z' < 127) && ('9' < 127)
1.9       nicm      186: #  define isascii(c) (UChar(c) <= 127)
1.1       millert   187: # else
                    188: #  define isascii(c) 1 /* not really ascii anyway */
                    189: # endif
                    190: #endif
1.8       millert   191:
1.9       nicm      192: #define UChar(c)    ((unsigned char)(c))
1.7       millert   193:
                    194: #define SIZEOF(v) (sizeof(v)/sizeof(v[0]))