diff options
-rw-r--r-- | recipes/geda/files/gattrib-gtk218.patch | 110 | ||||
-rw-r--r-- | recipes/geda/geda-gattrib_1.4.3.bb | 3 |
2 files changed, 112 insertions, 1 deletions
diff --git a/recipes/geda/files/gattrib-gtk218.patch b/recipes/geda/files/gattrib-gtk218.patch new file mode 100644 index 0000000000..c1bbdd9ae6 --- /dev/null +++ b/recipes/geda/files/gattrib-gtk218.patch @@ -0,0 +1,110 @@ +Index: geda-gattrib-1.4.3/src/gtkitementry_2_2.c +=================================================================== +--- geda-gattrib-1.4.3.orig/src/gtkitementry_2_2.c ++++ geda-gattrib-1.4.3/src/gtkitementry_2_2.c +@@ -811,23 +811,23 @@ gtk_entry_real_insert_text (GtkEditable + new_text_length = g_utf8_offset_to_pointer (new_text, n_chars) - new_text; + } + +- if (new_text_length + entry->n_bytes + 1 > entry->text_size) ++ if (new_text_length + entry->x_n_bytes + 1 > entry->x_text_size) + { +- while (new_text_length + entry->n_bytes + 1 > entry->text_size) ++ while (new_text_length + entry->x_n_bytes + 1 > entry->x_text_size) + { +- if (entry->text_size == 0) +- entry->text_size = MIN_SIZE; ++ if (entry->x_text_size == 0) ++ entry->x_text_size = MIN_SIZE; + else + { +- if (2 * (guint)entry->text_size < MAX_SIZE && +- 2 * (guint)entry->text_size > entry->text_size) +- entry->text_size *= 2; ++ if (2 * (guint)entry->x_text_size < MAX_SIZE && ++ 2 * (guint)entry->x_text_size > entry->x_text_size) ++ entry->x_text_size *= 2; + else + { +- entry->text_size = MAX_SIZE; +- if (new_text_length > (gint)entry->text_size - (gint)entry->n_bytes - 1) ++ entry->x_text_size = MAX_SIZE; ++ if (new_text_length > (gint)entry->x_text_size - (gint)entry->x_n_bytes - 1) + { +- new_text_length = (gint)entry->text_size - (gint)entry->n_bytes - 1; ++ new_text_length = (gint)entry->x_text_size - (gint)entry->x_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); + } +@@ -836,19 +836,19 @@ gtk_entry_real_insert_text (GtkEditable + } + } + +- entry->text = g_realloc (entry->text, entry->text_size); ++ entry->text = g_realloc (entry->text, entry->x_text_size); + } + + index = g_utf8_offset_to_pointer (entry->text, *position) - entry->text; + +- g_memmove (entry->text + index + new_text_length, entry->text + index, entry->n_bytes - index); ++ g_memmove (entry->text + index + new_text_length, entry->text + index, entry->x_n_bytes - index); + memcpy (entry->text + index, new_text, new_text_length); + +- entry->n_bytes += new_text_length; ++ entry->x_n_bytes += new_text_length; + entry->text_length += n_chars; + + /* NUL terminate for safety and convenience */ +- entry->text[entry->n_bytes] = '\0'; ++ entry->text[entry->x_n_bytes] = '\0'; + + if (entry->current_pos > *position) + entry->current_pos += n_chars; +@@ -881,9 +881,9 @@ gtk_entry_real_delete_text (GtkEditable + gint start_index = g_utf8_offset_to_pointer (entry->text, start_pos) - entry->text; + gint end_index = g_utf8_offset_to_pointer (entry->text, end_pos) - entry->text; + +- g_memmove (entry->text + start_index, entry->text + end_index, entry->n_bytes + 1 - end_index); ++ g_memmove (entry->text + start_index, entry->text + end_index, entry->x_n_bytes + 1 - end_index); + entry->text_length -= (end_pos - start_pos); +- entry->n_bytes -= (end_index - start_index); ++ entry->x_n_bytes -= (end_index - start_index); + + if (entry->current_pos > start_pos) + entry->current_pos -= MIN (entry->current_pos, end_pos) - start_pos; +@@ -1157,7 +1157,7 @@ gtk_entry_retrieve_surrounding_cb (GtkIM + { + gtk_im_context_set_surrounding (context, + entry->text, +- entry->n_bytes, ++ entry->x_n_bytes, + g_utf8_offset_to_pointer (entry->text, entry->current_pos) - entry->text); + + return TRUE; +@@ -1364,7 +1364,7 @@ gtk_entry_create_layout (GtkEntry *entry + + if (entry->visible) + { +- g_string_prepend_len (tmp_string, entry->text, entry->n_bytes); ++ g_string_prepend_len (tmp_string, entry->text, entry->x_n_bytes); + g_string_insert (tmp_string, cursor_index, preedit_string); + } + else +@@ -1373,7 +1373,7 @@ gtk_entry_create_layout (GtkEntry *entry + gint preedit_len_chars; + gunichar invisible_char; + +- ch_len = g_utf8_strlen (entry->text, entry->n_bytes); ++ ch_len = g_utf8_strlen (entry->text, entry->x_n_bytes); + preedit_len_chars = g_utf8_strlen (preedit_string, -1); + ch_len += preedit_len_chars; + +@@ -1407,7 +1407,7 @@ gtk_entry_create_layout (GtkEntry *entry + { + if (entry->visible) + { +- pango_layout_set_text (layout, entry->text, entry->n_bytes); ++ pango_layout_set_text (layout, entry->text, entry->x_n_bytes); + } + else + { diff --git a/recipes/geda/geda-gattrib_1.4.3.bb b/recipes/geda/geda-gattrib_1.4.3.bb index af4ea94153..7cc306d916 100644 --- a/recipes/geda/geda-gattrib_1.4.3.bb +++ b/recipes/geda/geda-gattrib_1.4.3.bb @@ -4,7 +4,8 @@ FILES_${PN} += "${datadir}/gEDA ${datadir}/icons" DEPENDS = "gtk+ libgeda" -SRC_URI = "http://geda.seul.org/release/v1.4/${PV}/${P}.tar.gz" +SRC_URI = "http://geda.seul.org/release/v1.4/${PV}/${P}.tar.gz \ + ${@['file://gattrib-gtk218.patch;patch=1', ''][bb.data.getVar('PREFERRED_VERSION_gtk+', d, 1) and bb.data.getVar('PREFERRED_VERSION_gtk+', d, 1).split('.')[0] <= '2' and bb.data.getVar('PREFERRED_VERSION_gtk+', d, 1).split('.')[1] < '18']}" inherit autotools pkgconfig |