From c9955d39a618995f2a8fb2ba9c8d05d067b605a1 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 2 Mar 2020 00:09:41 +0100 Subject: [PATCH] Fixed issue-517 --- .../lefdef/db_plugin/dbLEFDEFImporter.cc | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFImporter.cc b/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFImporter.cc index 55a4e7ecc..856ab51fe 100644 --- a/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFImporter.cc +++ b/src/plugins/streamers/lefdef/db_plugin/dbLEFDEFImporter.cc @@ -661,33 +661,41 @@ LEFDEFImporter::create_generated_via (std::vector &bottom, for (int r = 0; r < rows; ++r) { - if (rp == 0 && *p) { + if (rp == 0) { - // read a new row specification - rp = 0; - while (*p && is_hex_digit (*p)) { - rp = (rp * 16) + hex_value (*p++); - } - if (*p == '_') { - ++p; - } - - p0 = p; if (*p) { - while (*p && (is_hex_digit (*p) || toupper (*p) == 'R')) { + + // read a new row specification + rp = 0; + while (*p && is_hex_digit (*p)) { + rp = (rp * 16) + hex_value (*p++); + } + if (*p == '_') { ++p; } - } - p1 = p; - if (*p == '_') { - ++p; + + p0 = p; + if (*p) { + while (*p && (is_hex_digit (*p) || toupper (*p) == 'R')) { + ++p; + } + } + p1 = p; + if (*p == '_') { + ++p; + } + + } else { + rp = -1; } } - if (rp > 0) { + if (rp != 0) { - --rp; + if (rp > 0) { + --rp; + } const char *pp = p0; unsigned int d = 0;