remove unecessary lock (ARMI_AffinityMask is updated while startup_lock is held)
[AROS.git] / test / localetest.c
bloba91283c64f8e3fc0418ec680014db6f7e79c1049
1 /*
2 Copyright © 1995-2014, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #include <proto/locale.h>
7 #include <proto/exec.h>
8 #include <proto/utility.h>
9 #include <utility/hooks.h>
10 #include <libraries/locale.h>
11 #include <dos/datetime.h>
12 #include <utility/date.h>
13 #include <aros/asmcall.h>
14 #include <stdio.h>
18 struct LocaleBase * LocaleBase;
19 struct UtilityBase * UtilityBase;
21 AROS_UFH3(void, printchar,
22 AROS_UFHA(struct Hook *, myhook, A0),
23 AROS_UFHA(struct Locale *, locale, A2),
24 AROS_UFHA(char, c, A1))
26 AROS_USERFUNC_INIT
28 if ('\0' != c) printf("%c",c);
30 AROS_USERFUNC_EXIT
33 struct Data
35 char * a;
36 char * b;
37 char * c;
38 char * d;
39 UWORD e;
40 UWORD f;
41 ULONG g;
45 void formatstring_test(struct Locale * locale)
47 struct Hook myhook;
48 char hello[] = {"Hello"};
49 char local[] = {"Locale"};
50 char welcomes[] = {"welcomes"};
51 char you[] = {"you"};
53 struct Data dataStream =
54 { hello,
55 local,
56 welcomes,
57 you,
58 1000,
59 20000,
60 0x1234ABCD};
62 myhook.h_Entry = (APTR)printchar;
64 printf("Doing a simple FormatString test!\n");
67 ** Just a simple test for FormatString
69 FormatString(locale, "%s! %s %s %s %u %u %lx!\n", &dataStream, &myhook);
70 FormatString(locale, "%4$s! (%5$u %7$lX %6$u %6$U %7$lU) %1$.3s %2$20s %3$s %4$s!\n", &dataStream, &myhook);
73 void formatdate_test(struct Locale * locale)
75 struct Hook myhook;
76 struct DateStamp date;
77 struct ClockData cdata;
78 ULONG seconds;
80 myhook.h_Entry = (APTR)printchar;
82 printf("Doing a simple FormatDate test!\n");
85 ** Just a simple test for FormatString
88 cdata.sec = 30;
89 cdata.min = 59;
90 cdata.hour = 8;
91 cdata.mday = 17;
92 cdata.month = 1;
93 cdata.year = 2000;
94 cdata.wday = 0; // don't care
96 seconds = Date2Amiga(&cdata);
97 date.ds_Days = seconds / 86400;
98 seconds = seconds % 86400;
99 date.ds_Minute = seconds / 60;
100 seconds = seconds % 60;
101 date.ds_Tick = seconds * 50;
103 FormatDate(locale, "24hour style (leading 0s): %H\n", &date, &myhook);
104 FormatDate(locale, "12hour style (leading 0s): %I\n", &date, &myhook);
105 FormatDate(locale, "24hour style: %q\n", &date, &myhook);
106 FormatDate(locale, "12hour style: %Q\n", &date, &myhook);
107 FormatDate(locale, "Number of seconds (leading 0s): %S\n", &date, &myhook);
108 FormatDate(locale, "H:M:S style (T): %T\n", &date, &myhook);
109 FormatDate(locale, "H:M:S style (X): %X\n", &date, &myhook);
112 cdata.sec = 30;
113 cdata.min = 59;
114 cdata.hour = 18;
115 cdata.mday = 30;
116 cdata.month = 7;
117 cdata.year = 2000;
118 cdata.wday = 0; // don't care
120 seconds = Date2Amiga(&cdata);
121 date.ds_Days = seconds / 86400;
122 seconds = seconds % 86400;
123 date.ds_Minute = seconds / 60;
124 seconds = seconds % 60;
125 date.ds_Tick = seconds * 50;
127 FormatDate(locale, "24hour style (leading 0s): %H\n", &date, &myhook);
128 FormatDate(locale, "12hour style (leading 0s): %I\n", &date, &myhook);
129 FormatDate(locale, "24hour style: %q\n", &date, &myhook);
130 FormatDate(locale, "12hour style: %Q\n", &date, &myhook);
131 FormatDate(locale, "Number of seconds (leading 0s): %S\n", &date, &myhook);
132 FormatDate(locale, "%%H:%%M:%%S style (T): %T\n", &date, &myhook);
133 FormatDate(locale, "%%H:%%M:%%S style (X): %X\n", &date, &myhook);
135 printf("\n");
136 FormatDate(locale, "%%a %%b %%d %%h:%%m:%%s %%y style: %c\n", &date, &myhook);
137 FormatDate(locale, "%%a %%b %%e %%T %%Z %%Y style: %C\n", &date, &myhook);
138 FormatDate(locale, "%%m/%%d/%%y style: %D\n", &date, &myhook);
140 FormatDate(locale, "Week number - Sunday first day of week: %U\n", &date, &myhook);
141 FormatDate(locale, "Week number - Monday first day of week: %W\n", &date, &myhook);
146 void getstringtest(struct Locale * locale)
148 struct Catalog * cat;
149 char catname[256];
151 printf("Please enter name of catalog: ");
152 scanf("%s",catname);
154 cat = OpenCatalogA(locale,catname,NULL);
155 if (cat)
157 int i = 0;
158 while (i < 65535)
160 CONST_STRPTR str = GetCatalogStr(cat, i, NULL);
161 if (str)
162 printf("ID: %d - string : %s\n",i,str);
164 i++;
167 CloseCatalog(cat);
171 int main(void)
173 LocaleBase = (struct LocaleBase *)OpenLibrary("locale.library",0);
174 UtilityBase = (struct UtilityBase *)OpenLibrary("utility.library",0);
176 if (LocaleBase)
178 struct Locale * locale;
179 locale = OpenLocale(NULL);
180 formatstring_test(locale);
181 formatdate_test(locale);
182 getstringtest(locale);
184 if (locale) CloseLocale(locale);
186 else
188 printf("A library could not be opened!\n");
191 if (LocaleBase) CloseLibrary((struct Library *)LocaleBase);
192 if (UtilityBase) CloseLibrary((struct Library *)UtilityBase);
193 return 0;