1 /* ibus-hangul - korean input method engine for IBus
2 * This file is from Korean XIM Nabi.
5 /* Nabi - X Input Method server for hangul
6 * Copyright (C) 2008 Choe Hwanjin
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
28 return g_array_new(TRUE, TRUE, sizeof(ucschar));
32 ustring_dup(const UString* str)
36 ustring_append(dup, str);
41 ustring_delete(UString* str)
43 g_array_free(str, TRUE);
47 ustring_clear(UString* str)
50 g_array_remove_range(str, 0, str->len);
54 ustring_erase(UString* str, guint pos, guint len)
57 return g_array_remove_range(str, pos, len);
63 ustring_begin(UString* str)
65 return (ucschar*)str->data;
69 ustring_end(UString* str)
71 return &g_array_index(str, ucschar, str->len);
75 ustring_length(const UString* str)
81 ustring_append(UString* str, const UString* s)
83 return g_array_append_vals(str, s->data, s->len);
87 ustring_append_ucs4(UString* str, const ucschar* s, gint len)
96 return g_array_append_vals(str, s, len);
100 ustring_append_utf8(UString* str, const char* utf8)
102 while (*utf8 != '\0') {
103 ucschar c = g_utf8_get_char(utf8);
104 g_array_append_vals(str, &c, 1);
105 utf8 = g_utf8_next_char(utf8);
111 ustring_to_utf8(const UString* str, guint len)
115 return g_ucs4_to_utf8((const gunichar*)str->data, len, NULL, NULL, NULL);