2 Copyright © 1995-2014, The AROS Development Team. All rights reserved.
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>
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
))
28 if ('\0' != c
) printf("%c",c
);
45 void formatstring_test(struct Locale
* locale
)
48 char hello
[] = {"Hello"};
49 char local
[] = {"Locale"};
50 char welcomes
[] = {"welcomes"};
53 struct Data dataStream
=
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
)
76 struct DateStamp date
;
77 struct ClockData cdata
;
80 myhook
.h_Entry
= (APTR
)printchar
;
82 printf("Doing a simple FormatDate test!\n");
85 ** Just a simple test for FormatString
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
);
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
);
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
;
151 printf("Please enter name of catalog: ");
154 cat
= OpenCatalogA(locale
,catname
,NULL
);
160 CONST_STRPTR str
= GetCatalogStr(cat
, i
, NULL
);
162 printf("ID: %d - string : %s\n",i
,str
);
173 LocaleBase
= (struct LocaleBase
*)OpenLibrary("locale.library",0);
174 UtilityBase
= (struct UtilityBase
*)OpenLibrary("utility.library",0);
178 struct Locale
* locale
;
179 locale
= OpenLocale(NULL
);
180 formatstring_test(locale
);
181 formatdate_test(locale
);
182 getstringtest(locale
);
184 if (locale
) CloseLocale(locale
);
188 printf("A library could not be opened!\n");
191 if (LocaleBase
) CloseLibrary((struct Library
*)LocaleBase
);
192 if (UtilityBase
) CloseLibrary((struct Library
*)UtilityBase
);