cli: Fix off-by-one in the pager 76/12976/2
authorChris Luke <chrisy@flirble.org>
Sun, 10 Jun 2018 14:47:50 +0000 (10:47 -0400)
committerFlorin Coras <florin.coras@gmail.com>
Sun, 10 Jun 2018 16:32:32 +0000 (16:32 +0000)
- The last line in the pager buffer was sometimes missed when
  using space/pg-dn; simple off-by-one error.

Change-Id: Id4e5f7cf0e5db4f719f87b9069d75427bc66d3f7
Signed-off-by: Chris Luke <chrisy@flirble.org>
src/vlib/unix/cli.c

index 3df9a98..512a77a 100644 (file)
@@ -1832,7 +1832,7 @@ unix_cli_line_process_one (unix_cli_main_t * cm,
     case UNIX_CLI_PARSE_ACTION_PAGER_NEXT:
     case UNIX_CLI_PARSE_ACTION_PAGER_PGDN:
       /* show next page of the buffer */
-      if (cf->height + cf->pager_start < vec_len (cf->pager_index))
+      if (cf->height + cf->pager_start <= vec_len (cf->pager_index))
        {
          u8 *line = NULL;
          unix_cli_pager_index_t *pi = NULL;
@@ -1863,7 +1863,7 @@ unix_cli_line_process_one (unix_cli_main_t * cm,
     case UNIX_CLI_PARSE_ACTION_PAGER_DN:
     case UNIX_CLI_PARSE_ACTION_PAGER_CRLF:
       /* display the next line of the buffer */
-      if (cf->pager_start < vec_len (cf->pager_index) - (cf->height - 1))
+      if (cf->height + cf->pager_start <= vec_len (cf->pager_index))
        {
          u8 *line;
          unix_cli_pager_index_t *pi;