projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* debugger/mcs51/break.c, debugger/mcs51/cmd.c,
[fw/sdcc]
/
support
/
makebin
/
makebin.c
diff --git
a/support/makebin/makebin.c
b/support/makebin/makebin.c
index deb4e78febf8e8534d8c91066ff0cd7876343fb3..b6acaf4c872dde008a089962a2be76a78aa29499 100644
(file)
--- a/
support/makebin/makebin.c
+++ b/
support/makebin/makebin.c
@@
-1,8
+1,16
@@
/** @name makebin - turn a .ihx file into a binary image.
*/
/** @name makebin - turn a .ihx file into a binary image.
*/
+#include <assert.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
+#include <string.h>
+
+#if defined(__BORLANDC__) || defined(__MINGW32__) || defined(__CYGWIN__)
+ #include <fcntl.h>
+ #include <io.h>
+#endif
+
typedef unsigned char BYTE;
typedef unsigned char BYTE;
@@
-29,16
+37,27
@@
void usage(void)
"Usage: makebin [-p] [-s romsize] [-h]\n");
}
"Usage: makebin [-p] [-s romsize] [-h]\n");
}
+void fixStdout(void)
+{
+ #if defined(__BORLANDC__) || defined(__MINGW32__) || defined(__CYGWIN__)
+ setmode(fileno(stdout), O_BINARY);
+ #endif
+}
+
+
int main(int argc, char **argv)
{
int size = 32768, pack = 0, real_size = 0;
BYTE *rom;
int main(int argc, char **argv)
{
int size = 32768, pack = 0, real_size = 0;
BYTE *rom;
+ size_t res;
char line[256];
char *p;
argc--;
argv++;
char line[256];
char *p;
argc--;
argv++;
+ fixStdout();
+
while (argc--) {
if (**argv != '-') {
usage();
while (argc--) {
if (**argv != '-') {
usage();
@@
-95,10
+114,13
@@
int main(int argc, char **argv)
real_size = addr;
}
real_size = addr;
}
- if (pack)
- fwrite(rom, 1, real_size, stdout);
- else
- fwrite(rom, 1, size, stdout);
+ if (pack) {
+ res = fwrite(rom, 1, real_size, stdout);
+ assert(res == real_size);
+ } else {
+ res = fwrite(rom, 1, size, stdout);
+ assert(res == size);
+ }
return 0;
}
return 0;
}