The `<limits.h>` header file is part of the standard C89 headers [1]
and on current systems can be included unconditionally.
Since PHP requires at least C89 or greater, the `HAVE_LIMITS_H` symbol
defined by Autoconf in configure.ac [2] can be ommitted and simplifed
however due to bundled file library (libmagic) and timelib still using
it, the removal there was omitted and done only in Zend.m4 file.
Current bundled libraries libtime, oniguruma, and libmagic still include
partial `HAVE_LIMITS_H` usage and will be more refactored when this is
possible.
Refs:
[1] https://port70.net/~nsz/c/c89/c89-draft.html#4.1.2
[2] https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/headers.m4
#include <unistd.h>
#endif
-#if HAVE_LIMITS_H
#include <limits.h>
-#endif
#ifndef MAXPATHLEN
# if _WIN32
AC_CHECK_HEADERS(
inttypes.h \
stdint.h \
-limits.h \
malloc.h \
unistd.h \
sys/types.h \
#include <sys/types.h>
#include <sys/stat.h>
-#if HAVE_LIMITS_H
#include <limits.h>
-#endif
#include <fcntl.h>
#include <errno.h>
# include <dlfcn.h>
#endif
-#ifdef HAVE_LIMITS_H
-# include <limits.h>
-#endif
+#include <limits.h>
#if HAVE_ALLOCA_H && !defined(_ALLOCA_H)
# include <alloca.h>
#include <unistd.h>
#endif
-#if HAVE_LIMITS_H
#include <limits.h>
-#endif
#ifdef PHP_WIN32
# include "win32/nice.h"
#ifdef HAVE_LOCALECONV
/* If last members of struct lconv equal CHAR_MAX, no grouping is done */
-
-/* This is bad, but since we are going to be hardcoding in the POSIX stuff anyway... */
-# ifndef HAVE_LIMITS_H
-# define CHAR_MAX 127
-# endif
-
REGISTER_LONG_CONSTANT("CHAR_MAX", CHAR_MAX, CONST_CS | CONST_PERSISTENT);
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
+#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
# endif
#endif
-#if HAVE_LIMITS_H
#include <limits.h>
-#endif
#ifndef LONG_MAX
#define LONG_MAX 2147483647L