+2024-04-27 Bruno Haible <bruno@clisp.org>
+
+ ctime, localtime, tzset, wcsftime: Fix env access (regr. 2024-02-09).
+ Reported by Markus Mützel <markus.muetzel@gmx.de> in
+ <https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00457.html>.
+ * lib/ctime.c (rpl_ctime): Fix logic of environment traversal.
+ * lib/localtime.c (rpl_localtime): Likewise.
+ * lib/tzset.c (rpl_tzset): Likewise.
+ * lib/wcsftime.c (rpl_wcsftime): Likewise.
+
2024-04-26 Bruno Haible <bruno@clisp.org>
login_tty tests: Avoid gcc warnings.
char **env = _environ;
wchar_t **wenv = _wenviron;
if (env != NULL)
- for (char *s = env; *s != NULL; s++)
- if (s[0] == 'T' && s[1] == 'Z' && s[2] == '=')
- s[0] = '$';
+ for (char **ep = env; *ep != NULL; ep++)
+ {
+ char *s = *ep;
+ if (s[0] == 'T' && s[1] == 'Z' && s[2] == '=')
+ s[0] = '$';
+ }
if (wenv != NULL)
- for (wchar_t *ws = wenv; *ws != NULL; ws++)
- if (ws[0] == L'T' && ws[1] == L'Z' && ws[2] == L'=')
- ws[0] = L'$';
+ for (wchar_t **wep = wenv; *wep != NULL; wep++)
+ {
+ wchar_t *ws = *wep;
+ if (ws[0] == L'T' && ws[1] == L'Z' && ws[2] == L'=')
+ ws[0] = L'$';
+ }
}
#endif
char **env = _environ;
wchar_t **wenv = _wenviron;
if (env != NULL)
- for (char *s = env; *s != NULL; s++)
- if (s[0] == 'T' && s[1] == 'Z' && s[2] == '=')
- s[0] = '$';
+ for (char **ep = env; *ep != NULL; ep++)
+ {
+ char *s = *ep;
+ if (s[0] == 'T' && s[1] == 'Z' && s[2] == '=')
+ s[0] = '$';
+ }
if (wenv != NULL)
- for (wchar_t *ws = wenv; *ws != NULL; ws++)
- if (ws[0] == L'T' && ws[1] == L'Z' && ws[2] == L'=')
- ws[0] = L'$';
+ for (wchar_t **wep = wenv; *wep != NULL; wep++)
+ {
+ wchar_t *ws = *wep;
+ if (ws[0] == L'T' && ws[1] == L'Z' && ws[2] == L'=')
+ ws[0] = L'$';
+ }
}
#endif
char **env = _environ;
wchar_t **wenv = _wenviron;
if (env != NULL)
- for (char *s = env; *s != NULL; s++)
- if (s[0] == 'T' && s[1] == 'Z' && s[2] == '=')
- s[0] = '$';
+ for (char **ep = env; *ep != NULL; ep++)
+ {
+ char *s = *ep;
+ if (s[0] == 'T' && s[1] == 'Z' && s[2] == '=')
+ s[0] = '$';
+ }
if (wenv != NULL)
- for (wchar_t *ws = wenv; *ws != NULL; ws++)
- if (ws[0] == L'T' && ws[1] == L'Z' && ws[2] == L'=')
- ws[0] = L'$';
+ for (wchar_t **wep = wenv; *wep != NULL; wep++)
+ {
+ wchar_t *ws = *wep;
+ if (ws[0] == L'T' && ws[1] == L'Z' && ws[2] == L'=')
+ ws[0] = L'$';
+ }
}
/* On native Windows, tzset() is deprecated. Use _tzset() instead. See
char **env = _environ;
wchar_t **wenv = _wenviron;
if (env != NULL)
- for (char *s = env; *s != NULL; s++)
- if (s[0] == 'T' && s[1] == 'Z' && s[2] == '=')
- s[0] = '$';
+ for (char **ep = env; *ep != NULL; ep++)
+ {
+ char *s = *ep;
+ if (s[0] == 'T' && s[1] == 'Z' && s[2] == '=')
+ s[0] = '$';
+ }
if (wenv != NULL)
- for (wchar_t *ws = wenv; *ws != NULL; ws++)
- if (ws[0] == L'T' && ws[1] == L'Z' && ws[2] == L'=')
- ws[0] = L'$';
+ for (wchar_t **wep = wenv; *wep != NULL; wep++)
+ {
+ wchar_t *ws = *wep;
+ if (ws[0] == L'T' && ws[1] == L'Z' && ws[2] == L'=')
+ ws[0] = L'$';
+ }
}
#endif