Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(431)

Side by Side Diff: source/samples/numfmt/main.cpp

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/samples/msgfmt/msgfmt.sln ('k') | source/samples/numfmt/numfmt.sln » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /******************************************************************** 1 /********************************************************************
2 * COPYRIGHT: 2 * COPYRIGHT:
3 * Copyright (c) 1999-2010, International Business Machines Corporation and 3 * Copyright (c) 1999-2014, International Business Machines Corporation and
4 * others. All Rights Reserved. 4 * others. All Rights Reserved.
5 ********************************************************************/ 5 ********************************************************************/
6 6
7 #include "unicode/utypes.h" 7 #include "unicode/utypes.h"
8 #include "unicode/unistr.h" 8 #include "unicode/unistr.h"
9 #include "unicode/numfmt.h" 9 #include "unicode/numfmt.h"
10 #include "unicode/dcfmtsym.h" 10 #include "unicode/dcfmtsym.h"
11 #include "unicode/decimfmt.h" 11 #include "unicode/decimfmt.h"
12 #include "unicode/locid.h" 12 #include "unicode/locid.h"
13 #include "unicode/uclean.h" 13 #include "unicode/uclean.h"
14 #include "util.h" 14 #include "util.h"
15 #include <stdio.h> 15 #include <stdio.h>
16 #include <stdlib.h> 16 #include <stdlib.h>
17 #include <string.h> 17 #include <string.h>
18 18
19 #define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
20
21 extern "C" void capi(); 19 extern "C" void capi();
22 void cppapi(); 20 void cppapi();
23 21
24 static void 22 static void
25 showCurrencyFormatting(UBool useICU26API); 23 showCurrencyFormatting(UBool useICU26API);
26 24
27 int main(int argc, char **argv) { 25 int main(int argc, char **argv) {
28 printf("%s output is in UTF-8\n", argv[0]); 26 printf("%s output is in UTF-8\n", argv[0]);
29 27
30 printf("C++ API\n"); 28 printf("C++ API\n");
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 UChar symbol[16]; 144 UChar symbol[16];
147 } currencyMap[]={ 145 } currencyMap[]={
148 { "USD", 2, 0.0, { 0x24, 0 } }, 146 { "USD", 2, 0.0, { 0x24, 0 } },
149 { "GBP", 2, 0.0, { 0xa3, 0 } }, 147 { "GBP", 2, 0.0, { 0xa3, 0 } },
150 { "EUR", 2, 0.0, { 0x20ac, 0 } }, 148 { "EUR", 2, 0.0, { 0x20ac, 0 } },
151 { "JPY", 0, 0.0, { 0xa5, 0 } } 149 { "JPY", 0, 0.0, { 0xa5, 0 } }
152 }; 150 };
153 151
154 int32_t i; 152 int32_t i;
155 153
156 for(i=0; i<LENGTHOF(currencyMap); ++i) { 154 for(i=0; i<UPRV_LENGTHOF(currencyMap); ++i) {
157 if(strcmp(currency, currencyMap[i].currency)==0) { 155 if(strcmp(currency, currencyMap[i].currency)==0) {
158 break; 156 break;
159 } 157 }
160 } 158 }
161 if(i==LENGTHOF(currencyMap)) { 159 if(i==UPRV_LENGTHOF(currencyMap)) {
162 // a more specific error code would be useful in a real application 160 // a more specific error code would be useful in a real application
163 errorCode=U_UNSUPPORTED_ERROR; 161 errorCode=U_UNSUPPORTED_ERROR;
164 return; 162 return;
165 } 163 }
166 164
167 // set the currency-related data into the caller's formatter 165 // set the currency-related data into the caller's formatter
168 166
169 nf.setMinimumFractionDigits(currencyMap[i].fractionDigits); 167 nf.setMinimumFractionDigits(currencyMap[i].fractionDigits);
170 nf.setMaximumFractionDigits(currencyMap[i].fractionDigits); 168 nf.setMaximumFractionDigits(currencyMap[i].fractionDigits);
171 169
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 NumberFormat *nf; 226 NumberFormat *nf;
229 int32_t i, j; 227 int32_t i, j;
230 228
231 UnicodeString output; 229 UnicodeString output;
232 230
233 UErrorCode errorCode; 231 UErrorCode errorCode;
234 232
235 // TODO: Using printf() here assumes that the runtime encoding is ASCII-frie ndly 233 // TODO: Using printf() here assumes that the runtime encoding is ASCII-frie ndly
236 // and can therefore be mixed with UTF-8 234 // and can therefore be mixed with UTF-8
237 235
238 for(i=0; i<LENGTHOF(sampleLocaleIDs); ++i) { 236 for(i=0; i<UPRV_LENGTHOF(sampleLocaleIDs); ++i) {
239 printf("show currency formatting (method for %s) in the locale \"%s\"\n" , 237 printf("show currency formatting (method for %s) in the locale \"%s\"\n" ,
240 useICU26API ? "ICU 2.6" : "before ICU 2.6", 238 useICU26API ? "ICU 2.6" : "before ICU 2.6",
241 sampleLocaleIDs[i]); 239 sampleLocaleIDs[i]);
242 240
243 // get a currency formatter for this locale ID 241 // get a currency formatter for this locale ID
244 errorCode=U_ZERO_ERROR; 242 errorCode=U_ZERO_ERROR;
245 nf=NumberFormat::createCurrencyInstance(sampleLocaleIDs[i], errorCode); 243 nf=NumberFormat::createCurrencyInstance(sampleLocaleIDs[i], errorCode);
246 if(U_FAILURE(errorCode)) { 244 if(U_FAILURE(errorCode)) {
247 printf("NumberFormat::createCurrencyInstance(%s) failed - %s\n", 245 printf("NumberFormat::createCurrencyInstance(%s) failed - %s\n",
248 sampleLocaleIDs[i], u_errorName(errorCode)); 246 sampleLocaleIDs[i], u_errorName(errorCode));
249 continue; 247 continue;
250 } 248 }
251 249
252 for(j=0; j<LENGTHOF(sampleCurrencies); ++j) { 250 for(j=0; j<UPRV_LENGTHOF(sampleCurrencies); ++j) {
253 printf(" - format currency \"%s\": ", sampleCurrencies[j]); 251 printf(" - format currency \"%s\": ", sampleCurrencies[j]);
254 252
255 // set the actual currency to be formatted 253 // set the actual currency to be formatted
256 if(useICU26API) { 254 if(useICU26API) {
257 setNumberFormatCurrency_2_6(*nf, sampleCurrencies[j], errorCode) ; 255 setNumberFormatCurrency_2_6(*nf, sampleCurrencies[j], errorCode) ;
258 } else { 256 } else {
259 setNumberFormatCurrency_2_4(*nf, sampleCurrencies[j], errorCode) ; 257 setNumberFormatCurrency_2_4(*nf, sampleCurrencies[j], errorCode) ;
260 } 258 }
261 if(U_FAILURE(errorCode)) { 259 if(U_FAILURE(errorCode)) {
262 printf("setNumberFormatCurrency(%s) failed - %s\n", 260 printf("setNumberFormatCurrency(%s) failed - %s\n",
263 sampleCurrencies[j], u_errorName(errorCode)); 261 sampleCurrencies[j], u_errorName(errorCode));
264 continue; 262 continue;
265 } 263 }
266 264
267 // output=formatted currency value 265 // output=formatted currency value
268 output.remove(); 266 output.remove();
269 nf->format(12345678.93, output); 267 nf->format(12345678.93, output);
270 output+=(UChar)0x0a; // '\n' 268 output+=(UChar)0x0a; // '\n'
271 uprintf(output); 269 uprintf(output);
272 } 270 }
273 } 271 }
274 } 272 }
OLDNEW
« no previous file with comments | « source/samples/msgfmt/msgfmt.sln ('k') | source/samples/numfmt/numfmt.sln » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698