From 8ceb7aeed360e61b445ca82a3c665defbca609e7 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Wed, 6 Mar 2002 13:17:11 +0000 Subject: [PATCH] Fix various problems when truncating the inserted text to fit into the Wed Mar 6 00:38:29 2002 Owen Taylor * gtk/gtkentry.c (gtk_entry_real_insert_text): Fix various problems when truncating the inserted text to fit into the GtkEntry size limit of 65kb. (#73119) --- ChangeLog | 6 ++++++ ChangeLog.pre-2-0 | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-2 | 6 ++++++ ChangeLog.pre-2-4 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtkentry.c | 7 ++++++- 8 files changed, 48 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d5aaceb8aa..1af13c8355 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Mar 6 00:38:29 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_real_insert_text): Fix various problems + when truncating the inserted text to fit into the GtkEntry + size limit of 65kb. (#73119) + Wed Mar 6 00:20:59 2002 Jonathan Blandford * gtk/gtktreeviewcolumn.c diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index d5aaceb8aa..1af13c8355 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,9 @@ +Wed Mar 6 00:38:29 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_real_insert_text): Fix various problems + when truncating the inserted text to fit into the GtkEntry + size limit of 65kb. (#73119) + Wed Mar 6 00:20:59 2002 Jonathan Blandford * gtk/gtktreeviewcolumn.c diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index d5aaceb8aa..1af13c8355 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Wed Mar 6 00:38:29 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_real_insert_text): Fix various problems + when truncating the inserted text to fit into the GtkEntry + size limit of 65kb. (#73119) + Wed Mar 6 00:20:59 2002 Jonathan Blandford * gtk/gtktreeviewcolumn.c diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index d5aaceb8aa..1af13c8355 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Wed Mar 6 00:38:29 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_real_insert_text): Fix various problems + when truncating the inserted text to fit into the GtkEntry + size limit of 65kb. (#73119) + Wed Mar 6 00:20:59 2002 Jonathan Blandford * gtk/gtktreeviewcolumn.c diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index d5aaceb8aa..1af13c8355 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Wed Mar 6 00:38:29 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_real_insert_text): Fix various problems + when truncating the inserted text to fit into the GtkEntry + size limit of 65kb. (#73119) + Wed Mar 6 00:20:59 2002 Jonathan Blandford * gtk/gtktreeviewcolumn.c diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index d5aaceb8aa..1af13c8355 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Wed Mar 6 00:38:29 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_real_insert_text): Fix various problems + when truncating the inserted text to fit into the GtkEntry + size limit of 65kb. (#73119) + Wed Mar 6 00:20:59 2002 Jonathan Blandford * gtk/gtktreeviewcolumn.c diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index d5aaceb8aa..1af13c8355 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Wed Mar 6 00:38:29 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_real_insert_text): Fix various problems + when truncating the inserted text to fit into the GtkEntry + size limit of 65kb. (#73119) + Wed Mar 6 00:20:59 2002 Jonathan Blandford * gtk/gtktreeviewcolumn.c diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 86949860f8..fd5733a908 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -1862,7 +1862,12 @@ gtk_entry_real_insert_text (GtkEditable *editable, else { entry->text_size = MAX_SIZE; - new_text_length = entry->text_size - entry->n_bytes - 1; + if (new_text_length > (gint)entry->text_size - (gint)entry->n_bytes - 1) + { + new_text_length = (gint)entry->text_size - (gint)entry->n_bytes - 1; + new_text_length = g_utf8_find_prev_char (new_text, new_text + new_text_length + 1) - new_text; + n_chars = g_utf8_strlen (new_text, new_text_length); + } break; } }