Allow empty lines in hdb files
authorErik Lindahl <erik@kth.se>
Sun, 31 Dec 2017 13:20:10 +0000 (14:20 +0100)
committerErik Lindahl <erik.lindahl@gmail.com>
Tue, 2 Jan 2018 20:10:46 +0000 (21:10 +0100)
Skip lines that consist only of whitespace. Not a universal
solution for fixing hdb files, but better than the user
getting very strange error messages that don't say anything
about whitespace.

Fixes #2028.

Change-Id: I0962c89d0251f83da7fe0440efd31fb7ca468690

src/gromacs/gmxpreprocess/h_db.cpp

index 1c90db36ecd76e7bff17dc928d3463229581d628..6e1a81f32c7a8ec52b22903bcbfdf45388e7efa0 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2016,2017, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -49,6 +49,7 @@
 #include "gromacs/utility/fatalerror.h"
 #include "gromacs/utility/futil.h"
 #include "gromacs/utility/smalloc.h"
+#include "gromacs/utility/stringutil.h"
 
 /* Number of control atoms for each 'add' type.
  *
@@ -150,6 +151,11 @@ static void read_h_db_file(const char *hfn, int *nahptr, t_hackblock **ah)
     aah = *ah;
     while (fgets2(line, STRLEN-1, in))
     {
+        // Skip lines that are only whitespace
+        if (gmx::countWords(line) == 0)
+        {
+            continue;
+        }
         if (sscanf(line, "%s%n", buf, &n) != 1)
         {
             fprintf(stderr, "Error in hdb file: nah = %d\nline = '%s'\n",