"Fossies" - the Fresh Open Source Software Archive

Member "bison-3.4.1/lib/pathmax.h" (21 Apr 2019, 2934 Bytes) of package /linux/misc/bison-3.4.1.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "pathmax.h" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 3.3.2_vs_3.4.

    1 /* Define PATH_MAX somehow.  Requires sys/types.h.
    2    Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2019 Free Software
    3    Foundation, Inc.
    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
   16    along with this program; if not, see <https://www.gnu.org/licenses/>.  */
   17 
   18 #ifndef _PATHMAX_H
   19 # define _PATHMAX_H
   20 
   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 
   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 
   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
   66 # endif
   67 
   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 
   83 #endif /* _PATHMAX_H */