# HG changeset patch # User Jason Rumney # Date 1205537818 0 # Node ID f0f1c359cd43cc5550de30973389625dc8ba5421 # Parent 21d63c8708393d89937b9abf4092badc71fe39f0 (initial_tz): New variable. (syms_of_editfns): Initialize it. (Fset_time_zone_rule): Set it when first called. Use it when TZSTRING is nil. diff -r 21d63c870839 -r f0f1c359cd43 src/editfns.c --- a/src/editfns.c Fri Mar 14 21:32:47 2008 +0000 +++ b/src/editfns.c Fri Mar 14 23:36:58 2008 +0000 @@ -2011,6 +2011,11 @@ has never been called. */ static char **environbuf; +/* This holds the startup value of the TZ environment variable so it + can be restored if the user calls set-time-zone-rule with a nil + argument. */ +static char *initial_tz; + DEFUN ("set-time-zone-rule", Fset_time_zone_rule, Sset_time_zone_rule, 1, 1, 0, doc: /* Set the local time zone using TZ, a string specifying a time zone rule. If TZ is nil, use implementation-defined default time zone information. @@ -2020,8 +2025,12 @@ { char *tzstring; + /* When called for the first time, save the original TZ. */ + if (!environbuf) + initial_tz = (char *) getenv ("TZ"); + if (NILP (tz)) - tzstring = 0; + tzstring = initial_tz; else if (EQ (tz, Qt)) tzstring = "UTC0"; else @@ -4588,6 +4597,7 @@ syms_of_editfns () { environbuf = 0; + initial_tz = 0; Qbuffer_access_fontify_functions = intern ("buffer-access-fontify-functions");