Annotation of embedaddon/libiconv/srclib/dosname.h, revision 1.1.1.1

1.1       misho       1: /* File names on MS-DOS/Windows systems.
                      2: 
                      3:    Copyright (C) 2000-2001, 2004-2006, 2009-2011 Free Software 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 of the License, or
                      8:    (at your option) 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 <http://www.gnu.org/licenses/>.
                     17: 
                     18:    From Paul Eggert and Jim Meyering.  */
                     19: 
                     20: #ifndef _DOSNAME_H
                     21: #define _DOSNAME_H
                     22: 
                     23: #if (defined _WIN32 || defined __WIN32__ ||     \
                     24:      defined __MSDOS__ || defined __CYGWIN__ || \
                     25:      defined __EMX__ || defined __DJGPP__)
                     26:    /* This internal macro assumes ASCII, but all hosts that support drive
                     27:       letters use ASCII.  */
                     28: # define _IS_DRIVE_LETTER(C) (((unsigned int) (C) | ('a' - 'A')) - 'a'  \
                     29:                               <= 'z' - 'a')
                     30: # define FILE_SYSTEM_PREFIX_LEN(Filename) \
                     31:           (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0)
                     32: # ifndef __CYGWIN__
                     33: #  define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1
                     34: # endif
                     35: # define ISSLASH(C) ((C) == '/' || (C) == '\\')
                     36: #else
                     37: # define FILE_SYSTEM_PREFIX_LEN(Filename) 0
                     38: # define ISSLASH(C) ((C) == '/')
                     39: #endif
                     40: 
                     41: #ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
                     42: # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0
                     43: #endif
                     44: 
                     45: #if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
                     46: #  define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)])
                     47: # else
                     48: #  define IS_ABSOLUTE_FILE_NAME(F)                              \
                     49:      (ISSLASH ((F)[0]) || FILE_SYSTEM_PREFIX_LEN (F) != 0)
                     50: #endif
                     51: #define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F))
                     52: 
                     53: #endif /* DOSNAME_H_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>