This commit is contained in:
Juerg Bircher 2013-08-13 11:58:44 +02:00
commit 56f52f6da1
13 changed files with 2582 additions and 205 deletions

View File

@ -12,6 +12,11 @@
C67E0338125B230900C10757 /* CFNetServices.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC121CC10EFC89500FD1B47 /* CFNetServices.h */; settings = {ATTRIBUTES = (Public, ); }; };
C67E0339125B230900C10757 /* CFHost.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC121D610EFC92800FD1B47 /* CFHost.h */; settings = {ATTRIBUTES = (Public, ); }; };
C67E033A125B230900C10757 /* CFNetworkExport.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC1221810EFCB9A00FD1B47 /* CFNetworkExport.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6893D8C1785BB960093BFB1 /* CFNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = FE74338510A89A9D004CDF00 /* CFNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6893D8D1785BB960093BFB1 /* CFSocketStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC121A810EFC6C000FD1B47 /* CFSocketStream.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6893D8E1785BB960093BFB1 /* CFNetServices.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC121CC10EFC89500FD1B47 /* CFNetServices.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6893D8F1785BB960093BFB1 /* CFHost.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC121D610EFC92800FD1B47 /* CFHost.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6893D901785BB960093BFB1 /* CFNetworkExport.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC1221810EFCB9A00FD1B47 /* CFNetworkExport.h */; settings = {ATTRIBUTES = (Public, ); }; };
FE74338610A89A9D004CDF00 /* CFNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = FE74338510A89A9D004CDF00 /* CFNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; };
FE849306119AF77F00E252CC /* CFNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = FE74338510A89A9D004CDF00 /* CFNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; };
FE849307119AF77F00E252CC /* CFSocketStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC121A810EFC6C000FD1B47 /* CFSocketStream.h */; settings = {ATTRIBUTES = (Public, ); }; };
@ -43,6 +48,14 @@
outputFiles = (
);
};
C6893D911785BB960093BFB1 /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = org.cocotron.1.0.solaris.i686.gcc.default;
fileType = sourcecode.c;
isEditable = 1;
outputFiles = (
);
};
FE74338110A899DC004CDF00 /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = org.cocotron.1.0.windows.i386.gcc.default;
@ -74,6 +87,8 @@
089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8DC2EF5B0486A6940098B216 /* CFNetwork.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CFNetwork.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C6893D951785BB960093BFB1 /* CFNetwork.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CFNetwork.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C6893D961785BB960093BFB1 /* CFNetwork-Solaris-sparc copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "CFNetwork-Solaris-sparc copy-Info.plist"; path = "/Users/gga/Developer/Cocotron/development-arts/CFNetwork/CFNetwork-Solaris-sparc copy-Info.plist"; sourceTree = "<absolute>"; };
FE1E55BE143030B7000D60A1 /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = "<group>"; };
FE1E55BF143030B7000D60A1 /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = "<group>"; };
FE1E55C0143030B7000D60A1 /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = "<group>"; };
@ -108,6 +123,7 @@
FEA752F3114EB30B00AF634E /* CFNetwork.framework */,
FEC32E40115909B30008ECE5 /* CFNetwork.framework */,
FE84930F119AF77F00E252CC /* CFNetwork.framework */,
C6893D951785BB960093BFB1 /* CFNetwork.framework */,
);
name = Products;
sourceTree = "<group>";
@ -125,6 +141,7 @@
089C1665FE841158C02AAC07 /* Resources */,
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
034768DFFF38A50411DB9C8B /* Products */,
C6893D961785BB960093BFB1 /* CFNetwork-Solaris-sparc copy-Info.plist */,
);
name = CFNetwork;
sourceTree = "<group>";
@ -220,6 +237,18 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6893D8B1785BB960093BFB1 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
C6893D8C1785BB960093BFB1 /* CFNetwork.h in Headers */,
C6893D8D1785BB960093BFB1 /* CFSocketStream.h in Headers */,
C6893D8E1785BB960093BFB1 /* CFNetServices.h in Headers */,
C6893D8F1785BB960093BFB1 /* CFHost.h in Headers */,
C6893D901785BB960093BFB1 /* CFNetworkExport.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
FE849305119AF77F00E252CC /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@ -292,6 +321,23 @@
productName = CFNetwork;
productType = "com.apple.product-type.framework";
};
C6893D8A1785BB960093BFB1 /* CFNetwork-Solaris-i686 */ = {
isa = PBXNativeTarget;
buildConfigurationList = C6893D921785BB960093BFB1 /* Build configuration list for PBXNativeTarget "CFNetwork-Solaris-i686" */;
buildPhases = (
C6893D8B1785BB960093BFB1 /* Headers */,
);
buildRules = (
C6893D911785BB960093BFB1 /* PBXBuildRule */,
);
dependencies = (
);
name = "CFNetwork-Solaris-i686";
productInstallPath = "$(HOME)/Library/Frameworks";
productName = CFNetwork;
productReference = C6893D951785BB960093BFB1 /* CFNetwork.framework */;
productType = "com.apple.product-type.framework";
};
FE849304119AF77F00E252CC /* CFNetwork-FreeBSD-i386 */ = {
isa = PBXNativeTarget;
buildConfigurationList = FE84930C119AF77F00E252CC /* Build configuration list for PBXNativeTarget "CFNetwork-FreeBSD-i386" */;
@ -370,6 +416,7 @@
FEC32E35115909B30008ECE5 /* CFNetwork-Darwin-i386 */,
FE849304119AF77F00E252CC /* CFNetwork-FreeBSD-i386 */,
C67E0334125B230900C10757 /* CFNetwork-Solaris-sparc */,
C6893D8A1785BB960093BFB1 /* CFNetwork-Solaris-i686 */,
);
};
/* End PBXProject section */
@ -460,6 +507,44 @@
};
name = Release;
};
C6893D931785BB960093BFB1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i686;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
INFOPLIST_FILE = Info.plist;
INSTALL_MODE_FLAG = "og-w,a+rX";
INSTALL_PATH = /Developer/Cocotron/1.0/Solaris/i686/Frameworks;
OTHER_CFLAGS = "-DCFNETWORK_INSIDE_BUILD";
PRODUCT_NAME = CFNetwork;
SDKROOT = "";
STRIP_INSTALLED_PRODUCT = YES;
SYMROOT = build/Solaris/i686;
};
name = Debug;
};
C6893D941785BB960093BFB1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i686;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
INFOPLIST_FILE = Info.plist;
INSTALL_MODE_FLAG = "og-w,a+rX";
INSTALL_PATH = /Developer/Cocotron/1.0/Solaris/i686/Frameworks;
OTHER_CFLAGS = "-DCFNETWORK_INSIDE_BUILD";
PRODUCT_NAME = CFNetwork;
SDKROOT = "";
STRIP_INSTALLED_PRODUCT = YES;
SYMROOT = build/Solaris/i686;
};
name = Release;
};
FE84930D119AF77F00E252CC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -604,6 +689,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C6893D921785BB960093BFB1 /* Build configuration list for PBXNativeTarget "CFNetwork-Solaris-i686" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C6893D931785BB960093BFB1 /* Debug */,
C6893D941785BB960093BFB1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
FE84930C119AF77F00E252CC /* Build configuration list for PBXNativeTarget "CFNetwork-FreeBSD-i386" */ = {
isa = XCConfigurationList;
buildConfigurations = (

View File

@ -48,6 +48,46 @@
C67E02EE125B214E00C10757 /* CFXMLNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22730EFB669D004E378B /* CFXMLNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
C67E02EF125B214E00C10757 /* CFXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22740EFB669D004E378B /* CFXMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
C67E02F1125B214E00C10757 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
C6C6294B1785B66D009D381C /* CFBase.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE0F9C60DC962D600598037 /* CFBase.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6294C1785B66D009D381C /* CFLocale.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE0F9C70DC962D600598037 /* CFLocale.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6294D1785B66D009D381C /* CFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE0F9C90DC962D600598037 /* CFNumber.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6294E1785B66D009D381C /* CFNumberFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE0F9CA0DC962D600598037 /* CFNumberFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6294F1785B66D009D381C /* CFString.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE0F9CB0DC962D600598037 /* CFString.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629501785B66D009D381C /* CoreFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE0F9F90DC9646300598037 /* CoreFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629511785B66D009D381C /* CFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22530EFB669D004E378B /* CFArray.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629521785B66D009D381C /* CFAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22540EFB669D004E378B /* CFAttributedString.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629531785B66D009D381C /* CFBag.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22550EFB669D004E378B /* CFBag.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629541785B66D009D381C /* CFBinaryHeap.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22560EFB669D004E378B /* CFBinaryHeap.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629551785B66D009D381C /* CFBitVector.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22570EFB669D004E378B /* CFBitVector.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629561785B66D009D381C /* CFBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22580EFB669D004E378B /* CFBundle.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629571785B66D009D381C /* CFByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22590EFB669D004E378B /* CFByteOrder.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629581785B66D009D381C /* CFCalendar.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED225A0EFB669D004E378B /* CFCalendar.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629591785B66D009D381C /* CFCharacterSet.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED225B0EFB669D004E378B /* CFCharacterSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6295A1785B66D009D381C /* CFData.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED225C0EFB669D004E378B /* CFData.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6295B1785B66D009D381C /* CFDate.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED225D0EFB669D004E378B /* CFDate.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6295C1785B66D009D381C /* CFDateFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED225E0EFB669D004E378B /* CFDateFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6295D1785B66D009D381C /* CFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED225F0EFB669D004E378B /* CFDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6295E1785B66D009D381C /* CFError.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22600EFB669D004E378B /* CFError.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6295F1785B66D009D381C /* CFFileDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22610EFB669D004E378B /* CFFileDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629601785B66D009D381C /* CFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22620EFB669D004E378B /* CFMachPort.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629611785B66D009D381C /* CFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22630EFB669D004E378B /* CFMessagePort.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629621785B66D009D381C /* CFNotificationCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22640EFB669D004E378B /* CFNotificationCenter.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629631785B66D009D381C /* CFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22650EFB669D004E378B /* CFPlugIn.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629641785B66D009D381C /* CFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22670EFB669D004E378B /* CFPreferences.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629651785B66D009D381C /* CFPropertyList.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22680EFB669D004E378B /* CFPropertyList.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629661785B66D009D381C /* CFRunLoop.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22690EFB669D004E378B /* CFRunLoop.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629671785B66D009D381C /* CFSet.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED226A0EFB669D004E378B /* CFSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629681785B66D009D381C /* CFSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED226B0EFB669D004E378B /* CFSocket.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629691785B66D009D381C /* CFStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED226C0EFB669D004E378B /* CFStream.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6296A1785B66D009D381C /* CFStringTokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED226D0EFB669D004E378B /* CFStringTokenizer.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6296B1785B66D009D381C /* CFTimeZone.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED226E0EFB669D004E378B /* CFTimeZone.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6296C1785B66D009D381C /* CFTree.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED226F0EFB669D004E378B /* CFTree.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6296D1785B66D009D381C /* CFURL.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22700EFB669D004E378B /* CFURL.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6296E1785B66D009D381C /* CFUserNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22710EFB669D004E378B /* CFUserNotification.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6296F1785B66D009D381C /* CFUUID.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22720EFB669D004E378B /* CFUUID.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629701785B66D009D381C /* CFXMLNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22730EFB669D004E378B /* CFXMLNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629711785B66D009D381C /* CFXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = FEED22740EFB669D004E378B /* CFXMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629731785B66D009D381C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
FE5A869910C6EE28005E348A /* CFBase.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE0F9C60DC962D600598037 /* CFBase.h */; settings = {ATTRIBUTES = (Public, ); }; };
FE5A869A10C6EE28005E348A /* CFLocale.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE0F9C70DC962D600598037 /* CFLocale.h */; settings = {ATTRIBUTES = (Public, ); }; };
FE5A869B10C6EE28005E348A /* CFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE0F9C90DC962D600598037 /* CFNumber.h */; settings = {ATTRIBUTES = (Public, ); }; };
@ -298,6 +338,14 @@
outputFiles = (
);
};
C6C629761785B66D009D381C /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = org.cocotron.1.0.solaris.i686.gcc.default;
fileType = sourcecode.c;
isEditable = 1;
outputFiles = (
);
};
FE5A86C410C6EE28005E348A /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = org.cocotron.1.0.freebsd.i386.gcc.default;
@ -369,6 +417,8 @@
089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8DC2EF5B0486A6940098B216 /* CoreFoundation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CoreFoundation.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C6C6297A1785B66D009D381C /* CoreFoundation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CoreFoundation.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C6C6297B1785B66D009D381C /* CoreFoundation-Solaris-sparc copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "CoreFoundation-Solaris-sparc copy-Info.plist"; path = "/Users/gga/Developer/Cocotron/development-arts/CoreFoundation/CoreFoundation-Solaris-sparc copy-Info.plist"; sourceTree = "<absolute>"; };
FE1E540E14302FBD000D60A1 /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = "<group>"; };
FE1E540F14302FBD000D60A1 /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = "<group>"; };
FE1E541014302FBD000D60A1 /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = "<group>"; };
@ -447,6 +497,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6C629751785B66D009D381C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
FE5A86C310C6EE28005E348A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@ -494,6 +551,7 @@
FEA82990109B773300C7A732 /* CoreFoundation.framework */,
FEA829CD109B7BFD00C7A732 /* CoreFoundation.framework */,
FE5A86C810C6EE28005E348A /* CoreFoundation.framework */,
C6C6297A1785B66D009D381C /* CoreFoundation.framework */,
);
name = Products;
sourceTree = "<group>";
@ -546,6 +604,7 @@
32C88DFF0371C24200C91783 /* Other Sources */,
034768DFFF38A50411DB9C8B /* Products */,
089C1665FE841158C02AAC07 /* Resources */,
C6C6297B1785B66D009D381C /* CoreFoundation-Solaris-sparc copy-Info.plist */,
);
name = CoreFoundation;
sourceTree = "<group>";
@ -716,6 +775,52 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6C6294A1785B66D009D381C /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
C6C6294B1785B66D009D381C /* CFBase.h in Headers */,
C6C6294C1785B66D009D381C /* CFLocale.h in Headers */,
C6C6294D1785B66D009D381C /* CFNumber.h in Headers */,
C6C6294E1785B66D009D381C /* CFNumberFormatter.h in Headers */,
C6C6294F1785B66D009D381C /* CFString.h in Headers */,
C6C629501785B66D009D381C /* CoreFoundation.h in Headers */,
C6C629511785B66D009D381C /* CFArray.h in Headers */,
C6C629521785B66D009D381C /* CFAttributedString.h in Headers */,
C6C629531785B66D009D381C /* CFBag.h in Headers */,
C6C629541785B66D009D381C /* CFBinaryHeap.h in Headers */,
C6C629551785B66D009D381C /* CFBitVector.h in Headers */,
C6C629561785B66D009D381C /* CFBundle.h in Headers */,
C6C629571785B66D009D381C /* CFByteOrder.h in Headers */,
C6C629581785B66D009D381C /* CFCalendar.h in Headers */,
C6C629591785B66D009D381C /* CFCharacterSet.h in Headers */,
C6C6295A1785B66D009D381C /* CFData.h in Headers */,
C6C6295B1785B66D009D381C /* CFDate.h in Headers */,
C6C6295C1785B66D009D381C /* CFDateFormatter.h in Headers */,
C6C6295D1785B66D009D381C /* CFDictionary.h in Headers */,
C6C6295E1785B66D009D381C /* CFError.h in Headers */,
C6C6295F1785B66D009D381C /* CFFileDescriptor.h in Headers */,
C6C629601785B66D009D381C /* CFMachPort.h in Headers */,
C6C629611785B66D009D381C /* CFMessagePort.h in Headers */,
C6C629621785B66D009D381C /* CFNotificationCenter.h in Headers */,
C6C629631785B66D009D381C /* CFPlugIn.h in Headers */,
C6C629641785B66D009D381C /* CFPreferences.h in Headers */,
C6C629651785B66D009D381C /* CFPropertyList.h in Headers */,
C6C629661785B66D009D381C /* CFRunLoop.h in Headers */,
C6C629671785B66D009D381C /* CFSet.h in Headers */,
C6C629681785B66D009D381C /* CFSocket.h in Headers */,
C6C629691785B66D009D381C /* CFStream.h in Headers */,
C6C6296A1785B66D009D381C /* CFStringTokenizer.h in Headers */,
C6C6296B1785B66D009D381C /* CFTimeZone.h in Headers */,
C6C6296C1785B66D009D381C /* CFTree.h in Headers */,
C6C6296D1785B66D009D381C /* CFURL.h in Headers */,
C6C6296E1785B66D009D381C /* CFUserNotification.h in Headers */,
C6C6296F1785B66D009D381C /* CFUUID.h in Headers */,
C6C629701785B66D009D381C /* CFXMLNode.h in Headers */,
C6C629711785B66D009D381C /* CFXMLParser.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
FE5A869810C6EE28005E348A /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@ -989,6 +1094,26 @@
productName = CoreFoundation;
productType = "com.apple.product-type.framework";
};
C6C629491785B66D009D381C /* CoreFoundation-Solaris-i686 */ = {
isa = PBXNativeTarget;
buildConfigurationList = C6C629771785B66D009D381C /* Build configuration list for PBXNativeTarget "CoreFoundation-Solaris-i686" */;
buildPhases = (
C6C6294A1785B66D009D381C /* Headers */,
C6C629721785B66D009D381C /* Resources */,
C6C629741785B66D009D381C /* Sources */,
C6C629751785B66D009D381C /* Frameworks */,
);
buildRules = (
C6C629761785B66D009D381C /* PBXBuildRule */,
);
dependencies = (
);
name = "CoreFoundation-Solaris-i686";
productInstallPath = "$(HOME)/Library/Frameworks";
productName = CoreFoundation;
productReference = C6C6297A1785B66D009D381C /* CoreFoundation.framework */;
productType = "com.apple.product-type.framework";
};
FE5A869710C6EE28005E348A /* CoreFoundation-FreeBSD-i386 */ = {
isa = PBXNativeTarget;
buildConfigurationList = FE5A86C510C6EE28005E348A /* Build configuration list for PBXNativeTarget "CoreFoundation-FreeBSD-i386" */;
@ -1125,6 +1250,7 @@
FEA8299C109B7BFD00C7A732 /* CoreFoundation-Linux-ppc */,
FE5A869710C6EE28005E348A /* CoreFoundation-FreeBSD-i386 */,
C67E02C7125B214E00C10757 /* CoreFoundation-Solaris-sparc */,
C6C629491785B66D009D381C /* CoreFoundation-Solaris-i686 */,
);
};
/* End PBXProject section */
@ -1156,6 +1282,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6C629721785B66D009D381C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C6C629731785B66D009D381C /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
FE5A86C010C6EE28005E348A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@ -1213,6 +1347,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6C629741785B66D009D381C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
FE5A86C210C6EE28005E348A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@ -1346,6 +1487,46 @@
};
name = Release;
};
C6C629781785B66D009D381C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i686;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
EXECUTABLE_SUFFIX = .1.0.so;
INFOPLIST_FILE = Info.plist;
INSTALL_MODE_FLAG = "og-w,a+rX";
INSTALL_PATH = /Developer/Cocotron/1.0/Solaris/i686/Frameworks;
OTHER_CFLAGS = "-DCOREFOUNDATION_INSIDE_BUILD";
PRODUCT_NAME = CoreFoundation;
SDKROOT = "";
STRIP_INSTALLED_PRODUCT = YES;
SYMROOT = build/Solaris/i686;
};
name = Debug;
};
C6C629791785B66D009D381C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i686;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
EXECUTABLE_SUFFIX = .1.0.so;
INFOPLIST_FILE = Info.plist;
INSTALL_MODE_FLAG = "og-w,a+rX";
INSTALL_PATH = /Developer/Cocotron/1.0/Solaris/i686/Frameworks;
OTHER_CFLAGS = "-DCOREFOUNDATION_INSIDE_BUILD";
PRODUCT_NAME = CoreFoundation;
SDKROOT = "";
STRIP_INSTALLED_PRODUCT = YES;
SYMROOT = build/Solaris/i686;
};
name = Release;
};
FE5A86C610C6EE28005E348A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -1576,6 +1757,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C6C629771785B66D009D381C /* Build configuration list for PBXNativeTarget "CoreFoundation-Solaris-i686" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C6C629781785B66D009D381C /* Debug */,
C6C629791785B66D009D381C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
FE5A86C510C6EE28005E348A /* Build configuration list for PBXNativeTarget "CoreFoundation-FreeBSD-i386" */ = {
isa = XCConfigurationList;
buildConfigurations = (

View File

@ -10,6 +10,8 @@
8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
C67E0310125B223000C10757 /* CoreServices.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7433A810A89ED7004CDF00 /* CoreServices.h */; settings = {ATTRIBUTES = (Public, ); }; };
C67E0312125B223000C10757 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
C6C6293E1785B63A009D381C /* CoreServices.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7433A810A89ED7004CDF00 /* CoreServices.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629401785B63A009D381C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
FE7433A910A89ED7004CDF00 /* CoreServices.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7433A810A89ED7004CDF00 /* CoreServices.h */; settings = {ATTRIBUTES = (Public, ); }; };
FE8492E8119A5EA000E252CC /* CoreServices.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7433A810A89ED7004CDF00 /* CoreServices.h */; settings = {ATTRIBUTES = (Public, ); }; };
FE8492EA119A5EA000E252CC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
@ -28,6 +30,14 @@
outputFiles = (
);
};
C6C629431785B63A009D381C /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = org.cocotron.1.0.solaris.i686.gcc.default;
fileType = sourcecode.c;
isEditable = 1;
outputFiles = (
);
};
FE7433A310A89EB5004CDF00 /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = org.cocotron.1.0.windows.i386.gcc.default;
@ -55,6 +65,13 @@
/* End PBXBuildRule section */
/* Begin PBXContainerItemProxy section */
C675ECC21785CB8D000C1005 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FE7433AE10A89F5D004CDF00 /* CFNetwork.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = C6893D951785BB960093BFB1;
remoteInfo = "CFNetwork-Solaris-i386";
};
C67E0346125B236600C10757 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FE7433AE10A89F5D004CDF00 /* CFNetwork.xcodeproj */;
@ -62,6 +79,13 @@
remoteGlobalIDString = C67E0334125B230900C10757;
remoteInfo = "CFNetwork-Solaris-sparc";
};
C6C6293C1785B63A009D381C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FE7433AE10A89F5D004CDF00 /* CFNetwork.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = C67E0334125B230900C10757;
remoteInfo = "CFNetwork-Solaris-sparc";
};
FE1342D21151843000404745 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FE7433AE10A89F5D004CDF00 /* CFNetwork.xcodeproj */;
@ -125,6 +149,8 @@
089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8DC2EF5B0486A6940098B216 /* CoreServices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CoreServices.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C6C629471785B63A009D381C /* CoreServices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CoreServices.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C6C629481785B63A009D381C /* CoreServices-Solaris-sparc copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "CoreServices-Solaris-sparc copy-Info.plist"; path = "/Users/gga/Developer/Cocotron/development-arts/CoreServices/CoreServices-Solaris-sparc copy-Info.plist"; sourceTree = "<absolute>"; };
FE06B1BE1430E7AF0071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = "<group>"; };
FE06B1BF1430E7AF0071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = "<group>"; };
FE06B1C01430E7AF0071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = "<group>"; };
@ -162,6 +188,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6C629421785B63A009D381C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
FE8492EC119A5EA000E252CC /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@ -192,6 +225,7 @@
8DC2EF5B0486A6940098B216 /* CoreServices.framework */,
FEC32E52115909F00008ECE5 /* CoreServices.framework */,
FEC32E6311590A130008ECE5 /* CoreServices.framework */,
C6C629471785B63A009D381C /* CoreServices.framework */,
);
name = Products;
sourceTree = "<group>";
@ -206,6 +240,7 @@
089C1665FE841158C02AAC07 /* Resources */,
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
034768DFFF38A50411DB9C8B /* Products */,
C6C629481785B63A009D381C /* CoreServices-Solaris-sparc copy-Info.plist */,
);
name = CoreServices;
sourceTree = "<group>";
@ -281,6 +316,7 @@
FE1342D31151843000404745 /* CFNetwork.framework */,
FEC32E44115909B30008ECE5 /* CFNetwork.framework */,
FE849313119AF77F00E252CC /* CFNetwork.framework */,
C675ECC31785CB8D000C1005 /* CFNetwork.framework */,
);
name = Products;
sourceTree = "<group>";
@ -304,6 +340,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6C6293D1785B63A009D381C /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
C6C6293E1785B63A009D381C /* CoreServices.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
FE8492E7119A5EA000E252CC /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@ -372,6 +416,27 @@
productName = CoreServices;
productType = "com.apple.product-type.framework";
};
C6C6293A1785B63A009D381C /* CoreServices-Solaris-i686 */ = {
isa = PBXNativeTarget;
buildConfigurationList = C6C629441785B63A009D381C /* Build configuration list for PBXNativeTarget "CoreServices-Solaris-i686" */;
buildPhases = (
C6C6293D1785B63A009D381C /* Headers */,
C6C6293F1785B63A009D381C /* Resources */,
C6C629411785B63A009D381C /* Sources */,
C6C629421785B63A009D381C /* Frameworks */,
);
buildRules = (
C6C629431785B63A009D381C /* PBXBuildRule */,
);
dependencies = (
C6C6293B1785B63A009D381C /* PBXTargetDependency */,
);
name = "CoreServices-Solaris-i686";
productInstallPath = "$(HOME)/Library/Frameworks";
productName = CoreServices;
productReference = C6C629471785B63A009D381C /* CoreServices.framework */;
productType = "com.apple.product-type.framework";
};
FE8492E4119A5EA000E252CC /* CoreServices-FreeBSD-i386 */ = {
isa = PBXNativeTarget;
buildConfigurationList = FE8492EE119A5EA000E252CC /* Build configuration list for PBXNativeTarget "CoreServices-FreeBSD-i386" */;
@ -467,11 +532,19 @@
FEC32E5711590A130008ECE5 /* CoreServices-Linux-i386 */,
FE8492E4119A5EA000E252CC /* CoreServices-FreeBSD-i386 */,
C67E030C125B223000C10757 /* CoreServices-Solaris-sparc */,
C6C6293A1785B63A009D381C /* CoreServices-Solaris-i686 */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
C675ECC31785CB8D000C1005 /* CFNetwork.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = CFNetwork.framework;
remoteRef = C675ECC21785CB8D000C1005 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
FE1342D31151843000404745 /* CFNetwork.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
@ -519,6 +592,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6C6293F1785B63A009D381C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C6C629401785B63A009D381C /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
FE8492E9119A5EA000E252CC /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@ -560,6 +641,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6C629411785B63A009D381C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
FE8492EB119A5EA000E252CC /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@ -589,6 +677,11 @@
name = "CFNetwork-Solaris-sparc";
targetProxy = C67E0346125B236600C10757 /* PBXContainerItemProxy */;
};
C6C6293B1785B63A009D381C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "CFNetwork-Solaris-sparc";
targetProxy = C6C6293C1785B63A009D381C /* PBXContainerItemProxy */;
};
FE7433B510A89F63004CDF00 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "CFNetwork-Windows-i386";
@ -699,6 +792,46 @@
};
name = Release;
};
C6C629451785B63A009D381C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i686;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
EXECUTABLE_SUFFIX = .1.0.so;
INFOPLIST_FILE = Info.plist;
INSTALL_MODE_FLAG = "og-w,a+rX";
INSTALL_PATH = /Developer/Cocotron/1.0/Solaris/i686/Frameworks;
OTHER_CFLAGS = "-DCORESERVICES_INSIDE_BUILD";
PRODUCT_NAME = CoreServices;
SDKROOT = "";
STRIP_INSTALLED_PRODUCT = YES;
SYMROOT = build/Solaris/i686;
};
name = Debug;
};
C6C629461785B63A009D381C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i686;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
EXECUTABLE_SUFFIX = .1.0.so;
INFOPLIST_FILE = Info.plist;
INSTALL_MODE_FLAG = "og-w,a+rX";
INSTALL_PATH = /Developer/Cocotron/1.0/Solaris/i686/Frameworks;
OTHER_CFLAGS = "-DCORESERVICES_INSIDE_BUILD";
PRODUCT_NAME = CoreServices;
SDKROOT = "";
STRIP_INSTALLED_PRODUCT = YES;
SYMROOT = build/Solaris/i686;
};
name = Release;
};
FE8492EF119A5EA000E252CC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -849,6 +982,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C6C629441785B63A009D381C /* Build configuration list for PBXNativeTarget "CoreServices-Solaris-i686" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C6C629451785B63A009D381C /* Debug */,
C6C629461785B63A009D381C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
FE8492EE119A5EA000E252CC /* Build configuration list for PBXNativeTarget "CoreServices-FreeBSD-i386" */ = {
isa = XCConfigurationList;
buildConfigurations = (

File diff suppressed because it is too large Load Diff

View File

@ -274,38 +274,85 @@ second, 0);
}
}
// Might be a little off with daylight savings, etc., needs to be verified
-(NSCalendarDate *)dateByAddingYears:(NSInteger)yearDelta months:(NSInteger)monthDelta
days:(NSInteger)dayDelta hours:(NSInteger)hourDelta minutes:(NSInteger)minuteDelta seconds:(NSInteger)secondDelta {
NSTimeInterval result;
NSInteger years=NSYearFromTimeInterval(_timeInterval);
NSInteger months=NSMonthFromTimeInterval(_timeInterval);
NSInteger days=NSDayOfMonthFromTimeInterval(_timeInterval);
NSInteger hours=NS24HourFromTimeInterval(_timeInterval);
NSInteger minutes=NSMinuteFromTimeInterval(_timeInterval);
NSInteger seconds=NSSecondFromTimeInterval(_timeInterval);
years+=yearDelta;
years+=monthDelta/12;
monthDelta%=12;
months+=monthDelta;
if(months>12){
years++;
months-=12;
}
else if(months<0){
years--;
months+=12;
}
result=NSTimeIntervalWithComponents(years,months,days,hours,minutes,seconds,0);
result+=dayDelta*86400.0;
result+=hourDelta*3600.0;
result+=minuteDelta*60.0;
result+=secondDelta;
NSCalendarDate *resultDate = [NSCalendarDate dateWithTimeIntervalSinceReferenceDate:result];
NSInteger year=NSYearFromTimeInterval(_timeInterval);
NSInteger month=NSMonthFromTimeInterval(_timeInterval);
NSInteger day=NSDayOfMonthFromTimeInterval(_timeInterval);
NSInteger hour=NS24HourFromTimeInterval(_timeInterval);
NSInteger minute=NSMinuteFromTimeInterval(_timeInterval);
NSInteger second=NSSecondFromTimeInterval(_timeInterval);
second+=secondDelta;
minute+=second/60;
second %= 60;
if (second < 0) {
second+=60;
minute--;
}
minute+=minuteDelta;
hour+=minute/60;
minute %= 60;
if (minute < 0) {
minute+=60;
hour--;
}
hour+= hourDelta;
day+=hour/24;
hour%=24;
if (hour < 0) {
day--;
hour+=24;
}
day+=dayDelta;
if (day > 28) {
int i = NSNumberOfDaysInMonthOfYear(month, year);
while (day > i) {
day -= i;
if (month < 12) {
month++;
}
else {
year++;
month = 1;
}
i = NSNumberOfDaysInMonthOfYear(month, year);
}
}
else {
while (day <= 0) {
if (month == 1) {
month=12;
year--;
}
else {
month--;
}
day += NSNumberOfDaysInMonthOfYear(month, year);
}
}
month+=monthDelta;
while (month > 12) {
month-=12;
year++;
}
while (month < 1) {
month+=12;
year--;
}
year += yearDelta;
NSCalendarDate *resultDate = [NSCalendarDate dateWithTimeIntervalSinceReferenceDate:NSTimeIntervalWithComponents(year,month,day,hour,minute,second,0)];
[resultDate setTimeZone:_timeZone];

View File

@ -62,6 +62,7 @@ typedef enum {
NSTimeInterval NSMoveIntervalFromTimeZoneToGMT(NSTimeInterval interval, NSTimeZone *timeZone);
NSTimeInterval NSMoveIntervalFromGMTToTimeZone(NSTimeInterval interval, NSTimeZone *timeZone);
NSInteger NSNumberOfDaysInMonthOfYear(NSInteger month, NSInteger year);
// interval is not time zone adjusteed
NSTimeInterval NSTimeIntervalWithComponents(NSInteger year, NSInteger month, NSInteger day, NSInteger hour, NSInteger minute, NSInteger second, NSInteger milliseconds);

View File

@ -205,7 +205,7 @@ NSTimeInterval NSMoveIntervalFromGMTToTimeZone(NSTimeInterval interval, NSTimeZo
// thirty days hath september, april, june, and november.
// all the rest have thirty-one, except February, which is borked.
static inline NSInteger numberOfDaysInMonthOfYear(NSInteger month, NSInteger year) {
NSInteger NSNumberOfDaysInMonthOfYear(NSInteger month, NSInteger year) {
switch (month) {
case 2:
if (((year % 4) == 0 && (year % 100) != 0) || (year % 400) == 0)
@ -226,7 +226,7 @@ static inline NSInteger numberOfDaysInCommonEraOfDayMonthAndYear(NSInteger day,
NSInteger result = 0;
for (month--; month > 0; month--)
result += numberOfDaysInMonthOfYear(month, year);
result += NSNumberOfDaysInMonthOfYear(month, year);
result += 365 * (year-1);
result += (year - 1)/4;
@ -246,7 +246,11 @@ NSTimeInterval NSTimeIntervalWithComponents(NSInteger year, NSInteger month, NSI
daysOfCommonEra = numberOfDaysInCommonEraOfDayMonthAndYear(day, month, year);
daysOfCommonEra -= NSDaysOfCommonEraOfReferenceDate;
interval = (daysOfCommonEra * 86400.0) + (hour * 3600) + (minute * 60) + second + milliseconds/1000.0 + 0.0001;
interval = (daysOfCommonEra * 86400.0) + (hour * 3600) + (minute * 60) + second;
if (milliseconds) {
interval += milliseconds/1000.0 + 0.0001;
}
return interval;
}
@ -280,7 +284,7 @@ NSInteger NSMonthFromTimeInterval(NSTimeInterval interval){ // 1-12
NSInteger days = NSDayOfCommonEraFromTimeInterval(interval);
NSInteger month = 1;
while (days > numberOfDaysInCommonEraOfDayMonthAndYear(numberOfDaysInMonthOfYear(month, year), month, year))
while (days > numberOfDaysInCommonEraOfDayMonthAndYear(NSNumberOfDaysInMonthOfYear(month, year), month, year))
month++;
return month;

View File

@ -125,18 +125,23 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
}
-(NSString *)stringByAppendingPathExtension:(NSString *)other {
NSUInteger selfLength=[self length];
if(selfLength && [self characterAtIndex:selfLength-1]==SLASH)
selfLength--;
NSUInteger otherLength=[other length];
NSUInteger totalLength=selfLength+1+otherLength;
unichar characters[totalLength];
[self getCharacters:characters];
characters[selfLength]='.';
[other getCharacters:characters+selfLength+1];
return [NSString stringWithCharacters:characters length:totalLength];
if ([other length] > 0) {
NSUInteger selfLength=[self length];
if(selfLength && [self characterAtIndex:selfLength-1]==SLASH)
selfLength--;
NSUInteger otherLength=[other length];
NSUInteger totalLength=selfLength+1+otherLength;
unichar characters[totalLength];
[self getCharacters:characters];
characters[selfLength]='.';
[other getCharacters:characters+selfLength+1];
return [NSString stringWithCharacters:characters length:totalLength];
}
else {
return self;
}
}
-(NSString *)stringByDeletingLastPathComponent {

View File

@ -672,38 +672,38 @@ static inline BOOL isEqualString(NSString *str1,NSString *str2){
}
// Knuth-Morris-Pratt string search
static inline void computeNext(NSInteger next[],unichar patbuffer[],NSInteger patlength){
NSInteger pos=0,i=-1;
next[0]=-1;
while(pos<patlength-1){
while(i>-1 && patbuffer[pos]!=patbuffer[i])
i=next[i];
pos++;
i++;
if(patbuffer[pos]==patbuffer [i])
next[pos]=next[i];
else
next[pos]=i;
}
NSInteger i=0,j=-1;
next[i]=j;
while(i<patlength){
while(j>=0 && patbuffer[j]!=patbuffer[i]) {
j = next[j];
}
i++;
j++;
next[i]=j;
}
}
static inline NSRange rangeOfPatternNext(unichar *buffer,unichar *patbuffer,NSInteger *next,NSUInteger patlength,NSRange range){
NSInteger i,pos=0,searchLength=range.location+range.length;
NSInteger start=0;
for(i=range.location;i<searchLength && pos<patlength;i++,pos++){
while(pos>-1 && (patbuffer[pos]!=buffer[i]))
pos=next[pos];
if(pos<=0)
start=i;
}
if(pos==patlength)
return NSMakeRange(start,patlength);
else
NSInteger i=range.location,j=0;
NSInteger end = range.location + range.length;
while (i < end) {
while (j >= 0 && buffer[i] != patbuffer[j]) {
j = next[j];
}
i++;
j++;
if (j == patlength) {
return NSMakeRange(i - patlength, patlength);
}
}
return NSMakeRange(NSNotFound,0);
}
@ -1443,8 +1443,7 @@ U+2029 (Unicode paragraph separator), \r\n, in that order (also known as CRLF)
}
-(NSUInteger)lengthOfBytesUsingEncoding:(NSStringEncoding)encoding {
NSUnimplementedMethod();
return 0;
return [[self dataUsingEncoding:encoding] length];
}
-(NSUInteger)maximumLengthOfBytesUsingEncoding:(NSStringEncoding)encoding {

View File

@ -23,6 +23,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
#import <Foundation/NSString_win32.h>
#include <windows.h>
#include <Sddl.h>
#include <shlobj.h>
#include <objbase.h>
@ -165,25 +166,47 @@ static BOOL _NSCreateDirectory(NSString *path,NSError **errorp)
return NO;
}
if([[srcAttributes fileType] isEqual:NSFileTypeRegular] == NO) {
if([[srcAttributes fileType] isEqual:NSFileTypeRegular] == NO
&& [[srcAttributes fileType] isEqual:NSFileTypeDirectory] == NO) {
return NO;
}
NSDictionary *dstAttributes=[self attributesOfItemAtPath:toPath error:error];
if(dstAttributes!=nil){
if(error!=NULL){
if ([self fileExistsAtPath:toPath] == YES) {
if(error!=NULL){
NSDictionary *userInfo=[NSDictionary dictionaryWithObject:@"File exists" forKey:NSLocalizedDescriptionKey];
*error=[NSError errorWithDomain:NSPOSIXErrorDomain code:17 userInfo:userInfo];
}
return NO;
}
}
if(!CopyFileW([fromPath fileSystemRepresentationW],[toPath fileSystemRepresentationW],YES)) {
return NO;
}
if([self _isDirectory:fromPath] == NO){
if(!CopyFileW([fromPath fileSystemRepresentationW],[toPath fileSystemRepresentationW],YES)) {
if(error!=nil)
*error=NSErrorForGetLastError();
return NO;
}
}
else {
if (_NSCreateDirectory(toPath, error) == NO) {
return NO;
}
else {
NSArray *contents=[self directoryContentsAtPath:fromPath];
NSInteger i,count=[contents count];
for(i=0;i<count;i++){
NSString *name=[contents objectAtIndex:i];
NSString *fullFromPath=[fromPath stringByAppendingPathComponent:name];
NSString *fullToPath =[toPath stringByAppendingPathComponent:name];
if ([self copyItemAtPath:fullFromPath toPath:fullToPath error:error] == NO) {
return NO;
}
}
}
}
return YES;
}
@ -537,16 +560,67 @@ static BOOL _NSCreateDirectory(NSString *path,NSError **errorp)
return nil;
}
char pSecurityDescriptor[128];
DWORD lengthNeeded;
NSMutableDictionary *result = [NSMutableDictionary dictionary];
NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:Win32TimeIntervalFromFileTime(fileData.ftLastWriteTime)];
[result setObject:date forKey:NSFileModificationDate];
NSString *fileType = NSFileTypeRegular;
if (fileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) fileType = NSFileTypeDirectory;
if (GetFileSecurityW([path fileSystemRepresentationW], OWNER_SECURITY_INFORMATION, (SECURITY_DESCRIPTOR *)pSecurityDescriptor, 128, &lengthNeeded) != 0) {
PSID sid = NULL;
DWORD lpbOwnerDefaulted;
char lpName[128];
DWORD len = 128;
SID_NAME_USE nameUse;
char referencedDomainName[128];
DWORD domainLen = 128;
if (GetSecurityDescriptorOwner((SECURITY_DESCRIPTOR *)pSecurityDescriptor, &sid, ((LPBOOL)(&lpbOwnerDefaulted))) != 0) {
if (LookupAccountSid(NULL, sid, lpName, &len, referencedDomainName, &domainLen, &nameUse) != 0) {
NSString *owner = [[[NSString alloc] initWithCString:lpName] autorelease];
if (referencedDomainName != NULL) {
[result setObject:[NSString stringWithFormat:@"%@\\%@", [[[NSString alloc] initWithCString:referencedDomainName] autorelease], owner] forKey:NSFileOwnerAccountName];
}
else {
[result setObject:owner forKey:NSFileOwnerAccountName];
}
} else {
DWORD lastError = GetLastError();
//1332 means that the sid is not resolvable (an old one/or on a network drive)
if (lastError == 1332) {
/*LPWSTR str = NULL;
if (ConvertSidToStringSidW(sid, &str) == TRUE) {
NSString *owner = NSStringFromNullTerminatedUnicode(str);
LocalFree(str);
[result setObject:owner forKey:NSFileOwnerAccountName];
}
else {
if (error != nil) {
*error = NSErrorForGetLastErrorCode(lastError);
}
return nil;
}*/
}
else {
if (error != nil) {
*error = NSErrorForGetLastErrorCode(lastError);
}
return nil;
}
}
}
} else {
// TODO: set error
return nil;
}
[result setObject:fileType forKey:NSFileType];
[result setObject:@"USER" forKey:NSFileOwnerAccountName];
[result setObject:@"GROUP" forKey:NSFileGroupOwnerAccountName];
[result setObject:@"" forKey:NSFileGroupOwnerAccountName];
[result setObject:[NSNumber numberWithUnsignedLong:0666] forKey:NSFilePosixPermissions];
uint64_t sizeOfFile = fileData.nFileSizeLow;

View File

@ -23,16 +23,21 @@
#define MAX_KEY_LENGTH 255
#define MAX_VALUE_NAME 16383
typedef struct _TZI
{
int bias;
int standardBias;
int daylightBias;
SYSTEMTIME standardDate;
SYSTEMTIME daylightDate;
} TZI;
#pragma pack(1)
// TODO:
typedef struct _REG_TZI_FORMAT
{
LONG Bias;
LONG StandardBias;
LONG DaylightBias;
SYSTEMTIME StandardDate;
SYSTEMTIME DaylightDate;
} REG_TZI_FORMAT;
#pragma pack()
// TODO:
// Dynamic DST (see SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\*\\Dynamic DST in registry)
@ -200,12 +205,13 @@ WINBASEAPI BOOL WINAPI TzSpecificLocalTimeToSystemTime_priv(LPTIME_ZONE_INFORMAT
-(TIME_ZONE_INFORMATION)_timeZoneInformation {
TIME_ZONE_INFORMATION timezoneInformation;
REG_TZI_FORMAT *tzi = (REG_TZI_FORMAT *)[self->_data bytes];
timezoneInformation.Bias = ((struct _TZI *)[self->_data bytes])->bias;
timezoneInformation.StandardDate = ((struct _TZI *)[self->_data bytes])->standardDate;
timezoneInformation.StandardBias = ((struct _TZI *)[self->_data bytes])->standardBias;
timezoneInformation.DaylightDate = ((struct _TZI *)[self->_data bytes])->daylightDate;
timezoneInformation.DaylightBias = ((struct _TZI *)[self->_data bytes])->daylightBias;
timezoneInformation.Bias = tzi->Bias;
timezoneInformation.StandardDate = tzi->StandardDate;
timezoneInformation.StandardBias = tzi->StandardBias;
timezoneInformation.DaylightDate = tzi->DaylightDate;
timezoneInformation.DaylightBias = tzi->DaylightBias;
return timezoneInformation;
}
@ -275,8 +281,10 @@ WINBASEAPI BOOL WINAPI TzSpecificLocalTimeToSystemTime_priv(LPTIME_ZONE_INFORMAT
daylightnameset = YES;
}
else if (strcmp(valueName,"TZI") == 0) {
memcpy(tzdata, lpData, dataSize);
dataset = YES;
if (dataSize == 44) {
memcpy(tzdata, lpData, dataSize);
dataset = YES;
}
}
if (dataset == YES && nameset == YES && daylightnameset == YES) {
@ -289,7 +297,7 @@ WINBASEAPI BOOL WINAPI TzSpecificLocalTimeToSystemTime_priv(LPTIME_ZONE_INFORMAT
}
RegCloseKey(hTimeZoneKey);
return [NSData dataWithBytes:tzdata length:dataSize];
return [NSData dataWithBytes:tzdata length:44];
}
}
}

View File

@ -25,6 +25,28 @@
28D484F50FE04DDD00DC03EF /* deprecated.h in Headers */ = {isa = PBXBuildFile; fileRef = FE88A1F50F891D970081CFC1 /* deprecated.h */; settings = {ATTRIBUTES = (Public, ); }; };
28D484F60FE04DDD00DC03EF /* Object.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDB75C50F8A9EFE00AC545D /* Object.h */; settings = {ATTRIBUTES = (Public, ); }; };
28D484F70FE04DDD00DC03EF /* Protocol.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDB75C60F8A9EFE00AC545D /* Protocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6297E1785B6A2009D381C /* objc-class.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4034B90B42F24C00CEC41A /* objc-class.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C6297F1785B6A2009D381C /* objc.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4034CE0B42F2C400CEC41A /* objc.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629801785B6A2009D381C /* objc-export.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB6CBF90B4A1584004FADF2 /* objc-export.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629811785B6A2009D381C /* objc-runtime.h in Headers */ = {isa = PBXBuildFile; fileRef = FE85F6AA0BBF51D400E9C25C /* objc-runtime.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629821785B6A2009D381C /* runtime.h in Headers */ = {isa = PBXBuildFile; fileRef = FE88A1D90F88F8D00081CFC1 /* runtime.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629831785B6A2009D381C /* message.h in Headers */ = {isa = PBXBuildFile; fileRef = FE88A1EB0F891B440081CFC1 /* message.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629841785B6A2009D381C /* deprecated.h in Headers */ = {isa = PBXBuildFile; fileRef = FE88A1F50F891D970081CFC1 /* deprecated.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629851785B6A2009D381C /* Object.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDB75C50F8A9EFE00AC545D /* Object.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629861785B6A2009D381C /* Protocol.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDB75C60F8A9EFE00AC545D /* Protocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629871785B6A2009D381C /* objc-auto.h in Headers */ = {isa = PBXBuildFile; fileRef = FE74345E10A8A61B004CDF00 /* objc-auto.h */; settings = {ATTRIBUTES = (Public, ); }; };
C6C629881785B6A2009D381C /* objc_cache.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344481151B89600404745 /* objc_cache.h */; };
C6C629891785B6A2009D381C /* objc_class.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344491151B89600404745 /* objc_class.h */; };
C6C6298A1785B6A2009D381C /* objc_debugHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = FE13444B1151B89600404745 /* objc_debugHelpers.h */; };
C6C6298B1785B6A2009D381C /* objc_object.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344511151B89600404745 /* objc_object.h */; };
C6C6298C1785B6A2009D381C /* objc_protocol.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344541151B89600404745 /* objc_protocol.h */; };
C6C6298D1785B6A2009D381C /* objc_sel.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344561151B89600404745 /* objc_sel.h */; };
C6C6298E1785B6A2009D381C /* ObjCArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344591151B89600404745 /* ObjCArray.h */; };
C6C6298F1785B6A2009D381C /* ObjCDynamicModule.h in Headers */ = {isa = PBXBuildFile; fileRef = FE13445B1151B89600404745 /* ObjCDynamicModule.h */; };
C6C629901785B6A2009D381C /* ObjCException.h in Headers */ = {isa = PBXBuildFile; fileRef = FE13445D1151B89600404745 /* ObjCException.h */; };
C6C629911785B6A2009D381C /* ObjCHashTable.h in Headers */ = {isa = PBXBuildFile; fileRef = FE13445F1151B89600404745 /* ObjCHashTable.h */; };
C6C629921785B6A2009D381C /* ObjCModule.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344611151B89600404745 /* ObjCModule.h */; };
C6C629931785B6A2009D381C /* objc_malloc.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6CF82A11526D3000B6D893 /* objc_malloc.h */; };
FE01A5810C5D9B3100AEA51A /* objc-class.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4034B90B42F24C00CEC41A /* objc-class.h */; settings = {ATTRIBUTES = (Public, ); }; };
FE01A5820C5D9B3100AEA51A /* objc.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4034CE0B42F2C400CEC41A /* objc.h */; settings = {ATTRIBUTES = (Public, ); }; };
FE01A5830C5D9B3100AEA51A /* objc-export.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB6CBF90B4A1584004FADF2 /* objc-export.h */; settings = {ATTRIBUTES = (Public, ); }; };
@ -224,6 +246,14 @@
outputFiles = (
);
};
C6C629951785B6A2009D381C /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = org.cocotron.1.0.solaris.i686.gcc.default;
fileType = sourcecode.c;
isEditable = 1;
outputFiles = (
);
};
FE01A5860C5D9B3100AEA51A /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = org.cocotron.1.0.windows.i386.gcc.default;
@ -242,7 +272,7 @@
};
FE4034870B42E94D00CEC41A /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = org.cocotron.1.0.linux.i386.gcc.4_0_3;
compilerSpec = org.cocotron.1.0.solaris.sparc.gcc.default;
fileType = sourcecode.c;
isEditable = 1;
outputFiles = (
@ -264,14 +294,6 @@
outputFiles = (
);
};
FED70AA50C3B3F5E000CBE5B /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.gcc.4_0;
fileType = sourcecode.c;
isEditable = 1;
outputFiles = (
);
};
FED70FC50C3C0A17000CBE5B /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.gcc.4_0;
@ -287,6 +309,8 @@
28D484FD0FE04DDD00DC03EF /* objc.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = objc.framework; sourceTree = BUILT_PRODUCTS_DIR; };
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
C6065BB0163575CC0007217E /* objc_association.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = objc_association.m; sourceTree = "<group>"; };
C6C629991785B6A2009D381C /* objc.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = objc.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C6C6299A1785B6A2009D381C /* objc-Solaris-sparc copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "objc-Solaris-sparc copy-Info.plist"; path = "/Users/gga/Developer/Cocotron/development-arts/objc/objc-Solaris-sparc copy-Info.plist"; sourceTree = "<absolute>"; };
FE01A5890C5D9B3100AEA51A /* objc.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = objc.framework; sourceTree = BUILT_PRODUCTS_DIR; };
FE1344481151B89600404745 /* objc_cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_cache.h; sourceTree = "<group>"; };
FE1344491151B89600404745 /* objc_class.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_class.h; sourceTree = "<group>"; };
@ -370,6 +394,7 @@
28D484FD0FE04DDD00DC03EF /* objc.framework */,
15D921E5105E922600171406 /* objc.framework */,
FE5A868A10C6EDDC005E348A /* objc.framework */,
C6C629991785B6A2009D381C /* objc.framework */,
);
name = Products;
sourceTree = "<group>";
@ -427,6 +452,7 @@
FE13446D1151B89600404745 /* Protocol.m */,
089C1665FE841158C02AAC07 /* Resources */,
FE88A1D90F88F8D00081CFC1 /* runtime.h */,
C6C6299A1785B6A2009D381C /* objc-Solaris-sparc copy-Info.plist */,
);
name = objc;
sourceTree = "<group>";
@ -579,6 +605,35 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6C6297D1785B6A2009D381C /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
C6C6297E1785B6A2009D381C /* objc-class.h in Headers */,
C6C6297F1785B6A2009D381C /* objc.h in Headers */,
C6C629801785B6A2009D381C /* objc-export.h in Headers */,
C6C629811785B6A2009D381C /* objc-runtime.h in Headers */,
C6C629821785B6A2009D381C /* runtime.h in Headers */,
C6C629831785B6A2009D381C /* message.h in Headers */,
C6C629841785B6A2009D381C /* deprecated.h in Headers */,
C6C629851785B6A2009D381C /* Object.h in Headers */,
C6C629861785B6A2009D381C /* Protocol.h in Headers */,
C6C629871785B6A2009D381C /* objc-auto.h in Headers */,
C6C629881785B6A2009D381C /* objc_cache.h in Headers */,
C6C629891785B6A2009D381C /* objc_class.h in Headers */,
C6C6298A1785B6A2009D381C /* objc_debugHelpers.h in Headers */,
C6C6298B1785B6A2009D381C /* objc_object.h in Headers */,
C6C6298C1785B6A2009D381C /* objc_protocol.h in Headers */,
C6C6298D1785B6A2009D381C /* objc_sel.h in Headers */,
C6C6298E1785B6A2009D381C /* ObjCArray.h in Headers */,
C6C6298F1785B6A2009D381C /* ObjCDynamicModule.h in Headers */,
C6C629901785B6A2009D381C /* ObjCException.h in Headers */,
C6C629911785B6A2009D381C /* ObjCHashTable.h in Headers */,
C6C629921785B6A2009D381C /* ObjCModule.h in Headers */,
C6C629931785B6A2009D381C /* objc_malloc.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
FE01A5800C5D9B3100AEA51A /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@ -821,6 +876,24 @@
productReference = 28D484FD0FE04DDD00DC03EF /* objc.framework */;
productType = "com.apple.product-type.framework";
};
C6C6297C1785B6A2009D381C /* objc-Solaris-i686 */ = {
isa = PBXNativeTarget;
buildConfigurationList = C6C629961785B6A2009D381C /* Build configuration list for PBXNativeTarget "objc-Solaris-i686" */;
buildPhases = (
C6C6297D1785B6A2009D381C /* Headers */,
C6C629941785B6A2009D381C /* Resources */,
);
buildRules = (
C6C629951785B6A2009D381C /* PBXBuildRule */,
);
dependencies = (
);
name = "objc-Solaris-i686";
productInstallPath = "$(HOME)/Library/Frameworks";
productName = objc;
productReference = C6C629991785B6A2009D381C /* objc.framework */;
productType = "com.apple.product-type.framework";
};
FE01A57F0C5D9B3100AEA51A /* objc-Windows-i386 */ = {
isa = PBXNativeTarget;
buildConfigurationList = FE01A5870C5D9B3100AEA51A /* Build configuration list for PBXNativeTarget "objc-Windows-i386" */;
@ -919,7 +992,6 @@
FED70AA40C3B3F5E000CBE5B /* Resources */,
);
buildRules = (
FED70AA50C3B3F5E000CBE5B /* PBXBuildRule */,
);
dependencies = (
);
@ -979,6 +1051,7 @@
28D484ED0FE04DDD00DC03EF /* objc-Linux-ppc */,
15D921D5105E922600171406 /* objc-Linux-arm */,
FE5A867910C6EDDC005E348A /* objc-FreeBSD-i386 */,
C6C6297C1785B6A2009D381C /* objc-Solaris-i686 */,
);
};
/* End PBXProject section */
@ -998,6 +1071,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C6C629941785B6A2009D381C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
FE01A5850C5D9B3100AEA51A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@ -1260,6 +1340,54 @@
};
name = Debug;
};
C6C629971785B6A2009D381C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i686;
DEPLOYMENT_LOCATION = YES;
DSTROOT = /;
EXECUTABLE_SUFFIX = .so;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = /Developer/Cocotron/1.0/Solaris/i686/Frameworks;
OTHER_CFLAGS = (
"-DOBJC_INSIDE_BUILD",
"-D__LITTLE_ENDIAN__",
"-march=i686",
"-fPIC",
);
OTHER_LDFLAGS = "-shared";
PRODUCT_NAME = objc;
SYMROOT = build/Solaris/i686;
};
name = Release;
};
C6C629981785B6A2009D381C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = i686;
DEPLOYMENT_LOCATION = YES;
DSTROOT = /;
EXECUTABLE_SUFFIX = .so;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = /Developer/Cocotron/1.0/Solaris/i686/Frameworks;
OTHER_CFLAGS = (
"-DOBJC_INSIDE_BUILD",
"-D__LITTLE_ENDIAN__",
"-march=i686",
"-fPIC",
);
OTHER_LDFLAGS = "-shared";
PRODUCT_NAME = objc;
SYMROOT = build/Solaris/i686;
};
name = Debug;
};
FE01A5880C5D9B3100AEA51A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = FE7086CF1431182900B99A95 /* windows-i386-framework.xcconfig */;
@ -1486,6 +1614,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C6C629961785B6A2009D381C /* Build configuration list for PBXNativeTarget "objc-Solaris-i686" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C6C629971785B6A2009D381C /* Release */,
C6C629981785B6A2009D381C /* Debug */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
FE01A5870C5D9B3100AEA51A /* Build configuration list for PBXNativeTarget "objc-Windows-i386" */ = {
isa = XCConfigurationList;
buildConfigurations = (

View File

@ -7,7 +7,6 @@
#include <unistd.h>
#endif
// the cache entry size must be a power of 2
typedef struct {
void *nextEntry;
@ -16,8 +15,10 @@ typedef struct {
objc_AssociationPolicy policy;
} AssociationObjectEntry;
#define AssociationObjectEntrySize 4
#define AssociationObjectEntryMask ((AssociationObjectEntrySize-1)*sizeof(AssociationObjectEntry))
#define BucketsInitialSize 509 // Some prime size (and as a bonus, next three n*2+1 are prime too)
#define AssociationObjectEntrySize 5
#define HASHPTR(p) (((unsigned int)p)>>5)
typedef struct AssociationHashBucket {
struct AssociationHashBucket *next;
@ -31,25 +32,18 @@ typedef struct AssociationTable {
AssociationHashBucket **buckets;
} AssociationTable;
typedef struct {
AssociationTable *table;
unsigned int i;
struct AssociationHashBucket *j;
} NSHashEnumerator;
AssociationTable *CreateAssociationTable(unsigned int capacity) {
AssociationTable *table=malloc(sizeof(AssociationTable));
table->count=0;
table->nBuckets=(capacity<4)?4:capacity;
table->nBuckets=(capacity<5)?5:capacity;
table->buckets=calloc(table->nBuckets,sizeof(AssociationHashBucket *));
return table;
}
AssociationObjectEntry *AssociationTableGet(AssociationTable *table,id key){
unsigned int i=((unsigned int)key>>5)%table->nBuckets;
unsigned int i=HASHPTR(key)%table->nBuckets;
AssociationHashBucket *j;
for(j=table->buckets[i];j!=NULL;j=j->next)
@ -61,35 +55,52 @@ AssociationObjectEntry *AssociationTableGet(AssociationTable *table,id key){
void AssociationTableInsert(AssociationTable *table,id key, AssociationObjectEntry *value){
unsigned int hash=(unsigned int)key>>5;
unsigned int hash=HASHPTR(key);
unsigned int i=hash%table->nBuckets;
AssociationHashBucket *j;
for(j=table->buckets[i];j!=NULL;j=j->next)
for(j=table->buckets[i];j!=NULL;j=j->next) {
if(j->key==key){
id oldKey=j->key;
AssociationObjectEntry *oldValue=j->value;
j->key=key;
j->value=value;
j->value=value;
free(oldValue);
return;
}
if(table->count>=table->nBuckets){
}
int newSize = 0;
if (table->count>=table->nBuckets) {
// Expand the buckets size to limit collisions
newSize=table->nBuckets*2+1; // Let"s use odd size
} else if (table->count > BucketsInitialSize && table->count < table->nBuckets/2) {
// Compact the table - plenty of free room
newSize=table->nBuckets/2;
if (newSize%2) {
// Let"s use odd size
newSize+=1;
}
}
if(newSize != 0){
unsigned int nBuckets=table->nBuckets;
AssociationHashBucket **buckets=table->buckets,*next;
AssociationHashBucket **buckets=table->buckets;
table->nBuckets=nBuckets*2;
table->nBuckets=newSize;
table->buckets=calloc(table->nBuckets,sizeof(AssociationHashBucket *));
for(i=0;i<nBuckets;i++)
for(j=buckets[i];j!=NULL;j=next){
unsigned int newi=((unsigned int)j->key>>5)%table->nBuckets;
// Get all of the existing buckets and place them into the new list
for(i=0;i<nBuckets;i++) {
j = buckets[i];
while (j) {
unsigned int newi=HASHPTR(j->key)%table->nBuckets;
next=j->next;
AssociationHashBucket *next = j->next;
j->next=table->buckets[newi];
table->buckets[newi]=j;
j = next;
}
}
free(buckets);
i=hash%table->nBuckets;
}
@ -135,21 +146,29 @@ static AssociationTable *associationTable = NULL;
void AssociationTableRemove(AssociationTable *table,id key){
unsigned int i=((unsigned int)key>>5)%table->nBuckets;
AssociationSpinLockLock(&AssociationLock);
unsigned int i=HASHPTR(key)%table->nBuckets;
AssociationHashBucket *j=table->buckets[i],*prev=j;
for(;j!=NULL;j=j->next){
if(j->key==key){
// array to keep track of the objects to release - that must be done outside of the lock
// since the release can trigger more association changes
int releaseCount = 0;
int releaseTableSize = 0;
id *objectsToRelease = NULL;
if(prev==j)
table->buckets[i]=j->next;
else
prev->next=j->next;
AssociationObjectEntry *entry = j->value;
do {
for (int i = 0; i < AssociationObjectEntrySize; i++) {
AssociationObjectEntry *e = (void *)entry + i;
for (int i = 0; i < AssociationObjectEntrySize; i++) {
AssociationObjectEntry *e = entry + i;
while (e) {
switch (e->policy) {
case OBJC_ASSOCIATION_ASSIGN:
break;
@ -157,19 +176,43 @@ void AssociationTableRemove(AssociationTable *table,id key){
case OBJC_ASSOCIATION_RETAIN:
case OBJC_ASSOCIATION_COPY_NONATOMIC:
case OBJC_ASSOCIATION_COPY:
[e->object release];
if (releaseCount >= releaseTableSize) {
if (releaseTableSize == 0) {
releaseTableSize = 8;
} else {
releaseTableSize *= 2;
}
objectsToRelease = realloc(objectsToRelease, sizeof(id)*releaseTableSize);
}
objectsToRelease[releaseCount++] = e->object;
break;
}
AssociationObjectEntry *currentEntry = e;
e = e->nextEntry;
// Don't free the first entry of the list - it's part of the "entry" block that will be freed after the loop
if (currentEntry != entry + i) {
free(currentEntry);
}
}
} while (entry->nextEntry != nil);
free(j->value);
}
free(entry);
free(j);
table->count--;
AssociationSpinLockUnlock(&AssociationLock);
// Do the cleaning outside of the lock since it might trigger more association playing
for (int i = 0; i < releaseCount; ++i) {
[objectsToRelease[i] release];
}
free(objectsToRelease);
return;
}
prev=j;
}
AssociationSpinLockUnlock(&AssociationLock);
}
void objc_removeAssociatedObjects(id object)
@ -177,20 +220,16 @@ void objc_removeAssociatedObjects(id object)
if (associationTable == NULL) {
return;
}
AssociationSpinLockLock(&AssociationLock);
AssociationTableRemove(associationTable, object);
AssociationSpinLockUnlock(&AssociationLock);
}
void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)
{
AssociationSpinLockLock(&AssociationLock);
if (associationTable == NULL) {
associationTable = CreateAssociationTable(512);
associationTable = CreateAssociationTable(BucketsInitialSize);
}
AssociationObjectEntry *objectTable = AssociationTableGet(associationTable, object);
@ -199,9 +238,8 @@ void objc_setAssociatedObject(id object, const void *key, id value, objc_Associa
AssociationTableInsert(associationTable, object, objectTable);
}
uintptr_t index = (uintptr_t)(key) & AssociationObjectEntryMask;
AssociationObjectEntry *entry = ((void *)objectTable) + index;
uintptr_t index = HASHPTR(key) % AssociationObjectEntrySize;
AssociationObjectEntry *entry = ((AssociationObjectEntry *)objectTable) + index;
if (entry->object == nil) {
entry->policy = policy;
entry->key = key;
@ -221,9 +259,10 @@ void objc_setAssociatedObject(id object, const void *key, id value, objc_Associa
}
else {
AssociationObjectEntry *newEntry;
do {
if (entry->key == key) {
id objectToRelease = nil;
switch (entry->policy) {
case OBJC_ASSOCIATION_ASSIGN:
break;
@ -231,7 +270,7 @@ void objc_setAssociatedObject(id object, const void *key, id value, objc_Associa
case OBJC_ASSOCIATION_RETAIN:
case OBJC_ASSOCIATION_COPY_NONATOMIC:
case OBJC_ASSOCIATION_COPY:
[entry->object release];
objectToRelease = entry->object;
break;
}
entry->policy = policy;
@ -248,8 +287,11 @@ void objc_setAssociatedObject(id object, const void *key, id value, objc_Associa
entry->object = [value copy];
break;
}
AssociationSpinLockUnlock(&AssociationLock);
// Do the cleaning outside of the lock since it might trigger more association playing
[objectToRelease release];
return;
}
if (entry->nextEntry != nil) {
@ -274,29 +316,39 @@ void objc_setAssociatedObject(id object, const void *key, id value, objc_Associa
break;
}
newEntry->nextEntry = NULL;
entry->nextEntry = newEntry;
}
AssociationSpinLockUnlock(&AssociationLock);
}
id objc_getAssociatedObject(id object, const void *key)
{
if (associationTable == NULL) {
return nil;
}
AssociationSpinLockLock(&AssociationLock);
AssociationObjectEntry *objectTable = AssociationTableGet(associationTable, object);
if (objectTable == NULL) {
AssociationSpinLockUnlock(&AssociationLock);
return nil;
}
uintptr_t index = (uintptr_t)(key) & AssociationObjectEntryMask;
AssociationObjectEntry *entry = ((void *)objectTable) + index;
uintptr_t index = HASHPTR(key) % AssociationObjectEntrySize;
AssociationObjectEntry *entry = ((AssociationObjectEntry *)objectTable) + index;
while (entry) {
if (entry->key == key) {
break;
}
entry = entry->nextEntry;
}
AssociationSpinLockUnlock(&AssociationLock);
return entry->object;
if (entry) {
return entry->object;
} else {
return nil;
}
}