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