[v4,02/13] sim/erc32: Removed type mismatch compiler warnings

Message ID 1426626170-21401-3-git-send-email-jiri@gaisler.se
State Committed
Headers

Commit Message

Jiri Gaisler March 17, 2015, 9:02 p.m. UTC
  * func.c (exec_cmd) : silence compiler warnings when calling system().
	(batch) : replace fgets() with getline().
---
 sim/erc32/func.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)
  

Comments

Mike Frysinger March 17, 2015, 10:59 p.m. UTC | #1
On 17 Mar 2015 22:02, Jiri Gaisler wrote:
> 	* func.c (exec_cmd) : silence compiler warnings when calling system().
> 	(batch) : replace fgets() with getline().

rewrote this for you

> --- a/sim/erc32/func.c
> +++ b/sim/erc32/func.c
> @@ -80,20 +80,24 @@ batch(sregs, fname)
>      char           *fname;
>  {
>      FILE           *fp;
> -    char            lbuf[1024];
> +    char           *lbuf = NULL;
> +    size_t         len = 0;
> +    ssize_t        tmp;

i deleted this tmp for you as it's unused

otherwise, pushed, thanks!
-mike
  

Patch

diff --git a/sim/erc32/func.c b/sim/erc32/func.c
index 260ceff..e42b0ec 100644
--- a/sim/erc32/func.c
+++ b/sim/erc32/func.c
@@ -80,20 +80,24 @@  batch(sregs, fname)
     char           *fname;
 {
     FILE           *fp;
-    char            lbuf[1024];
+    char           *lbuf = NULL;
+    size_t         len = 0;
+    ssize_t        tmp;
+    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 +558,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);