| #undef G_DISABLE_ASSERT |
| #undef G_LOG_DOMAIN |
| |
| #ifdef GLIB_COMPILATION |
| #undef GLIB_COMPILATION |
| #endif |
| |
| #include "glib.h" |
| |
| #include <stdio.h> |
| #include <string.h> |
| #include <locale.h> |
| |
| /* These only work in the POSIX locale, maybe C too - |
| * type POSIX into the program to check them |
| */ |
| char* posix_tests [] = { |
| "19981024", |
| "981024", |
| "October 1998", |
| "October 98", |
| "oCT 98", |
| "10/24/98", |
| "10 -- 24 -- 98", |
| "10/24/1998", |
| "October 24, 1998", |
| NULL |
| }; |
| |
| int main(int argc, char** argv) |
| { |
| GDate* d; |
| gchar* loc; |
| gchar input[1024]; |
| |
| loc = setlocale(LC_ALL,""); |
| if (loc) |
| g_print("\nLocale set to %s\n", loc); |
| else |
| g_print("\nLocale unchanged\n"); |
| |
| d = g_date_new(); |
| |
| while (fgets(input, 1023, stdin)) |
| { |
| if (input[0] == '\n') |
| { |
| g_print("Enter a date to parse and press enter, or type 'POSIX':\n"); |
| continue; |
| } |
| |
| if (strcmp(input,"POSIX\n") == 0) |
| { |
| char** s = posix_tests; |
| while (*s) { |
| g_date_set_parse(d, *s); |
| |
| g_print("POSIXy parse test '%s' ...", *s); |
| |
| if (!g_date_valid(d)) |
| { |
| g_print(" failed.\n"); |
| } |
| else |
| { |
| gchar buf[256]; |
| |
| g_date_strftime(buf,100," parsed '%x' (%B %d %Y)\n", |
| d); |
| g_print("%s", buf); |
| } |
| |
| ++s; |
| } |
| } |
| else |
| { |
| g_date_set_parse(d, input); |
| |
| if (!g_date_valid(d)) |
| { |
| g_print("Parse failed.\n"); |
| } |
| else |
| { |
| gchar buf[256]; |
| |
| g_date_strftime(buf,100,"Parsed: '%x' (%B %d %Y)\n", |
| d); |
| g_print("%s", buf); |
| } |
| } |
| } |
| |
| g_date_free(d); |
| |
| return 0; |
| } |
| |
| |