diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-09-10 14:51:41 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-09-10 14:51:41 +0000 |
commit | 0fdf7aeb83746b84aa77da9299592e81bd97e2ee (patch) | |
tree | 2e3a73e6b5c6b8453066e4800a25b512236b6d4b | |
parent | 3368bc12c481d84bbc19a575a94fd442e291df34 (diff) | |
download | glibc-0fdf7aeb83746b84aa77da9299592e81bd97e2ee.tar.gz |
(__tzfile_read): Handle case when there are no transitions.
-rw-r--r-- | time/tzfile.c | 22 |
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; |