1 /* $XConsortium: rerule.h /main/1 1996/04/21 19:24:15 drk $ */
3 * (c) Copyright 1993, 1994 Hewlett-Packard Company
4 * (c) Copyright 1993, 1994 International Business Machines Corp.
5 * (c) Copyright 1993, 1994 Novell, Inc.
6 * (c) Copyright 1993, 1994 Sun Microsystems, Inc.
12 typedef unsigned long Time;
13 typedef unsigned int Interval;
16 #define RE_INFINITY -1
21 #define RE_STOP_FLAG 0x80000000
22 #define RE_SET_FLAG(data) (data |= RE_STOP_FLAG)
23 #define RE_STOP_IS_SET(data) (data & RE_STOP_FLAG)
24 #define RE_MASK_STOP(data) (data & ~RE_STOP_FLAG)
64 typedef struct _NumberList {
65 struct _NumberList *nl_next;
66 unsigned int nl_number;
69 typedef struct _DayTime {
71 unsigned int dt_ntime;
75 typedef struct _DayTimeList {
76 struct _DayTimeList *dtl_next;
80 typedef struct _WeekDayTime {
81 unsigned int wdt_nday;
83 unsigned int wdt_ntime;
85 unsigned int wdt_nweek;
89 typedef struct _WeekDayTimeList {
90 struct _WeekDayTimeList *wdtl_next;
91 WeekDayTime *wdtl_weektime;
94 typedef struct _DailyData {
95 unsigned int dd_ntime;
99 typedef struct _WeeklyData {
100 unsigned int wd_ndaytime;
104 typedef struct _MonthlyData {
105 unsigned int md_nitems; /* # of md_weektime or md_days */
106 WeekDayTime *md_weektime; /* Used in MP command */
107 unsigned int *md_days; /* Array of days for MD command */
110 typedef struct _YearlyData {
111 unsigned int yd_nitems;
112 unsigned int *yd_items; /* Array of days/months event occurs */
115 typedef struct _RepeatEvent {
116 struct _RepeatEvent *re_next;
117 struct _RepeatEvent *re_prev;
118 Interval re_interval;
119 Duration re_duration;
124 WeeklyData *re_weekly;
125 MonthlyData *re_monthly;
126 YearlyData *re_yearly;
130 typedef struct _RepeatEventState {
131 struct _RepeatEventState *res_next;
132 const RepeatEvent *res_re;
133 Duration res_duration; /* # events remaining */
136 unsigned int res_time;
138 struct _WeeklyState {
139 unsigned int res_daytime;
140 unsigned int res_time;
142 struct _MonthlyState {
143 unsigned int res_day;
144 unsigned int res_weektime;
145 unsigned int res_wday;
146 unsigned int res_wtime;
147 unsigned int res_wweek;
149 struct _YearlyState {
150 unsigned int res_daymonth;
155 extern void _DtCm_free_re(RepeatEvent *);
156 extern void _DtCm_free_re_state(RepeatEventState *);
158 #endif /* _RERULE_H */