--- psiconv/trunk/lib/psiconv/unicode.c 2004/01/04 22:20:43 183 +++ psiconv/trunk/lib/psiconv/unicode.c 2004/01/06 20:15:01 184 @@ -45,7 +45,7 @@ /* 0x48 */ 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, /* 0x50 */ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, /* 0x58 */ 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, - /* 0x60 */ 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0060, 0x0067, + /* 0x60 */ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 0x68 */ 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, /* 0x70 */ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, /* 0x78 */ 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x0000, @@ -142,3 +142,35 @@ i++; return i; } + +psiconv_ucs2 *psiconv_unicode_strdup(const psiconv_ucs2 *input) +{ + psiconv_ucs2 *output; + int i = 0; + + if (!(output = malloc(sizeof(*output) * + (1 + psiconv_unicode_strlen(input))))) + return NULL; + while ((output[i] = input[i])) + i++; + return output; +} + +int psiconv_unicode_strcmp(const psiconv_ucs2 *str1, const psiconv_ucs2 *str2) +{ + int i = 0; + while (str1[i] && str2[i]) { + if (str1[i] < str2[i]) + return -1; + if (str1[i] > str2[i]) + return 1; + i++; + } + if (str1[i] < str2[i]) + return -1; + else if (str1[i] > str2[i]) + return 1; + else + return 0; +} +