Merge lp:~august-joki/sparkle/snow-leopard into lp:sparkle
- snow-leopard
- Merge into main
Proposed by
august
Status: | Merged |
---|---|
Merged at revision: | 352 |
Proposed branch: | lp:~august-joki/sparkle/snow-leopard |
Merge into: | lp:sparkle |
Diff against target: | None lines |
To merge this branch: | bzr merge lp:~august-joki/sparkle/snow-leopard |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andy Matuschak | Pending | ||
Review via email: mp+7436@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
august (august-joki) wrote : | # |
Revision history for this message
Andy Matuschak (andymatuschak) wrote : | # |
Thanks a lot for the patch, August, but unfortunately, we still need to support Tiger, so we've gotta keep the old guys around, at least in if'd form.
I can do that myself when I get a chance (may be a bit), or I'd love to merge this in if you could handle it.
Thanks a lot!
- 351. By August Joki <email address hidden>
-
added #ifdef's for Tiger support
Revision history for this message
august (august-joki) wrote : | # |
Added the #ifdef's.
Need to review SUPlainInstalle
Also the fix in the NSLog in SUHost.m is just a guess as to what it was supposed to be.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'SUAppcast.m' | |||
2 | --- SUAppcast.m 2008-12-24 04:11:17 +0000 | |||
3 | +++ SUAppcast.m 2009-06-15 02:30:46 +0000 | |||
4 | @@ -60,7 +60,7 @@ | |||
5 | 60 | NSArray *xmlItems = nil; | 60 | NSArray *xmlItems = nil; |
6 | 61 | NSMutableArray *appcastItems = [NSMutableArray array]; | 61 | NSMutableArray *appcastItems = [NSMutableArray array]; |
7 | 62 | 62 | ||
9 | 63 | [[NSFileManager defaultManager] removeFileAtPath:downloadFilename handler:nil]; | 63 | [[NSFileManager defaultManager] removeItemAtPath:downloadFilename error:NULL]; |
10 | 64 | [downloadFilename release]; | 64 | [downloadFilename release]; |
11 | 65 | downloadFilename = nil; | 65 | downloadFilename = nil; |
12 | 66 | 66 | ||
13 | @@ -177,7 +177,7 @@ | |||
14 | 177 | { | 177 | { |
15 | 178 | CFRelease(download); | 178 | CFRelease(download); |
16 | 179 | 179 | ||
18 | 180 | [[NSFileManager defaultManager] removeFileAtPath:downloadFilename handler:nil]; | 180 | [[NSFileManager defaultManager] removeItemAtPath:downloadFilename error:NULL]; |
19 | 181 | [downloadFilename release]; | 181 | [downloadFilename release]; |
20 | 182 | downloadFilename = nil; | 182 | downloadFilename = nil; |
21 | 183 | 183 | ||
22 | 184 | 184 | ||
23 | === modified file 'SUBasicUpdateDriver.m' | |||
24 | --- SUBasicUpdateDriver.m 2009-05-09 21:31:35 +0000 | |||
25 | +++ SUBasicUpdateDriver.m 2009-06-15 02:30:46 +0000 | |||
26 | @@ -144,7 +144,7 @@ | |||
27 | 144 | int cnt=1; | 144 | int cnt=1; |
28 | 145 | while ([[NSFileManager defaultManager] fileExistsAtPath:tempDir] && cnt <= 999) | 145 | while ([[NSFileManager defaultManager] fileExistsAtPath:tempDir] && cnt <= 999) |
29 | 146 | tempDir = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@ %d", prefix, cnt++]]; | 146 | tempDir = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@ %d", prefix, cnt++]]; |
31 | 147 | BOOL success = [[NSFileManager defaultManager] createDirectoryAtPath:tempDir attributes:nil]; | 147 | BOOL success = [[NSFileManager defaultManager] createDirectoryAtPath:tempDir withIntermediateDirectories:YES attributes:nil error:NULL]; |
32 | 148 | if (!success) | 148 | if (!success) |
33 | 149 | { | 149 | { |
34 | 150 | // Okay, something's really broken with /tmp | 150 | // Okay, something's really broken with /tmp |
35 | @@ -223,8 +223,8 @@ | |||
36 | 223 | NSString *relaunchPathToCopy = [[NSBundle bundleForClass:[self class]] pathForResource:@"relaunch" ofType:@""]; | 223 | NSString *relaunchPathToCopy = [[NSBundle bundleForClass:[self class]] pathForResource:@"relaunch" ofType:@""]; |
37 | 224 | NSString *targetPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[relaunchPathToCopy lastPathComponent]]; | 224 | NSString *targetPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[relaunchPathToCopy lastPathComponent]]; |
38 | 225 | // Only the paranoid survive: if there's already a stray copy of relaunch there, we would have problems | 225 | // Only the paranoid survive: if there's already a stray copy of relaunch there, we would have problems |
41 | 226 | [[NSFileManager defaultManager] removeFileAtPath:targetPath handler:nil]; | 226 | [[NSFileManager defaultManager] removeItemAtPath:targetPath error:NULL]; |
42 | 227 | if ([[NSFileManager defaultManager] copyPath:relaunchPathToCopy toPath:targetPath handler:nil]) | 227 | if ([[NSFileManager defaultManager] copyItemAtPath:relaunchPathToCopy toPath:targetPath error:NULL]) |
43 | 228 | relaunchPath = [targetPath retain]; | 228 | relaunchPath = [targetPath retain]; |
44 | 229 | 229 | ||
45 | 230 | [SUInstaller installFromUpdateFolder:[downloadPath stringByDeletingLastPathComponent] overHost:host delegate:self synchronously:[self shouldInstallSynchronously] versionComparator:[self _versionComparator]]; | 230 | [SUInstaller installFromUpdateFolder:[downloadPath stringByDeletingLastPathComponent] overHost:host delegate:self synchronously:[self shouldInstallSynchronously] versionComparator:[self _versionComparator]]; |
46 | @@ -274,13 +274,13 @@ | |||
47 | 274 | 274 | ||
48 | 275 | - (void)cleanUp | 275 | - (void)cleanUp |
49 | 276 | { | 276 | { |
51 | 277 | [[NSFileManager defaultManager] removeFileAtPath:[downloadPath stringByDeletingLastPathComponent] handler:nil]; | 277 | [[NSFileManager defaultManager] removeItemAtPath:[downloadPath stringByDeletingLastPathComponent] error:NULL]; |
52 | 278 | } | 278 | } |
53 | 279 | 279 | ||
54 | 280 | - (void)installerForHost:(SUHost *)aHost failedWithError:(NSError *)error | 280 | - (void)installerForHost:(SUHost *)aHost failedWithError:(NSError *)error |
55 | 281 | { | 281 | { |
56 | 282 | if (aHost != host) { return; } | 282 | if (aHost != host) { return; } |
58 | 283 | [[NSFileManager defaultManager] removeFileAtPath:relaunchPath handler:NULL]; // Clean up the copied relauncher. | 283 | [[NSFileManager defaultManager] removeItemAtPath:relaunchPath error:NULL]; // Clean up the copied relauncher. |
59 | 284 | [self abortUpdateWithError:[NSError errorWithDomain:SUSparkleErrorDomain code:SUInstallationError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:SULocalizedString(@"An error occurred while installing the update. Please try again later.", nil), NSLocalizedDescriptionKey, [error localizedDescription], NSLocalizedFailureReasonErrorKey, nil]]]; | 284 | [self abortUpdateWithError:[NSError errorWithDomain:SUSparkleErrorDomain code:SUInstallationError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:SULocalizedString(@"An error occurred while installing the update. Please try again later.", nil), NSLocalizedDescriptionKey, [error localizedDescription], NSLocalizedFailureReasonErrorKey, nil]]]; |
60 | 285 | } | 285 | } |
61 | 286 | 286 | ||
62 | 287 | 287 | ||
63 | === modified file 'SUDiskImageUnarchiver.m' | |||
64 | --- SUDiskImageUnarchiver.m 2008-07-17 05:48:10 +0000 | |||
65 | +++ SUDiskImageUnarchiver.m 2009-06-15 02:30:46 +0000 | |||
66 | @@ -33,7 +33,7 @@ | |||
67 | 33 | if ([[NSFileManager defaultManager] fileExistsAtPath:mountPoint]) goto reportError; | 33 | if ([[NSFileManager defaultManager] fileExistsAtPath:mountPoint]) goto reportError; |
68 | 34 | 34 | ||
69 | 35 | // create mount point folder | 35 | // create mount point folder |
71 | 36 | [[NSFileManager defaultManager] createDirectoryAtPath:mountPoint attributes:nil]; | 36 | [[NSFileManager defaultManager] createDirectoryAtPath:mountPoint withIntermediateDirectories:YES attributes:nil error:NULL]; |
72 | 37 | if (![[NSFileManager defaultManager] fileExistsAtPath:mountPoint]) goto reportError; | 37 | if (![[NSFileManager defaultManager] fileExistsAtPath:mountPoint]) goto reportError; |
73 | 38 | 38 | ||
74 | 39 | NSArray* arguments = [NSArray arrayWithObjects:@"attach", archivePath, @"-mountpoint", mountPoint, @"-noverify", @"-nobrowse", @"-noautoopen", nil]; | 39 | NSArray* arguments = [NSArray arrayWithObjects:@"attach", archivePath, @"-mountpoint", mountPoint, @"-noverify", @"-nobrowse", @"-noautoopen", nil]; |
75 | @@ -47,16 +47,16 @@ | |||
76 | 47 | 47 | ||
77 | 48 | // Now that we've mounted it, we need to copy out its contents. | 48 | // Now that we've mounted it, we need to copy out its contents. |
78 | 49 | NSString *targetPath = [[archivePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:[mountPoint lastPathComponent]]; | 49 | NSString *targetPath = [[archivePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:[mountPoint lastPathComponent]]; |
80 | 50 | if (![[NSFileManager defaultManager] createDirectoryAtPath:targetPath attributes:nil]) goto reportError; | 50 | if (![[NSFileManager defaultManager] createDirectoryAtPath:targetPath withIntermediateDirectories:YES attributes:nil error:NULL]) goto reportError; |
81 | 51 | 51 | ||
82 | 52 | // We can't just copyPath: from the volume root because that always fails. Seems to be a bug. | 52 | // We can't just copyPath: from the volume root because that always fails. Seems to be a bug. |
84 | 53 | id subpathEnumerator = [[[NSFileManager defaultManager] directoryContentsAtPath:mountPoint] objectEnumerator], currentSubpath; | 53 | id subpathEnumerator = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:mountPoint error:NULL] objectEnumerator], currentSubpath; |
85 | 54 | while ((currentSubpath = [subpathEnumerator nextObject])) | 54 | while ((currentSubpath = [subpathEnumerator nextObject])) |
86 | 55 | { | 55 | { |
87 | 56 | NSString *currentFullPath = [mountPoint stringByAppendingPathComponent:currentSubpath]; | 56 | NSString *currentFullPath = [mountPoint stringByAppendingPathComponent:currentSubpath]; |
88 | 57 | // Don't bother trying (and failing) to copy out files we can't read. That's not going to be the app anyway. | 57 | // Don't bother trying (and failing) to copy out files we can't read. That's not going to be the app anyway. |
89 | 58 | if (![[NSFileManager defaultManager] isReadableFileAtPath:currentFullPath]) continue; | 58 | if (![[NSFileManager defaultManager] isReadableFileAtPath:currentFullPath]) continue; |
91 | 59 | if (![[NSFileManager defaultManager] copyPath:currentFullPath toPath:[targetPath stringByAppendingPathComponent:currentSubpath] handler:nil]) | 59 | if (![[NSFileManager defaultManager] copyItemAtPath:currentFullPath toPath:[targetPath stringByAppendingPathComponent:currentSubpath] error:NULL]) |
92 | 60 | goto reportError; | 60 | goto reportError; |
93 | 61 | } | 61 | } |
94 | 62 | 62 | ||
95 | @@ -70,7 +70,7 @@ | |||
96 | 70 | if (mountedSuccessfully) | 70 | if (mountedSuccessfully) |
97 | 71 | [NSTask launchedTaskWithLaunchPath:@"/usr/bin/hdiutil" arguments:[NSArray arrayWithObjects:@"detach", mountPoint, @"-force", nil]]; | 71 | [NSTask launchedTaskWithLaunchPath:@"/usr/bin/hdiutil" arguments:[NSArray arrayWithObjects:@"detach", mountPoint, @"-force", nil]]; |
98 | 72 | else | 72 | else |
100 | 73 | [[NSFileManager defaultManager] removeFileAtPath:mountPoint handler:nil]; | 73 | [[NSFileManager defaultManager] removeItemAtPath:mountPoint error:NULL]; |
101 | 74 | [pool drain]; | 74 | [pool drain]; |
102 | 75 | } | 75 | } |
103 | 76 | 76 | ||
104 | 77 | 77 | ||
105 | === modified file 'SUHost.m' | |||
106 | --- SUHost.m 2009-01-12 22:31:52 +0000 | |||
107 | +++ SUHost.m 2009-06-15 02:30:46 +0000 | |||
108 | @@ -19,7 +19,7 @@ | |||
109 | 19 | { | 19 | { |
110 | 20 | bundle = [aBundle retain]; | 20 | bundle = [aBundle retain]; |
111 | 21 | if (![bundle bundleIdentifier]) | 21 | if (![bundle bundleIdentifier]) |
113 | 22 | NSLog(@"Sparkle Error: the bundle being updated at %@ has no CFBundleIdentifier! This will cause preference read/write to not work properly."); | 22 | NSLog(@"Sparkle Error: the bundle being updated at %@ has no CFBundleIdentifier! This will cause preference read/write to not work properly.", bundle); |
114 | 23 | } | 23 | } |
115 | 24 | return self; | 24 | return self; |
116 | 25 | } | 25 | } |
117 | 26 | 26 | ||
118 | === modified file 'SUInstaller.m' | |||
119 | --- SUInstaller.m 2009-02-11 22:54:55 +0000 | |||
120 | +++ SUInstaller.m 2009-06-15 02:30:46 +0000 | |||
121 | @@ -9,7 +9,7 @@ | |||
122 | 9 | #import "SUInstaller.h" | 9 | #import "SUInstaller.h" |
123 | 10 | #import "SUPlainInstaller.h" | 10 | #import "SUPlainInstaller.h" |
124 | 11 | #import "SUPackageInstaller.h" | 11 | #import "SUPackageInstaller.h" |
126 | 12 | #import "SUHost.h" | 12 | #import "SUHost.h" |
127 | 13 | 13 | ||
128 | 14 | @implementation SUInstaller | 14 | @implementation SUInstaller |
129 | 15 | 15 | ||
130 | 16 | 16 | ||
131 | === modified file 'SUPipedUnarchiver.m' | |||
132 | --- SUPipedUnarchiver.m 2008-07-24 03:54:10 +0000 | |||
133 | +++ SUPipedUnarchiver.m 2009-06-15 02:30:46 +0000 | |||
134 | @@ -48,7 +48,7 @@ | |||
135 | 48 | FILE *fp = NULL, *cmdFP = NULL; | 48 | FILE *fp = NULL, *cmdFP = NULL; |
136 | 49 | 49 | ||
137 | 50 | // Get the file size. | 50 | // Get the file size. |
139 | 51 | NSNumber *fs = [[[NSFileManager defaultManager] fileAttributesAtPath:archivePath traverseLink:NO] objectForKey:NSFileSize]; | 51 | NSNumber *fs = [[[NSFileManager defaultManager] attributesOfItemAtPath:archivePath error:NULL] objectForKey:NSFileSize]; |
140 | 52 | if (fs == nil) goto reportError; | 52 | if (fs == nil) goto reportError; |
141 | 53 | 53 | ||
142 | 54 | // Thank you, Allan Odgaard! | 54 | // Thank you, Allan Odgaard! |
143 | 55 | 55 | ||
144 | === modified file 'SUPlainInstaller.h' | |||
145 | --- SUPlainInstaller.h 2008-09-10 16:47:58 +0000 | |||
146 | +++ SUPlainInstaller.h 2009-06-15 02:30:46 +0000 | |||
147 | @@ -11,6 +11,7 @@ | |||
148 | 11 | 11 | ||
149 | 12 | #import "Sparkle.h" | 12 | #import "Sparkle.h" |
150 | 13 | #import "SUInstaller.h" | 13 | #import "SUInstaller.h" |
151 | 14 | #import "SUHost.h" | ||
152 | 14 | #import "SUVersionComparisonProtocol.h" | 15 | #import "SUVersionComparisonProtocol.h" |
153 | 15 | 16 | ||
154 | 16 | @interface SUPlainInstaller : SUInstaller { } | 17 | @interface SUPlainInstaller : SUInstaller { } |
155 | 17 | 18 | ||
156 | === modified file 'SUPlainInstallerInternals.m' | |||
157 | --- SUPlainInstallerInternals.m 2009-01-10 02:57:29 +0000 | |||
158 | +++ SUPlainInstallerInternals.m 2009-06-15 02:30:46 +0000 | |||
159 | @@ -235,13 +235,13 @@ | |||
160 | 235 | 235 | ||
161 | 236 | NSString *tmpPath = [self _temporaryCopyNameForPath:dst]; | 236 | NSString *tmpPath = [self _temporaryCopyNameForPath:dst]; |
162 | 237 | 237 | ||
164 | 238 | if (![[NSFileManager defaultManager] movePath:dst toPath:tmpPath handler:self]) | 238 | if (![[NSFileManager defaultManager] moveItemAtPath:dst toPath:tmpPath error:NULL]) |
165 | 239 | { | 239 | { |
166 | 240 | if (error != NULL) | 240 | if (error != NULL) |
167 | 241 | *error = [NSError errorWithDomain:SUSparkleErrorDomain code:SUFileCopyFailure userInfo:[NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Couldn't move %@ to %@.", dst, tmpPath] forKey:NSLocalizedDescriptionKey]]; | 241 | *error = [NSError errorWithDomain:SUSparkleErrorDomain code:SUFileCopyFailure userInfo:[NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Couldn't move %@ to %@.", dst, tmpPath] forKey:NSLocalizedDescriptionKey]]; |
168 | 242 | return NO; | 242 | return NO; |
169 | 243 | } | 243 | } |
171 | 244 | if (![[NSFileManager defaultManager] copyPath:src toPath:dst handler:self]) | 244 | if (![[NSFileManager defaultManager] copyItemAtPath:src toPath:dst error:NULL]) |
172 | 245 | { | 245 | { |
173 | 246 | if (error != NULL) | 246 | if (error != NULL) |
174 | 247 | *error = [NSError errorWithDomain:SUSparkleErrorDomain code:SUFileCopyFailure userInfo:[NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Couldn't copy %@ to %@.", src, dst] forKey:NSLocalizedDescriptionKey]]; | 247 | *error = [NSError errorWithDomain:SUSparkleErrorDomain code:SUFileCopyFailure userInfo:[NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Couldn't copy %@ to %@.", src, dst] forKey:NSLocalizedDescriptionKey]]; |
175 | @@ -320,7 +320,7 @@ | |||
176 | 320 | // Only recurse if it's actually a directory. Don't recurse into a | 320 | // Only recurse if it's actually a directory. Don't recurse into a |
177 | 321 | // root-level symbolic link. | 321 | // root-level symbolic link. |
178 | 322 | NSDictionary* rootAttributes = | 322 | NSDictionary* rootAttributes = |
180 | 323 | [[NSFileManager defaultManager] fileAttributesAtPath:root traverseLink:NO]; | 323 | [[NSFileManager defaultManager] attributesOfItemAtPath:root error:NULL]; |
181 | 324 | NSString* rootType = [rootAttributes objectForKey:NSFileType]; | 324 | NSString* rootType = [rootAttributes objectForKey:NSFileType]; |
182 | 325 | 325 | ||
183 | 326 | if (rootType == NSFileTypeDirectory) { | 326 | if (rootType == NSFileTypeDirectory) { |
184 | 327 | 327 | ||
185 | === modified file 'SUUIBasedUpdateDriver.m' | |||
186 | --- SUUIBasedUpdateDriver.m 2009-01-08 18:49:41 +0000 | |||
187 | +++ SUUIBasedUpdateDriver.m 2009-06-15 02:30:46 +0000 | |||
188 | @@ -122,7 +122,7 @@ | |||
189 | 122 | { | 122 | { |
190 | 123 | // We do this here instead of in extractUpdate so that we only have a determinate progress bar for archives with progress. | 123 | // We do this here instead of in extractUpdate so that we only have a determinate progress bar for archives with progress. |
191 | 124 | if ([statusController maxProgressValue] == 0) | 124 | if ([statusController maxProgressValue] == 0) |
193 | 125 | [statusController setMaxProgressValue:[[[[NSFileManager defaultManager] fileAttributesAtPath:downloadPath traverseLink:NO] objectForKey:NSFileSize] doubleValue]]; | 125 | [statusController setMaxProgressValue:[[[[NSFileManager defaultManager] attributesOfItemAtPath:downloadPath error:NULL] objectForKey:NSFileSize] doubleValue]]; |
194 | 126 | [statusController setProgressValue:[statusController progressValue] + length]; | 126 | [statusController setProgressValue:[statusController progressValue] + length]; |
195 | 127 | } | 127 | } |
196 | 128 | 128 | ||
197 | 129 | 129 | ||
198 | === modified file 'Sparkle.xcodeproj/project.pbxproj' | |||
199 | --- Sparkle.xcodeproj/project.pbxproj 2009-05-22 04:02:35 +0000 | |||
200 | +++ Sparkle.xcodeproj/project.pbxproj 2009-06-15 02:30:46 +0000 | |||
201 | @@ -1022,6 +1022,7 @@ | |||
202 | 1022 | 1DEB91B208733DA50010E9CD /* Debug */ = { | 1022 | 1DEB91B208733DA50010E9CD /* Debug */ = { |
203 | 1023 | isa = XCBuildConfiguration; | 1023 | isa = XCBuildConfiguration; |
204 | 1024 | buildSettings = { | 1024 | buildSettings = { |
205 | 1025 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; | ||
206 | 1025 | WARNING_CFLAGS = "-Wundeclared-selector"; | 1026 | WARNING_CFLAGS = "-Wundeclared-selector"; |
207 | 1026 | }; | 1027 | }; |
208 | 1027 | name = Debug; | 1028 | name = Debug; |
209 | @@ -1029,6 +1030,7 @@ | |||
210 | 1029 | 1DEB91B308733DA50010E9CD /* Release */ = { | 1030 | 1DEB91B308733DA50010E9CD /* Release */ = { |
211 | 1030 | isa = XCBuildConfiguration; | 1031 | isa = XCBuildConfiguration; |
212 | 1031 | buildSettings = { | 1032 | buildSettings = { |
213 | 1033 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; | ||
214 | 1032 | WARNING_CFLAGS = "-Wundeclared-selector"; | 1034 | WARNING_CFLAGS = "-Wundeclared-selector"; |
215 | 1033 | }; | 1035 | }; |
216 | 1034 | name = Release; | 1036 | name = Release; |
217 | @@ -1036,7 +1038,7 @@ | |||
218 | 1036 | 61072EAD0DF263BD008FE88B /* Release (GC dual-mode; 10.5-only) */ = { | 1038 | 61072EAD0DF263BD008FE88B /* Release (GC dual-mode; 10.5-only) */ = { |
219 | 1037 | isa = XCBuildConfiguration; | 1039 | isa = XCBuildConfiguration; |
220 | 1038 | buildSettings = { | 1040 | buildSettings = { |
222 | 1039 | GCC_VERSION = ""; | 1041 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; |
223 | 1040 | WARNING_CFLAGS = "-Wundeclared-selector"; | 1042 | WARNING_CFLAGS = "-Wundeclared-selector"; |
224 | 1041 | }; | 1043 | }; |
225 | 1042 | name = "Release (GC dual-mode; 10.5-only)"; | 1044 | name = "Release (GC dual-mode; 10.5-only)"; |
226 | 1043 | 1045 | ||
227 | === modified file 'relaunch.m' | |||
228 | --- relaunch.m 2008-07-01 03:13:43 +0000 | |||
229 | +++ relaunch.m 2009-06-15 02:30:46 +0000 | |||
230 | @@ -39,7 +39,7 @@ | |||
231 | 39 | - (void) relaunch | 39 | - (void) relaunch |
232 | 40 | { | 40 | { |
233 | 41 | [[NSWorkspace sharedWorkspace] openFile:[[NSFileManager defaultManager] stringWithFileSystemRepresentation:executablePath length:strlen(executablePath)]]; | 41 | [[NSWorkspace sharedWorkspace] openFile:[[NSFileManager defaultManager] stringWithFileSystemRepresentation:executablePath length:strlen(executablePath)]]; |
235 | 42 | [[NSFileManager defaultManager] removeFileAtPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"relaunch"] handler:nil]; | 42 | [[NSFileManager defaultManager] removeItemAtPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"relaunch"] error:NULL]; |
236 | 43 | exit(0); | 43 | exit(0); |
237 | 44 | } | 44 | } |
238 | 45 | 45 |
File System methods have been deprecated since 10.5. Time to move to the replacement methods.