diff options
Diffstat (limited to 'jam-files/engine/filemac.c')
-rw-r--r-- | jam-files/engine/filemac.c | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/jam-files/engine/filemac.c b/jam-files/engine/filemac.c deleted file mode 100644 index e69aa648..00000000 --- a/jam-files/engine/filemac.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc. - * - * This file is part of Jam - see jam.c for Copyright information. - */ - -/* This file is ALSO: - * Copyright 2001-2004 David Abrahams. - * Distributed under the Boost Software License, Version 1.0. - * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - */ - -# include "jam.h" -# include "filesys.h" -# include "pathsys.h" - -# ifdef OS_MAC - -#include <Files.h> -#include <Folders.h> - -# include <:sys:stat.h> - -/* - * filemac.c - manipulate file names and scan directories on macintosh - * - * External routines: - * - * file_dirscan() - scan a directory for files - * file_time() - get timestamp of file, if not done by file_dirscan() - * file_archscan() - scan an archive for files - * - * File_dirscan() and file_archscan() call back a caller provided function - * for each file found. A flag to this callback function lets file_dirscan() - * and file_archscan() indicate that a timestamp is being provided with the - * file. If file_dirscan() or file_archscan() do not provide the file's - * timestamp, interested parties may later call file_time(). - * - * 04/08/94 (seiwald) - Coherent/386 support added. - * 12/19/94 (mikem) - solaris string table insanity support - * 02/14/95 (seiwald) - parse and build /xxx properly - * 05/03/96 (seiwald) - split into pathunix.c - * 11/21/96 (peterk) - BEOS does not have Unix-style archives - */ - - -void CopyC2PStr( char const * cstr, StringPtr pstr ) -{ - int len; - for ( len = 0; *cstr && ( len < 255 ); pstr[ ++len ] = *cstr++ ); - pstr[ 0 ] = len; -} - - -/* - * file_dirscan() - scan a directory for files. - */ - -void file_dirscan( char * dir, scanback func, void * closure ) -{ - PATHNAME f; - string filename[ 1 ]; - unsigned char fullPath[ 512 ]; - - FSSpec spec; - WDPBRec vol; - Str63 volName; - CInfoPBRec lastInfo; - int index = 1; - - /* First enter directory itself. */ - - memset( (char *)&f, '\0', sizeof( f ) ); - - f.f_dir.ptr = dir; - f.f_dir.len = strlen(dir); - - if ( DEBUG_BINDSCAN ) - printf( "scan directory %s\n", dir ); - - /* Special case ":" - enter it */ - - if ( ( f.f_dir.len == 1 ) && ( f.f_dir.ptr[0] == ':' ) ) - (*func)( closure, dir, 0 /* not stat()'ed */, (time_t)0 ); - - /* Now enter contents of directory */ - - vol.ioNamePtr = volName; - - if ( PBHGetVolSync( &vol ) ) - return; - - CopyC2PStr( dir, fullPath ); - - if ( FSMakeFSSpec( vol.ioWDVRefNum, vol.ioWDDirID, fullPath, &spec ) ) - return; - - lastInfo.dirInfo.ioVRefNum = spec.vRefNum; - lastInfo.dirInfo.ioDrDirID = spec.parID; - lastInfo.dirInfo.ioNamePtr = spec.name; - lastInfo.dirInfo.ioFDirIndex = 0; - lastInfo.dirInfo.ioACUser = 0; - - if ( PBGetCatInfoSync( &lastInfo ) ) - return; - - if ( !( lastInfo.dirInfo.ioFlAttrib & 0x10 ) ) - return; - - /* ioDrDirID must be reset each time. */ - spec.parID = lastInfo.dirInfo.ioDrDirID; - - string_new( filename ); - for ( ; ; ) - { - lastInfo.dirInfo.ioVRefNum = spec.vRefNum; - lastInfo.dirInfo.ioDrDirID = spec.parID; - lastInfo.dirInfo.ioNamePtr = fullPath; - lastInfo.dirInfo.ioFDirIndex = index++; - - if ( PBGetCatInfoSync( &lastInfo ) ) - return; - - f.f_base.ptr = (char *)fullPath + 1; - f.f_base.len = *fullPath; - - string_truncate( filename, 0 ); - path_build( &f, filename, 0 ); - (*func)( closure, filename->value, 0 /* not stat()'ed */, (time_t)0 ); - } - string_free( filename ); -} - - -/* - * file_time() - get timestamp of file, if not done by file_dirscan(). - */ - -int file_time( char * filename, time_t * time ) -{ - struct stat statbuf; - - if ( stat( filename, &statbuf ) < 0 ) - return -1; - - *time = statbuf.st_mtime; - - return 0; -} - - -int file_is_file( char * filename ) -{ - struct stat statbuf; - if ( stat( filename, &statbuf ) < 0 ) - return -1; - return S_ISREG( statbuf.st_mode ) ? 1 : 0; -} - -int file_mkdir(char *pathname) -{ - return mkdir(pathname, 0766); -} - - -/* - * file_archscan() - scan an archive for files. - */ - -void file_archscan( char * archive, scanback func, void * closure ) -{ -} - - -# endif /* macintosh */ |