diff --git a/log/src/log.c b/log/src/log.c index b24ac892df21f46d2001634f630fa8dc6b2ba119..a386198606c804f12578896e52b3d3ae0525b84b 100644 --- a/log/src/log.c +++ b/log/src/log.c @@ -490,11 +490,16 @@ void log_setmode(const char *s) void strwordx(char *buf, char *wrd) { size_t i; - char STR1[256]; - char STR2[256]; + char *STR1; + char *STR2; + STR1 = malloc(strlen(buf+1)); + STR2 = malloc(strlen(buf+1)); strcpy(STR1, strltrim(strrtrim(strcpy(STR2, buf)))); strcpy(buf, STR1); + free(STR1); + free(STR2); + if (*buf != '"') { strword(buf, wrd); diff --git a/log/src/utils.c b/log/src/utils.c index e7c6c196751d68b557bc20dcdbc61ceff3101fef..e3e288bef866bd91b80e21c016fdfd3f9809dd49 100644 --- a/log/src/utils.c +++ b/log/src/utils.c @@ -16,11 +16,16 @@ void working() void getword(char *buf, char *wrd) { - char STR1[256]; - char STR2[256]; + char *STR1; + char *STR2; + STR1 = malloc(strlen(buf+1)); + STR2 = malloc(strlen(buf+1)); strcpy(STR1, strltrim(strrtrim(strcpy(STR2, buf)))); strcpy(buf, STR1); + free(STR1); + free(STR2); + if (*buf == '"') strwordx(buf, wrd); else @@ -30,19 +35,6 @@ void getword(char *buf, char *wrd) } } -/* char *strcpy_overlap(char *dst, char *src) */ -/* { */ -/* size_t i = 0; */ - -/* do { */ -/* dst[i] = src[i]; */ -/* if (src[i++] == '\0') */ -/* break; */ -/* } while (1); */ -/* return dst; */ -/* } */ - - void stamp(long *i) { gg.curstamp++; @@ -103,7 +95,7 @@ void dounits(char *s, double *r) } -void readreal(char s_[], double *r) +void readreal(char *s_, double *r) { char s[256]; long i;