From 0e926e561c259468174b16407dd7271c2c8fe904 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 6 Jul 2011 18:32:56 -0700 Subject: [PATCH] Assume freestanding C89 headers, string.h, stdlib.h. --- ChangeLog | 9 ++++++ configure.in | 13 ++------- lib-src/ChangeLog | 8 ++++++ lib-src/ebrowse.c | 4 --- lib-src/etags.c | 25 ++--------------- lib-src/makefile.w32-in | 2 +- lib-src/movemail.c | 2 -- lib-src/pop.c | 2 -- lib-src/update-game-score.c | 7 ----- nt/ChangeLog | 7 +++++ nt/config.nt | 8 ------ src/ChangeLog | 14 ++++++++++ src/data.c | 3 -- src/doprnt.c | 5 ---- src/floatfns.c | 3 -- src/gmalloc.c | 56 +++---------------------------------- src/print.c | 3 -- src/regex.c | 56 +++++++++++-------------------------- src/s/aix4-2.h | 5 ---- src/s/ms-w32.h | 5 ---- src/sysdep.c | 2 -- 21 files changed, 64 insertions(+), 175 deletions(-) diff --git a/ChangeLog b/ChangeLog index 01fee7035b9..5d3c053e0d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2011-07-07 Paul Eggert + + Assume freestanding C89 headers, string.h, stdlib.h. + Again, this simplifies the code, and all current platforms have these. + * configure.in (AC_CHECK_HEADERS): Don't check for limits.h. + (AC_HEADER_STDC): Remove. + (AC_CHECK_FUNCS): No need to check for strchr, strrchr. + (strchr, strrchr): Remove fallback macros. + 2011-07-06 Paul Eggert Assume support for memcmp, memcpy, memmove, memset. diff --git a/configure.in b/configure.in index e8a0b56d268..0b132007550 100644 --- a/configure.in +++ b/configure.in @@ -1211,7 +1211,7 @@ fi dnl checks for header files AC_CHECK_HEADERS(sys/select.h sys/time.h unistd.h utime.h \ - linux/version.h sys/systeminfo.h limits.h \ + linux/version.h sys/systeminfo.h \ stdio_ext.h fcntl.h coff.h pty.h sys/mman.h \ sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ sys/utsname.h pwd.h utmp.h dirent.h util.h) @@ -1230,7 +1230,6 @@ fi dnl On Solaris 8 there's a compilation warning for term.h because dnl it doesn't define `bool'. AC_CHECK_HEADERS(term.h, , , -) -AC_HEADER_STDC AC_HEADER_TIME AC_CHECK_DECLS([sys_siglist]) if test $ac_cv_have_decl_sys_siglist != yes; then @@ -2702,7 +2701,7 @@ rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \ random lrand48 logb frexp fmod rint cbrt ftime setsid \ strerror fpathconf select euidaccess getpagesize tzset setlocale \ utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \ -__fpending mblen mbrlen mbsinit strsignal setitimer ualarm strchr strrchr \ +__fpending mblen mbrlen mbsinit strsignal setitimer ualarm \ sendto recvfrom getsockopt setsockopt getsockname getpeername \ gai_strerror mkstemp getline getdelim mremap fsync sync \ difftime mempcpy mblen mbrlen posix_memalign \ @@ -3582,14 +3581,6 @@ AH_BOTTOM([ #include #include -#ifndef HAVE_STRCHR -#define strchr(a, b) index (a, b) -#endif - -#ifndef HAVE_STRRCHR -#define strrchr(a, b) rindex (a, b) -#endif - #if defined __GNUC__ && (__GNUC__ > 2 \ || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) #define NO_RETURN __attribute__ ((__noreturn__)) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 393cac2c8a0..5d95ec74277 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,5 +1,13 @@ 2011-07-06 Paul Eggert + Assume freestanding C89 headers, string.h, stdlib.h. + * ebrowse.c: Include stdlib.h unconditionally. + * etags.c, update-game-score.c: + Include string.h and stdlib.h unconditionally. + * makefile.w32-in (LOCAL_CFLAGS): Don't define STDC_HEADERS. + * movemail.c, pop.c: Include string.h unconditionally. + * update-game-score.c: No need to include stdarg.h; not used. + Assume support for memcmp, memcpy, memmove, memset. * etags.c (absolute_filename): Assume memmove exists. diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c index 7871a804997..a997e56cc9f 100644 --- a/lib-src/ebrowse.c +++ b/lib-src/ebrowse.c @@ -20,11 +20,7 @@ along with GNU Emacs. If not, see . */ #include #include - -#ifdef HAVE_STDLIB_H #include -#endif - #include #include #include diff --git a/lib-src/etags.c b/lib-src/etags.c index bba4b8e7267..522c54ee4a5 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -138,9 +138,7 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4"; #endif /* MSDOS */ #ifdef WINDOWSNT -# include # include -# include # include # include # define MAXPATHLEN _MAX_PATH @@ -151,27 +149,6 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4"; # define HAVE_GETCWD # endif /* undef HAVE_GETCWD */ #else /* not WINDOWSNT */ -# ifdef STDC_HEADERS -# include -# include -# else /* no standard C headers */ - extern char *getenv (const char *); - extern char *strcpy (char *, const char *); - extern char *strncpy (char *, const char *, unsigned long); - extern char *strcat (char *, const char *); - extern char *strncat (char *, const char *, unsigned long); - extern int strcmp (const char *, const char *); - extern int strncmp (const char *, const char *, unsigned long); - extern int system (const char *); - extern unsigned long strlen (const char *); - extern void *malloc (unsigned long); - extern void *realloc (void *, unsigned long); - extern void exit (int); - extern void free (void *); - extern void *memmove (void *, const void *, unsigned long); -# define EXIT_SUCCESS 0 -# define EXIT_FAILURE 1 -# endif #endif /* !WINDOWSNT */ #include @@ -181,6 +158,8 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4"; # endif #endif /* HAVE_UNISTD_H */ +#include +#include #include #include #include diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in index 07f6170afe4..28f913a4df6 100644 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in @@ -21,7 +21,7 @@ ALL = make-docfile hexl ctags etags movemail ebrowse emacsclient .PHONY: $(ALL) -LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \ +LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DNO_LDAV=1 \ -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../lib \ -I../nt/inc -I../src diff --git a/lib-src/movemail.c b/lib-src/movemail.c index e8c09f090f3..d70c655adec 100644 --- a/lib-src/movemail.c +++ b/lib-src/movemail.c @@ -68,9 +68,7 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_FCNTL_H #include #endif -#ifdef HAVE_STRING_H #include -#endif #include "syswait.h" #ifdef MAIL_USE_POP #include "pop.h" diff --git a/lib-src/pop.c b/lib-src/pop.c index 426b39bd1fb..a94e06fbd87 100644 --- a/lib-src/pop.c +++ b/lib-src/pop.c @@ -65,9 +65,7 @@ extern struct servent *hes_getservbyname (/* char *, char * */); #include #include #include -#ifdef STDC_HEADERS #include -#endif #include #ifdef KERBEROS diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c index e95e2ce259d..284beafb9d9 100644 --- a/lib-src/update-game-score.c +++ b/lib-src/update-game-score.c @@ -35,12 +35,8 @@ along with GNU Emacs. If not, see . */ #include #include -#ifdef HAVE_STRING_H #include -#endif -#ifdef HAVE_STDLIB_H #include -#endif #include #include #include @@ -48,9 +44,6 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_FCNTL_H #include #endif -#ifdef STDC_HEADERS -#include -#endif #include /* Needed for SunOS4, for instance. */ diff --git a/nt/ChangeLog b/nt/ChangeLog index 087f006b88b..68a68d95309 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,10 @@ +2011-07-07 Paul Eggert + + Assume freestanding C89 headers, string.h, stdlib.h. + * config.nt (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H) + (STDC_HEADERS): Remove. + Iinclude string.h, stdlib.h unconditionally. + 2011-06-07 Eli Zaretskii * inc/stdint.h (INT32_MAX, INT64_MAX, INTPTR_MAX, PTRDIFF_MAX) diff --git a/nt/config.nt b/nt/config.nt index 2ba76df4446..3436bc989e0 100644 --- a/nt/config.nt +++ b/nt/config.nt @@ -131,12 +131,8 @@ along with GNU Emacs. If not, see . */ #undef HAVE_LINUX_VERSION_H #undef HAVE_SYS_SYSTEMINFO_H #undef HAVE_TERMIOS_H -#undef HAVE_LIMITS_H -#undef HAVE_STRING_H #undef HAVE_STRINGS_H -#undef HAVE_STDLIB_H #undef HAVE_PWD_H -#undef STDC_HEADERS #undef HAVE_LIBDNET #undef HAVE_LIBPTHREADS @@ -506,15 +502,11 @@ extern char *getenv (); #define PROTOTYPES 1 #endif -#ifdef HAVE_STRING_H #include "string.h" -#endif #ifdef HAVE_STRINGS_H #include "strings.h" #endif -#ifdef HAVE_STDLIB_H #include -#endif #ifndef NO_RETURN #if defined __GNUC__ && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR >= 5)) diff --git a/src/ChangeLog b/src/ChangeLog index b0fb0f213ab..d91837877e1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,17 @@ +2011-07-07 Paul Eggert + + Assume freestanding C89 headers, string.h, stdlib.h. + * data.c, doprnt.c, floatfns.c, print.c: + Include float.h unconditionally. + * gmalloc.c: Assume C89-at-least behavior for preprocessor, + limits.h, stddef.h, string.h. Use memset instead of 'flood'. + * regex.c: Likewise for stddef.h, string.h. + (ISASCII): Remove; can assume it returns 1 now. All uses removed. + * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef. + * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H) + (STDC_HEADERS): Remove obsolete defines. + * sysdep.c: Include limits.h unconditionally. + 2011-07-06 Paul Eggert Assume support for memcmp, memcpy, memmove, memset. diff --git a/src/data.c b/src/data.c index 6b4ea32ac9e..eb3f870b97c 100644 --- a/src/data.c +++ b/src/data.c @@ -35,10 +35,7 @@ along with GNU Emacs. If not, see . */ #include "termhooks.h" /* For FRAME_KBOARD reference in y-or-n-p. */ #include "font.h" -#ifdef STDC_HEADERS #include -#endif - /* If IEEE_FLOATING_POINT isn't defined, default it from FLT_*. */ #ifndef IEEE_FLOATING_POINT #if (FLT_RADIX == 2 && FLT_MANT_DIG == 24 \ diff --git a/src/doprnt.c b/src/doprnt.c index 195598c07ea..0632046525a 100644 --- a/src/doprnt.c +++ b/src/doprnt.c @@ -102,13 +102,8 @@ along with GNU Emacs. If not, see . */ #include #include #include - -#ifdef STDC_HEADERS #include -#endif - #include - #include #include "lisp.h" diff --git a/src/floatfns.c b/src/floatfns.c index b5c8b4af5c3..850eb9f1bcc 100644 --- a/src/floatfns.c +++ b/src/floatfns.c @@ -53,10 +53,7 @@ along with GNU Emacs. If not, see . */ #include "lisp.h" #include "syssignal.h" -#if STDC_HEADERS #include -#endif - /* If IEEE_FLOATING_POINT isn't defined, default it from FLT_*. */ #ifndef IEEE_FLOATING_POINT #if (FLT_RADIX == 2 && FLT_MANT_DIG == 24 \ diff --git a/src/gmalloc.c b/src/gmalloc.c index 4f27ea3079a..fa4aa1fdf6a 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -41,28 +41,13 @@ Fifth Floor, Boston, MA 02110-1301, USA. #define USE_PTHREAD #endif -#if ((defined __cplusplus || (defined (__STDC__) && __STDC__) \ - || defined STDC_HEADERS || defined PROTOTYPES)) #undef PP #define PP(args) args #undef __ptr_t #define __ptr_t void * -#else /* Not C++ or ANSI C. */ -#undef PP -#define PP(args) () -#undef __ptr_t -#define __ptr_t char * -#endif /* C++ or ANSI C. */ #include - -#ifdef HAVE_LIMITS_H #include -#endif -#ifndef CHAR_BIT -#define CHAR_BIT 8 -#endif - #include #ifdef USE_PTHREAD @@ -77,26 +62,9 @@ extern "C" { #endif -#ifdef STDC_HEADERS #include #define __malloc_size_t size_t #define __malloc_ptrdiff_t ptrdiff_t -#else -#ifdef __GNUC__ -#include -#ifdef __SIZE_TYPE__ -#define __malloc_size_t __SIZE_TYPE__ -#endif -#endif -#ifndef __malloc_size_t -#define __malloc_size_t unsigned int -#endif -#define __malloc_ptrdiff_t int -#endif - -#ifndef NULL -#define NULL 0 -#endif /* Allocate SIZE bytes of memory. */ @@ -1881,22 +1849,6 @@ struct hdr unsigned long int magic; /* Magic number to check header integrity. */ }; -#if defined(_LIBC) || defined(STDC_HEADERS) || defined(USG) -#define flood memset -#else -static void flood (__ptr_t, int, __malloc_size_t); -static void -flood (ptr, val, size) - __ptr_t ptr; - int val; - __malloc_size_t size; -{ - char *cp = ptr; - while (size--) - *cp++ = val; -} -#endif - static enum mcheck_status checkhdr (const struct hdr *); static enum mcheck_status checkhdr (hdr) @@ -1935,7 +1887,7 @@ freehook (ptr) hdr = ((struct hdr *) ptr) - 1; checkhdr (hdr); hdr->magic = MAGICFREE; - flood (ptr, FREEFLOOD, hdr->size); + memset (ptr, FREEFLOOD, hdr->size); } else hdr = NULL; @@ -1961,7 +1913,7 @@ mallochook (size) hdr->size = size; hdr->magic = MAGICWORD; ((char *) &hdr[1])[size] = MAGICBYTE; - flood ((__ptr_t) (hdr + 1), MALLOCFLOOD, size); + memset ((__ptr_t) (hdr + 1), MALLOCFLOOD, size); return (__ptr_t) (hdr + 1); } @@ -1981,7 +1933,7 @@ reallochook (ptr, size) checkhdr (hdr); if (size < osize) - flood ((char *) ptr + size, FREEFLOOD, osize - size); + memset ((char *) ptr + size, FREEFLOOD, osize - size); } __free_hook = old_free_hook; @@ -1998,7 +1950,7 @@ reallochook (ptr, size) hdr->magic = MAGICWORD; ((char *) &hdr[1])[size] = MAGICBYTE; if (size > osize) - flood ((char *) (hdr + 1) + osize, MALLOCFLOOD, size - osize); + memset ((char *) (hdr + 1) + osize, MALLOCFLOOD, size - osize); return (__ptr_t) (hdr + 1); } diff --git a/src/print.c b/src/print.c index 14b4326bb6f..f1907a31465 100644 --- a/src/print.c +++ b/src/print.c @@ -46,10 +46,7 @@ static Lisp_Object Qtemp_buffer_setup_hook; static Lisp_Object Qfloat_output_format; #include - -#if STDC_HEADERS #include -#endif #include /* Default to values appropriate for IEEE floating point. */ diff --git a/src/regex.c b/src/regex.c index f514b603488..d347d274819 100644 --- a/src/regex.c +++ b/src/regex.c @@ -37,9 +37,9 @@ # include #endif -#if defined STDC_HEADERS && !defined emacs -# include -#else +#include + +#ifdef emacs /* We need this for `regex.h', and perhaps for the Emacs include files. */ # include #endif @@ -346,25 +346,6 @@ enum syntaxcode { Swhitespace = 0, Sword = 1, Ssymbol = 2 }; #else /* not emacs */ -/* Jim Meyering writes: - - "... Some ctype macros are valid only for character codes that - isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when - using /bin/cc or gcc but without giving an ansi option). So, all - ctype uses should be through macros like ISPRINT... If - STDC_HEADERS is defined, then autoconf has verified that the ctype - macros don't need to be guarded with references to isascii. ... - Defining isascii to 1 should let any compiler worth its salt - eliminate the && through constant folding." - Solaris defines some of these symbols so we must undefine them first. */ - -# undef ISASCII -# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII) -# define ISASCII(c) 1 -# else -# define ISASCII(c) isascii(c) -# endif - /* 1 if C is an ASCII character. */ # define IS_REAL_ASCII(c) ((c) < 0200) @@ -372,27 +353,28 @@ enum syntaxcode { Swhitespace = 0, Sword = 1, Ssymbol = 2 }; # define ISUNIBYTE(c) 1 # ifdef isblank -# define ISBLANK(c) (ISASCII (c) && isblank (c)) +# define ISBLANK(c) isblank (c) # else # define ISBLANK(c) ((c) == ' ' || (c) == '\t') # endif # ifdef isgraph -# define ISGRAPH(c) (ISASCII (c) && isgraph (c)) +# define ISGRAPH(c) isgraph (c) # else -# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) +# define ISGRAPH(c) (isprint (c) && !isspace (c)) # endif +/* Solaris defines ISPRINT so we must undefine it first. */ # undef ISPRINT -# define ISPRINT(c) (ISASCII (c) && isprint (c)) -# define ISDIGIT(c) (ISASCII (c) && isdigit (c)) -# define ISALNUM(c) (ISASCII (c) && isalnum (c)) -# define ISALPHA(c) (ISASCII (c) && isalpha (c)) -# define ISCNTRL(c) (ISASCII (c) && iscntrl (c)) -# define ISLOWER(c) (ISASCII (c) && islower (c)) -# define ISPUNCT(c) (ISASCII (c) && ispunct (c)) -# define ISSPACE(c) (ISASCII (c) && isspace (c)) -# define ISUPPER(c) (ISASCII (c) && isupper (c)) -# define ISXDIGIT(c) (ISASCII (c) && isxdigit (c)) +# define ISPRINT(c) isprint (c) +# define ISDIGIT(c) isdigit (c) +# define ISALNUM(c) isalnum (c) +# define ISALPHA(c) isalpha (c) +# define ISCNTRL(c) iscntrl (c) +# define ISLOWER(c) islower (c) +# define ISPUNCT(c) ispunct (c) +# define ISSPACE(c) isspace (c) +# define ISUPPER(c) isupper (c) +# define ISXDIGIT(c) isxdigit (c) # define ISWORD(c) ISALPHA(c) @@ -439,10 +421,6 @@ init_syntax_once (void) #endif /* not emacs */ -#ifndef NULL -# define NULL (void *)0 -#endif - /* We remove any previous definition of `SIGN_EXTEND_CHAR', since ours (we hope) works properly with all combinations of machines, compilers, `char' and `unsigned char' argument types. diff --git a/src/s/aix4-2.h b/src/s/aix4-2.h index c2715fffe01..b44bd0308a3 100644 --- a/src/s/aix4-2.h +++ b/src/s/aix4-2.h @@ -47,11 +47,6 @@ along with GNU Emacs. If not, see . */ /* AIX doesn't define this. */ #define unix 1 -/* string.h defines rindex as a macro, at least with native cc, so we - lose declaring char * rindex without this. - It is just a guess which versions of AIX need this definition. */ -#undef HAVE_STRING_H - /* Perry Smith says these are correct. */ #define SIGNALS_VIA_CHARACTERS #define CLASH_DETECTION diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h index bf6cc66798c..813c3cef115 100644 --- a/src/s/ms-w32.h +++ b/src/s/ms-w32.h @@ -111,11 +111,7 @@ struct sigaction { #undef HAVE_UTIME_H #undef HAVE_LINUX_VERSION_H #undef HAVE_SYS_SYSTEMINFO_H -#define HAVE_LIMITS_H 1 -#define HAVE_STRING_H 1 -#define HAVE_STDLIB_H 1 #define HAVE_PWD_H 1 -#define STDC_HEADERS 1 #define TIME_WITH_SYS_TIME 1 #define HAVE_GETTIMEOFDAY 1 @@ -386,4 +382,3 @@ extern void _DebPrint (const char *fmt, ...); /* ============================================================ */ - diff --git a/src/sysdep.c b/src/sysdep.c index f157baf3e76..155d577ebfa 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -26,9 +26,7 @@ along with GNU Emacs. If not, see . */ #include #include #endif /* HAVE_PWD_H */ -#ifdef HAVE_LIMITS_H #include -#endif /* HAVE_LIMITS_H */ #include #include -- 2.39.2