diff options
author | Jay Freeman <saurik@saurik.com> | 2008-07-20 04:40:32 +0000 |
---|---|---|
committer | Jay Freeman <saurik@saurik.com> | 2008-07-20 04:40:32 +0000 |
commit | d6b93fc81d9aa850eb7ef50bb8f5c79f03fda25c (patch) | |
tree | 9d0835707b862bb9030eca2a41863e291bc6b52b /data/mobileterminal | |
parent | 678bf73fb0538e56996a42363581a7ec195cb7bd (diff) |
Massive changes to support 2.0.
git-svn-id: http://svn.telesphoreo.org/trunk@364 514c082c-b64e-11dc-b46d-3d985efe055d
Diffstat (limited to 'data/mobileterminal')
-rw-r--r-- | data/mobileterminal/cstring.diff | 108 | ||||
-rw-r--r-- | data/mobileterminal/gcc42.diff | 31 | ||||
-rw-r--r-- | data/mobileterminal/gliw.diff | 42 | ||||
-rw-r--r-- | data/mobileterminal/import.diff | 45 | ||||
-rw-r--r-- | data/mobileterminal/make.sh | 2 | ||||
-rw-r--r-- | data/mobileterminal/port.diff | 576 |
6 files changed, 578 insertions, 226 deletions
diff --git a/data/mobileterminal/cstring.diff b/data/mobileterminal/cstring.diff deleted file mode 100644 index ba9499b34..000000000 --- a/data/mobileterminal/cstring.diff +++ /dev/null @@ -1,108 +0,0 @@ -diff -r -ru mobileterminal-286/Log.m mobileterminal-286+iPhone/Log.m ---- mobileterminal-286/Log.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/Log.m 2008-05-07 08:16:51.000000000 +0000 -@@ -21,7 +21,7 @@ - aFileHandle = [NSFileHandle fileHandleForWritingAtPath:aFile]; - [aFileHandle truncateFileAtOffset:[aFileHandle seekToEndOfFile]]; - -- [aFileHandle writeData:[[NSString stringWithFormat: @"%@\n", str] dataUsingEncoding:nil]]; -+ [aFileHandle writeData:[[NSString stringWithFormat: @"%@\n", str] dataUsingEncoding:kCFStringEncodingUTF8]]; - } - - //_______________________________________________________________________________ -diff -r -ru mobileterminal-286/MobileTerminal.m mobileterminal-286+iPhone/MobileTerminal.m ---- mobileterminal-286/MobileTerminal.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/MobileTerminal.m 2008-05-07 08:13:49.000000000 +0000 -@@ -356,7 +356,7 @@ - } - else - { -- [[self activeProcess] write:[input cString] length:[input length]]; -+ [[self activeProcess] write:[input UTF8String] length:[input length]]; - } - } - -diff -r -ru mobileterminal-286/PieView.m mobileterminal-286+iPhone/PieView.m ---- mobileterminal-286/PieView.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/PieView.m 2008-05-07 08:13:35.000000000 +0000 -@@ -71,7 +71,7 @@ - float height = 14.0f; - - NSString *fontName = @"HelveticaBold"; -- CGContextSelectFont(context, [fontName cString], height, kCGEncodingMacRoman); -+ CGContextSelectFont(context, [fontName UTF8String], height, kCGEncodingMacRoman); - CGFontRef font = CGContextGetFont(context); - - NSString * text = [self title]; -diff -r -ru mobileterminal-286/PTYTextView.m mobileterminal-286+iPhone/PTYTextView.m ---- mobileterminal-286/PTYTextView.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/PTYTextView.m 2008-05-07 08:13:35.000000000 +0000 -@@ -238,7 +238,7 @@ - if (!fontRef) - { - TerminalConfig * config = [[[Settings sharedInstance] terminalConfigs] objectAtIndex:termid]; -- const char * font = [config.font cString]; -+ const char * font = [config.font UTF8String]; - // First time through: cache the fontRef. This lookup is expensive. - fontSize = config.fontSize; - CGContextSelectFont(context, font, floor(lineHeight), kCGEncodingMacRoman); -diff -r -ru mobileterminal-286/SubProcess.m mobileterminal-286+iPhone/SubProcess.m ---- mobileterminal-286/SubProcess.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/SubProcess.m 2008-05-07 08:13:35.000000000 +0000 -@@ -140,7 +140,7 @@ - if (arg != nil && [arg length] > 0) - { - // A command line argument was passed to the program -- const char* path = [arg cString]; -+ const char* path = [arg UTF8String]; - struct stat st; - if ((stat(path, &st) == 0) && ((st.st_mode & S_IFDIR) != 0)) // it's a path, issue a cd command - { -@@ -150,7 +150,7 @@ - } - else // just print the command - { -- write(fd, [arg cString], [arg length]); -+ write(fd, [arg UTF8String], [arg length]); - write(fd, "\n", 1); - } - } -@@ -186,7 +186,7 @@ - { - // HACK: Just pretend the message came from the child - NSLog(message); -- [delegate handleStreamOutput:[message cString] length:[message length] identifier:termid]; -+ [delegate handleStreamOutput:[message UTF8String] length:[message length] identifier:termid]; - } - - - (void)setWidth:(int)width height:(int)height -diff -r -ru mobileterminal-286/Tools.m mobileterminal-286+iPhone/Tools.m ---- mobileterminal-286/Tools.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/Tools.m 2008-05-07 08:21:40.000000000 +0000 -@@ -28,7 +29,7 @@ - BOOL writeImageToPNG (CGImageRef image, NSString * filePath) - { - if (image == nil) { log(@"[ERROR] no image"); return NO; } -- CFURLRef cfurl = CFURLCreateFromFileSystemRepresentation (NULL, (const UInt8 *)[filePath cString], [filePath length], 0); -+ CFURLRef cfurl = CFURLCreateFromFileSystemRepresentation (NULL, (const UInt8 *)[filePath UTF8String], [filePath length], 0); - CGImageDestinationRef imageDest = CGImageDestinationCreateWithURL(cfurl, (CFStringRef)@"public.png", 1, nil); - if (imageDest==nil) { log(@"[ERROR] no image destination"); return NO; } - CGImageDestinationAddImage(imageDest, image, nil); -diff -r -ru mobileterminal-286/VT100Terminal.m mobileterminal-286+iPhone/VT100Terminal.m ---- mobileterminal-286/VT100Terminal.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/VT100Terminal.m 2008-05-07 08:13:35.000000000 +0000 -@@ -1226,12 +1226,12 @@ - static int issetup = 0; - if (!issetup) { issetup = 1; - // this crashes on non-Cydia systems when called multiple times -- setupterm((char *)[termType cString], fileno(stdout), &r); -+ setupterm((char *)[termType UTF8String], fileno(stdout), &r); - } - - if (r!=1) - { -- log(@"Terminal type %s is not defined (%d)", [termType cString], r); -+ log(@"Terminal type %s is not defined (%d)", [termType UTF8String], r); - for(i = 0; i < TERMINFO_KEYS; i ++) - { - if (key_strings[i]) free(key_strings[i]); diff --git a/data/mobileterminal/gcc42.diff b/data/mobileterminal/gcc42.diff deleted file mode 100644 index f4fa9245e..000000000 --- a/data/mobileterminal/gcc42.diff +++ /dev/null @@ -1,31 +0,0 @@ -diff -r -ru mobileterminal-286/Settings.h mobileterminal-286+iPhone/Settings.h ---- mobileterminal-286/Settings.h 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/Settings.h 2008-05-07 08:30:30.000000000 +0000 -@@ -18,12 +18,13 @@ - NSString * font; - NSString * args; - -- RGBAColor colors[NUM_TERMINAL_COLORS]; -+ RGBAColor _colors[NUM_TERMINAL_COLORS]; - } - - - (NSString*) fontDescription; -+- (RGBAColor *) colors; - --@property RGBAColor * colors; -+@property (getter = colors) RGBAColor *colors; - @property BOOL autosize; - @property int width; - @property int fontSize; -diff -r -ru mobileterminal-286/Settings.m mobileterminal-286+iPhone/Settings.m ---- mobileterminal-286/Settings.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/Settings.m 2008-05-07 08:30:20.000000000 +0000 -@@ -62,7 +62,7 @@ - } - - - (RGBAColor*) colors { -- return colors; -+ return _colors; - } - - //_______________________________________________________________________________ diff --git a/data/mobileterminal/gliw.diff b/data/mobileterminal/gliw.diff deleted file mode 100644 index 7e0c9af4e..000000000 --- a/data/mobileterminal/gliw.diff +++ /dev/null @@ -1,42 +0,0 @@ -diff -r -ru mobileterminal-286/GestureView.m mobileterminal-286+iPhone/GestureView.m ---- mobileterminal-286/GestureView.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/GestureView.m 2008-05-07 08:22:32.000000000 +0000 -@@ -79,7 +79,7 @@ - - - (void) mouseDown:(GSEvent*)event - { -- mouseDownPos = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event)]; -+ mouseDownPos = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event).origin]; - [delegate showMenu:mouseDownPos]; - - [super mouseDown:event]; -@@ -132,7 +132,7 @@ - - if (![[MenuView sharedInstance] visible]) - { -- CGPoint end = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event)]; -+ CGPoint end = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event).origin]; - CGPoint vector = CGPointMake(end.x - mouseDownPos.x, end.y - mouseDownPos.y); - - float r = sqrtf(vector.x*vector.x + vector.y*vector.y); -@@ -168,7 +168,7 @@ - } - else if (r < 10.0f) - { -- mouseDownPos = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event)]; -+ mouseDownPos = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event).origin]; - if ([[MenuView sharedInstance] visible]) - { - [[MenuView sharedInstance] hide]; -diff -r -ru mobileterminal-286/MobileTerminal.m mobileterminal-286+iPhone/MobileTerminal.m ---- mobileterminal-286/MobileTerminal.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/MobileTerminal.m 2008-05-07 08:13:49.000000000 +0000 -@@ -404,7 +404,7 @@ - { - if (numTerminals > 1) - { -- CGPoint pos = GSEventGetLocationInWindow(event); -+ CGPoint pos = GSEventGetLocationInWindow(event).origin; - float width = landscape ? window.frame.size.height : window.frame.size.width; - if (pos.x > width/2 && pos.x < width*3/4) - { diff --git a/data/mobileterminal/import.diff b/data/mobileterminal/import.diff deleted file mode 100644 index 45b7d9a12..000000000 --- a/data/mobileterminal/import.diff +++ /dev/null @@ -1,45 +0,0 @@ -diff -r -ru mobileterminal-286/Log.h mobileterminal-286+iPhone/Log.h ---- mobileterminal-286/Log.h 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/Log.h 2008-05-07 08:15:04.000000000 +0000 -@@ -1,6 +1,7 @@ - - #include <Foundation/Foundation.h> - #include <CoreFoundation/CoreFoundation.h> -+#import <CoreGraphics/CGGeometry.h> - - #define logf(s,...) [FileLog logFile:__FILE__ lineNumber:__LINE__ format:(s),##__VA_ARGS__] - #define logfRect(s, r) [FileLog logFile:__FILE__ lineNumber:__LINE__ string:(s) rect:(r)] -diff -r -ru mobileterminal-286/Preferences.m mobileterminal-286+iPhone/Preferences.m ---- mobileterminal-286/Preferences.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/Preferences.m 2008-05-07 08:22:11.000000000 +0000 -@@ -13,7 +13,7 @@ - #import "Log.h" - - #import <UIKit/UISimpleTableCell.h> --#import "UIFieldEditor.h" -+#import <UIKit/UIFieldEditor.h> - - //_______________________________________________________________________________ - //_______________________________________________________________________________ -diff -r -ru mobileterminal-286/Tools.h mobileterminal-286+iPhone/Tools.h ---- mobileterminal-286/Tools.h 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/Tools.h 2008-05-07 08:19:04.000000000 +0000 -@@ -3,6 +3,7 @@ - // Terminal - - #import <Foundation/Foundation.h> -+#import <CoreGraphics/CGImage.h> - - //_______________________________________________________________________________ - -diff -r -ru mobileterminal-286/Tools.m mobileterminal-286+iPhone/Tools.m ---- mobileterminal-286/Tools.m 2008-05-07 08:33:09.000000000 +0000 -+++ mobileterminal-286+iPhone/Tools.m 2008-05-07 08:21:40.000000000 +0000 -@@ -4,6 +4,7 @@ - - #import "Tools.h" - #import "Log.h" -+#import <ImageIO/CGImageDestination.h> - - //_______________________________________________________________________________ - //_______________________________________________________________________________ diff --git a/data/mobileterminal/make.sh b/data/mobileterminal/make.sh index 21fe72d2d..f7d7f2b34 100644 --- a/data/mobileterminal/make.sh +++ b/data/mobileterminal/make.sh @@ -1,4 +1,6 @@ pkg:setup +echo "#define SVN_VERSION @\"${PKG_VERS}\"" >svnversion.h +make clean make -f Makefile.build CC="${PKG_TARG}-gcc" pkg: mkdir -p /Applications/Terminal.app pkg: cp -a Info.plist Resources/* Terminal /Applications/Terminal.app diff --git a/data/mobileterminal/port.diff b/data/mobileterminal/port.diff new file mode 100644 index 000000000..390d620c0 --- /dev/null +++ b/data/mobileterminal/port.diff @@ -0,0 +1,576 @@ +diff -r -u mobileterminal-286/GestureView.m mobileterminal-286+iPhone/GestureView.m +--- mobileterminal-286/GestureView.m 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/GestureView.m 2008-07-06 19:51:22.000000000 +0000 +@@ -13,6 +13,11 @@ + #import "Tools.h" + #include <math.h> + ++@protocol UITouchCompatibility ++- (CGPoint)locationInView:(UIView *)view; ++- (CGPoint)previousLocationInView:(UIView *)view; ++@end ++ + @implementation GestureView + + //_______________________________________________________________________________ +@@ -77,9 +82,23 @@ + + //_______________________________________________________________________________ + ++- (BOOL)beginTrackingWithTouch:(id)touch withEvent:(id)event { ++ return [self beginTrackingAt:[touch locationInView:self] withEvent:event]; ++} ++ ++- (BOOL)continueTrackingWithTouch:(id)touch withEvent:(id)event { ++ return [self continueTrackingAt:[touch locationInView:self] previous:[touch previousLocationInView:self] withEvent:event]; ++} ++ ++- (void)endTrackingWithTouch:(id)touch withEvent:(id)event { ++ return [self endTrackingAt:[touch locationInView:self] previous:[touch previousLocationInView:self] withEvent:event]; ++} ++ ++//_______________________________________________________________________________ ++ + - (void) mouseDown:(GSEvent*)event + { +- mouseDownPos = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event)]; ++ mouseDownPos = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event).origin]; + [delegate showMenu:mouseDownPos]; + + [super mouseDown:event]; +@@ -132,7 +151,7 @@ + + if (![[MenuView sharedInstance] visible]) + { +- CGPoint end = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event)]; ++ CGPoint end = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event).origin]; + CGPoint vector = CGPointMake(end.x - mouseDownPos.x, end.y - mouseDownPos.y); + + float r = sqrtf(vector.x*vector.x + vector.y*vector.y); +@@ -168,7 +187,7 @@ + } + else if (r < 10.0f) + { +- mouseDownPos = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event)]; ++ mouseDownPos = [delegate viewPointForWindowPoint:GSEventGetLocationInWindow(event).origin]; + if ([[MenuView sharedInstance] visible]) + { + [[MenuView sharedInstance] hide]; +diff -r -u mobileterminal-286/Log.h mobileterminal-286+iPhone/Log.h +--- mobileterminal-286/Log.h 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/Log.h 2008-05-07 08:15:04.000000000 +0000 +@@ -1,6 +1,7 @@ + + #include <Foundation/Foundation.h> + #include <CoreFoundation/CoreFoundation.h> ++#include <CoreGraphics/CGGeometry.h> + + #define logf(s,...) [FileLog logFile:__FILE__ lineNumber:__LINE__ format:(s),##__VA_ARGS__] + #define logfRect(s, r) [FileLog logFile:__FILE__ lineNumber:__LINE__ string:(s) rect:(r)] +diff -r -u mobileterminal-286/Log.m mobileterminal-286+iPhone/Log.m +--- mobileterminal-286/Log.m 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/Log.m 2008-05-07 08:16:51.000000000 +0000 +@@ -21,7 +21,7 @@ + aFileHandle = [NSFileHandle fileHandleForWritingAtPath:aFile]; + [aFileHandle truncateFileAtOffset:[aFileHandle seekToEndOfFile]]; + +- [aFileHandle writeData:[[NSString stringWithFormat: @"%@\n", str] dataUsingEncoding:nil]]; ++ [aFileHandle writeData:[[NSString stringWithFormat: @"%@\n", str] dataUsingEncoding:kCFStringEncodingUTF8]]; + } + + //_______________________________________________________________________________ +diff -r -u mobileterminal-286/Makefile.build mobileterminal-286+iPhone/Makefile.build +--- mobileterminal-286/Makefile.build 2008-05-07 08:07:55.000000000 +0000 ++++ mobileterminal-286+iPhone/Makefile.build 2008-07-20 04:23:48.000000000 +0000 +@@ -2,9 +2,18 @@ + + CFLAGS=-Wall -O7 + ++ifeq ($(PKG_ARCH),iphoneos-arm) ++QUARTZ=QuartzCore -framework ImageIO ++i20=-I/apl/i20 ++else ++QUARTZ=LayerKit ++i20= ++endif ++ + LDFLAGS=-lobjc -framework CoreFoundation -framework Foundation \ +- -framework UIKit -framework LayerKit -framework CoreGraphics \ +- -framework GraphicsServices -lcurses -lobjc ++ -framework UIKit -framework $(QUARTZ) -framework CoreGraphics \ ++ -framework GraphicsServices -lcurses -lobjc \ ++ -F${PKG_ROOT}/System/Library/PrivateFrameworks + + all: Terminal + +@@ -27,7 +36,7 @@ + $(CC) $(LDFLAGS) -o $@ $^ + + %.o: %.m +- $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ ++ $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ $(i20) + + depend: + @makedepend *.m &> /dev/null +diff -r -u mobileterminal-286/Menu.m mobileterminal-286+iPhone/Menu.m +--- mobileterminal-286/Menu.m 2008-05-07 08:07:55.000000000 +0000 ++++ mobileterminal-286+iPhone/Menu.m 2008-07-05 21:29:08.000000000 +0000 +@@ -127,7 +127,7 @@ + + (Menu*) menuWithArray:(NSArray*)array + { + int i; +- Menu * menu = [[Menu alloc] init]; ++ Menu * menu = [[[Menu alloc] init] autorelease]; + for (i = 0; i < 12; i++) + { + MenuItem * item = [[menu items] objectAtIndex:i]; +diff -r -u mobileterminal-286/MobileTerminal.m mobileterminal-286+iPhone/MobileTerminal.m +--- mobileterminal-286/MobileTerminal.m 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/MobileTerminal.m 2008-07-06 19:43:12.000000000 +0000 +@@ -17,9 +17,17 @@ + #import <Foundation/Foundation.h> + #import <GraphicsServices/GraphicsServices.h> + #import <UIKit/UIView-Geometry.h> +-#import <LayerKit/LKAnimation.h> + #import <CoreGraphics/CoreGraphics.h> + ++#ifdef __OBJC2__ ++#import <QuartzCore/CoreAnimation.h> ++#define LKAnimation CAAnimation ++#define LKTimingFunction CAMediaTimingFunction ++#define LKTransition CATransition ++#else ++#import <LayerKit/LKAnimation.h> ++#endif ++ + //_______________________________________________________________________________ + //_______________________________________________________________________________ + +@@ -57,7 +65,7 @@ + [settings registerDefaults]; + [settings readUserDefaults]; + +- menu = [Menu menuWithArray:[settings menu]]; ++ menu = [[Menu menuWithArray:[settings menu]] retain]; + + activeTerminal = 0; + +@@ -78,10 +86,10 @@ + + for (numTerminals = 0; numTerminals < ([settings multipleTerminals] ? MAXTERMINALS : 1); numTerminals++) + { +- VT100Terminal * terminal = [[VT100Terminal alloc] init]; +- VT100Screen * screen = [[VT100Screen alloc] initWithIdentifier: numTerminals]; +- SubProcess * process = [[SubProcess alloc] initWithDelegate:self identifier: numTerminals]; +- UIScroller * scroller = [[UIScroller alloc] init]; ++ VT100Terminal * terminal = [[[VT100Terminal alloc] init] autorelease]; ++ VT100Screen * screen = [[[VT100Screen alloc] initWithIdentifier: numTerminals] autorelease]; ++ SubProcess * process = [[[SubProcess alloc] initWithDelegate:self identifier: numTerminals] autorelease]; ++ UIScroller * scroller = [[[UIScroller alloc] init] autorelease]; + + [screens addObject: screen]; + [terminals addObject: terminal]; +@@ -91,10 +99,10 @@ + [screen setTerminal:terminal]; + [terminal setScreen:screen]; + +- PTYTextView * textview = [[PTYTextView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 320.0f, 244.0f) ++ PTYTextView * textview = [[[PTYTextView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 320.0f, 244.0f) + source: screen + scroller: scroller +- identifier: numTerminals]; ++ identifier: numTerminals] autorelease]; + [textviews addObject:textview]; + } + +@@ -356,7 +364,7 @@ + } + else + { +- [[self activeProcess] write:[input cString] length:[input length]]; ++ [[self activeProcess] write:[input UTF8String] length:[input length]]; + } + } + +@@ -404,7 +412,7 @@ + { + if (numTerminals > 1) + { +- CGPoint pos = GSEventGetLocationInWindow(event); ++ CGPoint pos = GSEventGetLocationInWindow(event).origin; + float width = landscape ? window.frame.size.height : window.frame.size.width; + if (pos.x > width/2 && pos.x < width*3/4) + { +@@ -679,20 +687,18 @@ + { + //log(@"create terminal"); + VT100Terminal * terminal = [[VT100Terminal alloc] init]; ++ [terminals addObject: terminal]; + //log(@"create screen"); + VT100Screen * screen = [[VT100Screen alloc] initWithIdentifier: numTerminals]; ++ [screens addObject: screen]; ++ [screen setTerminal:terminal]; ++ [terminal setScreen:screen]; + //log(@"create process"); +- SubProcess * process = [[SubProcess alloc] initWithDelegate:self identifier: numTerminals]; + //log(@"process created"); + UIScroller * scroller = [[UIScroller alloc] init]; +- +- [screens addObject: screen]; +- [terminals addObject: terminal]; +- [processes addObject: process]; + [scrollers addObject: scroller]; ++ + +- [screen setTerminal:terminal]; +- [terminal setScreen:screen]; + + //log(@"create textview"); + +@@ -702,6 +708,8 @@ + identifier: numTerminals]; + //log(@"textview created"); + [textviews addObject:textview]; ++ SubProcess * process = [[SubProcess alloc] initWithDelegate:self identifier: numTerminals]; ++ [processes addObject: process]; + } + + [self addStatusBarImageNamed:[NSString stringWithFormat:@"MobileTerminal0"] removeOnAbnormalExit:YES]; +diff -r -u mobileterminal-286/PieView.m mobileterminal-286+iPhone/PieView.m +--- mobileterminal-286/PieView.m 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/PieView.m 2008-05-07 08:13:35.000000000 +0000 +@@ -71,7 +71,7 @@ + float height = 14.0f; + + NSString *fontName = @"HelveticaBold"; +- CGContextSelectFont(context, [fontName cString], height, kCGEncodingMacRoman); ++ CGContextSelectFont(context, [fontName UTF8String], height, kCGEncodingMacRoman); + CGFontRef font = CGContextGetFont(context); + + NSString * text = [self title]; +diff -r -u mobileterminal-286/Preferences.h mobileterminal-286+iPhone/Preferences.h +--- mobileterminal-286/Preferences.h 2008-05-07 08:07:55.000000000 +0000 ++++ mobileterminal-286+iPhone/Preferences.h 2008-07-04 09:50:46.000000000 +0000 +@@ -10,7 +10,6 @@ + #import <UIKit/UISwitchControl.h> + #import "UINavigationController.h" + #import <UIKit/UIPickerView.h> +-#import <UIKit/UIPickerTable.h> + #import <UIKit/UIPickerTableCell.h> + #import "Color.h" + +@@ -24,7 +23,7 @@ + + //_______________________________________________________________________________ + +-@interface UIPickerTable (PickerTableExtensions) ++@interface UITable (PickerTableExtensions) + @end + + @interface UIPickerView (PickerViewExtensions) +@@ -39,7 +38,7 @@ + NSArray * fontNames; + + UIPickerView * fontPicker; +- UIPickerTable * pickerTable; ++ UITable * pickerTable; + + NSString * selectedFont; + } +diff -r -u mobileterminal-286/Preferences.m mobileterminal-286+iPhone/Preferences.m +--- mobileterminal-286/Preferences.m 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/Preferences.m 2008-07-04 09:51:01.000000000 +0000 +@@ -13,12 +13,12 @@ + #import "Log.h" + + #import <UIKit/UISimpleTableCell.h> +-#import "UIFieldEditor.h" ++#import <UIKit/UIFieldEditor.h> + + //_______________________________________________________________________________ + //_______________________________________________________________________________ + +-@implementation UIPickerTable (PickerTableExtensions) ++@implementation UITable (PickerTableExtensions) + + //_______________________________________________________________________________ + +@@ -40,7 +40,9 @@ + @implementation UIPickerView (PickerViewExtensions) + + -(float) tableRowHeight { return 22.0f; } ++#ifndef __OBJC2__ + -(id) delegate { return _delegate; } ++#endif + + //_______________________________________________________________________________ + +@@ -50,7 +52,7 @@ + + for (c = 0; c < [self numberOfColumns]; c++) + { +- UIPickerTable * table = [self tableForColumn:c]; ++ UITable * table = [self tableForColumn:c]; + for (r = 0; r < [table numberOfRows]; r++) + { + [[[table cellAtRow:r column:0] iconImageView] setFrame:CGRectMake(0,0,0,0)]; +diff -r -u mobileterminal-286/PTYTextView.m mobileterminal-286+iPhone/PTYTextView.m +--- mobileterminal-286/PTYTextView.m 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/PTYTextView.m 2008-07-05 21:25:52.000000000 +0000 +@@ -238,11 +238,13 @@ + if (!fontRef) + { + TerminalConfig * config = [[[Settings sharedInstance] terminalConfigs] objectAtIndex:termid]; +- const char * font = [config.font cString]; ++ const char * font = [config.font UTF8String]; + // First time through: cache the fontRef. This lookup is expensive. + fontSize = config.fontSize; + CGContextSelectFont(context, font, floor(lineHeight), kCGEncodingMacRoman); +- fontRef = (CGFontRef)CFRetain(CGContextGetFont(context)); ++ fontRef = CGContextGetFont(context); ++ if (fontRef != NULL) ++ fontRef = (CGFontRef)CFRetain(fontRef); + } + else + { +diff -r -u mobileterminal-286/Settings.h mobileterminal-286+iPhone/Settings.h +--- mobileterminal-286/Settings.h 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/Settings.h 2008-05-07 08:30:30.000000000 +0000 +@@ -18,12 +18,13 @@ + NSString * font; + NSString * args; + +- RGBAColor colors[NUM_TERMINAL_COLORS]; ++ RGBAColor _colors[NUM_TERMINAL_COLORS]; + } + + - (NSString*) fontDescription; ++- (RGBAColor *) colors; + +-@property RGBAColor * colors; ++@property (getter = colors) RGBAColor *colors; + @property BOOL autosize; + @property int width; + @property int fontSize; +diff -r -u mobileterminal-286/Settings.m mobileterminal-286+iPhone/Settings.m +--- mobileterminal-286/Settings.m 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/Settings.m 2008-07-20 04:29:04.000000000 +0000 +@@ -24,7 +24,7 @@ + width = 45; + fontSize = 12; + fontWidth = 0.6f; +- font = @"CourierNewBold"; ++ font = @"CourierNewPS-BoldMT"; + args = @""; + + return self; +@@ -62,7 +62,7 @@ + } + + - (RGBAColor*) colors { +- return colors; ++ return _colors; + } + + //_______________________________________________________________________________ +@@ -97,11 +97,11 @@ + { + self = [super init]; + +- terminalConfigs = [NSArray arrayWithObjects: ++ terminalConfigs = [[NSArray arrayWithObjects: + [[TerminalConfig alloc] init], + [[TerminalConfig alloc] init], + [[TerminalConfig alloc] init], +- [[TerminalConfig alloc] init], nil]; ++ [[TerminalConfig alloc] init], nil] retain]; + + gestureFrameColor = RGBAColorMake(1.0f, 1.0f, 1.0f, 0.05f); + multipleTerminals = NO; +@@ -154,7 +154,7 @@ + [tc setObject:[NSNumber numberWithInt:45] forKey:@"width"]; + [tc setObject:[NSNumber numberWithInt:12] forKey:@"fontSize"]; + [tc setObject:[NSNumber numberWithFloat:0.6f] forKey:@"fontWidth"]; +- [tc setObject:@"CourierNewBold" forKey:@"font"]; ++ [tc setObject:@"CourierNewPS-BoldMT" forKey:@"font"]; + [tc setObject:(i > 0 ? @"clear" : @"") forKey:@"args"]; + + NSMutableArray * ca = [NSMutableArray arrayWithCapacity:NUM_TERMINAL_COLORS]; +diff -r -u mobileterminal-286/ShellKeyboard.m mobileterminal-286+iPhone/ShellKeyboard.m +--- mobileterminal-286/ShellKeyboard.m 2008-05-07 08:07:55.000000000 +0000 ++++ mobileterminal-286+iPhone/ShellKeyboard.m 2008-07-06 19:33:23.000000000 +0000 +@@ -1,6 +1,56 @@ + // ShellKeyboard.m + #import "ShellKeyboard.h" + ++/* iPhoneOS 2.0 Compatibility {{{ */ ++#ifdef __OBJC2__ ++@interface UICGColor : NSObject { ++} ++ ++- (id) initWithCGColor:(CGColorRef)color; ++@end ++ ++@interface UIFont { ++} ++ ++- (UIFont *) fontWithSize:(CGFloat)size; ++@end ++ ++@interface NSObject (iPhoneOS) ++- (CGColorRef) cgColor; ++- (CGColorRef) CGColor; ++- (void) set; ++@end ++ ++@implementation NSObject (iPhoneOS) ++ ++- (CGColorRef) cgColor { ++ return [self CGColor]; ++} ++ ++- (CGColorRef) CGColor { ++ return (CGColorRef) self; ++} ++ ++- (void) set { ++ [[[[objc_getClass("UICGColor") alloc] initWithCGColor:[self CGColor]] autorelease] set]; ++} ++ ++@end ++ ++@interface UITextView (iPhoneOS) ++- (void) setTextSize:(float)size; ++@end ++ ++@implementation UITextView (iPhoneOS) ++ ++- (void) setTextSize:(float)size { ++ [self setFont:[[self font] fontWithSize:size]]; ++} ++ ++@end ++#endif ++/* }}} */ ++ + // Override settings of the default keyboard implementation + @implementation UIKeyboardImpl (DisableFeatures) + +@@ -37,6 +87,14 @@ + - (BOOL)webView:(id)fp8 shouldDeleteDOMRange:(id)fp12 + { + [shellKeyboard handleKeyPress:0x08]; ++ return false; ++} ++ ++- (BOOL)webView:(id)fp8 doCommandBySelector:(SEL)fp12 ++{ ++ if (fp12 == @selector(deleteBackward:)) ++ [shellKeyboard handleKeyPress:0x08]; ++ return false; + } + + - (BOOL)webView:(id)fp8 shouldInsertText:(id)character +@@ -48,6 +106,17 @@ + return false; + } + [shellKeyboard handleKeyPress:[character characterAtIndex:0]]; ++ return false; ++} ++ ++- (NSMethodSignature *) methodSignatureForSelector:(SEL)selector { ++ fprintf(stderr, "[%s]S-%s\n", class_getName(self->isa), sel_getName(selector)); ++ return [super methodSignatureForSelector:selector]; ++} ++ ++- (BOOL) respondsToSelector:(SEL)selector { ++ fprintf(stderr, "[%s]R-%s\n", class_getName(self->isa), sel_getName(selector)); ++ return [super respondsToSelector:selector]; + } + + @end +diff -r -u mobileterminal-286/SubProcess.m mobileterminal-286+iPhone/SubProcess.m +--- mobileterminal-286/SubProcess.m 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/SubProcess.m 2008-05-07 08:13:35.000000000 +0000 +@@ -140,7 +140,7 @@ + if (arg != nil && [arg length] > 0) + { + // A command line argument was passed to the program +- const char* path = [arg cString]; ++ const char* path = [arg UTF8String]; + struct stat st; + if ((stat(path, &st) == 0) && ((st.st_mode & S_IFDIR) != 0)) // it's a path, issue a cd command + { +@@ -150,7 +150,7 @@ + } + else // just print the command + { +- write(fd, [arg cString], [arg length]); ++ write(fd, [arg UTF8String], [arg length]); + write(fd, "\n", 1); + } + } +@@ -186,7 +186,7 @@ + { + // HACK: Just pretend the message came from the child + NSLog(message); +- [delegate handleStreamOutput:[message cString] length:[message length] identifier:termid]; ++ [delegate handleStreamOutput:[message UTF8String] length:[message length] identifier:termid]; + } + + - (void)setWidth:(int)width height:(int)height +diff -r -u mobileterminal-286/svnversion.h mobileterminal-286+iPhone/svnversion.h +--- mobileterminal-286/svnversion.h 2008-05-07 08:13:19.000000000 +0000 ++++ mobileterminal-286+iPhone/svnversion.h 2008-07-06 19:26:10.000000000 +0000 +@@ -1 +1 @@ +-#define SVN_VERSION @"287" ++#define SVN_VERSION @"298" +diff -r -u mobileterminal-286/Tools.h mobileterminal-286+iPhone/Tools.h +--- mobileterminal-286/Tools.h 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/Tools.h 2008-05-07 08:19:04.000000000 +0000 +@@ -3,6 +3,7 @@ + // Terminal + + #import <Foundation/Foundation.h> ++#import <CoreGraphics/CGImage.h> + + //_______________________________________________________________________________ + +diff -r -u mobileterminal-286/Tools.m mobileterminal-286+iPhone/Tools.m +--- mobileterminal-286/Tools.m 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/Tools.m 2008-05-07 08:21:40.000000000 +0000 +@@ -4,6 +4,7 @@ + + #import "Tools.h" + #import "Log.h" ++#include <ImageIO/CGImageDestination.h> + + //_______________________________________________________________________________ + //_______________________________________________________________________________ +@@ -28,7 +29,7 @@ + BOOL writeImageToPNG (CGImageRef image, NSString * filePath) + { + if (image == nil) { log(@"[ERROR] no image"); return NO; } +- CFURLRef cfurl = CFURLCreateFromFileSystemRepresentation (NULL, (const UInt8 *)[filePath cString], [filePath length], 0); ++ CFURLRef cfurl = CFURLCreateFromFileSystemRepresentation (NULL, (const UInt8 *)[filePath UTF8String], [filePath length], 0); + CGImageDestinationRef imageDest = CGImageDestinationCreateWithURL(cfurl, (CFStringRef)@"public.png", 1, nil); + if (imageDest==nil) { log(@"[ERROR] no image destination"); return NO; } + CGImageDestinationAddImage(imageDest, image, nil); +diff -r -u mobileterminal-286/VT100Terminal.m mobileterminal-286+iPhone/VT100Terminal.m +--- mobileterminal-286/VT100Terminal.m 2008-05-07 08:33:09.000000000 +0000 ++++ mobileterminal-286+iPhone/VT100Terminal.m 2008-05-07 08:13:35.000000000 +0000 +@@ -1226,12 +1226,12 @@ + static int issetup = 0; + if (!issetup) { issetup = 1; + // this crashes on non-Cydia systems when called multiple times +- setupterm((char *)[termType cString], fileno(stdout), &r); ++ setupterm((char *)[termType UTF8String], fileno(stdout), &r); + } + + if (r!=1) + { +- log(@"Terminal type %s is not defined (%d)", [termType cString], r); ++ log(@"Terminal type %s is not defined (%d)", [termType UTF8String], r); + for(i = 0; i < TERMINFO_KEYS; i ++) + { + if (key_strings[i]) free(key_strings[i]); |