| diff -aruN a/CFXMLPreferencesDomain.c b/CFXMLPreferencesDomain.c |
| --- a/CFXMLPreferencesDomain.c 2009-02-19 08:32:54.000000000 -0800 |
| +++ b/CFXMLPreferencesDomain.c 2012-04-25 10:35:53.000000000 -0700 |
| @@ -238,9 +238,10 @@ |
| } |
| |
| |
| -#if DEPLOYMENT_TARGET_MACOSX |
| +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_LINUX |
| +#include <stdio.h> |
| #include <sys/fcntl.h> |
| |
| /* __CFWriteBytesToFileWithAtomicity is a "safe save" facility. Write the bytes using the specified mode on the file to the provided URL. If the atomic flag is true, try to do it in a fashion that will enable a safe save. |
| */ |
| static Boolean __CFWriteBytesToFileWithAtomicity(CFURLRef url, const void *bytes, int length, SInt32 mode, Boolean atomic) { |
| @@ -264,6 +269,6 @@ |
| if (atomic) { |
| CFURLRef dir = CFURLCreateCopyDeletingLastPathComponent(kCFAllocatorSystemDefault, url); |
| - CFURLRef tempFile = CFURLCreateCopyAppendingPathComponent(kCFAllocatorSystemDefault, dir, CFSTR("cf#XXXXX"), false); |
| + CFURLRef tempFile = CFURLCreateCopyAppendingPathComponent(kCFAllocatorSystemDefault, dir, CFSTR("cf#XXXXXX"), false); |
| CFRelease(dir); |
| if (!CFURLGetFileSystemRepresentation(tempFile, true, (uint8_t *)auxPath, CFMaxPathSize)) { |
| CFRelease(tempFile); |
| @@ -339,12 +346,12 @@ |
| CFRelease(binStream); |
| if (data) { |
| SInt32 mode; |
| -#if DEPLOYMENT_TARGET_MACOSX |
| +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_LINUX |
| mode = isWorldReadable ? S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH : S_IRUSR|S_IWUSR; |
| #else |
| mode = 0666; |
| #endif |
| -#if DEPLOYMENT_TARGET_MACOSX |
| +#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_LINUX |
| { // Try quick atomic way first, then fallback to slower ways and error cases |
| CFStringRef scheme = CFURLCopyScheme(url); |
| if (!scheme) { |