[delegate_ repairWithSelector:@selector(configure)];
else if (error == "The package lists or status file could not be parsed or opened.")
[delegate_ repairWithSelector:@selector(update)];
- else if (error == "Could not get lock /var/lib/dpkg/lock - open (35 Resource temporarily unavailable)")
- [delegate_ repairWithSelector:@selector(unlock)];
- //else if (error == "The list of sources could not be read.")
+ // else if (error == "Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)")
+ // else if (error == "Could not get lock /var/lib/dpkg/lock - open (35 Resource temporarily unavailable)")
+ // else if (error == "The list of sources could not be read.")
else _assert(false);
return;
[packages_ sortUsingSelector:@selector(compareByName:)];
}
-- (void) unlock {
- system("killall dpkg");
-}
-
- (void) configure {
NSString *dpkg = [NSString stringWithFormat:@"dpkg --configure -a --status-fd %u", statusfd_];
system([dpkg UTF8String]);
CGRect bounds = [overlay_ bounds];
navbar_ = [[UINavigationBar alloc] initWithFrame:navrect];
- [navbar_ setBarStyle:1];
+ if (Advanced_)
+ [navbar_ setBarStyle:1];
[navbar_ setDelegate:self];
UINavigationItem *navitem = [[[UINavigationItem alloc] initWithTitle:@"Confirm"] autorelease];
package_ = [package retain];
name_ = [[package id] retain];
- NSString *list = [NSString
- stringWithContentsOfFile:[NSString stringWithFormat:@"/var/lib/dpkg/info/%@.list", name_]
- encoding:kCFStringEncodingUTF8
- error:NULL
- ];
+ NSString *path = [NSString stringWithFormat:@"/var/lib/dpkg/info/%@.list", name_];
+
+ {
+ std::ifstream fin([path UTF8String]);
+ std::string line;
+ while (std::getline(fin, line))
+ [files_ addObject:[NSString stringWithUTF8String:line.c_str()]];
+ }
- if (list != nil) {
- [files_ addObjectsFromArray:[list componentsSeparatedByString:@"\n"]];
- [files_ removeLastObject];
- [files_ removeObjectAtIndex:0];
+ if ([files_ count] != 0) {
+ if ([[files_ objectAtIndex:0] isEqualToString:@"/."])
+ [files_ removeObjectAtIndex:0];
[files_ sortUsingSelector:@selector(compareByPath:)];
NSMutableArray *stack = [NSMutableArray arrayWithCapacity:8];
[buttons addObject:@"Cancel"];
[delegate_ slideUp:[[[UIAlertSheet alloc]
- initWithTitle:@"Manage Package"
+ initWithTitle:nil
buttons:buttons
defaultButtonIndex:2
delegate:self
}
- (void) slideUp:(UIAlertSheet *)alert {
- [alert presentSheetFromButtonBar:buttonbar_];
+ [alert presentSheetInView:overlay_];
}
@end