X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmonitor.c;h=a921e8db21c210ad3c3197371e369aa1c3a5c5b0;hb=730611ebee687534d03ddfa6539b634a466e59fd;hp=9fe71f59bd13aeda83eebc6c52ed865456653fe1;hpb=c6c69d4a9a0f850296bf54a5770a672bafab56db;p=YACASL2.git diff --git a/src/monitor.c b/src/monitor.c index 9fe71f5..a921e8d 100644 --- a/src/monitor.c +++ b/src/monitor.c @@ -132,7 +132,7 @@ MONARGS *monargstok(const char *str) } sepp = r + strcspn(r, " "); sepc = *sepp; - *sepp = '\0'; + strcpy(sepp, ""); args->argv[++(args->argc)-1] = strdup_chk(q, "args.argv[]"); q = r = sepp + 1; } while(sepc == ' '); @@ -146,7 +146,7 @@ MONCMDLINE *monlinetok(const char *line) long l; MONCMDLINE *moncmdl = NULL; - if(*line == '\n' || *line == '\0') { + if(!line[0] || line[0] == '\n') { return NULL; } p = tokens = strdup_chk(line, "tokens"); @@ -349,19 +349,20 @@ void monitor() buf = malloc_chk(MONINSIZE + 1, "monitor.buf"); fgets(buf, MONINSIZE, stdin); if((p = strchr(buf, '\n')) != NULL) { - *p = '\0'; + p = '\0'; } if((moncmdl = monlinetok(buf)) != NULL) { cmdtype = monitorcmd(moncmdl->cmd, moncmdl->args); free_moncmdline(moncmdl); } - FREE(buf); - if(cmdtype == MONQUIT) { + if(!buf[0] || cmdtype == MONQUIT) { + FREE(buf); shutdown(); freebps(); free_cmdtable(HASH_CODE); freecerr(); exit(0); } + FREE(buf); } while(cmdtype == MONREPEAT); }