diff -Nru cairo-1.10.2/debian/changelog cairo-1.10.2/debian/changelog --- cairo-1.10.2/debian/changelog 2011-05-13 21:36:28.000000000 +0000 +++ cairo-1.10.2/debian/changelog 2011-05-18 15:53:15.000000000 +0000 @@ -1,3 +1,9 @@ +cairo (1.10.2-2ubuntu6ppa3) oneiric; urgency=low + + * Update svg-text.patch. + + -- Tobias Wolf Wed, 18 May 2011 17:52:10 +0200 + cairo (1.10.2-2ubuntu6ppa2) oneiric; urgency=low * Update symbols. diff -Nru cairo-1.10.2/debian/patches/debian-changes-1.10.2-2ubuntu6ppa3 cairo-1.10.2/debian/patches/debian-changes-1.10.2-2ubuntu6ppa3 --- cairo-1.10.2/debian/patches/debian-changes-1.10.2-2ubuntu6ppa3 1970-01-01 00:00:00.000000000 +0000 +++ cairo-1.10.2/debian/patches/debian-changes-1.10.2-2ubuntu6ppa3 2011-05-18 15:53:20.000000000 +0000 @@ -0,0 +1,57 @@ +Description: Upstream changes introduced in version 1.10.2-2ubuntu6ppa3 + This patch has been created by dpkg-source during the package build. + Here's the last changelog entry, hopefully it gives details on why + those changes were made: + . + cairo (1.10.2-2ubuntu6ppa3) oneiric; urgency=low + . + * Update svg-text.patch. + . + The person named in the Author field signed this changelog entry. +Author: Tobias Wolf + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: , +Bug: +Bug-Debian: http://bugs.debian.org/ +Bug-Ubuntu: https://launchpad.net/bugs/ +Forwarded: +Reviewed-By: +Last-Update: + +--- cairo-1.10.2.orig/src/cairo-svg-surface.c ++++ cairo-1.10.2/src/cairo-svg-surface.c +@@ -2647,8 +2647,7 @@ _cairo_svg_surface_show_text_glyphs (voi + cairo_svg_surface_t *surface = abstract_surface; + cairo_output_stream_t *output = surface->xml_node; + cairo_status_t status; +- int i, j; +- int first_byte_to_show, last_byte_to_show; ++ int i; + cairo_matrix_t p2u; + double x, y; + +@@ -2686,16 +2685,9 @@ _cairo_svg_surface_show_text_glyphs (voi + _cairo_output_stream_printf (output, + "", x, y); + +- first_byte_to_show = 0; +- for (i=0; i < num_clusters; i++) { +- if (clusters[i].num_glyphs > 0) { +- last_byte_to_show = first_byte_to_show + clusters[i].num_bytes; +- for (j = first_byte_to_show; j < last_byte_to_show; j++) { +- _cairo_output_stream_printf (output, +- "%c", (utf8[j])); +- } +- } +- first_byte_to_show += clusters[i].num_bytes; ++ for (i = 0; i < utf8_len; i++) { ++ _cairo_output_stream_printf (output, ++ "%c", (utf8[i])); + } + + _cairo_output_stream_printf (output, diff -Nru cairo-1.10.2/debian/patches/series cairo-1.10.2/debian/patches/series --- cairo-1.10.2/debian/patches/series 2011-05-13 18:18:36.000000000 +0000 +++ cairo-1.10.2/debian/patches/series 2011-05-18 15:52:32.000000000 +0000 @@ -6,3 +6,4 @@ disable-flto-for-gcc-4.6 03_revert-make-lcd_filter-api-private.patch svg-text.patch +debian-changes-1.10.2-2ubuntu6ppa3 diff -Nru cairo-1.10.2/debian/patches/svg-text.patch cairo-1.10.2/debian/patches/svg-text.patch --- cairo-1.10.2/debian/patches/svg-text.patch 2011-05-13 18:18:15.000000000 +0000 +++ cairo-1.10.2/debian/patches/svg-text.patch 2011-05-18 15:51:41.000000000 +0000 @@ -1,5 +1,5 @@ diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c -index bb5bccf..4d02bc1 100644 +index bb5bccf..681fb82 100644 --- a/src/cairo-svg-surface.c +++ b/src/cairo-svg-surface.c @@ -2130,6 +2130,65 @@ _cairo_svg_surface_emit_stroke_style (cairo_output_stream_t *output, @@ -68,7 +68,7 @@ _cairo_svg_surface_fill_stroke (void *abstract_surface, cairo_operator_t fill_op, const cairo_pattern_t *fill_source, -@@ -2560,6 +2619,81 @@ FALLBACK: +@@ -2560,6 +2619,89 @@ FALLBACK: return status; } @@ -95,7 +95,8 @@ + cairo_svg_surface_t *surface = abstract_surface; + cairo_output_stream_t *output = surface->xml_node; + cairo_status_t status; -+ int i; ++ int i, j; ++ int first_byte_to_show, last_byte_to_show; + cairo_matrix_t p2u; + double x, y; + @@ -133,9 +134,16 @@ + _cairo_output_stream_printf (output, + "", x, y); + -+ for (i = 0; i < utf8_len; i++) { -+ _cairo_output_stream_printf (output, -+ "%c", (utf8[i])); ++ first_byte_to_show = 0; ++ for (i=0; i < num_clusters; i++) { ++ if (clusters[i].num_glyphs > 0) { ++ last_byte_to_show = first_byte_to_show + clusters[i].num_bytes; ++ for (j = first_byte_to_show; j < last_byte_to_show; j++) { ++ _cairo_output_stream_printf (output, ++ "%c", (utf8[j])); ++ } ++ } ++ first_byte_to_show += clusters[i].num_bytes; + } + + _cairo_output_stream_printf (output, @@ -150,7 +158,7 @@ static void _cairo_svg_surface_get_font_options (void *abstract_surface, cairo_font_options_t *options) -@@ -2602,7 +2736,11 @@ static const cairo_surface_backend_t cairo_svg_surface_backend = { +@@ -2602,7 +2744,11 @@ static const cairo_surface_backend_t cairo_svg_surface_backend = { _cairo_svg_surface_show_glyphs, NULL, /* snapshot */ NULL, /* is_similar */