go to single .html
[fw/sdcc] / packihx / packihx.c
index 08d028e162da3388ff0ded0e770d2bc5732d8f19..72ac34f22d27c11e6dde419e4534837ac76cf2d9 100644 (file)
@@ -1,7 +1,7 @@
 /*-----------------------------------------------------------------------
  * 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)
+
+typedef unsigned char Uint8 ;
+typedef unsigned Uint16 ;
+
+#else
+
 #include "config.h"
+#endif
 
 /* A cooked line of input. */
 typedef struct _Line
@@ -144,8 +152,10 @@ Line *readLine(FILE *inFile)
        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);