Lines Matching refs:rule
60 static void getrule(const char **p, int rule[5])
62 int r = rule[0] = **p;
66 else rule[0] = 0;
67 rule[1] = getint(p);
69 ++*p; rule[1] = getint(p);
70 ++*p; rule[2] = getint(p);
71 ++*p; rule[3] = getint(p);
76 rule[4] = getoff(p);
78 rule[4] = 7200;
241 * and determine alternate opposite-DST-status rule that may be needed. */
256 /* Binary search for 'most-recent rule before t'. */
272 * non-DST type. Last means to apply POSIX-style rule if available. */
295 /* Try to find a neighboring opposite-DST-status rule. */
314 /* Convert a POSIX DST rule plus year to seconds since epoch. */
316 static long long rule_to_secs(const int *rule, int year)
321 if (rule[0]!='M') {
322 x = rule[1];
323 if (rule[0]=='J' && (x < 60 || !is_leap)) x--;
326 m = rule[1];
327 n = rule[2];
328 d = rule[3];
336 t += rule[4];
343 * the GMT offset for the active zone/DST rule and the opposite DST. This