>
> There's no member tm_zone in a tm struct under IRIX 5.3. The 40a patch should
> take this into account. IRIX already maintains a valid $TZ environment
> variable. Linux also used to not have tm_zone in its tm struct, but I'm not
> sure if that's different now. Here's a crude suggestion (derived from
> Randy's patch):
>
> *** util_script.c.orig Sun Nov 19 12:50:50 1995
> --- util_script.c Sun Nov 19 12:55:50 1995
> ***************
> *** 103,112 ****
> {
> array_header *env_arr = table_elts (t);
> table_entry *elts = (table_entry *)env_arr->elts;
> ! char **env = (char **)palloc (p, (env_arr->nelts + 1) *sizeof (char *));
> ! int i, j;
> !
> ! for (i = 0, j = 0; i < env_arr->nelts; ++i) {
> if (!elts[i].key) continue;
> env[j++] = pstrcat (p, elts[i].key, "=", elts[i].val, NULL);
> }
> --- 103,122 ----
> {
> array_header *env_arr = table_elts (t);
> table_entry *elts = (table_entry *)env_arr->elts;
> ! char **env = (char **)palloc (p, (env_arr->nelts + 2) *sizeof (char *));
> ! int i,j;
> ! char *tz;
> ! time_t ts;
> ! struct tm *lt;
> !
> ! ts = time(NULL);
> ! lt = localtime(&ts);
> !#if !defined(IRIX) && !defined(LINUX)
> ! tz = lt->tm_zone;
> !#endif
> ! j = 0;
> ! if (tz != NULL) env[j++] = pstrcat(p, "TZ=", tz, NULL);
> ! for (i = 0; i < env_arr->nelts; ++i) {
> if (!elts[i].key) continue;
> env[j++] = pstrcat (p, elts[i].key, "=", elts[i].val, NULL);
> }
>
SCO doesn't have tm_zone, either, but it does have tm_name, or __tm_name.
Also, this code surely doesn't belong in create_environment() ... its rightful
place must be in add_common_vars() (or similar).
Cheers,
Ben.
--
Ben Laurie Phone: +44 (181) 994 6435
Freelance Consultant Fax: +44 (181) 994 6472
and Technical Director Email: ben@algroup.co.uk
A.L. Digital Ltd, URL:
http://www.algroup.co.uk London, England.