On 9/13/2021 7:42 AM, Edward Tomasz Napierala wrote: > +#else /* !DETECT_TZ_CHANGES */ > +#define change_in_tz(X) 0
WITHOUT_DETECT_TZ_CHANGES: change_in_tz() == 0 > +#endif /* !DETECT_TZ_CHANGES */ > + > static int > differ_by_repeat(const time_t t1, const time_t t0) > { > @@ -379,6 +418,7 @@ register const int doextend; > int stored; > int nread; > int res; > + int ret; > union { > struct tzhead tzhead; > char buf[2 * sizeof(struct tzhead) + > @@ -427,6 +467,22 @@ register const int doextend; > (void) strcat(fullname, name); > name = fullname; > } > + if (doextend == TRUE) { > + /* > + * Detect if the timezone file has changed. Check > + * 'doextend' to ignore TZDEFRULES; the change_in_tz() > + * function can only keep state for a single file. > + */ > + ret = change_in_tz(name); > + if (ret <= 0) { WITHOUT_DETECT_TZ_CHANGES: Always returns a false-positive "done" but short-circuits the rest of tzload(). > + /* > + * Returns -1 if there was an error, > + * and 0 if the timezone had not changed. > + */ > + free(fullname); > + return ret; > + } > + } -- Regards, Bryan Drewery
OpenPGP_signature
Description: OpenPGP digital signature