home · contact · privacy
Minor refactorings in config file parse code to clear up code.
[plomrogue] / src / common / err_try_fgets.c
index 9912f115859a43f78bac5b0e7e9bfb3682216afc..797a442ac1dc4945166a39587fe36c1142d61b61 100644 (file)
@@ -13,7 +13,7 @@
 /* Increments by one on each err_try_fgets() call, servers as a line counter. */
 static uint32_t err_try_fgets_counter = 0;
 
-/* Delimiter to use for err_try_fgets()' 'c' test. */
+/* Delimiter to use for err_try_fgets()' 'd' test. */
 char * err_try_fgets_delim = "";
 
 
@@ -49,8 +49,8 @@ extern void err_line(uint8_t test, char * line, char * intro, char * msg)
 
 
 
-extern void err_try_fgets(char * line, uint32_t linemax, FILE * file,
-                          char * context, char * test)
+extern char *  err_try_fgets(char * line, uint32_t linemax, FILE * file,
+                             char * context, char * test)
 {
     char * err_end   = "File ended unexpectedly.";
     char * err_empty = "Hit empty line where non-empty line was expected.";
@@ -61,7 +61,7 @@ extern void err_try_fgets(char * line, uint32_t linemax, FILE * file,
     char * err_uint8 = "Value is too large. Must be 255 or less.";
     char * f_name = "err_try_fgets()";
     line[0] = '\0';
-    try_fgets(line, linemax + 1, file, f_name);
+    char * fgets_return = try_fgets(line, linemax + 1, file, f_name);
     err_try_fgets_counter++;
     err_line(strchr(test, '0') && !(strlen(line)), line, context, err_end);
     err_line(strchr(test, 'n') && line[strlen(line) - 1] != '\n', line, context,
@@ -71,7 +71,7 @@ extern void err_try_fgets(char * line, uint32_t linemax, FILE * file,
     err_line(strchr(test, 's') && strlen(line) > 2, line, context, err_many);
     err_line(strchr(test, 'd') && strcmp(line, err_try_fgets_delim), line,
              context, err_delim);
-    if (strchr(test, 'i'))
+    if (strchr(test, 'i') || strchr(test, '8'))
     {
         err_line(!(strchr(test, 'f')) && strlen(line) < 2, line, context,
                  err_int);
@@ -87,4 +87,5 @@ extern void err_try_fgets(char * line, uint32_t linemax, FILE * file,
     }
     err_line(strchr(test, '8') && atoi(line) > UINT8_MAX, line, context,
              err_uint8);
+    return fgets_return;
 }