1
/* Parse a string, yielding a struct partime that describes it. */
3
/* Copyright (C) 1993, 1994, 1995, 1997, 2003, 2006 Paul Eggert
4
Distributed under license by the Free Software Foundation, Inc.
6
This file is part of RCS.
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)
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.
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
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23
Report problems and direct all questions to:
25
rcs-bugs@cs.purdue.edu
32
#define TM_UNDEFINED (-1)
33
#define TM_DEFINED(x) (0 <= (x))
35
#define TM_LOCAL_ZONE LONG_MIN
36
#define TM_UNDEFINED_ZONE (LONG_MIN + 1)
40
/* This structure describes the parsed time.
41
Only the following tm_* members are used:
42
sec, min, hour, mday, mon, year, wday, yday.
43
If ! TM_DEFINED (value), the parser never found the value.
44
The tm_year field is the actual year, not the year - 1900;
45
but see ymodulus below. */
48
/* Like tm, but values are relative to the value in tm,
49
and values are initialized to 0 rather than to TM_UNDEFINED.
50
Only the following tm_* members are used:
51
sec, min, hour, mday, mon, year. */
54
/* If TM_DEFINED (wday_ordinal),
55
then day number (e.g. 3 in "3rd Sunday"). */
58
/* If TM_DEFINED (ymodulus),
59
then tm.tm_year is actually modulo ymodulus. */
62
/* Week of year, ISO 8601 style.
63
If ! TM_DEFINED (yweek), the parser never found yweek.
64
Weeks start on Mondays.
65
Week 1 includes Jan 4. */
68
/* Seconds east of UTC; or TM_LOCAL_ZONE or TM_UNDEFINED_ZONE. */
72
char *partime (char const *, struct partime *);
73
char *parzone (char const *, long *);