From 9f749722c869cbdbab91d935fb626886058c12b0 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sat, 4 Jun 2016 17:21:05 +0200 Subject: Fix reading of 'stroke-dasharray' when there is a trailing blank. Also fixes reading a value when there is no digit before a decimal point. Fixed bugs: - https://launchpad.net/bugs/1485197 (bzr r14950) --- src/style-internal.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/style-internal.cpp') diff --git a/src/style-internal.cpp b/src/style-internal.cpp index b425a1c80..62b0de52d 100644 --- a/src/style-internal.cpp +++ b/src/style-internal.cpp @@ -1810,9 +1810,11 @@ SPIDashArray::read( gchar const *str ) { return; } + // std::vector tokens = Glib::Regex::split_simple("[,\\s]+", str ); + gchar *e = NULL; bool LineSolid = true; - while (e != str) { + while (e != str && *str != '\0') { /* TODO: Should allow rather than just a unitless (px) number. */ double number = g_ascii_strtod(str, (char **) &e); values.push_back( number ); @@ -1821,7 +1823,7 @@ SPIDashArray::read( gchar const *str ) { if (e != str) { str = e; } - while (str && *str && !isalnum(*str)) str += 1; + while (str && *str && !(isalnum(*str) || *str=='.')) str += 1; } if (LineSolid) { -- cgit v1.2.3