home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 May / PCWorld_2004-05_cd.bin / komunikace / apache / apache_2.0.48-win32-x86-no_ssl.msi / Data.Cab / F251730_apr.h < prev    next >
C/C++ Source or Header  |  2003-10-29  |  17KB  |  561 lines

  1. /* ====================================================================
  2.  * The Apache Software License, Version 1.1
  3.  *
  4.  * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
  5.  * reserved.
  6.  *
  7.  * Redistribution and use in source and binary forms, with or without
  8.  * modification, are permitted provided that the following conditions
  9.  * are met:
  10.  *
  11.  * 1. Redistributions of source code must retain the above copyright
  12.  *    notice, this list of conditions and the following disclaimer.
  13.  *
  14.  * 2. Redistributions in binary form must reproduce the above copyright
  15.  *    notice, this list of conditions and the following disclaimer in
  16.  *    the documentation and/or other materials provided with the
  17.  *    distribution.
  18.  *
  19.  * 3. The end-user documentation included with the redistribution,
  20.  *    if any, must include the following acknowledgment:
  21.  *       "This product includes software developed by the
  22.  *        Apache Software Foundation (http://www.apache.org/)."
  23.  *    Alternately, this acknowledgment may appear in the software itself,
  24.  *    if and wherever such third-party acknowledgments normally appear.
  25.  *
  26.  * 4. The names "Apache" and "Apache Software Foundation" must
  27.  *    not be used to endorse or promote products derived from this
  28.  *    software without prior written permission. For written
  29.  *    permission, please contact apache@apache.org.
  30.  *
  31.  * 5. Products derived from this software may not be called "Apache",
  32.  *    nor may "Apache" appear in their name, without prior written
  33.  *    permission of the Apache Software Foundation.
  34.  *
  35.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  36.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  38.  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  39.  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  40.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  41.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  42.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  43.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  46.  * SUCH DAMAGE.
  47.  * ====================================================================
  48.  *
  49.  * This software consists of voluntary contributions made by many
  50.  * individuals on behalf of the Apache Software Foundation.  For more
  51.  * information on the Apache Software Foundation, please see
  52.  * <http://www.apache.org/>.
  53.  */
  54.  
  55.  
  56. #ifndef APR_H
  57. #define APR_H
  58.  
  59. /* GENERATED FILE WARNING!  DO NOT EDIT apr.h
  60.  *
  61.  * You must modify apr.hw instead.
  62.  *
  63.  * And please, make an effort to stub apr.hnw and apr.h.in in the process.
  64.  *
  65.  * This is the Win32 specific version of apr.h.  It is copied from
  66.  * apr.hw by the apr.dsp and libapr.dsp projects. 
  67.  */
  68.  
  69. /**
  70.  * @file apr.h
  71.  * @brief APR Platform Definitions
  72.  * @remark This is a generated header generated from include/apr.h.in by
  73.  * ./configure, or copied from include/apr.hw or include/apr.hnw 
  74.  * for Win32 or Netware by those build environments, respectively.
  75.  */
  76.  
  77. #if defined(WIN32) || defined(DOXYGEN)
  78.  
  79. /* Ignore most warnings (back down to /W3) for poorly constructed headers
  80.  */
  81. #if defined(_MSC_VER) && _MSC_VER >= 1200
  82. #pragma warning(push, 3)
  83. #endif
  84.  
  85. /* disable or reduce the frequency of...
  86.  *   C4057: indirection to slightly different base types
  87.  *   C4075: slight indirection changes (unsigned short* vs short[])
  88.  *   C4100: unreferenced formal parameter
  89.  *   C4127: conditional expression is constant
  90.  *   C4201: nonstandard extension nameless struct/unions
  91.  *   C4244: int to char/short - precision loss
  92.  *   C4514: unreferenced inline function removed
  93.  */
  94. #pragma warning(disable: 4100 4127 4201 4514; once: 4057 4075 4244)
  95.  
  96. /* Has windows.h already been included?  If so, our preferences don't matter,
  97.  * but we will still need the winsock things no matter what was included.
  98.  * If not, include a restricted set of windows headers to our tastes.
  99.  */
  100. #ifndef _WINDOWS_
  101. #ifndef WIN32_LEAN_AND_MEAN
  102. #define WIN32_LEAN_AND_MEAN
  103. #endif
  104. #ifndef _WIN32_WINNT
  105.  
  106. /* Restrict the server to a subset of Windows NT 4.0 header files by default
  107.  */
  108. #define _WIN32_WINNT 0x0400
  109. #endif
  110. #ifndef NOUSER
  111. #define NOUSER
  112. #endif
  113. #ifndef NOMCX
  114. #define NOMCX
  115. #endif
  116. #ifndef NOIME
  117. #define NOIME
  118. #endif
  119. #include <windows.h>
  120. /* 
  121.  * Add a _very_few_ declarations missing from the restricted set of headers
  122.  * (If this list becomes extensive, re-enable the required headers above!)
  123.  * winsock headers were excluded by WIN32_LEAN_AND_MEAN, so include them now
  124.  */
  125. #define SW_HIDE             0
  126. #ifndef _WIN32_WCE
  127. #include <winsock2.h>
  128. #include <mswsock.h>
  129. #else
  130. #include <winsock.h>
  131. #endif
  132. #endif /* !_WINDOWS_ */
  133.  
  134. /**
  135.  * @defgroup apr_platform Platform Definitions
  136.  * @ingroup APR 
  137.  * @{
  138.  */
  139.  
  140. #define APR_INLINE __inline
  141. #define APR_HAS_INLINE          1
  142. #ifndef __attribute__
  143. #define __attribute__(__x)
  144. #endif
  145.  
  146. #define NO_USE_SIGACTION
  147.  
  148. #ifndef _WIN32_WCE
  149. #define APR_HAVE_ARPA_INET_H    0
  150. #define APR_HAVE_CONIO_H        1
  151. #define APR_HAVE_CRYPT_H        0
  152. #define APR_HAVE_CTYPE_H        1
  153. #define APR_HAVE_DIRENT_H       0
  154. #define APR_HAVE_ERRNO_H        1
  155. #define APR_HAVE_FCNTL_H        1
  156. #define APR_HAVE_IO_H           1
  157. #define APR_HAVE_LIMITS_H       1
  158. #define APR_HAVE_NETDB_H        0
  159. #define APR_HAVE_NETINET_IN_H   0
  160. #define APR_HAVE_NETINET_SCTP_H 0
  161. #define APR_HAVE_NETINET_SCTP_UIO_H 0
  162. #define APR_HAVE_NETINET_TCP_H  0
  163. #define APR_HAVE_PTHREAD_H      0
  164. #define APR_HAVE_SIGNAL_H       1
  165. #define APR_HAVE_STDARG_H       1
  166. #define APR_HAVE_STDINT_H       0
  167. #define APR_HAVE_STDIO_H        1
  168. #define APR_HAVE_STDLIB_H       1
  169. #define APR_HAVE_STRING_H       1
  170. #define APR_HAVE_STRINGS_H      0
  171. #define APR_HAVE_SYS_SENDFILE_H 0
  172. #define APR_HAVE_SYS_SIGNAL_H   0
  173. #define APR_HAVE_SYS_SOCKET_H   0
  174. #define APR_HAVE_SYS_SOCKIO_H   0
  175. #define APR_HAVE_SYS_SYSLIMITS_H 0
  176. #define APR_HAVE_SYS_TIME_H     0
  177. #define APR_HAVE_SYS_TYPES_H    1
  178. #define APR_HAVE_SYS_UIO_H      0
  179. #define APR_HAVE_SYS_WAIT_H     0
  180. #define APR_HAVE_UNISTD_H       0
  181. #define APR_HAVE_STDDEF_H       1
  182. #define APR_HAVE_PROCESS_H      1
  183. #define APR_HAVE_TIME_H         1
  184. #else
  185. #define APR_HAVE_ARPA_INET_H    0
  186. #define APR_HAVE_CONIO_H        0
  187. #define APR_HAVE_CRYPT_H        0
  188. #define APR_HAVE_CTYPE_H        0
  189. #define APR_HAVE_DIRENT_H       0
  190. #define APR_HAVE_ERRNO_H        0
  191. #define APR_HAVE_FCNTL_H        0
  192. #define APR_HAVE_IO_H           0
  193. #define APR_HAVE_LIMITS_H       0
  194. #define APR_HAVE_NETDB_H        0
  195. #define APR_HAVE_NETINET_IN_H   0
  196. #define APR_HAVE_NETINET_TCP_H  0
  197. #define APR_HAVE_PTHREAD_H      0
  198. #define APR_HAVE_SIGNAL_H       0
  199. #define APR_HAVE_STDARG_H       0
  200. #define APR_HAVE_STDINT_H       0
  201. #define APR_HAVE_STDIO_H        1
  202. #define APR_HAVE_STDLIB_H       1
  203. #define APR_HAVE_STRING_H       1
  204. #define APR_HAVE_STRINGS_H      0
  205. #define APR_HAVE_SYS_SENDFILE_H 0
  206. #define APR_HAVE_SYS_SIGNAL_H   0
  207. #define APR_HAVE_SYS_SOCKET_H   0
  208. #define APR_HAVE_SYS_SYSLIMITS_H 0
  209. #define APR_HAVE_SYS_TIME_H     0
  210. #define APR_HAVE_SYS_TYPES_H    0
  211. #define APR_HAVE_SYS_UIO_H      0
  212. #define APR_HAVE_SYS_WAIT_H     0
  213. #define APR_HAVE_UNISTD_H       0
  214. #define APR_HAVE_STDDEF_H       0
  215. #define APR_HAVE_PROCESS_H      0
  216. #define APR_HAVE_TIME_H         0
  217. #endif
  218.  
  219. #define APR_USE_FLOCK_SERIALIZE           0 
  220. #define APR_USE_SYSVSEM_SERIALIZE         0
  221. #define APR_USE_FCNTL_SERIALIZE           0
  222. #define APR_USE_PROC_PTHREAD_SERIALIZE    0 
  223. #define APR_USE_PTHREAD_SERIALIZE         0 
  224.  
  225. #define APR_HAS_FLOCK_SERIALIZE           0
  226. #define APR_HAS_SYSVSEM_SERIALIZE         0
  227. #define APR_HAS_FCNTL_SERIALIZE           0
  228. #define APR_HAS_PROC_PTHREAD_SERIALIZE    0
  229. #define APR_HAS_RWLOCK_SERIALIZE          0
  230.  
  231. #define APR_HAS_LOCK_CREATE_NP            0
  232.  
  233. #define APR_PROCESS_LOCK_IS_GLOBAL        0
  234.  
  235. #define APR_USES_ANONYMOUS_SHM            0
  236. #define APR_USES_FILEBASED_SHM            0
  237. #define APR_USES_KEYBASED_SHM             0
  238.  
  239. #define APR_FILE_BASED_SHM      0
  240. #define APR_MEM_BASED_SHM       0
  241.  
  242. #define APR_HAVE_CORKABLE_TCP   0
  243. #define APR_HAVE_GETRLIMIT      0
  244. #define APR_HAVE_ICONV          0
  245. #define APR_HAVE_IN_ADDR        1
  246. #define APR_HAVE_INET_ADDR      1
  247. #define APR_HAVE_INET_NETWORK   0
  248. #define APR_HAVE_IPV6           0
  249. #define APR_HAVE_MEMMOVE        1
  250. #define APR_HAVE_SETRLIMIT      0
  251. #define APR_HAVE_SIGACTION      0
  252. #define APR_HAVE_SIGSUSPEND     0
  253. #define APR_HAVE_SIGWAIT        0
  254. #define APR_HAVE_STRCASECMP     0
  255. #define APR_HAVE_STRDUP         1
  256. #define APR_HAVE_STRNCASECMP    0
  257. #define APR_HAVE_STRSTR         1
  258. #define APR_HAVE_MEMCHR         1
  259. #define APR_HAVE_STRUCT_RLIMIT  0
  260. #define APR_HAVE_UNION_SEMUN    0
  261. #define APR_HAVE_SCTP           0
  262.  
  263. #ifndef _WIN32_WCE
  264. #define APR_HAVE_STRICMP        1
  265. #define APR_HAVE_STRNICMP       1
  266. #else
  267. #define APR_HAVE_STRICMP        0
  268. #define APR_HAVE_STRNICMP       0
  269. #endif
  270.  
  271. /** @} */
  272.  
  273. /* We don't include our conditional headers within the doxyblocks 
  274.  * or the extern "C" namespace 
  275.  */
  276.  
  277. #if APR_HAVE_STDLIB_H
  278. #include <stdlib.h>
  279. #endif
  280. #if APR_HAVE_STDIO_H
  281. #include <stdio.h>
  282. #endif
  283. #if APR_HAVE_SYS_TYPES_H
  284. #include <sys/types.h>
  285. #endif
  286. #if APR_HAVE_STDDEF_H
  287. #include <stddef.h>
  288. #endif
  289. #if APR_HAVE_TIME_H
  290. #include <time.h>
  291. #endif
  292. #if APR_HAVE_PROCESS_H
  293. #include <process.h>
  294. #endif
  295. #if APR_HAVE_IPV6
  296. #include <ws2tcpip.h>
  297. #endif
  298.  
  299. #ifdef __cplusplus
  300. extern "C" {
  301. #endif
  302.  
  303. /**
  304.  * @addtogroup apr_platform
  305.  * @ingroup APR 
  306.  * @{
  307.  */
  308.  
  309. /*  APR Feature Macros */
  310. #define APR_HAS_SHARED_MEMORY     1
  311. #define APR_HAS_THREADS           1
  312. #define APR_HAS_MMAP              1
  313. #define APR_HAS_FORK              0
  314. #define APR_HAS_RANDOM            1
  315. #define APR_HAS_OTHER_CHILD       1
  316. #define APR_HAS_DSO               1
  317. #define APR_HAS_SO_ACCEPTFILTER   0
  318. #define APR_HAS_UNICODE_FS        1
  319. #define APR_HAS_PROC_INVOKED      1
  320. #ifndef _WIN32_WCE
  321. #define APR_HAS_SENDFILE          1
  322. #define APR_HAS_USER              1
  323. #define APR_HAS_LARGE_FILES       1
  324. #define APR_HAS_XTHREAD_FILES     1
  325. #else
  326. #define APR_HAS_SENDFILE          0
  327. #define APR_HAS_USER              0
  328. #define APR_HAS_LARGE_FILES       0
  329. #define APR_HAS_XTHREAD_FILES     0
  330. #endif
  331. #define APR_HAS_OS_UUID           1
  332.  
  333. /* Win32 cannot poll [just yet] on files/pipes.
  334.  */
  335. #define APR_FILES_AS_SOCKETS      0
  336.  
  337. /* Not all platforms have a real INADDR_NONE.  This macro replaces INADDR_NONE
  338.  * on all platforms.
  339.  */
  340. #define APR_INADDR_NONE           INADDR_NONE
  341.  
  342. /* This macro indicates whether or not EBCDIC is the native character set.
  343.  */
  344. #define APR_CHARSET_EBCDIC        0
  345.  
  346. /* Is the TCP_NODELAY socket option inherited from listening sockets?
  347.  */
  348. #define APR_TCP_NODELAY_INHERITED 1
  349.  
  350. /* Is the O_NONBLOCK flag inherited from listening sockets?
  351.  */
  352. #define APR_O_NONBLOCK_INHERITED  1
  353.  
  354. /* Typedefs that APR needs. */
  355.  
  356. typedef  unsigned char     apr_byte_t;
  357.  
  358. typedef  short             apr_int16_t;
  359. typedef  unsigned short    apr_uint16_t;
  360.                                                
  361. typedef  int               apr_int32_t;
  362. typedef  unsigned int      apr_uint32_t;
  363.                                                
  364. typedef  __int64           apr_int64_t;
  365. typedef  unsigned __int64  apr_uint64_t;
  366.  
  367. typedef  size_t      apr_size_t;
  368. #if APR_HAVE_STDDEF_H
  369. typedef  ptrdiff_t   apr_ssize_t;
  370. #else
  371. typedef  int         apr_ssize_t;
  372. #endif
  373. #if APR_HAS_LARGE_FILES
  374. typedef  __int64     apr_off_t;
  375. #else
  376. typedef  int         apr_off_t;
  377. #endif
  378. typedef  int         apr_socklen_t;
  379.  
  380. #ifdef WIN64
  381. #define APR_SIZEOF_VOIDP   8
  382. #else
  383. #define APR_SIZEOF_VOIDP   4
  384. #endif
  385.  
  386. /* XXX These simply don't belong here, perhaps in apr_portable.h
  387.  * based on some APR_HAVE_PID/GID/UID?
  388.  */
  389. typedef  int         pid_t;
  390. typedef  int         uid_t;
  391. typedef  int         gid_t;
  392.  
  393. /* Mechanisms to properly type numeric literals */
  394.  
  395. #define APR_INT64_C(val) (val##i64)
  396.  
  397.  
  398. #if APR_HAVE_IPV6
  399.  
  400. /* Appears in later flavors, not the originals. */
  401. #ifndef in_addr6
  402. #define  in6_addr    in_addr6
  403. #endif
  404.  
  405. #ifndef WS2TCPIP_INLINE
  406. #define IN6_IS_ADDR_V4MAPPED(a) \
  407.     (   (*(const apr_uint64_t *)(const void *)(&(a)->s6_addr[0]) == 0) \
  408.      && (*(const apr_uint32_t *)(const void *)(&(a)->s6_addr[8]) == ntohl(0x0000ffff)))
  409. #endif
  410.  
  411. #endif /* APR_HAS_IPV6 */
  412.  
  413. /* Definitions that APR programs need to work properly. */
  414.  
  415. /** 
  416.  * Thread callbacks from APR functions must be declared with APR_THREAD_FUNC, 
  417.  * so that they follow the platform's calling convention.
  418.  * @example
  419.  */
  420. /** void* APR_THREAD_FUNC my_thread_entry_fn(apr_thread_t *thd, void *data);
  421.  */
  422. #define APR_THREAD_FUNC  __stdcall
  423.  
  424.  
  425. #if defined(DOXYGEN) || !defined(WIN32)
  426.  
  427. /**
  428.  * The public APR functions are declared with APR_DECLARE(), so they may
  429.  * use the most appropriate calling convention.  Public APR functions with 
  430.  * variable arguments must use APR_DECLARE_NONSTD().
  431.  *
  432.  * @remark Both the declaration and implementations must use the same macro.
  433.  * @example
  434.  */
  435. /** APR_DECLARE(rettype) apr_func(args)
  436.  * @see APR_DECLARE_NONSTD @see APR_DECLARE_DATA
  437.  * @remark Note that when APR compiles the library itself, it passes the 
  438.  * symbol -DAPR_DECLARE_EXPORT to the compiler on some platforms (e.g. Win32) 
  439.  * to export public symbols from the dynamic library build.\n
  440.  * The user must define the APR_DECLARE_STATIC when compiling to target
  441.  * the static APR library on some platforms (e.g. Win32.)  The public symbols 
  442.  * are neither exported nor imported when APR_DECLARE_STATIC is defined.\n
  443.  * By default, compiling an application and including the APR public
  444.  * headers, without defining APR_DECLARE_STATIC, will prepare the code to be
  445.  * linked to the dynamic library.
  446.  */
  447. #define APR_DECLARE(type)            type 
  448.  
  449. /**
  450.  * The public APR functions using variable arguments are declared with 
  451.  * APR_DECLARE_NONSTD(), as they must follow the C language calling convention.
  452.  * @see APR_DECLARE @see APR_DECLARE_DATA
  453.  * @remark Both the declaration and implementations must use the same macro.
  454.  * @example
  455.  */
  456. /** APR_DECLARE_NONSTD(rettype) apr_func(args, ...);
  457.  */
  458. #define APR_DECLARE_NONSTD(type)     type
  459.  
  460. /**
  461.  * The public APR variables are declared with AP_MODULE_DECLARE_DATA.
  462.  * This assures the appropriate indirection is invoked at compile time.
  463.  * @see APR_DECLARE @see APR_DECLARE_NONSTD
  464.  * @remark Note that the declaration and implementations use different forms,
  465.  * but both must include the macro.
  466.  * @example
  467.  */
  468. /** extern APR_DECLARE_DATA type apr_variable;\n
  469.  * APR_DECLARE_DATA type apr_variable = value;
  470.  */
  471. #define APR_DECLARE_DATA
  472.  
  473. #elif defined(APR_DECLARE_STATIC)
  474. #define APR_DECLARE(type)            type __stdcall
  475. #define APR_DECLARE_NONSTD(type)     type
  476. #define APR_DECLARE_DATA
  477. #elif defined(APR_DECLARE_EXPORT)
  478. #define APR_DECLARE(type)            __declspec(dllexport) type __stdcall
  479. #define APR_DECLARE_NONSTD(type)     __declspec(dllexport) type
  480. #define APR_DECLARE_DATA             __declspec(dllexport)
  481. #else
  482. #define APR_DECLARE(type)            __declspec(dllimport) type __stdcall
  483. #define APR_DECLARE_NONSTD(type)     __declspec(dllimport) type
  484. #define APR_DECLARE_DATA             __declspec(dllimport)
  485. #endif
  486.  
  487. #ifdef WIN64
  488. #define APR_SSIZE_T_FMT          "I64d"
  489. #define APR_SIZE_T_FMT           "I64d"
  490. #else
  491. #define APR_SSIZE_T_FMT          "d"
  492. #define APR_SIZE_T_FMT           "d"
  493. #endif
  494.  
  495. #if APR_HAS_LARGE_FILES
  496. #define APR_OFF_T_FMT            "I64d"
  497. #else
  498. #define APR_OFF_T_FMT            "d"
  499. #endif
  500.  
  501. #define APR_PID_T_FMT            "d"
  502.  
  503. #define APR_INT64_T_FMT          "I64d"
  504. #define APR_INT64_T_FMT_LEN      4
  505. #define APR_UINT64_T_FMT         "I64u"
  506. #define APR_UINT64_T_FMT_LEN     4
  507. #define APR_UINT64_T_HEX_FMT     "I64x"
  508. #define APR_UINT64_T_HEX_FMT_LEN (sizeof(APR_UINT64_T_HEX_FMT) - 1)
  509.  
  510. /* Deal with atoi64 variables ... these should move to apr_private.h */
  511. /* MSVC 7.0 introduced _strtoui64 */
  512. #if _MSC_VER >= 1300 && _INTEGRAL_MAX_BITS >= 64
  513. #define APR_HAVE_INT64_STRFN  1
  514. #define APR_INT64_STRFN          _strtoui64
  515. #else
  516. #define APR_HAVE_INT64_STRFN  0
  517. #define APR_INT64_STRFN          undef
  518. #endif
  519.  
  520. /* Local machine definition for console and log output. */
  521. #define APR_EOL_STR              "\r\n"
  522.  
  523. /* No difference between PROC and GLOBAL mutex */
  524. #define APR_PROC_MUTEX_IS_GLOBAL      1
  525.  
  526. typedef int apr_wait_t;
  527.  
  528. /* struct iovec is needed to emulate Unix writev */
  529. struct iovec {
  530.     char*      iov_base;
  531.     apr_size_t iov_len;
  532. };
  533.  
  534. /* Nasty Win32 .h ommissions we really need */
  535. #define STDIN_FILENO  0
  536. #define STDOUT_FILENO 1
  537. #define STDERR_FILENO 2
  538.  
  539. #if APR_HAS_UNICODE_FS
  540. /* An arbitrary size that is digestable. True max is a bit less than 32000 */
  541. #define APR_PATH_MAX 8192
  542. #else /* !APR_HAS_UNICODE_FS */
  543. #define APR_PATH_MAX MAX_PATH
  544. #endif
  545.  
  546. /** @} */
  547.  
  548. #ifdef __cplusplus
  549. }
  550. #endif
  551.  
  552. /* Done with badly written headers
  553.  */
  554. #if defined(_MSC_VER) && _MSC_VER >= 1200
  555. #pragma warning(pop)
  556. #endif
  557.  
  558. #endif /* WIN32 */
  559.  
  560. #endif /* APR_H */
  561.