summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-09-10 14:51:41 +0000
committerUlrich Drepper <drepper@redhat.com>1998-09-10 14:51:41 +0000
commit0fdf7aeb83746b84aa77da9299592e81bd97e2ee (patch)
tree2e3a73e6b5c6b8453066e4800a25b512236b6d4b
parent3368bc12c481d84bbc19a575a94fd442e291df34 (diff)
downloadglibc-0fdf7aeb83746b84aa77da9299592e81bd97e2ee.tar.gz
(__tzfile_read): Handle case when there are no transitions.
-rw-r--r--time/tzfile.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/time/tzfile.c b/time/tzfile.c
index c800d10148..158ffc9f1c 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -278,15 +278,21 @@ __tzfile_read (const char *file)
compute_tzname_max (chars);
- rule_stdoff = rule_dstoff = 0;
- for (i = 0; i < num_transitions; ++i)
+ if (num_transitions == 0)
+ /* Use the first rule (which should also be the only one). */
+ rule_stdoff = rule_dstoff = types[0].offset;
+ else
{
- if (!rule_stdoff && !types[type_idxs[i]].isdst)
- rule_stdoff = types[type_idxs[i]].offset;
- if (!rule_dstoff && types[type_idxs[i]].isdst)
- rule_dstoff = types[type_idxs[i]].offset;
- if (rule_stdoff && rule_dstoff)
- break;
+ rule_stdoff = rule_dstoff = 0;
+ for (i = 0; i < num_transitions; ++i)
+ {
+ if (!rule_stdoff && !types[type_idxs[i]].isdst)
+ rule_stdoff = types[type_idxs[i]].offset;
+ if (!rule_dstoff && types[type_idxs[i]].isdst)
+ rule_dstoff = types[type_idxs[i]].offset;
+ if (rule_stdoff && rule_dstoff)
+ break;
+ }
}
__daylight = rule_stdoff != rule_dstoff;