Commit 0269dedb authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(Fdump_emacs): If HAVE_TZSET and not

LOCALTIME_CACHE, call tzset to force a tz reload.

(set_time_zone_rule): New decl.
(dump_tz): New var.
(main): Change TZ twice if the execution TZ happens to be the same as
the dump TZ.
(Fdump_emacs): Set TZ to unlikely value just before dumping.
parent a92ae0ce
......@@ -48,6 +48,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
extern void malloc_warning ();
extern void set_time_zone_rule ();
extern char *index ();
extern char *strerror ();
......@@ -315,6 +316,12 @@ extern noshare char **environ;
#endif /* LINK_CRTL_SHARE */
#endif /* VMS */
/* A valid but unlikely value for the TZ environment value.
It is OK (though a bit slower) if the user actually chooses this value. */
static char dump_tz[] = "UtC0";
/* We don't include crtbegin.o and crtend.o in the link,
so these functions and variables might be missed.
......@@ -940,6 +947,23 @@ Usage: %s [-t term] [--terminal term] [-nw] [--no-windows] [--batch]\n\
XSETFASTINT (Vmessage_log_max, 0);
message_dolog ("", 0, 1);
Vmessage_log_max = old_log_max;
/* If the execution TZ happens to be the same as the dump TZ,
change it to some other value and then change it back,
to force the underlying implementation to reload the TZ info.
This is needed on implementations that load TZ info from files,
since the TZ file contents may differ between dump and execution. */
char *tz = getenv ("TZ");
if (tz && !strcmp (tz, dump_tz))
tzset ();
initialized = 1;
......@@ -1329,6 +1353,14 @@ and announce itself normally when it is run.")
tem = Vpurify_flag;
Vpurify_flag = Qnil;
set_time_zone_rule (dump_tz);
/* Force a tz reload, since set_time_zone_rule doesn't. */
tzset ();
fflush (stdout);
#ifdef VMS
mapout_data (XSTRING (filename)->data);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment