histedit: Don't include the current fc in out-of-range last

POSIX states:
  When a range of commands is used, it shall not be an error to specify
  first or last values that are not in the history list; fc shall
  substitute the value representing the oldest or newest command in the
  list, as appropriate. For example, if there are only ten commands in
  the history list, numbered 1 to 10:
    fc -l
    fc 1 99
  shall list and edit, respectively, all ten commands.

Which would seem to imply that the current fc shouldn't be included
(well, in the POSIX model, no non--l fc enters the history,
 so that reinforces that).

zsh, bash, mksh, yash all agree with this; oddly, ksh includes it.

Before:
  $ 1
  src/dash: 1: 1: not found
  $ 2
  src/dash: 2: 2: not found
  $ 3
  src/dash: 3: 3: not found
  $ 4
  src/dash: 4: 4: not found
  $ 5
  src/dash: 5: 5: not found
  $ 6
  src/dash: 6: 6: not found
  $ fc 1 999
  21
  ,p
  1
  2
  3
  4
  5
  6
  fc 1 999
After:
  $ fc 1 9999
  12
  ,p
  1
  2
  3
  4
  5
  6

Reported-by: Harald van Dijk <harald@gigawatt.nl>
Reported-in: https://marc.info/?l=dash&m=154707728009743&w=2
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
1 file changed