diff --git a/ChangeLog b/ChangeLog index e997b8547..11ca1e180 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-07-17 Robert Larice + * src/frontend/plotting/plotit.c : + cleanup, `getlims()' has to be used with number arg >= 1 + and get rid of an ancient hack + 2011-07-17 Robert Larice * src/frontend/arg.c , * src/frontend/com_hardcopy.c : diff --git a/src/frontend/plotting/plotit.c b/src/frontend/plotting/plotit.c index c6286091c..d426bbd3b 100644 --- a/src/frontend/plotting/plotit.c +++ b/src/frontend/plotting/plotit.c @@ -35,6 +35,9 @@ getlims(wordlist *wl, char *name, int number) char *ss; int n; + if(number < 1) + return NULL; + for (beg = wl; beg; beg = beg->wl_next) { if (eq(beg->wl_word, name)) { if (beg == wl) { @@ -44,25 +47,21 @@ getlims(wordlist *wl, char *name, int number) return (NULL); } wk = beg; - if (number) { - d = TMALLOC(double, number); - for (n = 0; n < number; n++) { - wk = wk->wl_next; - if (!wk) { - fprintf(cp_err, + d = TMALLOC(double, number); + for (n = 0; n < number; n++) { + wk = wk->wl_next; + if (!wk) { + fprintf(cp_err, "Syntax error: not enough parameters for \"%s\".\n", name); - return (NULL); - } - ss = wk->wl_word; - td = ft_numparse(&ss, FALSE); - if (td == NULL) - goto bad; - d[n] = *td; + return (NULL); } - } else - /* Minor hack... */ - d = (double *) 1; + ss = wk->wl_word; + td = ft_numparse(&ss, FALSE); + if (td == NULL) + goto bad; + d[n] = *td; + } if (beg->wl_prev) beg->wl_prev->wl_next = wk->wl_next;