This is ComposeHelper.m in view mode; [Download] [Up]
/* -*-C-*- ******************************************************************************* * * File: ComposeHelper.m * RCS: /usr/local/sources/CVS/EnhanceMail/ComposeHelper.m,v 1.3 1998/06/30 20:13:14 tom Exp * Description: * Author: Carl Edman * Created: Fri Oct 13 11:48:05 1995 * Modified: Tue Jun 25 20:02:38 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 "ComposeHelper.h" #import "Preferences.h" #import "PGP.h" #import "regexp.h" @implementation EnhanceComposeHelper + finishLoading:(struct mach_header *)header { [NXApp addComposeHelperClass:self]; return self; } - init { if (self=[super init]) { if (EnhanceUsePGP) { char path[MAXPATHLEN]; if ([EnhanceBundle getPath:path forResource:"EncryptComposeHelper" ofType:"nib"]) [NXApp loadNibFile:path owner:self]; [encryptSwitch setState:EnhancePGPEncrypt]; [signSwitch setState:EnhancePGPSign]; } } return self; } - (void)y2kFixDateHeader:(MailMessage *)mes { static regexp *daterx; const char *date = [mes headerValueForKey:"Date"]; if (!date) return; if (!daterx) daterx = regcomp("^( *[^ ,]+, *[ 0-9][0-9] +[^ ]+ )([0-9][0-9]+)( +.*)"); if (regexec(daterx, date)) { int year = atoi(daterx->startp[2]); if (year < 200) { char subst[20]; char *fixedDate = alloca(daterx->endp[0] - daterx->startp[0] + 2 + 1); if (year < 70) year += 2000; else year += 1900; sprintf(subst, "\\1%d\\3", year); regsub(daterx, subst, fixedDate); [mes setHeaderKey:"Date" value:fixedDate]; } } } - (View *)composeView { if (EnhanceUsePGP) return accessoryBox; return nil; } - (BOOL)willDeliverMessage:(MailMessage *)mes to:(StringList *)rcpt { if (EnhanceUsePGP) { BOOL shouldSign=[signSwitch state]; BOOL shouldEncrypt=[encryptSwitch state]; if ([[EnhancePGP new] encodePGP:mes to:rcpt sign:shouldSign encrypt:shouldEncrypt]==NO) return NO; } [self y2kFixDateHeader:mes]; return YES; } @end // EnhanceComposeHelper
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.