/***************************************************************/ /* */ /* PROTOS.H */ /* */ /* Function Prototypes. */ /* */ /* This file is part of REMIND. */ /* Copyright (C) 1992-1998 by David F. Skoll */ /* Copyright (C) 1999-2000 by Roaring Penguin Software Inc. */ /* */ /***************************************************************/ /* Define a string assignment macro - be careful!!! */ #define STRSET(x, str) { if (x) free(x); (x) = StrDup(str); } /* Define a general malloc routine for creating pointers to objects */ #define NEW(type) ((type *) malloc(sizeof(type))) #include "dynbuf.h" int CallUserFunc (char const *name, int nargs); int DoFset (ParsePtr p); void ProduceCalendar (void); char *SimpleTime (int tim); char *CalendarTime (int tim, int duration); int DoRem (ParsePtr p); int DoFlush (ParsePtr p); void DoExit (ParsePtr p); int ParseRem (ParsePtr s, Trigger *trig, TimeTrig *tim); int TriggerReminder (ParsePtr p, Trigger *t, TimeTrig *tim, int jul); int ShouldTriggerReminder (Trigger *t, TimeTrig *tim, int jul); int DoSubst (ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int jul, int mode); int DoSubstFromString (char const *source, DynamicBuffer *dbuf, int jul, int tim); int EvalExpr (char const **e, Value *v); int DoCoerce (char type, Value *v); void PrintValue (Value *v, FILE *fp); int CopyValue (Value *dest, const Value *src); int ReadLine (void); int OpenFile (const char *fname); int PopFile (void); int DoInclude (ParsePtr p); int IncludeFile (const char *fname); int GetAccessDate (char *file); int SetAccessDate (char *fname, int jul); int TopLevel (void); int CallFunc (Operator *f, int nargs); void InitRemind (int argc, char *argv[]); void Usage (void); int main (int argc, char *argv[]); int Julian (int year, int month, int day); void FromJulian (int jul, int *y, int *m, int *d); int ParseChar (ParsePtr p, int *err, int peek); int ParseToken (ParsePtr p, DynamicBuffer *dbuf); int ParseIdentifier (ParsePtr p, DynamicBuffer *dbuf); int EvaluateExpr (ParsePtr p, Value *v); int Evaluate (char const **s, Var *locals); int FnPopValStack (Value *val); void Eprint (const char *fmt, ...); void OutputLine (FILE *fp); void CreateParser (char const *s, ParsePtr p); void DestroyParser (ParsePtr p); int PushToken (const char *tok, ParsePtr p); long SystemTime (int realtime); int SystemDate (int *y, int *m, int *d); int DoIf (ParsePtr p); int DoElse (ParsePtr p); int DoEndif (ParsePtr p); int DoIfTrig (ParsePtr p); int ShouldIgnoreLine (void); int VerifyEoln (ParsePtr p); int DoDebug (ParsePtr p); int DoBanner (ParsePtr p); int DoRun (ParsePtr p); int DoErrMsg (ParsePtr p); int ClearGlobalOmits (void); int DoClear (ParsePtr p); int DestroyOmitContexts (void); int PushOmitContext (ParsePtr p); int PopOmitContext (ParsePtr p); int IsOmitted (int jul, int localomit); int DoOmit (ParsePtr p); int QueueReminder (ParsePtr p, Trigger *trig, TimeTrig *tim, const char *sched); void HandleQueuedReminders (void); char *FindInitialToken (Token *tok, char *s); void FindToken (const char *s, Token *tok); void FindNumericToken (const char *s, Token *t); int ComputeTrigger (int today, Trigger *trig, int *err); char *StrnCpy (char *dest, const char *source, int n); int StrMatch (const char *s1, const char *s2, int n); int StrinCmp (const char *s1, const char *s2, int n); char *StrDup (const char *s); int StrCmpi (const char *s1, const char *s2); Var *FindVar (const char *str, int create); int DeleteVar (const char *str); int SetVar (const char *str, Value *val); int GetVarValue (const char *str, Value *val, Var *locals); int DoSet (Parser *p); int DoUnset (Parser *p); int DoDump (ParsePtr p); void DumpVarTable (void); void DestroyVars (int all); int PreserveVar (char const *name); int DoPreserve (Parser *p); int DoSatRemind (Trigger *trig, TimeTrig *tim, ParsePtr p); int DoMsgCommand (char *cmd, char *msg); int ParseNonSpaceChar (ParsePtr p, int *err, int peek); unsigned int HashVal (const char *str); int DateOK (int y, int m, int d); Operator *FindFunc (char *name, Operator where[], int num); int InsertIntoSortBuffer (int jul, int tim, char *body, int typ, int prio); void IssueSortedReminders (void); int UserFuncExists (char *fn); void JulToHeb (int jul, int *hy, int *hm, int *hd); int HebNameToNum (const char *mname); char *HebMonthName (int m, int y); int RoshHashana (int i); long DaysToHebYear (int y); int DaysInHebYear (int y); char *DaysInHebMonths (int ylen); int HebToJul (int hy, int hm, int hd); int GetValidHebDate (int yin, int min, int din, int adarbehave, int *mout, int *dout, int yahr); int GetNextHebrewDate (int julstart, int hm, int hd, int yahr, int adarbehave, int *ans); int ComputeJahr (int y, int m, int d, int *ans); int GetSysVar (const char *name, Value *val); int SetSysVar (const char *name, Value *val); void DumpSysVarByName (const char *name); int CalcMinsFromUTC (int jul, int tim, int *mins, int *isdst); void FillParagraph (char *s); void LocalToUTC (int locdate, int loctime, int *utcdate, int *utctime); void UTCToLocal (int utcdate, int utctime, int *locdate, int *loctime); int MoonPhase (int date, int time); void HuntPhase (int startdate, int starttim, int phas, int *date, int *time); int CompareRems (int dat1, int tim1, int prio1, int dat2, int tim2, int prio2, int bydate, int bytime, int byprio); void SigIntHandler (int d); void GotSigInt (void); void SynthesizeTag(char *);