#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
+#include <stdbool.h>
#if STDC_HEADERS
# include <string.h>
return result;
}
-void
+/*
+ * Return value:
+ * true: success
+ * false: failure
+ */
+int
LoadHexFile(const char *filename)
{
int i, j, RecLength, LoadOffset, RecType, Data, Checksum;
FILE *fp;
int status;
char line[HEXFILE_LINE_BUFFER_LEN];
+ int valid = false;
+
+ log_debug("LoadHexFile");
if (filename == NULL)
log_fail("No file specified");
log_debug("hex record: data");
} else if (RecType == 1) {
log_debug("hex record: End Of File");
+ valid = true;
goto close_file;
} else {
log_warn("hex record: Unsupported ($%02X)", RecType);
status = fclose(fp);
if (status != EXIT_SUCCESS)
log_fail("Error closing hex file");
+
+ if (valid == false) {
+ log_err("Error parsing hex file");
+ }
+
+ return valid;
}