Diff for /parser3/src/include/pa_config_includes.h between versions 1.4 and 1.79

version 1.4, 2001/04/23 10:19:00 version 1.79, 2026/04/25 13:38:46
Line 1 Line 1
   /** @file
           Parser: includes all Configure-d headers
   
           Copyright (c) 2001-2026 Art. Lebedev Studio (https://www.artlebedev.com)
           Authors: Konstantin Morshnev <moko@design.ru>, Alexandr Petrosian <paf@design.ru>
   
           when used Configure [HAVE_CONFIG_H] it uses defines from Configure,
           fixed otherwise.
   */
   
   #ifndef PA_CONFIG_INCLUDES_H
   #define PA_CONFIG_INCLUDES_H
   
 #if HAVE_CONFIG_H  #if HAVE_CONFIG_H
 #       include "pa_config_auto.h"  # include "pa_config_auto.h"
 #else  #else
 #       include "pa_config_fixed.h"  # include "pa_config_fixed.h"
   #endif
   
   // AC_INCLUDES_DEFAULT
   
   #ifdef HAVE_STDIO_H
   # include <stdio.h>
   #endif
   
   #ifdef HAVE_SYS_TYPES_H
   # include <sys/types.h>
   #endif
   
   #ifdef HAVE_SYS_STAT_H
   # include <sys/stat.h>
   #endif
   
   #ifdef HAVE_STDLIB_H
   # include <stdlib.h>
   #endif
   
   #ifdef HAVE_STDDEF_H
   # include <stddef.h>
   #endif
   
   #ifdef HAVE_STRING_H
   # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
   #  include <memory.h>
   # endif
   # include <string.h>
   #endif
   
   #ifdef HAVE_STRINGS_H
   # include <strings.h>
   #endif
   
   #ifdef HAVE_INTTYPES_H
   # include <inttypes.h>
   #endif
   
   #ifdef HAVE_STDINT_H
   # include <stdint.h>
   #endif
   
   #ifdef HAVE_UNISTD_H
   # include <unistd.h>
   #endif
   
   // other includes
   
   #ifdef HAVE_ASSERT_H
   # include <assert.h>
   #endif
   
   #ifdef HAVE_LIMITS_H
   # include <limits.h>
 #endif  #endif
   
 #ifdef HAVE_CTYPE_H  #ifdef HAVE_CTYPE_H
 #       include <ctype.h>  # include <ctype.h>
   #endif
   
   #ifdef HAVE_MATH_H
   # include <math.h>
   #endif
   
   #ifdef HAVE_PROCESS_H
   # include <process.h>
   #endif
   
   #ifdef HAVE_STDARG_H
   # include <stdarg.h>
   #endif
   
   #ifdef HAVE_SETJMP_H
   # include <setjmp.h>
   #endif
   
   #ifdef HAVE_SIGNAL_H
   # include <signal.h>
   #endif
   
   #ifdef HAVE_PTHREAD_H
   # include <pthread.h>
 #endif  #endif
   
 #ifdef HAVE_ERRNO_H  #ifdef HAVE_ERRNO_H
 #       include <errno.h>  # include <errno.h>
   #endif
   
   #ifdef HAVE_DIRENT_H
   # include <dirent.h>
 #endif  #endif
   
 #ifdef HAVE_FCNTL_H  #ifdef HAVE_FCNTL_H
 #       include <fcntl.h>  # include <fcntl.h>
 #endif  #endif
   
 #ifdef HAVE_IO_H  #ifdef HAVE_IO_H
 #       include <io.h>  # include <io.h>
 #endif  #endif
   
 #ifdef HAVE_PROCESS_H  #ifdef HAVE_SYS_FILE_H
 #       include <process.h>  # include <sys/file.h>
 #endif  #endif
   
 #ifdef HAVE_STDARG_H  #ifdef HAVE_SYS_LOCKING_H
 #       include <stdarg.h>  # include <sys/locking.h>
 #endif  #endif
   
 #ifdef HAVE_STDIO_H  #ifdef HAVE_SYS_SELECT_H
 #       include <stdio.h>  # include <sys/select.h>
 #endif  #endif
   
 #ifdef HAVE_SYS_STAT_H  #ifdef HAVE_SYS_RESOURCE_H
 #       include <sys/stat.h>  # include <sys/resource.h>
 #endif  #endif
   
 #if defined(HAVE_UNISTD_H) && !defined(NO_UNISTD_H)  #ifdef HAVE_SYS_WAIT_H
 #       include <unistd.h>  # include <sys/wait.h>
 #endif  #endif
   
 #ifdef HAVE_MATH_H  
 #       include <math.h>  #ifdef HAVE_SYS_SOCKET_H
   # include <sys/socket.h>
   #endif
   
   #ifdef HAVE_NETINET_IN_H
   # include <netinet/in.h>
   #endif
   
   #ifdef HAVE_ARPA_INET_H
   # include <arpa/inet.h>
   #endif
   
   #ifdef HAVE_NETDB_H
   # include <netdb.h>
   #endif
   
   #ifdef HAVE_SYS_TIME_H
   # include <sys/time.h>
 #endif  #endif
   
 #ifdef HAVE_TIME_H  #ifdef HAVE_TIME_H
 #       include <time.h>  # include <time.h>
 #endif  #endif
   
 #ifdef HAVE_STDLIB_H  #ifdef HAVE_PCRE2
 #       include <stdlib.h>  #define PCRE2_CODE_UNIT_WIDTH 8
 #endif  #endif
   
 #ifdef HAVE_STRING_H  // math function replacements
 #       include <string.h>  
   #ifdef __cplusplus
   
   #ifndef HAVE_TRUNC
   inline double trunc(double param) { return param > 0? floor(param) : ceil(param); }
   #endif
   
   #ifndef HAVE_ROUND
   inline double round(double param) { return floor(param+0.5); }
   #endif
   
   #ifndef HAVE_SIGN
   inline double sign(double param) { return param > 0 ? 1 : ( param < 0 ? -1 : 0 ); }
   #endif
   
   #if !defined(max)
   inline int max(int a, int b) { return a>b ? a : b; }
   inline int min(int a, int b){ return a<b ? a : b; }
   inline size_t max(size_t a, size_t b) { return a>b ? a : b; }
   inline size_t min(size_t a, size_t b){ return a<b ? a : b; }
   #endif
   
   #endif // __cplusplus
   
   // libgc usage configuration
   //#define PA_DEBUG_DISABLE_GC
   
   #ifdef PA_DEBUG_DISABLE_GC
   
   #define GC_MALLOC(size) memset(malloc(size), 0 , size)
   #define GC_MALLOC_ATOMIC(size) memset(malloc(size), 0 , size)
   #define GC_REALLOC(ptr, size) realloc(ptr, size) // warning: non-gc realloc doesn't zero expanded region
   #define GC_FREE(ptr) free(ptr)
   
   #define GC_NEW(t) (t *)GC_MALLOC(sizeof (t))
   #define GC_NEW_ATOMIC(t) (t *)GC_MALLOC_ATOMIC(sizeof (t))
   
   #else
   
   // allows to backtrace pointers
   //#define GC_DEBUG
   
   #include "../lib/gc/include/gc.h"
   
   #endif // PA_DEBUG_DISABLE_GC
   
   
   #ifdef __GNUC__
   #  define PA_UNUSED __attribute__((unused))
   #else
   #  define PA_UNUSED
   #endif
   
   #ifdef _MSC_VER
   #define THREAD_LOCAL __declspec(thread)
   #else
   #ifdef HAVE_TLS
   #define THREAD_LOCAL __thread
   #else
   #define THREAD_LOCAL
   #endif
   #endif
   
   #if defined(XML) && defined(__CYGWIN__)
   // otherwise functions in libxml2 will be declared as __declspec(dllimport)
   #define LIBXML_STATIC
   // to compile static libxslt.a and and libexslt.a, define LIBXSLT_STATIC in xsltexports.h and LIBEXSLT_STATIC in exsltexports.h
   #endif
   
   #ifdef __clang__
   #pragma clang diagnostic ignored "-Wparentheses"         // if(a=b)
   #pragma clang diagnostic ignored "-Wpointer-sign"        // CORD (unsigned char *) to char * in libcord
   #pragma clang diagnostic ignored "-Winline-new-delete"   // test for regular new/delete usage in memory.h
   
   #elif defined(__GNUC__) && (__GNUC__ >= 7)
   #pragma GCC diagnostic ignored "-Wimplicit-fallthrough"  // case without break
   
   #endif
   
   #ifdef _MSC_VER
   // VS 2003
   #pragma warning(disable:4355)  // using this in calls to parent constructors
   #pragma warning(disable:4291)  // no matching operator delete found; memory will not be freed if initialization throws an exception
   #pragma warning(disable:4512)  // assignment operator could not be generated
   #pragma warning(disable:4127)  // conditional expression is constant; while(true) OK
   #pragma warning(disable:4706)  // assignment within conditional expression if(type var=somethig) OK
   #pragma warning(disable:4996)  // memcpy deprecation
   #pragma warning(disable:4702)  // unreachable code
   #pragma warning(disable:4511)  // copy constructor could not be generated (vs2003 specific)
   // VS 2015
   #pragma warning(disable:4267) // conversion from 'size_t' to 'int', possible loss of data
 #endif  #endif
   
 #ifdef HAVE_DIRECT_H  
 #       include <direct.h>  
 #endif  #endif

Removed from v.1.4  
changed lines
  Added in v.1.79


E-mail: