Index: icu46/source/tools/gentest/genres32.c |
=================================================================== |
--- icu46/source/tools/gentest/genres32.c (revision 0) |
+++ icu46/source/tools/gentest/genres32.c (revision 0) |
@@ -0,0 +1,102 @@ |
+/* |
+******************************************************************************* |
+* |
+* Copyright (C) 2003-2006, International Business Machines |
+* Corporation and others. All Rights Reserved. |
+* |
+******************************************************************************* |
+* file name: genres32.c |
+* encoding: US-ASCII |
+* tab size: 8 (not used) |
+* indentation:4 |
+* |
+* created on: 2003sep10 |
+* created by: Markus W. Scherer |
+* |
+* Write an ICU resource bundle with a table whose |
+* number of key characters and number of items both exceed 64k. |
+* Writing it as the root table tests also that |
+* the new table type is recognized for the root resource by the reader code. |
+*/ |
+#include <stdio.h> |
+#include "unicode/putil.h" |
+#include "cstring.h" |
+#include "gentest.h" |
+ |
+static void |
+incKey(char *key, char *limit) { |
+ char c; |
+ |
+ while(limit>key) { |
+ c=*--limit; |
+ if(c=='o') { |
+ *limit='1'; |
+ break; |
+ } else { |
+ *limit='o'; |
+ } |
+ } |
+} |
+ |
+U_CFUNC int |
+genres32(const char *prog, const char *path) { |
+ /* |
+ * key string, gets incremented binary numbers |
+ * letter 'o'=0 and digit '1'=1 so that data swapping can be tested |
+ * with reordering (ASCII: '1'<'o' EBCDIC: '1'>'o') |
+ * |
+ * need 17 digits for >64k unique items |
+ */ |
+ char key[20]="ooooooooooooooooo"; |
+ char *limit; |
+ int i; |
+ char file[512]; |
+ FILE *out; |
+ |
+ uprv_strcpy(file,path); |
+ if(file[strlen(file)-1]!=U_FILE_SEP_CHAR) { |
+ uprv_strcat(file,U_FILE_SEP_STRING); |
+ } |
+ uprv_strcat(file,"testtable32.txt"); |
+ out = fopen(file, "w"); |
+ /*puts(file);*/ |
+ puts("Generating testtable32.txt"); |
+ if(out == NULL) { |
+ fprintf(stderr, "%s: Couldn't create resource test file %s\n", |
+ prog, file); |
+ return 1; |
+ } |
+ |
+ /* find the limit of the key string */ |
+ for(limit=key; *limit!=0; ++limit) { |
+ } |
+ |
+ /* output the beginning of the bundle */ |
+ fputs( |
+ "testtable32 {", out |
+ ); |
+ |
+ /* output the table entries */ |
+ for(i=0; i<66000; ++i) { |
+ if(i%10==0) { |
+ /* |
+ * every 10th entry contains a string with |
+ * the entry index as its code point |
+ */ |
+ fprintf(out, "%s{\"\\U%08x\"}\n", key, i); |
+ } else { |
+ /* other entries contain their index as an integer */ |
+ fprintf(out, "%s:int{%d}\n", key, i); |
+ } |
+ |
+ incKey(key, limit); |
+ } |
+ |
+ /* output the end of the bundle */ |
+ fputs( |
+ "}", out |
+ ); |
+ |
+ fclose(out); |
+ return 0; |
+} |
Property changes on: icu46/source/tools/gentest/genres32.c |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |