From c5eddaf52ee5c90bda26e2419a8b1e3d1d24cb9e Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@uliege.be>
Date: Tue, 28 Jun 2022 15:58:17 +0200
Subject: [PATCH] handling empty continuation markers: cf. #1988

---
 src/geo/GModelIO_BDF.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/geo/GModelIO_BDF.cpp b/src/geo/GModelIO_BDF.cpp
index 187f6cd4ce..8fe82637fc 100644
--- a/src/geo/GModelIO_BDF.cpp
+++ b/src/geo/GModelIO_BDF.cpp
@@ -161,15 +161,15 @@ static int readElementBDF(FILE *fp, char *buffer, int keySize, int numVertices,
   readLineBDF(buffer, format, fields);
 
   if(((int)fields.size() - 2 < abs(numVertices)) ||
-     (numVertices < 0 && (fields.size() == 9))) {
-    if(fields.size() == 9) fields.pop_back();
+     (numVertices < 0 && (fields.size() == 8 || fields.size() == 9))) {
+    if(fields.size() == 9) fields.pop_back(); // drop continuation string
     if(!fgets(buffer2, sizeof(buffer2), fp)) return 0;
     readLineBDF(buffer2, format, fields);
   }
 
   if(((int)fields.size() - 2 < abs(numVertices)) ||
-     (numVertices < 0 && (fields.size() == 17))) {
-    if(fields.size() == 17) fields.pop_back();
+     (numVertices < 0 && (fields.size() == 15 || fields.size() == 17))) {
+    if(fields.size() == 17) fields.pop_back(); // drop continuation string
     if(!fgets(buffer3, sizeof(buffer3), fp)) return 0;
     readLineBDF(buffer3, format, fields);
   }
-- 
GitLab