diff options
Diffstat (limited to 'graphics/dia/patches/0018-Bug-683700-vdx-full-of-errors.patch')
-rw-r--r-- | graphics/dia/patches/0018-Bug-683700-vdx-full-of-errors.patch | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/graphics/dia/patches/0018-Bug-683700-vdx-full-of-errors.patch b/graphics/dia/patches/0018-Bug-683700-vdx-full-of-errors.patch deleted file mode 100644 index 550bc62262..0000000000 --- a/graphics/dia/patches/0018-Bug-683700-vdx-full-of-errors.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 61431fec37ed855db7284c6737cb3777577cc904 Mon Sep 17 00:00:00 2001 -From: Hans Breuer <hans@breuer.org> -Date: Fri, 16 Aug 2013 20:54:12 +0200 -Subject: [PATCH 18/24] Bug 683700 - vdx full of errors - -Ensure message_error strings are linefeed-terminated. -Plus fixes merged from master: - -cairo: don't screw cairo's matrix by scaling with 0 -Seen with the VDX attached to bug 683700 - maybe there is also something wrong with the import? - -vdx: UTF-8 safe variant to remove last newline -With the VDX attached to bug 683700 scrambled text appeared. Now corrected with the UTF-8 safe variant to search and replace "\n". ---- - plug-ins/cairo/diacairo-renderer.c | 23 ++++++----------------- - plug-ins/vdx/vdx-import.c | 21 +++++++++++++++++++-- - plug-ins/vdx/vdx-xml.c | 2 +- - 3 files changed, 26 insertions(+), 20 deletions(-) - -diff --git a/plug-ins/cairo/diacairo-renderer.c b/plug-ins/cairo/diacairo-renderer.c -index 137411e..57f6184 100644 ---- a/plug-ins/cairo/diacairo-renderer.c -+++ b/plug-ins/cairo/diacairo-renderer.c -@@ -572,9 +572,14 @@ _ellipse(DiaRenderer *self, - DIAG_NOTE(g_message("%s_ellipse %fx%f center @ %f,%f", - fill ? "fill" : "draw", width, height, center->x, center->y)); - -+ /* avoid screwing cairo context - I'd say restore should fix it again, but it doesn't -+ * (dia.exe:3152): DiaCairo-WARNING **: diacairo-renderer.c:254, invalid matrix (not invertible) -+ */ -+ if (!(width > 0. && height > 0.)) -+ return; -+ - cairo_set_source_rgba (renderer->cr, color->red, color->green, color->blue, 1.0); - --#if 1 - cairo_save (renderer->cr); - /* don't create a line from the current point to the beginning - * of the ellipse */ -@@ -584,22 +589,6 @@ _ellipse(DiaRenderer *self, - cairo_scale (renderer->cr, width / 2., height / 2.); - cairo_arc (renderer->cr, 0., 0., 1., 0., 2 * G_PI); - cairo_restore (renderer->cr); --#else -- /* FIXME: how to make a perfect ellipse from a bezier ? */ -- co = sqrt(pow(width,2)/4 + pow(height,2)/4); -- -- cairo_new_path (renderer->cr); -- cairo_move_to (renderer->cr, -- center->x, center->y - height/2); -- cairo_curve_to (renderer->cr, -- center->x + co, center->y - height/2, -- center->x + co, center->y + height/2, -- center->x, center->y + height/2); -- cairo_curve_to (renderer->cr, -- center->x - co, center->y + height/2, -- center->x - co, center->y - height/2, -- center->x, center->y - height/2); --#endif - - if (fill) - cairo_fill (renderer->cr); -diff --git a/plug-ins/vdx/vdx-import.c b/plug-ins/vdx/vdx-import.c -index ffefa58..7da0c05 100644 ---- a/plug-ins/vdx/vdx-import.c -+++ b/plug-ins/vdx/vdx-import.c -@@ -1737,7 +1737,7 @@ plot_nurbs(const struct vdx_Geom *Geom, const struct vdx_XForm *XForm, - } - if (n % 4 || ! n) - { -- message_error(_("Invalid NURBS formula")); -+ message_error(_("Invalid NURBS formula\n")); - g_debug("Invalid NURBS formula"); - return 0; - } -@@ -2066,7 +2066,7 @@ plot_image(const struct vdx_Geom *Geom, const struct vdx_XForm *XForm, - } - else - { -- message_error(_("Couldn't handle foreign object type %s"), -+ message_error(_("Couldn't handle foreign object type %s\n"), - ForeignData->ForeignType ? ForeignData->ForeignType - : "Unknown"); - return 0; -@@ -2398,12 +2398,29 @@ plot_text(const struct vdx_Text *Text, const struct vdx_XForm *XForm, - } - } - -+#if 0 /* this is not utf-8 safe - see bug 683700 */ - /* Remove trailing line breaks */ - while (tprop->text_data[0] && - isspace(tprop->text_data[strlen(tprop->text_data)-1])) - { - tprop->text_data[strlen(tprop->text_data)-1] = 0; - } -+#else -+ { -+ char *s = tprop->text_data; -+ char *srep = NULL; -+ while ( (s = g_utf8_strchr(s, -1, '\n')) != NULL ) { -+ srep = s; -+ s = g_utf8_next_char(s); -+ if (*s) -+ srep = NULL; -+ else -+ break; -+ } -+ if (srep) -+ *srep = '\0'; -+ } -+#endif - - /* Other standard text properties */ - tprop->attr.alignment = alignment; -diff --git a/plug-ins/vdx/vdx-xml.c b/plug-ins/vdx/vdx-xml.c -index 1fdac65..1c9567d 100644 ---- a/plug-ins/vdx/vdx-xml.c -+++ b/plug-ins/vdx/vdx-xml.c -@@ -3341,7 +3341,7 @@ vdx_read_object(xmlNodePtr cur, VDXDocument *theDoc, void *p) - return s; - } - -- message_error(_("Can't decode object %s"), (char*)cur->name); -+ message_error(_("Can't decode object %s\n"), (char*)cur->name); - return 0; - } - --- -1.8.4.4 - |