Home | History | Annotate | Download | only in tests
      1 #undef G_DISABLE_ASSERT
      2 #undef G_LOG_DOMAIN
      3 
      4 #ifdef GLIB_COMPILATION
      5 #undef GLIB_COMPILATION
      6 #endif
      7 
      8 #include "glib.h"
      9 
     10 #include <stdio.h>
     11 #include <string.h>
     12 #include <locale.h>
     13 
     14 void g_date_debug_print(GDate* d)
     15 {
     16   if (!d) g_print("NULL!\n");
     17   else
     18     g_print("julian: %u (%s) DMY: %u %u %u (%s)\n",
     19 	    d->julian_days,
     20 	    d->julian ? "valid" : "invalid",
     21 	    d->day,
     22 	    d->month,
     23 	    d->year,
     24 	    d->dmy ? "valid" : "invalid");
     25 
     26   fflush(stdout);
     27 }
     28 
     29 /* These only work in the POSIX locale, maybe C too -
     30  * type POSIX into the program to check them
     31  */
     32 char* posix_tests [] = {
     33   "19981024",
     34   "981024",
     35   "October 1998",
     36   "October 98",
     37   "oCT 98",
     38   "10/24/98",
     39   "10 -- 24 -- 98",
     40   "10/24/1998",
     41   "October 24, 1998",
     42   NULL
     43 };
     44 
     45 int main(int argc, char** argv)
     46 {
     47   GDate* d;
     48   gchar* loc;
     49   gchar input[1024];
     50 
     51   loc = setlocale(LC_ALL,"");
     52   if (loc)
     53     g_print("\nLocale set to %s\n", loc);
     54   else
     55     g_print("\nLocale unchanged\n");
     56 
     57   d = g_date_new();
     58 
     59   while (fgets(input, 1023, stdin))
     60     {
     61       if (input[0] == '\n')
     62         {
     63           g_print("Enter a date to parse and press enter, or type `POSIX':\n");
     64           continue;
     65         }
     66 
     67       if (strcmp(input,"POSIX\n") == 0)
     68         {
     69           char** s = posix_tests;
     70           while (*s) {
     71             g_date_set_parse(d, *s);
     72 
     73             g_print("POSIXy parse test `%s' ...", *s);
     74 
     75             if (!g_date_valid(d))
     76               {
     77                 g_print(" failed.\n");
     78               }
     79             else
     80               {
     81                 gchar buf[256];
     82 
     83                 g_date_strftime(buf,100," parsed `%x' (%B %d %Y)\n",
     84                                 d);
     85                 g_print("%s", buf);
     86               }
     87 
     88             ++s;
     89           }
     90         }
     91       else
     92         {
     93           g_date_set_parse(d, input);
     94 
     95           if (!g_date_valid(d))
     96             {
     97               g_print("Parse failed.\n");
     98             }
     99           else
    100             {
    101               gchar buf[256];
    102 
    103               g_date_strftime(buf,100,"Parsed: `%x' (%B %d %Y)\n",
    104                               d);
    105               g_print("%s", buf);
    106             }
    107         }
    108     }
    109 
    110   g_date_free(d);
    111 
    112   return 0;
    113 }
    114 
    115 
    116