From 8fc5ffa60ace49934ef3f2ab32e4d9d28a02639e Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Fri, 22 Feb 2002 21:59:43 +0000 Subject: Improved the output of the "history" command with a 1-line history buffer, and also improved the error handling of explicitly-specified first/last values. --- Src/builtin.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/Src/builtin.c b/Src/builtin.c index 2165b1864..564edfb46 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -1308,18 +1308,23 @@ bin_fc(char *nam, char **argv, char *ops, int func) return 1; } /* default values of first and last, and range checking */ + if (last == -1) { + if (ops['l'] && first < curhist) { + last = addhistnum(curline.histnum,-1,0); + if (last < firsthist()) + last = firsthist(); + } + else + last = first; + } if (first == -1) { first = ops['l']? addhistnum(curline.histnum,-16,0) - : addhistnum(curline.histnum,-1,0); - } - if (last == -1) - last = ops['l']? addhistnum(curline.histnum,-1,0) : first; - if (first < firsthist()) - first = firsthist() - (last < firsthist()); - if (last > curhist) - last = curhist; - else if (last < first) - last = first; + : addhistnum(curline.histnum,-1,0); + if (first < 1) + first = 1; + if (last < first) + last = first; + } if (ops['l']) { /* list the required part of the history */ retval = fclist(stdout, !ops['n'], ops['r'], ops['D'], -- cgit 1.4.1