/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2011 Index Data
+ * Copyright (C) 1995-2012 Index Data
* See the file LICENSE for details.
*/
}
struct icu_transform * icu_transform_create(const char *id, char action,
- const char *rules,
+ const char *rules,
UErrorCode *status)
{
struct icu_buf_utf16 *id16 = icu_buf_utf16_create(0);
transform->trans = 0;
if (id)
- {
icu_utf16_from_utf8_cstr(id16, id, status);
- id16->utf16[id16->utf16_len] = 0;
- }
+
if (rules)
icu_utf16_from_utf8_cstr(rules16, rules, status);
case 'f':
case 'F':
transform->trans
- = utrans_openU(id16->utf16,
+ = utrans_openU(id16->utf16,
id16->utf16_len,
UTRANS_FORWARD,
- rules16->utf16,
+ rules16->utf16,
rules16->utf16_len,
&transform->parse_error, status);
break;
= utrans_openU(id16->utf16,
id16->utf16_len,
UTRANS_REVERSE ,
- rules16->utf16,
+ rules16->utf16,
rules16->utf16_len,
&transform->parse_error, status);
break;
}
icu_buf_utf16_destroy(rules16);
icu_buf_utf16_destroy(id16);
-
+
if (U_SUCCESS(*status))
return transform;
const struct icu_buf_utf16 * src16,
UErrorCode *status)
{
- if (!transform || !transform->trans
+ if (!transform || !transform->trans
|| !src16 || !dest16)
return 0;
if (!icu_buf_utf16_copy(dest16, src16))
return 0;
- utrans_transUChars (transform->trans,
- dest16->utf16, &(dest16->utf16_len),
- dest16->utf16_cap,
- 0, &(dest16->utf16_len), status);
+ utrans_transUChars(transform->trans,
+ dest16->utf16, &(dest16->utf16_len),
+ dest16->utf16_cap,
+ 0, &(dest16->utf16_len), status);
if (U_FAILURE(*status))
icu_buf_utf16_clear(dest16);
-
+
return dest16->utf16_len;
}