From b9f9ea2f5dd6112e56b69f1cd9271c10b3b14ed8 Mon Sep 17 00:00:00 2001 From: Jiri Gaisler Date: Tue, 17 Mar 2015 22:02:39 +0100 Subject: [PATCH] sim/erc32: Removed type mismatch compiler warnings --- sim/erc32/ChangeLog | 5 +++++ sim/erc32/func.c | 23 ++++++++++++++--------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/sim/erc32/ChangeLog b/sim/erc32/ChangeLog index 253b450c89c..3c4daa3c239 100644 --- a/sim/erc32/ChangeLog +++ b/sim/erc32/ChangeLog @@ -1,3 +1,8 @@ +2015-03-17 Jiri Gaisler + + * func.c (exec_cmd): Silence compiler warnings when calling system(). + (batch): Replace fgets() with getline(). + 2015-03-17 Jiri Gaisler * func.c (show_stat): Print simulation time in portable long long diff --git a/sim/erc32/func.c b/sim/erc32/func.c index 260ceff0f69..265d42f5f16 100644 --- a/sim/erc32/func.c +++ b/sim/erc32/func.c @@ -80,20 +80,23 @@ batch(sregs, fname) char *fname; { FILE *fp; - char lbuf[1024]; + char *lbuf = NULL; + size_t len = 0; + size_t slen; if ((fp = fopen(fname, "r")) == NULL) { fprintf(stderr, "couldn't open batch file %s\n", fname); return (0); } - while (!feof(fp)) { - lbuf[0] = 0; - fgets(lbuf, 1023, fp); - if ((strlen(lbuf) > 0) && (lbuf[strlen(lbuf) - 1] == '\n')) - lbuf[strlen(lbuf) - 1] = 0; - printf("sis> %s\n", lbuf); - exec_cmd(sregs, lbuf); + while (getline(&lbuf, &len, fp) > -1) { + slen = strlen(lbuf); + if (slen && (lbuf[slen - 1] == '\n')) { + lbuf[slen - 1] = 0; + printf("sis> %s\n", lbuf); + exec_cmd(sregs, lbuf); + } } + free(lbuf); fclose(fp); return (1); } @@ -554,7 +557,9 @@ exec_cmd(sregs, cmd) sim_halt(); } else if (strncmp(cmd1, "shell", clen) == 0) { if ((cmd1 = strtok(NULL, " \t\n\r")) != NULL) { - system(&cmdsave[clen]); + if (system(&cmdsave[clen])) { + /* Silence unused return value warning. */ + } } } else if (strncmp(cmd1, "step", clen) == 0) { stat = run_sim(sregs, 1, 1); -- 2.30.2