1 line
4.1 KiB
C
Executable File
1 line
4.1 KiB
C
Executable File
/* Copyright (c) 2017, Computer History Museum
|
|
All rights reserved.
|
|
Redistribution and use in source and binary forms, with or without modification, are permitted (subject to
|
|
the limitations in the disclaimer below) provided that the following conditions are met:
|
|
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
|
disclaimer in the documentation and/or other materials provided with the distribution.
|
|
* Neither the name of Computer History Museum nor the names of its contributors may be used to endorse or promote products
|
|
derived from this software without specific prior written permission.
|
|
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE
|
|
COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
|
DAMAGE. */
|
|
|
|
#ifndef FILTERS_H
|
|
#define FILTERS_H
|
|
|
|
#ifdef TWO
|
|
#include "filtdefs.h"
|
|
|
|
typedef struct CountedSpecStruct
|
|
{
|
|
FSSpec spec;
|
|
short count;
|
|
} CSpec, *CSpecPtr, **CSpecHandle;
|
|
|
|
typedef struct FAction *FActionPtr, **FActionHandle;
|
|
typedef struct FAction
|
|
{
|
|
Handle data;
|
|
FActionHandle next;
|
|
FilterKeywordEnum action;
|
|
} FAction;
|
|
|
|
typedef enum
|
|
{
|
|
faeInit,
|
|
faeDraw,
|
|
faeClose,
|
|
faeDispose,
|
|
faeResize,
|
|
faeRead,
|
|
faeWrite,
|
|
faeButton,
|
|
faeClick,
|
|
faeSave,
|
|
faeDo,
|
|
faeFind,
|
|
faeCursor,
|
|
faePrint,
|
|
faeHelp,
|
|
faeMBWillRename,
|
|
faeMBDidRename,
|
|
faeMouseGoingDown,
|
|
faeNew,
|
|
#ifdef FANCY_FILT_LDEF
|
|
faeListDraw,
|
|
#endif
|
|
faeLimit
|
|
} FACallEnum;
|
|
|
|
typedef short FActionProc(FACallEnum callType,FActionHandle action,Rect *r,void *dataPtr);
|
|
#define CallAction(callType,act,r,dataPtr)\
|
|
(*(FActionProc *)FATable((*act)->action))(callType,act,r,dataPtr)
|
|
|
|
#define MAX_ACTIONS 5
|
|
|
|
typedef enum
|
|
{
|
|
mbmContains=1,
|
|
mbmNotContains,
|
|
mbmIs,
|
|
mbmIsnt,
|
|
mbmStarts,
|
|
mbmEnds,
|
|
mbmAppears,
|
|
mbmNotAppears,
|
|
mbmIntersects,
|
|
mbmNotIntersects,
|
|
mbmIntersectsFile,
|
|
mbmNotIntersectsFile,
|
|
mbmRegEx,
|
|
mbmJunkLess,
|
|
mbmJunkMore,
|
|
mbmLimit
|
|
} MatchEnum;
|
|
|
|
typedef enum
|
|
{
|
|
cjIgnore=1,
|
|
cjAnd,
|
|
cjOr,
|
|
cjUnless,
|
|
cjLimit
|
|
} ConjunctionEnum;
|
|
|
|
typedef struct
|
|
{
|
|
Str63 header;
|
|
short headerID; //0 or FILTER_BODY|FILTER_ADDRESSEE|FILTER_ANY
|
|
Str127 value;
|
|
MatchEnum verb;
|
|
UHandle nickExpanded;
|
|
UHandle nickAddresses;
|
|
RegexpHandle regex;
|
|
} MatchTerm, *MTPtr, **MTHandle;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
long id;
|
|
uLong lastMatch;
|
|
} FilterUse, *FUPtr, **FUHandle;
|
|
|
|
typedef struct
|
|
{
|
|
Str31 name;
|
|
FSSpec transferSpec;
|
|
Boolean incoming;
|
|
Boolean outgoing;
|
|
Boolean manual;
|
|
MatchTerm terms[2];
|
|
ConjunctionEnum conjunction;
|
|
FActionHandle actions;
|
|
FilterUse fu;
|
|
Boolean kill;
|
|
} FilterRecord, *FRPtr, **FRHandle;
|
|
|
|
#define NFilters (Filters ? GetHandleSize_(Filters)/sizeof(FilterRecord) : 0)
|
|
#define FR (*(FRHandle)Filters)
|
|
|
|
typedef struct
|
|
{
|
|
TOCHandle tocH;
|
|
short sumNum;
|
|
Boolean openMailbox;
|
|
Boolean openMessage;
|
|
Boolean doReport;
|
|
Boolean dontReport;
|
|
Boolean dontUser;
|
|
Boolean xferred;
|
|
Boolean xferredFromIMAP;
|
|
Boolean print;
|
|
short doNotifyThing;
|
|
FSSpec spec;
|
|
CSpecHandle report;
|
|
CSpecHandle mailbox;
|
|
CSpecHandle message;
|
|
short **sounds;
|
|
short notify;
|
|
Str15 to;
|
|
Str15 cc;
|
|
Str15 bcc;
|
|
BinAddrHandle toAddresses;
|
|
BinAddrHandle ccAddresses;
|
|
BinAddrHandle bccAddresses;
|
|
} FilterPB, *FilterPBPtr, **FilterPBHandle;
|
|
|
|
#define afbOpenMailbox 1
|
|
#define afbOpenMessage 2
|
|
#define afbUser 1
|
|
#define afbReport 2
|
|
#define afbTrash 1
|
|
#define afbFetch 2
|
|
|
|
#endif
|
|
#endif
|