source: vendor/patch/2.5.9/partime.h

Last change on this file was 3444, checked in by bird, 18 years ago

patch 2.5.9

File size: 2.4 KB
Line 
1/* Parse a string, yielding a struct partime that describes it. */
2
3/* Copyright 1993, 1994, 1995, 1997 Paul Eggert
4 Distributed under license by the Free Software Foundation, Inc.
5
6 This file is part of RCS.
7
8 RCS is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
11 any later version.
12
13 RCS is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with RCS; see the file COPYING.
20 If not, write to the Free Software Foundation,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23 Report problems and direct all questions to:
24
25 rcs-bugs@cs.purdue.edu
26
27 */
28
29#define TM_UNDEFINED (-1)
30#define TM_DEFINED(x) (0 <= (x))
31
32/* #include <limits.h> if you want to use these symbols. */
33#define TM_LOCAL_ZONE LONG_MIN
34#define TM_UNDEFINED_ZONE (LONG_MIN + 1)
35
36struct partime
37 {
38 /* This structure describes the parsed time.
39 Only the following tm_* members are used:
40 sec, min, hour, mday, mon, year, wday, yday.
41 If ! TM_DEFINED (value), the parser never found the value.
42 The tm_year field is the actual year, not the year - 1900;
43 but see ymodulus below. */
44 struct tm tm;
45
46 /* Like tm, but values are relative to the value in tm,
47 and values are initialized to 0 rather than to TM_UNDEFINED.
48 Only the following tm_* members are used:
49 sec, min, hour, mday, mon, year. */
50 struct tm tmr;
51
52 /* If TM_DEFINED (wday_ordinal),
53 then day number (e.g. 3 in "3rd Sunday"). */
54 int wday_ordinal;
55
56 /* If TM_DEFINED (ymodulus),
57 then tm.tm_year is actually modulo ymodulus. */
58 int ymodulus;
59
60 /* Week of year, ISO 8601 style.
61 If ! TM_DEFINED (yweek), the parser never found yweek.
62 Weeks start on Mondays.
63 Week 1 includes Jan 4. */
64 int yweek;
65
66 /* Seconds east of UTC; or TM_LOCAL_ZONE or TM_UNDEFINED_ZONE. */
67 long zone;
68 };
69
70#if defined __STDC__ || has_prototypes
71# define __PARTIME_P(x) x
72#else
73# define __PARTIME_P(x) ()
74#endif
75
76char *partime __PARTIME_P ((char const *, struct partime *));
77char *parzone __PARTIME_P ((char const *, long *));
Note: See TracBrowser for help on using the repository browser.