This is TocMatrix.m in view mode; [Download] [Up]
/* -*-C-*-
*******************************************************************************
*
* File: TocMatrix.m
* RCS: $Header: /usr/local/lib/cvs/EnhanceMail/TocMatrix.m,v 1.1.1.4 1996/05/29 18:00:52 cedman Exp $
* Description:
* Author: Carl Edman
* Created: Fri Oct 20 14:47:00 1995
* Modified: Fri Apr 19 13:32:20 1996 (Carl Edman) cedman@capitalist.princeton.edu
* Language: C
* Package: N/A
* Status: Experimental (Do Not Distribute)
*
* (C) Copyright 1995, but otherwise this file is perfect freeware.
*
*******************************************************************************
*/
#import "EnhanceMail.h"
#import <regex.h>
#import "TocMatrix.h"
#import "MailBox.h"
#import "SimpleString.h"
static id cellar=nil;
@implementation EnhanceTocMatrix
+ finishLoading:(struct mach_header *)header
{
[self poseAs:[self superclass]];
return self;
}
- findForward:(BOOL)forward all:(BOOL)all
{
id panel=[FindPanel new];
id box=[[window delegate] mailbox];
id ret;
if ([panel searchMessage]&&![panel regExpr]&&[panel findField]
&&(box!=nil)&&[box hasStore])
{
id list=nil,tmp=nil;
int i;
if (cellar==nil) cellar=[[HashTable alloc] init];
tmp=[[SimpleString alloc] init];
[tmp appendString:"whole(Content parse("];
[tmp appendString:[panel findField]];
[tmp appendString:"))"];
list=[box query:[tmp string]];
tmp=[tmp free];
if (list!=nil)
{
for(i=[list count]-1;i>=0;i--)
{
tmp=[self cellForMsgId:[[list objectAt:i] msgId]];
if (tmp) [cellar insertKey:tmp value:tmp];
}
list=[[list freeObjects] free];
}
}
else
{
if (cellar!=nil) cellar=[cellar free];
}
ret=[super findForward:forward all:all];
if (cellar!=nil) cellar=[cellar free];
return ret;
}
- (BOOL)cell:fp16 containsRegExpr:(struct regex *)fp20 searchMessage:(BOOL)fp24
{
if ((cellar!=nil)&&![cellar isKey:fp16]) return NO;
return [super cell:fp16 containsRegExpr:fp20 searchMessage:fp24];
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.