X-Git-Url: https://git.saurik.com/apple/cf.git/blobdiff_plain/47a9ab1f151d80a00a045f81937ddac81c51a463..bd5b749cf7786ae858ab372fc8f64179736c6515:/Base.subproj/CFSystemDirectories.c?ds=inline diff --git a/Base.subproj/CFSystemDirectories.c b/Base.subproj/CFSystemDirectories.c deleted file mode 100644 index 9c2ff9e..0000000 --- a/Base.subproj/CFSystemDirectories.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 2005 Apple Computer, Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ -/* CFSystemDirectories.c - Copyright 1997-2002, Apple, Inc. All rights reserved. - Responsibility: Ali Ozer -*/ - -/* - This file defines CFCopySearchPathForDirectoriesInDomains(). - On MacOS 8, this function returns empty array. - On Mach, it calls the System.framework enumeration functions. - On Windows, it calls the enumeration functions defined here. -*/ - -#include -#include "CFInternal.h" - -#if defined(__MACH__) - -/* We use the System framework implementation on Mach. -*/ -#include -#include -#include -#include - -CFSearchPathEnumerationState __CFStartSearchPathEnumeration(CFSearchPathDirectory dir, CFSearchPathDomainMask domainMask) { - return NSStartSearchPathEnumeration(dir, domainMask); -} - -CFSearchPathEnumerationState __CFGetNextSearchPathEnumeration(CFSearchPathEnumerationState state, uint8_t *path, CFIndex pathSize) { - CFSearchPathEnumerationState result; - // NSGetNextSearchPathEnumeration requires a MAX_PATH size - if (pathSize < PATH_MAX) { - uint8_t tempPath[PATH_MAX]; - result = NSGetNextSearchPathEnumeration(state, tempPath); - strlcpy(path, tempPath, pathSize); - } else { - result = NSGetNextSearchPathEnumeration(state, path); - } - return result; -} - -#endif - - -#if defined(__MACH__) || defined(__WIN32__) - -CFArrayRef CFCopySearchPathForDirectoriesInDomains(CFSearchPathDirectory directory, CFSearchPathDomainMask domainMask, Boolean expandTilde) { - CFMutableArrayRef array; - CFSearchPathEnumerationState state; - CFIndex homeLen = -1; - char cPath[CFMaxPathSize], home[CFMaxPathSize]; - - array = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); - state = __CFStartSearchPathEnumeration(directory, domainMask); - while ((state = __CFGetNextSearchPathEnumeration(state, cPath, sizeof(cPath)))) { - CFURLRef url = NULL; - if (expandTilde && (cPath[0] == '~')) { - if (homeLen < 0) { - CFURLRef homeURL = CFCopyHomeDirectoryURLForUser(NULL); - if (homeURL) { - CFURLGetFileSystemRepresentation(homeURL, true, home, CFMaxPathSize); - homeLen = strlen(home); - CFRelease(homeURL); - } - } - if (homeLen + strlen(cPath) < CFMaxPathSize) { - home[homeLen] = '\0'; - strcat(home, &cPath[1]); - url = CFURLCreateFromFileSystemRepresentation(NULL, home, strlen(home), true); - } - } else { - url = CFURLCreateFromFileSystemRepresentation(NULL, cPath, strlen(cPath), true); - } - if (url) { - CFArrayAppendValue(array, url); - CFRelease(url); - } - } - return array; -} - -#endif - -#undef numDirs -#undef numApplicationDirs -#undef numLibraryDirs -#undef numDomains -#undef invalidDomains -#undef invalidDomains -