-#include "gtktexttypes.h"
-
+/* GTK - The GIMP Toolkit
+ * gtktexttypes.c Copyright (C) 2000 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
/*
- * Tab array
+ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
+ * file for a list of people on the GTK+ Team. See the ChangeLog
+ * files for a list of changes. These files are distributed with
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
-GtkTextTabArray*
-gtk_text_view_tab_array_new(guint size)
-{
- GtkTextTabArray *array;
-
- array = g_new0(GtkTextTabArray, 1);
-
- array->refcount = 1;
- array->numTabs = size;
- array->tabs = g_new0(GtkTextTab, size);
-
- return array;
-}
-
-void
-gtk_text_view_tab_array_ref(GtkTextTabArray *tab_array)
-{
- g_return_if_fail(tab_array != NULL);
-
- tab_array->refcount += 1;
-}
-
-void
-gtk_text_view_tab_array_unref(GtkTextTabArray *tab_array)
-{
- g_return_if_fail(tab_array != NULL);
- g_return_if_fail(tab_array->refcount > 0);
-
- tab_array->refcount -= 1;
-
- if (tab_array->refcount == 0)
- {
- g_free(tab_array->tabs);
- g_free(tab_array);
- }
-}
+#include "config.h"
+#include "gtktexttypes.h"
/* These are used to represent embedded non-character objects
* if you return a string representation of a text buffer
*/
-const gunichar gtk_text_unknown_char = 0xFFFD;
-const gchar gtk_text_unknown_char_utf8[] = { 0xEF, 0xBF, 0xBD, '\0' };
-
-static inline gboolean
-inline_byte_begins_utf8_char(const gchar *byte)
-{
- return ((*byte & 0xC0) != 0x80);
-}
+const gchar _gtk_text_unknown_char_utf8[] = { '\xEF', '\xBF', '\xBC', '\0' };
-gboolean
-gtk_text_byte_begins_utf8_char(const gchar *byte)
+/* This is to be used only by libgtk test programs */
+const gchar *
+gtk_text_unknown_char_utf8_gtk_tests_only (void)
{
- return inline_byte_begins_utf8_char(byte);
+ return _gtk_text_unknown_char_utf8;
}
-guint
-gtk_text_utf_to_latin1_char(const gchar *p, guchar *l1_ch)
-{
- guint charlen;
- gunichar ch;
-
- g_assert(inline_byte_begins_utf8_char(p));
-
- charlen = g_utf8_next_char (p) - p;
- ch = g_utf8_get_char (p);
-
- g_assert(ch != '\0');
-
- if (ch > 0xff)
- *l1_ch = '?';
- else
- *l1_ch = ch;
-
- return charlen;
-}
-
-gchar*
-gtk_text_utf_to_latin1(const gchar *p, gint len)
+static inline gboolean
+inline_byte_begins_utf8_char (const gchar *byte)
{
- GString *str;
- guint i;
- gchar *retval;
-
- str = g_string_new("");
-
- i = 0;
- while (i < len)
- {
- guchar ch;
- guint charlen;
-
- charlen = gtk_text_utf_to_latin1_char(p+i, &ch);
-
- g_string_append_c(str, ch);
-
- i += charlen;
- }
-
- retval = str->str;
- g_string_free(str, FALSE);
-
- return retval;
+ return ((*byte & 0xC0) != 0x80);
}
-gchar*
-gtk_text_latin1_to_utf (const gchar *latin1, gint len)
+gboolean
+gtk_text_byte_begins_utf8_char (const gchar *byte)
{
- gint i;
- GString *retval;
- gchar *str;
-
- retval = g_string_new("");
-
- i = 0;
- while (i < len)
- {
- gchar utf[7];
- gint count;
-
- count = g_unichar_to_utf8 ((guchar)latin1[i], utf);
-
- utf[count] = '\0';
-
- g_string_append(retval, utf);
-
- ++i;
- }
-
- str = retval->str;
- g_string_free(retval, FALSE);
- return str;
+ return inline_byte_begins_utf8_char (byte);
}
-
-
-