#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include #define POSIX_STRPTIME_SET(field) \ { \ if (field == -1) { \ XPUSHs(&PL_sv_undef); \ } \ else { \ mXPUSHi(field); \ } \ } \ MODULE = POSIX::strptime PACKAGE = POSIX::strptime void strptime(input, format) const char *input const char *format PREINIT: struct tm tm_t = { -1,-1,-1,-1,-1,-1,-1,-1 }; PPCODE: strptime(input, format, &tm_t); POSIX_STRPTIME_SET(tm_t.tm_sec); POSIX_STRPTIME_SET(tm_t.tm_min); POSIX_STRPTIME_SET(tm_t.tm_hour); POSIX_STRPTIME_SET(tm_t.tm_mday); POSIX_STRPTIME_SET(tm_t.tm_mon); POSIX_STRPTIME_SET(tm_t.tm_year); POSIX_STRPTIME_SET(tm_t.tm_wday); POSIX_STRPTIME_SET(tm_t.tm_yday);