From a03ab599c2f079c46b05142db4b8475a0f7ff30e Mon Sep 17 00:00:00 2001 From: Gregory John Casamento Date: Sun, 12 Jan 2003 06:29:19 +0000 Subject: [PATCH] Some bug fixes to header parsing and a documentation change. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@15579 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 9 +++++++++ Documentation/Gorm.texi | 13 ++++++++----- GormDocument.m | 21 ++++++++++++++------- 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5f3f9afc..7b27d47e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2003-01-12 Gregory John Casamento + + * GormDocument.m: -[GormDocument parseHeader:]: Fixed a + problem parsing headers with multiple variables in one + declarations (e.g. "id x,y,z"). Also added code + to recognize actions in the form of "(id) actionName: (id)x". + * Documentation/Gorm.texi: Modified docs to show current + status of Gorm. + 2003-01-09 Gregory John Casamento * GormCustomView.m: Corrected problem with dummy implementation diff --git a/Documentation/Gorm.texi b/Documentation/Gorm.texi index 3cac0c92..1c388e1a 100644 --- a/Documentation/Gorm.texi +++ b/Documentation/Gorm.texi @@ -117,7 +117,13 @@ See the file @samp{COPYING}. @item Richard Frith-Macdonald wrote Gorm as part of the GNUstep project. - +@item +Gregory John Casamento Is the +current maintaner of Gorm. Has implemented lots of new +features and rewritten large portions of the existing code. +@item +Pierre-Yves Rivaille Is also a +major contributor to the Gorm application. @end itemize @node Installation, News, Contributors, Top @@ -134,10 +140,7 @@ Gorm as part of the GNUstep project. @itemize @bullet -@item Add more inspectors -@item Add more editors -@item Add support for matrix -@item Add support for grouping in box/scrollview +@item Debug and stabilize existing code. @end itemize diff --git a/GormDocument.m b/GormDocument.m index 891c90a5..c8b36b03 100644 --- a/GormDocument.m +++ b/GormDocument.m @@ -749,8 +749,9 @@ static NSImage *classesImage = nil; NSCharacterSet *superClassStopSet = [NSCharacterSet characterSetWithCharactersInString: @" \n"]; NSCharacterSet *classStopSet = [NSCharacterSet characterSetWithCharactersInString: @" :"]; NSCharacterSet *actionStopSet = [NSCharacterSet characterSetWithCharactersInString: @";:"]; + NSCharacterSet *outletStopSet = [NSCharacterSet characterSetWithCharactersInString: @";,"]; NSArray *outletTokens = [NSArray arrayWithObjects: @"id", @"IBOutlet id", nil]; - NSArray *actionTokens = [NSArray arrayWithObjects: @"(void)", @"(IBAction)", nil]; + NSArray *actionTokens = [NSArray arrayWithObjects: @"(void)", @"(IBAction)", @"(id)",nil]; while(![headerScanner isAtEnd]) { @@ -803,19 +804,25 @@ static NSImage *classesImage = nil; // ivar an outlet. while((outletToken = [outletEnum nextObject]) != nil) { + NSString *delimiter = nil; NSDebugLog(@"outlet Token = %@",outletToken); // Scan the variables of the class... ivarScanner = [NSScanner scannerWithString: ivarString]; while(![ivarScanner isAtEnd]) { NSString *outlet = nil; - - [ivarScanner scanUpToString: outletToken - intoString: NULL]; - [ivarScanner scanString: outletToken - intoString: NULL]; - [ivarScanner scanUpToString: @";" + + if(delimiter == nil || [delimiter isEqualToString: @";"]) + { + [ivarScanner scanUpToString: outletToken + intoString: NULL]; + [ivarScanner scanString: outletToken + intoString: NULL]; + } + [ivarScanner scanUpToCharactersFromSet: outletStopSet intoString: &outlet]; + [ivarScanner scanCharactersFromSet: outletStopSet + intoString: &delimiter]; if([ivarScanner isAtEnd] == NO && [outlets indexOfObject: outlet] == NSNotFound) {