diff --git a/Image Opener/WindowController.m b/Image Opener/WindowController.m
index 2706fbd..ed1a3f3 100644
--- a/Image Opener/WindowController.m
+++ b/Image Opener/WindowController.m
@@ -13,25 +13,75 @@
@synthesize filePath = _filePath;
+enum {
+ kTagLucky = 1,
+ kTag2MG,
+ kTagDC42,
+ kTagSDK,
+ kTagDavex,
+ kTagPO,
+ kTagDO
+};
+
static const char *TagToFormat(NSInteger tag)
{
switch (tag)
{
- case 1:
+ case kTagPO:
default:
return "po";
- case 2:
+ case kTagDO:
return "do";
- case 3:
+ case kTag2MG:
return "2img";
- case 4:
+ case kTagDC42:
return "dc42";
- case 5:
+ case kTagDavex:
return "davex";
+ case kTagSDK:
+ return "sdk";
+
+ }
+}
+
+static unsigned ExtToTag(NSString *ext)
+{
+ ext = [ext lowercaseString];
+ if ([ext isEqualToString: @"po"] ||
+ [ext isEqualToString: @"raw"])
+ {
+ return kTagPO;
+ }
+ else if ([ext isEqualToString: @"do"] ||
+ [ext isEqualToString: @"dsk"])
+ {
+ return kTagDO;
+ }
+ else if ([ext isEqualToString: @"2mg"] ||
+ [ext isEqualToString: @"2img"])
+ {
+ return kTag2MG;
+ }
+ else if ([ext isEqualToString: @"dc42"] ||
+ [ext isEqualToString: @"dc"])
+ {
+ return kTagDC42;
+ }
+ else if ([ext isEqualToString: @"davex"] ||
+ [ext isEqualToString: @"dvx"])
+ {
+ return kTagDavex;
+ }
+
+ else if ([ext isEqualToString: @"sdk"] ||
+ [ext isEqualToString: @"shk"])
+ {
+ return kTagDavex;
}
+ return kTagPO;
}
+(id)new
@@ -83,11 +133,11 @@ static const char *TagToFormat(NSInteger tag)
-(void)setFilePath:(NSString *)filePath
{
- NSString *ext;
+ //NSString *ext;
NSFileManager *manager;
NSDictionary *dict;
NSError *error;
- unsigned format;
+ //unsigned format;
if (_filePath == filePath) return;
@@ -113,7 +163,7 @@ static const char *TagToFormat(NSInteger tag)
else
{
NSString *ss = @"";
- size_t size = [(NSNumber *)[dict objectForKey: NSFileSize] unsignedLongLongValue];
+ off_t size = [(NSNumber *)[dict objectForKey: NSFileSize] unsignedLongLongValue];
if (size < 1024)
ss = [NSString stringWithFormat: @"%u B", (unsigned)size];
@@ -130,38 +180,12 @@ static const char *TagToFormat(NSInteger tag)
// set the default image format.
- ext = [_filePath pathExtension];
+ //ext = [_filePath pathExtension];
- ext = [ext lowercaseString];
+ //format = ExtToTag(ext);
- format = 1;
-
- if ([ext isEqualToString: @"po"] ||
- [ext isEqualToString: @"raw"])
- {
- format = 1;
- }
- else if ([ext isEqualToString: @"do"] ||
- [ext isEqualToString: @"dsk"])
- {
- format = 2;
- }
- else if ([ext isEqualToString: @"2mg"] ||
- [ext isEqualToString: @"2img"])
- {
- format = 3;
- }
- else if ([ext isEqualToString: @"dc42"])
- {
- format = 4;
- }
- else if ([ext isEqualToString: @"davex"] ||
- [ext isEqualToString: @"dvx"])
- {
- format = 5;
- }
-
- [_ifMatrix selectCellWithTag: format];
+
+ [_ifMatrix selectCellWithTag: kTagLucky];
[_fsMatrix selectCellWithTag: 1]; // assume prodos.
}
@@ -187,10 +211,12 @@ static const char *TagToFormat(NSInteger tag)
{
NSPipe *pipe = [NSPipe pipe];
NSString *launchPath;
- NSArray *argv;
+ NSMutableArray *argv;
NSNotificationCenter *nc;
NSString *exe;
+ NSInteger tag;
+
_task = [[NSTask alloc] init];
[_task setStandardError: pipe];
@@ -214,13 +240,19 @@ static const char *TagToFormat(NSInteger tag)
launchPath = [[NSBundle mainBundle] pathForAuxiliaryExecutable: exe];
- argv = [NSArray arrayWithObjects:
- @"-r",
- [NSString stringWithFormat: @"--format=%s", TagToFormat([_ifMatrix selectedTag])],
- _filePath
- , nil];
+ argv = [NSMutableArray arrayWithCapacity: 4];
+ [argv addObject: @"-r"]; // read-only.
+
+ tag = [_ifMatrix selectedTag];
+ if (tag != kTagLucky)
+ {
+ [argv addObject: [NSString stringWithFormat: @"--format=%s", TagToFormat(tag)]];
+ }
+
+ [argv addObject: _filePath];
+
[_task setLaunchPath: launchPath];
[_task setArguments: argv];
diff --git a/Image Opener/en.lproj/Window.xib b/Image Opener/en.lproj/Window.xib
index 50c78a3..a278113 100644
--- a/Image Opener/en.lproj/Window.xib
+++ b/Image Opener/en.lproj/Window.xib
@@ -50,7 +50,7 @@
- {{1, 1}, {480, 133}}
+ {{1, 1}, {480, 144}}
@@ -201,7 +201,7 @@
0.94565218687057495
- {{-1, 21}, {482, 135}}
+ {{-1, 21}, {482, 146}}
@@ -213,7 +213,7 @@
289
- {{360, 164}, {100, 18}}
+ {{360, 175}, {100, 18}}
@@ -249,7 +249,7 @@
268
- {{18, 89}, {62, 38}}
+ {{18, 114}, {62, 38}}
@@ -460,13 +460,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
- {{1, 1}, {98, 137}}
+ {{1, 1}, {98, 162}}
- {{17, 186}, {100, 153}}
+ {{17, 197}, {100, 178}}
@@ -506,19 +506,19 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
- {{18, 29}, {134, 98}}
+ {{18, 14}, {134, 138}}
YES
- 5
+ 7
1
YES
-2080244224
131072
- ProDOS Order
+ I’m Feeling Lucky
1
@@ -533,7 +533,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
67239424
131072
- DOS Order
+ Universal Disk Image
2
@@ -639,7 +639,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA
67239424
131072
- Universal Disk Image
+ DiskCopy 4.2
3
@@ -652,7 +652,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA
67239424
131072
- DiskCopy 4.2
+ ShrinkIt Disk Image
4
@@ -675,6 +675,30 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA
400
75
+
+ 67239424
+ 131072
+ ProDOS Order
+
+
+ 1211912703
+ 0
+
+ 400
+ 75
+
+
+ 67239424
+ 131072
+ DOS Order
+
+
+ 1211912703
+ 0
+
+ 400
+ 75
+
{134, 18}
{4, 2}
@@ -738,13 +762,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
- {{1, 1}, {170, 137}}
+ {{1, 1}, {170, 162}}
- {{119, 186}, {172, 153}}
+ {{119, 197}, {172, 178}}
@@ -779,7 +803,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
- {{16, 111}, {86, 18}}
+ {{16, 136}, {86, 18}}
@@ -810,13 +834,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
- {{1, 1}, {168, 137}}
+ {{1, 1}, {168, 162}}
- {{293, 186}, {170, 153}}
+ {{293, 197}, {170, 178}}
@@ -841,7 +865,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
- {{17, 347}, {274, 17}}
+ {{17, 383}, {274, 17}}
@@ -864,7 +888,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
- {{293, 347}, {170, 17}}
+ {{293, 383}, {170, 17}}
@@ -880,7 +904,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
- {{7, 11}, {480, 384}}
+ {{7, 11}, {480, 420}}
@@ -1009,11 +1033,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
YES
-
+
@@ -1113,6 +1137,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
+
+
@@ -1169,20 +1195,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
-
- 33
-
-
- YES
-
-
-
-
-
- 34
-
-
-
35
@@ -1197,6 +1209,30 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
+
+ 46
+
+
+
+
+ 47
+
+
+
+
+ 33
+
+
+ YES
+
+
+
+
+
+ 34
+
+
+
@@ -1284,7 +1320,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
- 45
+ 47