Module Name: src
Committed By: christos
Date: Thu Oct 29 17:49:24 UTC 2015
Modified Files:
src/lib/libc/time: localtime.c
Log Message:
Add tzgetgmtoff, delint compat
To generate a diff of this commit:
cvs rdiff -u -r1.98 -r1.99 src/lib/libc/time/localtime.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/time/localtime.c
diff -u src/lib/libc/time/localtime.c:1.98 src/lib/libc/time/localtime.c:1.99
--- src/lib/libc/time/localtime.c:1.98 Fri Oct 9 13:21:45 2015
+++ src/lib/libc/time/localtime.c Thu Oct 29 13:49:24 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: localtime.c,v 1.98 2015/10/09 17:21:45 christos Exp $ */
+/* $NetBSD: localtime.c,v 1.99 2015/10/29 17:49:24 christos Exp $ */
/*
** This file is in the public domain, so clarified as of
@@ -10,7 +10,7 @@
#if 0
static char elsieid[] = "@(#)localtime.c 8.17";
#else
-__RCSID("$NetBSD: localtime.c,v 1.98 2015/10/09 17:21:45 christos Exp $");
+__RCSID("$NetBSD: localtime.c,v 1.99 2015/10/29 17:49:24 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -289,6 +289,25 @@ tzgetname(const timezone_t sp, int isdst
return NULL;
}
+long
+tzgetgmtoff(const timezone_t sp, int isdst)
+{
+ int i;
+ long l = -1;
+ for (i = 0; i < sp->timecnt; ++i) {
+ const struct ttinfo *const ttisp = &sp->ttis[sp->types[i]];
+
+ if (ttisp->tt_isdst == isdst) {
+ l = ttisp->tt_gmtoff;
+ if (sp->types[i] != 0)
+ return l;
+ }
+ }
+ if (l == -1)
+ errno = ESRCH;
+ return l;
+}
+
static void
scrub_abbrs(struct state *sp)
{
@@ -617,7 +636,7 @@ tzloadbody(char const *name, struct stat
break;
}
if (! (j < charcnt)) {
- int tsabbrlen = strlen(tsabbr);
+ size_t tsabbrlen = strlen(tsabbr);
if (j + tsabbrlen < TZ_MAX_CHARS) {
strcpy(sp->chars + j, tsabbr);
charcnt = j + tsabbrlen + 1;
@@ -1253,7 +1272,7 @@ tzparse(const char *name, struct state *
init_ttinfo(&sp->ttis[1], 0, false, 0);
sp->defaulttype = 0;
}
- sp->charcnt = charcnt;
+ sp->charcnt = (int)charcnt;
cp = sp->chars;
(void) memcpy(cp, stdname, stdlen);
cp += stdlen;