/*-----------------------------------------------------------------------
* packihx.c:
*
- * utility to pack an Inter HEX format file by removing redundant
+ * utility to pack an Intel HEX format file by removing redundant
* extended offset records and accumulating data records up to
* OUTPUT_CHUNK (currently 16) bytes.
*
#include <ctype.h>
#include <assert.h>
+#if defined(_MSC_VER) || defined(__BORLANDC__)
+
+typedef unsigned char Uint8 ;
+typedef unsigned Uint16 ;
+
+#else
+
#include "config.h"
+#endif
/* A cooked line of input. */
typedef struct _Line
return NULL;
}
bp += 2; /* Two digits consumed. */
-
- line->data = (Uint8 *)malloc(line->len);
+
+ /* Hack - always allocate something, even if len is zero.
+ * Avoids special case for len == 0. */
+ line->data = (Uint8 *)malloc(line->len ? line->len : 1);
if (!line->data)
{
free(line);
if (checksum != line->checksum)
{
fprintf(stderr, "packihx: invalid checksum %X (want %X) @ line %d\n",
- (unsigned)checksum, (unsigned)(line->checksum),
+ (unsigned)(line->checksum), (unsigned)checksum,
lineno);
return -1;
}