/****************************************************************************** * FIDOCONFIG --- library for fidonet configs ****************************************************************************** * Copyright (C) 1998-1999 * * Matthias Tichy * * Fido: 2:2433/1245 2:2433/1247 2:2432/605.14 * Internet: mtt@tichy.de * * Grimmestr. 12 Buchholzer Weg 4 * 33098 Paderborn 40472 Duesseldorf * Germany Germany * * This file is part of FIDOCONFIG. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; see file COPYING. If not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *****************************************************************************/ /* * dirent.h Defines the types and structures used by the directory routines */ #ifndef DIR_H /* all other include their own dirent.h */ #include "fidoconf.h" #if !defined(__IBMC__) && !defined(__WATCOMC__) #ifdef __MINGW32__ #include #endif #if defined(__EMX__) || defined(__FreeBSD__) #include #endif #if !(defined(_MSC_VER) && (_MSC_VER >= 1200)) #include #endif #endif #if defined(__WATCOMC__) || defined(__TURBOC__) || (defined(_MSC_VER) && (_MSC_VER >= 1200)) #include /* watcom and borland know this as direct.h */ #endif #if defined (_MSC_VER) && (_MSC_VER >= 1200) #include #include #include #define NAME_MAX _MAX_PATH typedef struct dirent { // char d_dta[ 21 ]; /* disk transfer area */ char d_attr; /* file's attribute */ // unsigned short int d_time; /* file's time */ // unsigned short int d_date; /* file's date */ long d_size; /* file's size */ char d_name[_MAX_PATH+1]; /* file's name */ // unsigned short d_ino; /* serial number (not used) */ // char d_first; /* flag for 1st time */ struct _finddata_t _dt; char _mask[_MAX_PATH+1]; long _handle; char _first_time; } DIR; FCONF_EXT DIR* opendir(const char*); FCONF_EXT DIR* readdir(DIR*); FCONF_EXT int closedir(DIR*); #endif #if defined(__IBMC__) && !defined(UNIX) /* only define it for IBM VisualAge C++ */ #define DIR_H #include /* include the other things out of direct.h */ #ifdef OS_2 #ifdef EXPENTRY #undef EXPENTRY #endif #endif #define INCL_DOSERRORS #define INCL_DOSFILEMGR #include #define NAME_MAX 255 /* maximum filename */ typedef struct dirent { char d_attr; /* file's attribute */ // NOT IMPLEMENTED!!!! // unsigned short int d_time; /* file's time */ // unsigned short int d_date; /* file's date */ long d_size; /* file's size */ char d_name[ NAME_MAX + 1 ]; /* file's name */ HDIR d_hdir; /* save OS/2 hdir */ char d_first; /* flag for 1st time */ } DIR; /* File attribute constants for d_attr field */ #define _A_NORMAL 0x00 /* Normal file - read/write permitted */ #define _A_RDONLY 0x01 /* Read-only file */ #define _A_HIDDEN 0x02 /* Hidden file */ #define _A_SYSTEM 0x04 /* System file */ #define _A_VOLID 0x08 /* Volume-ID entry */ #define _A_SUBDIR 0x10 /* Subdirectory */ #define _A_ARCH 0x20 /* Archive file */ extern int closedir( DIR * ); extern DIR *opendir( const char * ); extern struct dirent *readdir( DIR * ); #endif #endif