summaryrefslogtreecommitdiffstats
path: root/util.c
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2020-02-13 17:08:23 -0500
committerTavian Barnes <tavianator@tavianator.com>2020-02-13 17:08:23 -0500
commit1ca8b4d9e81bfe7bed51fa6b858d59b721143054 (patch)
tree2f5347c32bb5e9e7685a18bbcbf8ffe4ab3d1ddf /util.c
parent95f862fdd82a99e30bbf2c43009ec9a51e416804 (diff)
downloadbfs-1ca8b4d9e81bfe7bed51fa6b858d59b721143054.tar.xz
time: Split out time-related functions from util
Diffstat (limited to 'util.c')
-rw-r--r--util.c86
1 files changed, 0 insertions, 86 deletions
diff --git a/util.c b/util.c
index 6af7d27..ec019ce 100644
--- a/util.c
+++ b/util.c
@@ -163,92 +163,6 @@ char *xregerror(int err, const regex_t *regex) {
return str;
}
-int xlocaltime(const time_t *timep, struct tm *result) {
- // Should be called before localtime_r() according to POSIX.1-2004
- tzset();
-
- if (localtime_r(timep, result)) {
- return 0;
- } else {
- return -1;
- }
-}
-
-int xgmtime(const time_t *timep, struct tm *result) {
- // Should be called before gmtime_r() according to POSIX.1-2004
- tzset();
-
- if (gmtime_r(timep, result)) {
- return 0;
- } else {
- return -1;
- }
-}
-
-int xmktime(struct tm *tm, time_t *timep) {
- *timep = mktime(tm);
-
- if (*timep == -1) {
- int error = errno;
-
- struct tm tmp;
- if (xlocaltime(timep, &tmp) != 0) {
- return -1;
- }
-
- if (tm->tm_year != tmp.tm_year || tm->tm_yday != tmp.tm_yday
- || tm->tm_hour != tmp.tm_hour || tm->tm_min != tmp.tm_min || tm->tm_sec != tmp.tm_sec) {
- errno = error;
- return -1;
- }
- }
-
- return 0;
-}
-
-int xtimegm(struct tm *tm, time_t *timep) {
- // Some man pages for timegm() recommend this as a portable approach
- int ret = -1;
- int error;
-
- char *old_tz = getenv("TZ");
- if (old_tz) {
- old_tz = strdup(old_tz);
- if (!old_tz) {
- error = errno;
- goto fail;
- }
- }
-
- if (setenv("TZ", "UTC0", true) != 0) {
- error = errno;
- goto fail;
- }
-
- ret = xmktime(tm, timep);
- error = errno;
-
- if (old_tz) {
- if (setenv("TZ", old_tz, true) != 0) {
- ret = -1;
- error = errno;
- goto fail;
- }
- } else {
- if (unsetenv("TZ") != 0) {
- ret = -1;
- error = errno;
- goto fail;
- }
- }
-
- tzset();
-fail:
- free(old_tz);
- errno = error;
- return ret;
-}
-
void format_mode(mode_t mode, char str[11]) {
strcpy(str, "----------");