aboutsummaryrefslogtreecommitdiffstats
path: root/plugin_time.c
diff options
context:
space:
mode:
authormichael <michael@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2008-09-14 04:00:49 +0000
committermichael <michael@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2008-09-14 04:00:49 +0000
commit7695365a0e6ffada25b74e1ac8fa0a54bc5aa32d (patch)
tree2a7c528bb80bb87795062f60a7c6b9106deaba76 /plugin_time.c
parenta97c5c7ecd9800e86882af4476e2dc6098b78cfb (diff)
downloadlcd4linux-7695365a0e6ffada25b74e1ac8fa0a54bc5aa32d.tar.gz
strftime_tz patch from Bernhard Walle
git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@894 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
Diffstat (limited to 'plugin_time.c')
-rw-r--r--plugin_time.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/plugin_time.c b/plugin_time.c
index bae321c..a9cca8f 100644
--- a/plugin_time.c
+++ b/plugin_time.c
@@ -68,6 +68,15 @@ static void my_stftime_tz(RESULT * result, RESULT * arg1, RESULT * arg2, RESULT
char *old_tz;
old_tz = getenv("TZ");
+
+ /*
+ * because the next setenv() call may overwrite that string, we
+ * duplicate it here
+ */
+ if (old_tz) {
+ old_tz = strdup(old_tz);
+ }
+
setenv("TZ", tz, 1);
tzset();
@@ -80,6 +89,8 @@ static void my_stftime_tz(RESULT * result, RESULT * arg1, RESULT * arg2, RESULT
}
tzset();
+ free(old_tz);
+
SetResult(&result, R_STRING, value);
}