+++ /dev/null
-diff -urN cssed-0.3.0.orig/scintilla/gtk/PlatGTK.cxx cssed-0.3.0/scintilla/gtk/PlatGTK.cxx
---- cssed-0.3.0.orig/scintilla/gtk/PlatGTK.cxx 2005-08-16 18:31:10.883464824 +0200
-+++ cssed-0.3.0/scintilla/gtk/PlatGTK.cxx 2005-08-16 18:44:20.587411576 +0200
-@@ -1243,6 +1243,7 @@
- if (font_.GetID()) {
- int totalWidth = 0;
- #ifdef USE_PANGO
-+ const int lenPositions = len;
- if (PFont(font_)->pfd) {
- if (len == 1) {
- int width = PFont(font_)->CharWidth(*s, et);
-@@ -1257,6 +1258,7 @@
- // Simple and direct as UTF-8 is native Pango encoding
- pango_layout_set_text(layout, s, len);
- PangoLayoutIter *iter = pango_layout_get_iter (layout);
-+ pango_layout_iter_get_cluster_extents(iter, NULL, &pos);
- int i = 0;
- while (pango_layout_iter_next_cluster (iter)) {
- pango_layout_iter_get_cluster_extents(iter, NULL, &pos);
-@@ -1266,7 +1268,10 @@
- positions[i++] = position;
- }
- }
-+ while (i < lenPositions)
-+ positions[i++] = PANGO_PIXELS(pos.x + pos.width);
- pango_layout_iter_free (iter);
-+ PLATFORM_ASSERT(i == lenPositions);
- } else {
- int positionsCalculated = 0;
- if (et == dbcs) {
-@@ -1281,6 +1286,7 @@
- int i = 0;
- int utfIndex = 0;
- PangoLayoutIter *iter = pango_layout_get_iter (layout);
-+ pango_layout_iter_get_cluster_extents(iter, NULL, &pos);
- while (pango_layout_iter_next_cluster (iter)) {
- pango_layout_iter_get_cluster_extents (iter, NULL, &pos);
- int position = PANGO_PIXELS(pos.x);
-@@ -1295,8 +1301,11 @@
- utfIndex += UTF8CharLength(utfForm+utfIndex);
- }
- }
-+ while (i < lenPositions)
-+ positions[i++] = PANGO_PIXELS(pos.x + pos.width);
- pango_layout_iter_free (iter);
- delete []utfForm;
-+ PLATFORM_ASSERT(i == lenPositions);
- }
- }
- if (positionsCalculated < 1 ) {
-@@ -1310,16 +1319,20 @@
- pango_layout_set_text(layout, utfForm, strlen(utfForm));
- int i = 0;
- PangoLayoutIter *iter = pango_layout_get_iter (layout);
-+ pango_layout_iter_get_cluster_extents(iter, NULL, &pos);
- while (pango_layout_iter_next_cluster (iter)) {
- pango_layout_iter_get_cluster_extents(iter, NULL, &pos);
- positions[i++] = PANGO_PIXELS(pos.x);
- }
-+ while (i < lenPositions)
-+ positions[i++] = PANGO_PIXELS(pos.x + pos.width);
- pango_layout_iter_free(iter);
- if (useGFree) {
- g_free(utfForm);
- } else {
- delete []utfForm;
- }
-+ PLATFORM_ASSERT(i == lenPositions);
- }
- }
- if (len == 1) {