Annotation of embedaddon/libiconv/srclib/pathmax.h, revision 1.1.1.3
1.1 misho 1: /* Define PATH_MAX somehow. Requires sys/types.h.
1.1.1.3 ! misho 2: Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2019 Free Software
1.1.1.2 misho 3: Foundation, Inc.
1.1 misho 4:
5: This program is free software; you can redistribute it and/or modify
6: it under the terms of the GNU General Public License as published by
7: the Free Software Foundation; either version 3, or (at your option)
8: any later version.
9:
10: This program is distributed in the hope that it will be useful,
11: but WITHOUT ANY WARRANTY; without even the implied warranty of
12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: GNU General Public License for more details.
14:
15: You should have received a copy of the GNU General Public License
1.1.1.3 ! misho 16: along with this program; if not, see <https://www.gnu.org/licenses/>. */
1.1 misho 17:
18: #ifndef _PATHMAX_H
19: # define _PATHMAX_H
20:
1.1.1.2 misho 21: /* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename,
22: including the terminating NUL byte.
23: <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html>
24: PATH_MAX is not defined on systems which have no limit on filename length,
25: such as GNU/Hurd.
26:
27: This file does *not* define PATH_MAX always. Programs that use this file
28: can handle the GNU/Hurd case in several ways:
29: - Either with a package-wide handling, or with a per-file handling,
30: - Either through a
31: #ifdef PATH_MAX
32: or through a fallback like
33: #ifndef PATH_MAX
34: # define PATH_MAX 8192
35: #endif
36: or through a fallback like
37: #ifndef PATH_MAX
38: # define PATH_MAX pathconf ("/", _PC_PATH_MAX)
39: #endif
40: */
41:
1.1 misho 42: # include <unistd.h>
43:
44: # include <limits.h>
45:
46: # ifndef _POSIX_PATH_MAX
47: # define _POSIX_PATH_MAX 256
48: # endif
49:
50: /* Don't include sys/param.h if it already has been. */
51: # if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
52: # include <sys/param.h>
53: # endif
54:
55: # if !defined PATH_MAX && defined MAXPATHLEN
56: # define PATH_MAX MAXPATHLEN
57: # endif
58:
1.1.1.2 misho 59: # ifdef __hpux
60: /* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename,
61: *not* including the terminating NUL byte, and is set to 1023.
62: Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is
63: not defined at all any more. */
64: # undef PATH_MAX
65: # define PATH_MAX 1024
1.1 misho 66: # endif
67:
1.1.1.3 ! misho 68: # if defined _WIN32 && ! defined __CYGWIN__
! 69: /* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com,
! 70: section "Maximum Path Length Limitation",
! 71: <https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#maximum-path-length-limitation>
! 72: explains that the maximum size of a filename, including the terminating
! 73: NUL byte, is 260 = 3 + 256 + 1.
! 74: This is the same value as
! 75: - FILENAME_MAX in <stdio.h>,
! 76: - _MAX_PATH in <stdlib.h>,
! 77: - MAX_PATH in <windef.h>.
! 78: Undefine the original value, because mingw's <limits.h> gets it wrong. */
! 79: # undef PATH_MAX
! 80: # define PATH_MAX 260
! 81: # endif
! 82:
1.1 misho 83: #endif /* _PATHMAX_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>