From 28f41640c6bf4dd9723ac09d91bb8b6b08dcf76e Mon Sep 17 00:00:00 2001 From: Alvin Penner Date: Sat, 21 Jan 2012 16:53:08 -0500 Subject: allow use of comma delimiter in filter table values array (Bug 511140) Fixed bugs: - https://launchpad.net/bugs/511140 (bzr r10916) --- src/filters/colormatrix.cpp | 2 +- src/filters/convolvematrix.cpp | 2 +- src/helper-fns.h | 7 ++++--- 3 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/filters/colormatrix.cpp b/src/filters/colormatrix.cpp index b110e2766..b88b84037 100644 --- a/src/filters/colormatrix.cpp +++ b/src/filters/colormatrix.cpp @@ -152,7 +152,7 @@ sp_feColorMatrix_set(SPObject *object, unsigned int key, gchar const *str) break; case SP_ATTR_VALUES: if (str){ - feColorMatrix->values = helperfns_read_vector(str, 20); + feColorMatrix->values = helperfns_read_vector(str); feColorMatrix->value = helperfns_read_number(str, HELPERFNS_NO_WARNING); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); } diff --git a/src/filters/convolvematrix.cpp b/src/filters/convolvematrix.cpp index 20d652bee..470bfb64a 100644 --- a/src/filters/convolvematrix.cpp +++ b/src/filters/convolvematrix.cpp @@ -173,7 +173,7 @@ sp_feConvolveMatrix_set(SPObject *object, unsigned int key, gchar const *value) case SP_ATTR_KERNELMATRIX: if (value){ feConvolveMatrix->kernelMatrixIsSet = true; - feConvolveMatrix->kernelMatrix = helperfns_read_vector(value, (int) (feConvolveMatrix->order.getNumber() * feConvolveMatrix->order.getOptNumber())); + feConvolveMatrix->kernelMatrix = helperfns_read_vector(value); if (! feConvolveMatrix->divisorIsSet) { feConvolveMatrix->divisor = 0; for (unsigned int i = 0; i< feConvolveMatrix->kernelMatrix.size(); i++) diff --git a/src/helper-fns.h b/src/helper-fns.h index 3ae150fdb..95de4a1b0 100644 --- a/src/helper-fns.h +++ b/src/helper-fns.h @@ -66,6 +66,7 @@ inline bool helperfns_read_bool(gchar const *value, bool default_value){ * @param size number of elements in string * @return the vector of the converted numbers */ +/* inline std::vector helperfns_read_vector(const gchar* value, int size){ std::vector v(size, (gdouble) 0); std::istringstream is(value); @@ -85,7 +86,7 @@ inline std::vector helperfns_read_vector(const gchar* value, int size){ }; return v; } - +*/ /* 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 @@ -96,7 +97,7 @@ inline std::vector helperfns_read_vector(const gchar* value){ std::vector v; gchar const* beg = value; - while(isspace(*beg)) beg++; + while(isspace(*beg) || (*beg == ',')) beg++; while(*beg) { char *end; @@ -110,7 +111,7 @@ inline std::vector helperfns_read_vector(const gchar* value){ v.push_back(ret); beg = end; - while(isspace(*beg)) beg++; + while(isspace(*beg) || (*beg == ',')) beg++; } return v; } -- cgit v1.2.3