da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinset prototyped
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner_cc_export_dynamic = note{ probe CC.EXPORT.DYNAMIC supported }end run{
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner case `{ probe -l C make cc | grep '^CC.EXPORT.DYNAMIC = .'; } 2>/dev/null` in
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner '') exit 1 ;;
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner esac
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner}end
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintst tzset_environ note{ tzset() bypasses user getenv() }end execute{
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner #if _UWIN || !_cc_export_dynamic
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner int main()
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner {
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner return 0;
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner }
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner #else
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin #include <time.h>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin extern char** environ;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin extern char* tzname[2];
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin #if _STD_
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin extern char* getenv(char* s)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin #else
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin extern char* getenv(s)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin char* s;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin #endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin {
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin return "foo0bar";
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin }
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin int main()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin {
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin tzset();
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin return tzname[0] && !strcmp(tzname[0], "foo") &&
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin tzname[1] && !strcmp(tzname[1], "bar");
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin }
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner #endif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin}end
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinif ( _tzset_environ ) {
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin #define tmlocaltime(p) _tm_localtime(p)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin extern struct tm* _tm_localtime(const time_t*);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin}
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinelse {
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin #define tmlocaltime(p) localtime(p)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin}
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinendif