X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=progs%2Fprogs.priv.h;h=786fe558506e917fd3fd9ec655a71b9940f5980e;hp=854ff30b987c07a1701809af363cf378b1dbf4d5;hb=89ca7974b018d46049b6eaf1b7f17784e3a001d1;hpb=3a9b6a3bf0269231bef7de74757a910dedd04e0c diff --git a/progs/progs.priv.h b/progs/progs.priv.h index 854ff30b..786fe558 100644 --- a/progs/progs.priv.h +++ b/progs/progs.priv.h @@ -1,51 +1,60 @@ - -/*************************************************************************** -* COPYRIGHT NOTICE * -**************************************************************************** -* ncurses is copyright (C) 1992-1995 * -* Zeyd M. Ben-Halim * -* zmbenhal@netcom.com * -* Eric S. Raymond * -* esr@snark.thyrsus.com * -* * -* Permission is hereby granted to reproduce and distribute ncurses * -* by any means and for any fee, whether alone or as part of a * -* larger distribution, in source or in binary form, PROVIDED * -* this notice is included with any such distribution, and is not * -* removed from any of its header files. Mention of ncurses in any * -* applications linked with it is highly appreciated. * -* * -* ncurses comes AS IS with no warranty, implied or expressed. * -* * -***************************************************************************/ - +/**************************************************************************** + * Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997-on * + ****************************************************************************/ /* - * $Id: progs.priv.h,v 1.9 1997/04/05 23:38:08 tom Exp $ + * $Id: progs.priv.h,v 1.41 2015/05/23 23:53:55 tom Exp $ * * progs.priv.h * * Header file for curses utility programs - * */ +#ifndef PROGS_PRIV_H +#define PROGS_PRIV_H 1 + #include -#ifdef USE_RCS_IDS +#if USE_RCS_IDS #define MODULE_ID(id) static const char Ident[] = id; #else -#define MODULE_ID(id) /*nothing*/ +#define MODULE_ID(id) /*nothing */ #endif #include +#include #include #include #if HAVE_UNISTD_H #include -#else -# if HAVE_LIBC_H -# include -# endif #endif #if HAVE_SYS_BSDTYPES_H @@ -58,21 +67,20 @@ # include #endif -#ifndef PATH_MAX -# if defined(_POSIX_PATH_MAX) -# define PATH_MAX _POSIX_PATH_MAX -# elif defined(MAXPATHLEN) -# define PATH_MAX MAXPATHLEN -# else -# define PATH_MAX 255 /* the Posix minimum pathsize */ -# endif -#endif - #if HAVE_DIRENT_H # include # define NAMLEN(dirent) strlen((dirent)->d_name) +# if defined(_FILE_OFFSET_BITS) && defined(HAVE_STRUCT_DIRENT64) +# if !defined(_LP64) && (_FILE_OFFSET_BITS == 64) +# define DIRENT struct dirent64 +# else +# define DIRENT struct dirent +# endif +# else +# define DIRENT struct dirent +# endif #else -# define dirent direct +# define DIRENT struct direct # define NAMLEN(dirent) (dirent)->d_namlen # if HAVE_SYS_NDIR_H # include @@ -85,15 +93,24 @@ # endif #endif +#if HAVE_INTTYPES_H +# include +#else +# if HAVE_STDINT_H +# include +# endif +#endif + +#include #include -#if !HAVE_EXTERN_ERRNO +#if DECL_ERRNO extern int errno; #endif #if HAVE_GETOPT_H #include -#else +#elif !defined(HAVE_GETOPT_HEADER) /* 'getopt()' may be prototyped in , but declaring its * variables doesn't hurt. */ @@ -101,9 +118,28 @@ extern char *optarg; extern int optind; #endif /* HAVE_GETOPT_H */ -#include +#include +#include +#include #include +#include + +#include #include +#if HAVE_NC_FREEALL +#undef ExitProgram +#ifdef USE_LIBTINFO +#define ExitProgram(code) _nc_free_tinfo(code) +#else +#define ExitProgram(code) _nc_free_tic(code) +#endif +#endif + +#if defined(__GNUC__) && defined(_FORTIFY_SOURCE) +#define IGNORE_RC(func) errno = (int) func +#else +#define IGNORE_RC(func) (void) func +#endif /* gcc workarounds */ /* usually in */ #ifndef STDOUT_FILENO @@ -122,6 +158,18 @@ extern int optind; #define EXIT_FAILURE 1 #endif +#ifndef R_OK +#define R_OK 4 /* Test for readable. */ +#endif + +#ifndef W_OK +#define W_OK 2 /* Test for writable. */ +#endif + +#ifndef X_OK +#define X_OK 1 /* Test for executable. */ +#endif + #ifndef F_OK #define F_OK 0 /* Test for existence. */ #endif @@ -134,3 +182,32 @@ extern int optind; #ifndef STDERR_FILENO #define STDERR_FILENO 2 #endif + +/* may be in limits.h, included from various places */ +#ifndef PATH_MAX +# if defined(_POSIX_PATH_MAX) +# define PATH_MAX _POSIX_PATH_MAX +# elif defined(MAXPATHLEN) +# define PATH_MAX MAXPATHLEN +# else +# define PATH_MAX 255 /* the Posix minimum pathsize */ +# endif +#endif + +/* We use isascii only to guard against use of 7-bit ctype tables in the + * isprint test in infocmp. + */ +#if !HAVE_ISASCII +# undef isascii +# if ('z'-'a' == 25) && ('z' < 127) && ('Z'-'A' == 25) && ('Z' < 127) && ('9' < 127) +# define isascii(c) (UChar(c) <= 127) +# else +# define isascii(c) 1 /* not really ascii anyway */ +# endif +#endif + +#define UChar(c) ((unsigned char)(c)) + +#define SIZEOF(v) (sizeof(v)/sizeof(v[0])) + +#endif /* PROGS_PRIV_H */