diff options
author | Fridrich Štrba <fridrich.strba@bluewin.ch> | 2020-02-05 10:22:08 +0100 |
---|---|---|
committer | Fridrich Štrba <fridrich.strba@bluewin.ch> | 2020-02-05 10:22:08 +0100 |
commit | 0e746ed7ac28c2c1f4d480f52b6b7792ef1ce867 (patch) | |
tree | 375e8f725d7bfcaa711f2dfb4782116a52898d30 | |
parent | 206178e5e978e4194cdfe42560aef3cd14088bcf (diff) |
Simplify the parseColourString function a bit
Change-Id: I000c8ad4dfdaa7cc250687d542284585e2a903ea
-rw-r--r-- | src/lib/CDRParser.cpp | 41 |
1 files changed, 14 insertions, 27 deletions
diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp index 1b2b4ab..51434d1 100644 --- a/src/lib/CDRParser.cpp +++ b/src/lib/CDRParser.cpp @@ -105,7 +105,7 @@ static void processNameForEncoding(librevenge::RVNGString &name, unsigned short static int parseColourString(const char *colourString, libcdr::CDRColor &colour, double &opacity) { using namespace boost::spirit::qi; - bool bRes = false; + bool bRes = true; boost::optional<unsigned> colourModel; std::vector<unsigned> val; @@ -140,34 +140,21 @@ static int parseColourString(const char *colourString, libcdr::CDRColor &colour, if (colourModel) colour.m_colorModel = get(colourModel); - switch (colour.m_colorModel) + if (val.size() >= 5) { - case 5: - if (val.size() >= 4) - { - colour.m_colorValue = val[0] | (val[1] << 8) | (val[2] << 16); - opacity = (double)val[3] / 100.0; - break; - } - else - { - CDR_DEBUG_MSG(("parseColourString error: not enough values read: %lu\n", val.size())); - return 0; - } - default: - if (val.size() >= 5) - { - colour.m_colorValue = val[0] | (val[1] << 8) | (val[2] << 16) | (val[3] << 24); - opacity = (double)val[4] / 100.0; - break; - } - else - { - CDR_DEBUG_MSG(("parseColourString error: not enough values read: %lu\n", val.size())); - return 0; - } + colour.m_colorValue = val[0] | (val[1] << 8) | (val[2] << 16) | (val[3] << 24); + opacity = (double)val[4] / 100.0; + return 1; } - return 1; + + if (val.size() >= 4) + { + colour.m_colorValue = val[0] | (val[1] << 8) | (val[2] << 16); + opacity = (double)val[3] / 100.0; + return 1; + } + + return 0; } void normalizeAngle(double &angle) |