mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-09 23:00:07 +00:00
* time/strptime_l.c (__strptime_internal): Handle 'z' to set
tm_gmtoff. * time/Makefile (tests): Add tst-strptime2. * time/tst-strptime2.c: New file.
This commit is contained in:
parent
bfc832ccf1
commit
935f3e6715
@ -1,3 +1,10 @@
|
||||
2005-04-26 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* time/strptime_l.c (__strptime_internal): Handle 'z' to set
|
||||
tm_gmtoff.
|
||||
* time/Makefile (tests): Add tst-strptime2.
|
||||
* time/tst-strptime2.c: New file.
|
||||
|
||||
2005-04-26 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf/dl-close.c: Include stddef.h.
|
||||
|
@ -1,3 +1,9 @@
|
||||
2005-04-26 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* locales/fa_IR: Add alt_digits, change date and time
|
||||
representation, and various cleanups.
|
||||
Patch by Hamed Malek <hamed@bamdad.org>.
|
||||
|
||||
2005-03-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
[BZ #823]
|
||||
|
@ -10,8 +10,8 @@ escape_char /
|
||||
% Fax: +98 21 6019568
|
||||
% Language: fa
|
||||
% Territory: IR
|
||||
% Revision: 2.4
|
||||
% Date: 2004-09-04
|
||||
% Revision: 3.0
|
||||
% Date: 2005-04-06
|
||||
% Users: general
|
||||
% Repertoiremap:
|
||||
% Charset: UTF-8
|
||||
@ -28,28 +28,31 @@ tel "+98 21 6022372"
|
||||
fax "+98 21 6019568"
|
||||
language "Persian"
|
||||
territory "Iran"
|
||||
revision "2.3"
|
||||
date "2004-03-16"
|
||||
revision "3.0"
|
||||
date "2005-04-06"
|
||||
%
|
||||
category "fa_IR:2004";LC_IDENTIFICATION
|
||||
category "fa_IR:2004";LC_CTYPE
|
||||
category "fa_IR:2004";LC_COLLATE
|
||||
category "fa_IR:2004";LC_TIME
|
||||
category "fa_IR:2004";LC_NUMERIC
|
||||
category "fa_IR:2004";LC_MONETARY
|
||||
category "fa_IR:2004";LC_MESSAGES
|
||||
category "fa_IR:2004";LC_PAPER
|
||||
category "fa_IR:2004";LC_NAME
|
||||
category "fa_IR:2004";LC_ADDRESS
|
||||
category "fa_IR:2004";LC_TELEPHONE
|
||||
category "fa_IR:2005";LC_IDENTIFICATION
|
||||
category "fa_IR:2005";LC_CTYPE
|
||||
category "fa_IR:2005";LC_COLLATE
|
||||
category "fa_IR:2005";LC_TIME
|
||||
category "fa_IR:2005";LC_NUMERIC
|
||||
category "fa_IR:2005";LC_MONETARY
|
||||
category "fa_IR:2005";LC_MESSAGES
|
||||
category "fa_IR:2005";LC_PAPER
|
||||
category "fa_IR:2005";LC_NAME
|
||||
category "fa_IR:2005";LC_ADDRESS
|
||||
category "fa_IR:2005";LC_TELEPHONE
|
||||
|
||||
END LC_IDENTIFICATION
|
||||
|
||||
LC_CTYPE
|
||||
copy "i18n"
|
||||
|
||||
% Persian uses the alternate digits U+06F0..U+06F9
|
||||
outdigit <U06F0>..<U06F9>
|
||||
|
||||
% This is used in the scanf family of functions to read Persian numbers
|
||||
% using "%Id" and such.
|
||||
map to_inpunct; /
|
||||
(<U0030>,<U06F0>); /
|
||||
(<U0031>,<U06F1>); /
|
||||
@ -64,6 +67,8 @@ map to_inpunct; /
|
||||
(<U002E>,<U066B>); /
|
||||
(<U002C>,<U066C>)
|
||||
|
||||
% This is used in the printf family of functions to write Persian floating
|
||||
% point numbers using "%If" and such.
|
||||
map to_outpunct; /
|
||||
(<U002E>,<U066B>); /
|
||||
(<U002C>,<U066C>)
|
||||
@ -76,7 +81,7 @@ copy "iso14651_t1"
|
||||
% kinds), BEH, PEH, TEH, JEEM, TCHEH, HAH, KHAH, DAL, THAL, REH, ZAIN, JEH,
|
||||
% SEEN, SHEEN, SAD, DAD, TAH, ZAH, AIN, GHAIN, FEH, QAF, KAF, GAF, LAM,
|
||||
% MEEM, NOON, WAW, HEH, YEH.
|
||||
% The various kind of HAMZA are sorted as ALEF WITH HAMZA ABOVE, ALEF WITH
|
||||
% The various kinds of HAMZA are sorted as ALEF WITH HAMZA ABOVE, ALEF WITH
|
||||
% HAMZA BELOW, WAW WITH HAMZA ABOVE, YEH WITH HAMZA ABOVE.
|
||||
|
||||
collating-symbol <AHY> % accent hamza over yeh
|
||||
@ -122,7 +127,7 @@ reorder-after <waw>
|
||||
<heh>
|
||||
<yeh>
|
||||
|
||||
% Persian uses fatha, kasra, damma, fathatan, kasratan, dammatan order.
|
||||
% Persian uses this order: Fatha, Kasra, Damma, Fathatan, Kasratan, Dammatan.
|
||||
|
||||
reorder-after <U066D>
|
||||
<U064E> IGNORE;IGNORE;IGNORE;<U064E> %<fatha_no>
|
||||
@ -148,7 +153,7 @@ reorder-after <UFE7F>
|
||||
<U0655> IGNORE;IGNORE;IGNORE;<U0655> %<hamzabelow_no>
|
||||
<U0670> IGNORE;IGNORE;IGNORE;<U0670> %<supalef_no>
|
||||
|
||||
% Persian digits are sorted before Arabic ones: they are the basic forms.
|
||||
% The Persian digits are sorted before the Arabic ones: they are the basic forms.
|
||||
reorder-after <U0660>
|
||||
<U06F0> <0>;<BAS>;<MIN>;IGNORE
|
||||
<U0660> <0>;<PCL>;<MIN>;IGNORE
|
||||
@ -292,14 +297,72 @@ grouping 3
|
||||
END LC_NUMERIC
|
||||
|
||||
LC_TIME
|
||||
abday "<U06CC><U002E>";"<U062F><U002E>";"<U0633><U002E>";/
|
||||
"<U0686><U002E>";"<U067E><U002E>";"<U062C><U002E>";/
|
||||
"<U0634><U002E>"
|
||||
day "<U06CC><U06A9><U200C><U0634><U0646><U0628><U0647>";/
|
||||
% Alternative digits are used for Persian numerals in date and time. This is
|
||||
% a hack, until a new prefix is defined for alternative digits.
|
||||
alt_digits "<U06F0><U06F0>";"<U06F0><U06F1>";/
|
||||
"<U06F0><U06F2>";"<U06F0><U06F3>";/
|
||||
"<U06F0><U06F4>";"<U06F0><U06F5>";/
|
||||
"<U06F0><U06F6>";"<U06F0><U06F7>";/
|
||||
"<U06F0><U06F8>";"<U06F0><U06F9>";/
|
||||
"<U06F1><U06F0>";"<U06F1><U06F1>";/
|
||||
"<U06F1><U06F2>";"<U06F1><U06F3>";/
|
||||
"<U06F1><U06F4>";"<U06F1><U06F5>";/
|
||||
"<U06F1><U06F6>";"<U06F1><U06F7>";/
|
||||
"<U06F1><U06F8>";"<U06F1><U06F9>";/
|
||||
"<U06F2><U06F0>";"<U06F2><U06F1>";/
|
||||
"<U06F2><U06F2>";"<U06F2><U06F3>";/
|
||||
"<U06F2><U06F4>";"<U06F2><U06F5>";/
|
||||
"<U06F2><U06F6>";"<U06F2><U06F7>";/
|
||||
"<U06F2><U06F8>";"<U06F2><U06F9>";/
|
||||
"<U06F3><U06F0>";"<U06F3><U06F1>";/
|
||||
"<U06F3><U06F2>";"<U06F3><U06F3>";/
|
||||
"<U06F3><U06F4>";"<U06F3><U06F5>";/
|
||||
"<U06F3><U06F6>";"<U06F3><U06F7>";/
|
||||
"<U06F3><U06F8>";"<U06F3><U06F9>";/
|
||||
"<U06F4><U06F0>";"<U06F4><U06F1>";/
|
||||
"<U06F4><U06F2>";"<U06F4><U06F3>";/
|
||||
"<U06F4><U06F4>";"<U06F4><U06F5>";/
|
||||
"<U06F4><U06F6>";"<U06F4><U06F7>";/
|
||||
"<U06F4><U06F8>";"<U06F4><U06F9>";/
|
||||
"<U06F5><U06F0>";"<U06F5><U06F1>";/
|
||||
"<U06F5><U06F2>";"<U06F5><U06F3>";/
|
||||
"<U06F5><U06F4>";"<U06F5><U06F5>";/
|
||||
"<U06F5><U06F6>";"<U06F5><U06F7>";/
|
||||
"<U06F5><U06F8>";"<U06F5><U06F9>";/
|
||||
"<U06F6><U06F0>";"<U06F6><U06F1>";/
|
||||
"<U06F6><U06F2>";"<U06F6><U06F3>";/
|
||||
"<U06F6><U06F4>";"<U06F6><U06F5>";/
|
||||
"<U06F6><U06F6>";"<U06F6><U06F7>";/
|
||||
"<U06F6><U06F8>";"<U06F6><U06F9>";/
|
||||
"<U06F7><U06F0>";"<U06F7><U06F1>";/
|
||||
"<U06F7><U06F2>";"<U06F7><U06F3>";/
|
||||
"<U06F7><U06F4>";"<U06F7><U06F5>";/
|
||||
"<U06F7><U06F6>";"<U06F7><U06F7>";/
|
||||
"<U06F7><U06F8>";"<U06F7><U06F9>";/
|
||||
"<U06F8><U06F0>";"<U06F8><U06F1>";/
|
||||
"<U06F8><U06F2>";"<U06F8><U06F3>";/
|
||||
"<U06F8><U06F4>";"<U06F8><U06F5>";/
|
||||
"<U06F8><U06F6>";"<U06F8><U06F7>";/
|
||||
"<U06F8><U06F8>";"<U06F8><U06F9>";/
|
||||
"<U06F9><U06F0>";"<U06F9><U06F1>";/
|
||||
"<U06F9><U06F2>";"<U06F9><U06F3>";/
|
||||
"<U06F9><U06F4>";"<U06F9><U06F5>";/
|
||||
"<U06F9><U06F6>";"<U06F9><U06F7>";/
|
||||
"<U06F9><U06F8>";"<U06F9><U06F9>"
|
||||
% Persian doesn't have abbreviations for weekdays and month names, so
|
||||
% "abday" is the same as "day" and "abmon" is the same as "mon"
|
||||
abday "<U06CC><U06A9><U0634><U0646><U0628><U0647>";/
|
||||
"<U062F><U0648><U0634><U0646><U0628><U0647>";/
|
||||
"<U0633><U0647><U200C><U0634><U0646><U0628><U0647>";/
|
||||
"<U0686><U0647><U0627><U0631><U0634><U0646><U0628><U0647>";/
|
||||
"<U067E><U0646><U062C><U200C><U0634><U0646><U0628><U0647>";/
|
||||
"<U067E><U0646><U062C><U0634><U0646><U0628><U0647>";/
|
||||
"<U062C><U0645><U0639><U0647>";/
|
||||
"<U0634><U0646><U0628><U0647>"
|
||||
day "<U06CC><U06A9><U0634><U0646><U0628><U0647>";/
|
||||
"<U062F><U0648><U0634><U0646><U0628><U0647>";/
|
||||
"<U0633><U0647><U200C><U0634><U0646><U0628><U0647>";/
|
||||
"<U0686><U0647><U0627><U0631><U0634><U0646><U0628><U0647>";/
|
||||
"<U067E><U0646><U062C><U0634><U0646><U0628><U0647>";/
|
||||
"<U062C><U0645><U0639><U0647>";/
|
||||
"<U0634><U0646><U0628><U0647>"
|
||||
mon "<U0698><U0627><U0646><U0648><U06CC><U0647>";/
|
||||
@ -314,33 +377,68 @@ mon "<U0698><U0627><U0646><U0648><U06CC><U0647>";/
|
||||
"<U0627><U0643><U062A><U0628><U0631>";/
|
||||
"<U0646><U0648><U0627><U0645><U0628><U0631>";/
|
||||
"<U062F><U0633><U0627><U0645><U0628><U0631>"
|
||||
abmon "<U0698><U0627><U0646>";"<U0641><U0648><U0631>";/
|
||||
"<U0645><U0627><U0631>";"<U0622><U0648><U0631>";/
|
||||
"<U0645><U0640><U0647>";"<U0698><U0648><U0646>";/
|
||||
"<U0698><U0648><U06CC>";"<U0627><U0648><U062A>";/
|
||||
"<U0633><U067E><U062A>";"<U0627><U0643><U062A>";/
|
||||
"<U0646><U0648><U0627>";"<U062F><U0633><U0627>"
|
||||
am_pm "<U0635><U0628><U062D>";"<U0639><U0635><U0631>"
|
||||
d_t_fmt "<U202B><U0025><U0041><U0020><U0025><U0065><U0020><U0025>/
|
||||
<U0042><U0020><U0025><U0059><U060C><U0020><U0025><U0049><U003A>/
|
||||
<U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070><U202C>"
|
||||
d_fmt "<U0025><U0059><U002F><U0025><U006D><U002F><U0025><U0064>"
|
||||
t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
|
||||
t_fmt_ampm "<U202B><U0025><U0049><U003A><U0025><U004D><U003A><U0025>/
|
||||
<U0053><U0020><U0025><U0070><U202C>"
|
||||
%date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020>/
|
||||
%<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025>/
|
||||
%<U005A><U0020><U0025><U0059>"
|
||||
abmon "<U0698><U0627><U0646><U0648><U06CC><U0647>";/
|
||||
"<U0641><U0648><U0631><U06CC><U0647>";/
|
||||
"<U0645><U0627><U0631><U0633>";/
|
||||
"<U0622><U0648><U0631><U06CC><U0644>";/
|
||||
"<U0645><U0647>";/
|
||||
"<U0698><U0648><U0626><U0646>";/
|
||||
"<U0698><U0648><U0626><U06CC><U0647>";/
|
||||
"<U0627><U0648><U062A>";/
|
||||
"<U0633><U067E><U062A><U0627><U0645><U0628><U0631>";/
|
||||
"<U0627><U0643><U062A><U0628><U0631>";/
|
||||
"<U0646><U0648><U0627><U0645><U0628><U0631>";/
|
||||
"<U062F><U0633><U0627><U0645><U0628><U0631>"
|
||||
% Persian does not have the 12-hour format
|
||||
am_pm "";""
|
||||
t_fmt_ampm ""
|
||||
%
|
||||
% Appropriate date representation (%x)
|
||||
% "%Oy/%Om/%Od"
|
||||
d_fmt "<U0025><U004F><U0079><U002F>/
|
||||
<U0025><U004F><U006D><U002F>/
|
||||
<U0025><U004F><U0064>"
|
||||
%
|
||||
% Appropriate time representation (%X)
|
||||
% "%OH:%OM:%OS"
|
||||
t_fmt "<U0025><U004F><U0048><U003A>/
|
||||
<U0025><U004F><U004D><U003A>/
|
||||
<U0025><U004F><U0053>"
|
||||
%
|
||||
% FIXME: need to add "HAMZA ABOVE" after January, February, May, July when used
|
||||
% before a year
|
||||
%
|
||||
% Appropriate date and time representation (%c)
|
||||
% "<RLE>%A %Oe %B %Oy<ARABIC COMMA> %OH:%OM:%OS<PDF>"
|
||||
d_t_fmt "<U202B><U0025><U0041><U0020>/
|
||||
<U0025><U004F><U0065><U0020>/
|
||||
<U0025><U0042><U0020>/
|
||||
<U0025><U004F><U0079><U060C><U0020>/
|
||||
<U0025><U004F><U0048><U003A>/
|
||||
<U0025><U004F><U004D><U003A>/
|
||||
<U0025><U004F><U0053><U202C>"
|
||||
%
|
||||
% Appropriate date representation (date(1))
|
||||
% "<RLE>%A %Oe %B %Oy<ARABIC COMMA> <SEEN><ALEF><AIN><TEH> %OH:%OM:%OS (%Z)<PDF>"
|
||||
date_fmt "<U202B><U0025><U0041><U0020>/
|
||||
<U0025><U004F><U0065><U0020>/
|
||||
<U0025><U0042><U0020>/
|
||||
<U0025><U004F><U0079><U060C><U0020>/
|
||||
<U0633><U0627><U0639><U062A><U0020>/
|
||||
<U0025><U004F><U0048><U003A>/
|
||||
<U0025><U004F><U004D><U003A>/
|
||||
<U0025><U004F><U0053><U0020>/
|
||||
<U0028><U0025><U005A><U0029><U202C>"
|
||||
first_weekday 7
|
||||
first_workday 7
|
||||
cal_direction 3
|
||||
%week 7;19971206;4
|
||||
%time_zone "???"
|
||||
END LC_TIME
|
||||
|
||||
LC_MESSAGES
|
||||
yesexpr "<U005E><U005B><U0079><U0059><U0628><U0066><U005D><U002E><U002A>"
|
||||
noexpr "<U005E><U005B><U006E><U004E><U062E><U0646><U006F><U005D><U002E><U002A>"
|
||||
% This is "^[yY<ALEF MADDA><BEH>Hf].*"
|
||||
yesexpr "<U005E><U005B><U0079><U0059><U0622><U0628><U0048><U0066><U005D><U002E><U002A>"
|
||||
% This is "^[nN<KHAH><NOON>ok].*"
|
||||
noexpr "<U005E><U005B><U006E><U004E><U062E><U0646><U006F><U006B><U005D><U002E><U002A>"
|
||||
END LC_MESSAGES
|
||||
|
||||
LC_PAPER
|
||||
@ -348,18 +446,6 @@ height 297
|
||||
width 210
|
||||
END LC_PAPER
|
||||
|
||||
LC_TELEPHONE
|
||||
tel_int_fmt "<U202A><U002B><U0025><U0063><U0020><U0025><U0061><U0020>/
|
||||
<U0025><U006C><U202C>"
|
||||
tel_dom_fmt "<U202A><U0025><U0041><U2012><U0025><U006C><U202C>"
|
||||
int_select "<U0030><U0030>"
|
||||
int_prefix "<U0039><U0038>"
|
||||
END LC_TELEPHONE
|
||||
|
||||
LC_MEASUREMENT
|
||||
measurement 1
|
||||
END LC_MEASUREMENT
|
||||
|
||||
LC_NAME
|
||||
name_gen ""
|
||||
name_miss "<U062E><U0627><U0646><U0645>"
|
||||
@ -371,7 +457,6 @@ name_fmt "<U0025><U0064><U0025><U0074><U0025><U0073><U0025><U0074>/
|
||||
END LC_NAME
|
||||
|
||||
LC_ADDRESS
|
||||
% FIXME
|
||||
postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
|
||||
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
|
||||
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
|
||||
@ -388,3 +473,15 @@ lang_ab "<U0066><U0061>"
|
||||
lang_term "<U0066><U0061><U0073>"
|
||||
lang_lib "<U0070><U0065><U0072>"
|
||||
END LC_ADDRESS
|
||||
|
||||
LC_TELEPHONE
|
||||
tel_int_fmt "<U202A><U002B><U0025><U0063><U0020><U0025><U0061><U0020>/
|
||||
<U0025><U006C><U202C>"
|
||||
tel_dom_fmt "<U202A><U0025><U0041><U2012><U0025><U006C><U202C>"
|
||||
int_select "<U0030><U0030>"
|
||||
int_prefix "<U0039><U0038>"
|
||||
END LC_TELEPHONE
|
||||
|
||||
LC_MEASUREMENT
|
||||
measurement 1
|
||||
END LC_MEASUREMENT
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 1991-2002,2003,2004 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1991-2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This file is part of the GNU C Library.
|
||||
|
||||
# The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -35,7 +35,7 @@ distribute := datemsk
|
||||
|
||||
tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \
|
||||
tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \
|
||||
tst-mktime3
|
||||
tst-mktime3 tst-strptime2
|
||||
|
||||
include ../Rules
|
||||
|
||||
|
@ -687,6 +687,42 @@ __strptime_internal (rp, fmt, tm, decided, era_cnt LOCALE_PARAM)
|
||||
case 'Z':
|
||||
/* XXX How to handle this? */
|
||||
break;
|
||||
case 'z':
|
||||
/* We recognize two formats: if two digits are given, these
|
||||
specify hours. If fours digits are used, minutes are
|
||||
also specified. */
|
||||
{
|
||||
val = 0;
|
||||
while (*rp == ' ')
|
||||
++rp;
|
||||
if (*rp != '+' && *rp != '-')
|
||||
return NULL;
|
||||
bool neg = *rp++ == '-';
|
||||
int n = 0;
|
||||
while (n < 4 && *rp >= '0' && *rp <= '9')
|
||||
{
|
||||
val = val * 10 + *rp++ - '0';
|
||||
++n;
|
||||
}
|
||||
if (n == 2)
|
||||
val *= 100;
|
||||
else if (n != 4)
|
||||
/* Only two or four digits recognized. */
|
||||
return NULL;
|
||||
else
|
||||
{
|
||||
/* We have to convert the minutes into decimal. */
|
||||
if (val % 100 >= 60)
|
||||
return NULL;
|
||||
val = (val / 100) * 100 + ((val % 100) * 50) / 30;
|
||||
}
|
||||
if (val > 1200)
|
||||
return NULL;
|
||||
tm->tm_gmtoff = (val * 3600) / 100;
|
||||
if (neg)
|
||||
tm->tm_gmtoff = -tm->tm_gmtoff;
|
||||
}
|
||||
break;
|
||||
case 'E':
|
||||
#ifdef _NL_CURRENT
|
||||
switch (*fmt++)
|
||||
|
59
time/tst-strptime2.c
Normal file
59
time/tst-strptime2.c
Normal file
@ -0,0 +1,59 @@
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
|
||||
|
||||
static const struct
|
||||
{
|
||||
const char *fmt;
|
||||
long int gmtoff;
|
||||
} tests[] =
|
||||
{
|
||||
{ "1113472456 +1000", 36000 },
|
||||
{ "1113472456 -1000", -36000 },
|
||||
{ "1113472456 +10", 36000 },
|
||||
{ "1113472456 -10", -36000 },
|
||||
{ "1113472456 +1030", 37800 },
|
||||
{ "1113472456 -1030", -37800 },
|
||||
{ "1113472456 +0030", 1800 },
|
||||
{ "1113472456 -0030", -1800 },
|
||||
{ "1113472456 -1330", LONG_MAX },
|
||||
{ "1113472456 +1330", LONG_MAX },
|
||||
{ "1113472456 -1060", LONG_MAX },
|
||||
{ "1113472456 +1060", LONG_MAX },
|
||||
{ "1113472456 1030", LONG_MAX },
|
||||
};
|
||||
#define ntests (sizeof (tests) / sizeof (tests[0]))
|
||||
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
int result = 0;
|
||||
|
||||
for (int i = 0; i < ntests; ++i)
|
||||
{
|
||||
struct tm tm;
|
||||
|
||||
if (strptime (tests[i].fmt, "%s %z", &tm) == NULL)
|
||||
{
|
||||
if (tests[i].gmtoff != LONG_MAX)
|
||||
{
|
||||
printf ("round %d: strptime unexpectedly failed\n", i);
|
||||
result = 1;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (tm.tm_gmtoff != tests[i].gmtoff)
|
||||
{
|
||||
printf ("round %d: tm_gmtoff is %ld\n", i, (long int) tm.tm_gmtoff);
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (result == 0)
|
||||
puts ("all OK");
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user