home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / os2 / remind / src / globals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-10-31  |  4.6 KB  |  155 lines

  1. /***************************************************************/
  2. /*                                                             */
  3. /*  GLOBALS.H                                                  */
  4. /*                                                             */
  5. /*  This function contains declarations of global variables.   */
  6. /*  They are instantiated in main.c by defining                */
  7. /*  MK_GLOBALS.  Also contains useful macro definitions.       */
  8. /*                                                             */
  9. /*  This file is part of REMIND.                               */
  10. /*  Copyright (C) 1992, 1993 by David F. Skoll.                */
  11. /*                                                             */
  12. /***************************************************************/
  13. #ifdef MK_GLOBALS
  14. #undef EXTERN
  15. #define EXTERN
  16. #define INIT(var, val) var = val
  17. #else
  18. #undef EXTERN
  19. #define EXTERN extern
  20. #define INIT(var, val) var
  21. #endif
  22.  
  23. #define DaysInYear(y) (((y) % 4) ? 365 : ((!((y) % 100) && ((y) % 400)) ? 365 : 366 ))
  24. #define IsLeapYear(y) (((y) % 4) ? 0 : ((!((y) % 100) && ((y) % 400)) ? 0 : 1 ))
  25. #define DaysInMonth(m, y) ((m) != 1 ? MonthDays[m] : 28 + IsLeapYear(y))
  26.  
  27. EXTERN    int    JulianToday;
  28. EXTERN    int    RealToday;
  29. EXTERN    int    CurDay;
  30. EXTERN    int    CurMon;
  31. EXTERN    int    CurYear;
  32. EXTERN  int    LineNo;
  33. EXTERN  int     FreshLine;
  34. EXTERN  char    LineBuffer[LINELEN];
  35. EXTERN  char    SubstBuffer[LINELEN];
  36. EXTERN  char    TokBuffer[TOKSIZE+1];
  37. EXTERN  INIT(   char    *MsgCommand, NULL);
  38. EXTERN  INIT(    int     ShowAllErrors, 0);
  39. EXTERN  INIT(    int     DebugFlag, 0);
  40. EXTERN  INIT(   int    DoCalendar, 0);
  41. EXTERN  INIT(   int     DoSimpleCalendar, 0);
  42. EXTERN    INIT(    int    MondayFirst, 0);
  43. EXTERN    INIT(    int    Iterations, 1);
  44. EXTERN  INIT(   int     PsCal, 0);
  45. EXTERN  INIT(   int     CalWidth, 80);
  46. EXTERN  INIT(   int     CalWeeks, 0);
  47. EXTERN  INIT(   int     CalMonths, 0);
  48. EXTERN  INIT(    int     Hush, 0);
  49. EXTERN  INIT(    int     NextMode, 0);
  50. EXTERN  INIT(    int     InfiniteDelta, 0);
  51. EXTERN  INIT(   int     RunDisabled, 0);
  52. EXTERN  INIT(   int     IgnoreOnce, 0);
  53. EXTERN  INIT(   int     SortByTime, 0);
  54. EXTERN  INIT(   int     SortByDate, 0);
  55. EXTERN    INIT(    int    SortByPrio, 0);
  56.  
  57. EXTERN    char    *InitialFile;
  58. EXTERN    int    FileAccessDate;
  59.  
  60. EXTERN  INIT(    int     DontFork, 0);
  61. EXTERN  INIT(    int     DontQueue, 0);
  62. EXTERN  INIT(   int     NumQueued, 0);
  63. EXTERN  INIT(   int     DontIssueAts, 0);
  64. EXTERN  INIT(   int     Daemon, 0);
  65.  
  66.  
  67. EXTERN  INIT(   int     ScFormat, SC_AMPM);
  68. EXTERN  INIT(   int     MaxSatIter, 150);
  69. EXTERN  INIT(    char    *FileName, NULL);
  70. EXTERN    INIT(    int    UseStdin, 0);
  71. EXTERN  FILE *ErrFp;
  72. EXTERN  INIT(   int     NumIfs,    0);
  73. EXTERN  INIT(   unsigned int IfFlags,   0);
  74. EXTERN  INIT(   int     LastTriggerDate, 0);
  75. EXTERN  INIT(   int     LastTrigValid, 0);
  76. EXTERN  INIT(   int     LastTriggerTime, 0);
  77. EXTERN  INIT(   int     ShouldCache, 0);
  78. EXTERN  char    *CurLine;
  79. EXTERN  INIT(   int     NumTriggered, 0);
  80. EXTERN  int ArgC;
  81. EXTERN  char **ArgV;
  82. EXTERN  INIT(   int     CalLines, CAL_LINES);
  83. EXTERN  INIT(   int     CalPad, 1);
  84.  
  85. /* Latitude and longitude */
  86. EXTERN  INIT(    int      LatDeg, LAT_DEG);
  87. EXTERN  INIT(    int      LatMin, LAT_MIN);
  88. EXTERN  INIT(    int      LatSec, LAT_SEC);
  89. EXTERN  INIT(    int      LongDeg, LON_DEG);
  90. EXTERN  INIT(    int      LongMin, LON_MIN);
  91. EXTERN  INIT(    int      LongSec, LON_SEC);
  92. EXTERN    INIT(    char      *Location, LOCATION);
  93.  
  94. /* UTC calculation stuff */
  95. EXTERN  INIT(    int      MinsFromUTC, 0);
  96. EXTERN    INIT(    int      CalculateUTC, 1);
  97. EXTERN  INIT(   int      FoldYear, 0);
  98.  
  99. /* Parameters for formatting MSGF reminders */
  100. EXTERN  INIT(   int      FormWidth, 72);
  101. EXTERN    INIT(    int      FirstIndent, 0);
  102. EXTERN    INIT(    int      SubsIndent, 0);
  103. EXTERN    INIT(    char      *EndSent, ".?!");
  104. EXTERN    INIT(    char      *EndSentIg, "\"')]}>");
  105.  
  106. /* We need the language stuff here... */
  107.  
  108. #include "lang.h"
  109.  
  110. EXTERN  INIT(   char    Banner[LINELEN], L_BANNER);
  111.  
  112. /* List of months */
  113. EXTERN    char    *MonthName[]
  114. #ifdef MK_GLOBALS
  115. = {L_JAN, L_FEB, L_MAR, L_APR, L_MAY, L_JUN,
  116.    L_JUL, L_AUG, L_SEP, L_OCT, L_NOV, L_DEC}
  117. #endif
  118. ;
  119.  
  120. EXTERN    char    *DayName[]
  121. #ifdef MK_GLOBALS
  122. = {L_MONDAY, L_TUESDAY, L_WEDNESDAY, L_THURSDAY, L_FRIDAY,
  123.    L_SATURDAY, L_SUNDAY}
  124. #endif
  125. ;
  126.  
  127. EXTERN    int    MonthDays[]
  128. #ifdef MK_GLOBALS
  129. = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
  130. #endif
  131. ;
  132.  
  133. /* The first day of each month expressed as number of days after Jan 1.
  134.    Second row is for leap years. */
  135.  
  136. EXTERN    int    MonthIndex[2][12]
  137. #ifdef MK_GLOBALS
  138. = {
  139.     { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 },
  140.     { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 }
  141.   }
  142. #endif
  143. ;
  144.  
  145. #if defined(__OS2__)
  146. #if defined(_MSC_VER) || defined(__EMX__)
  147. #define OS2MODE (_osmode == OS2_MODE)
  148. #define DOSMODE (_osmode == DOS_MODE)
  149. #else
  150. #define OS2MODE 1
  151. #define DOSMODE 0
  152. #endif
  153. #endif
  154.  
  155.