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>