diff options
Diffstat (limited to 'src/lib/libast/features/tmlib')
-rw-r--r-- | src/lib/libast/features/tmlib | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/lib/libast/features/tmlib b/src/lib/libast/features/tmlib new file mode 100644 index 0000000..221079c --- /dev/null +++ b/src/lib/libast/features/tmlib @@ -0,0 +1,45 @@ +set prototyped + +_cc_export_dynamic = note{ probe CC.EXPORT.DYNAMIC supported }end run{ + case `{ probe -l C make cc | grep '^CC.EXPORT.DYNAMIC = .'; } 2>/dev/null` in + '') exit 1 ;; + esac +}end + +tst tzset_environ note{ tzset() bypasses user getenv() }end execute{ + #if _UWIN || !_cc_export_dynamic + int main() + { + return 0; + } + #else + #include <time.h> + extern char** environ; + extern char* tzname[2]; + #if _STD_ + extern char* getenv(char* s) + #else + extern char* getenv(s) + char* s; + #endif + { + return "foo0bar"; + } + int main() + { + tzset(); + return tzname[0] && !strcmp(tzname[0], "foo") && + tzname[1] && !strcmp(tzname[1], "bar"); + } + #endif +}end + +if ( _tzset_environ ) { + #define tmlocaltime(p) _tm_localtime(p) + + extern struct tm* _tm_localtime(const time_t*); +} +else { + #define tmlocaltime(p) localtime(p) +} +endif |