From 916dd5968d4a51cd595e8d8b36f8c621624ea68e Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Wed, 17 Apr 2002 10:17:48 +0000 Subject: 16703-B --- Src/builtin.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'Src/builtin.c') diff --git a/Src/builtin.c b/Src/builtin.c index b51f61e27..c2e087706 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -1293,18 +1293,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