From ef4a6bf28f7697d57173160803211fef5679309e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Krzysztof=20Kosi=C5=84ski?= Date: Sun, 12 Dec 2010 14:45:12 +0100 Subject: [PATCH] Prevent localized doubles from being written into filter matrices --- src/helper-fns.h | 12 ++++++------ src/ui/dialog/filter-effects-dialog.cpp | 5 ++++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/helper-fns.h b/src/helper-fns.h index 05e65fea8..f407364a5 100644 --- a/src/helper-fns.h +++ b/src/helper-fns.h @@ -22,7 +22,7 @@ // can be more clear. #define HELPERFNS_NO_WARNING false -/* convert localized ascii representation to double +/* convert ascii representation to double * the function can only be used to convert numbers as given by gui elements that use localized representation * @param value ascii representation of the number * @return the converted number @@ -37,7 +37,7 @@ inline double helperfns_read_number(gchar const *value, bool warning = true) { return 0; } char *end; - double ret = g_strtod(value, &end); + double ret = g_ascii_strtod(value, &end); if (*end) { if (warning) { g_warning("helper-fns::helperfns_read_number() Unable to convert \"%s\" to number", value); @@ -62,7 +62,7 @@ inline bool helperfns_read_bool(gchar const *value, bool default_value){ return default_value; } -/* convert localized ascii representation to double +/* convert ascii representation to double * the function can only be used to convert numbers as given by gui elements that use localized representation * numbers are delimeted by space * @param value ascii representation of the number @@ -77,7 +77,7 @@ inline std::vector helperfns_read_vector(const gchar* value, int size){ is >> str; char *end; - double ret = g_strtod(str.c_str(), &end); + double ret = g_ascii_strtod(str.c_str(), &end); if (*end) { g_warning("helper-fns::helperfns_read_vector() Unable to convert \"%s\" to number", str.c_str()); // We could leave this out, too. If strtod can't convert @@ -89,7 +89,7 @@ inline std::vector helperfns_read_vector(const gchar* value, int size){ return v; } -/* convert localized ascii representation to double +/* convert ascii representation to double * the function can only be used to convert numbers as given by gui elements that use localized representation * numbers are delimeted by space * @param value ascii representation of the number @@ -103,7 +103,7 @@ inline std::vector helperfns_read_vector(const gchar* value){ while(*beg) { char *end; - double ret = g_strtod(beg, &end); + double ret = g_ascii_strtod(beg, &end); if (end==beg){ g_warning("helper-fns::helperfns_read_vector() Unable to convert \"%s\" to number", beg); // We could leave this out, too. If strtod can't convert diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index ed7103be3..3fbb3663d 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -58,6 +58,7 @@ #include "style.h" #include "svg/svg-color.h" +#include "svg/stringstream.h" #include "ui/dialog/filedialog.h" #include "verbs.h" #include "xml/node.h" @@ -304,6 +305,7 @@ public: // Returns the color in 'rgb(r,g,b)' form. Glib::ustring get_as_attribute() const { + // no doubles here, so we can use the standard string stream. std::ostringstream os; const Gdk::Color c = get_color(); const int r = c.get_red() / 257, g = c.get_green() / 257, b = c.get_blue() / 257;//TO-DO: verify this. This sounds a lot strange! shouldn't it be 256? @@ -371,7 +373,8 @@ public: Glib::ustring get_as_attribute() const { - std::ostringstream os; + // use SVGOStringStream to output SVG-compatible doubles + Inkscape::SVGOStringStream os; for(Gtk::TreeIter iter = _model->children().begin(); iter != _model->children().end(); ++iter) { -- 2.30.2