grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Pager weirdness


From: Seth Goldberg
Subject: Re: Pager weirdness
Date: Tue, 23 Nov 2010 07:31:01 -0800

+100000 :).

On Nov 23, 2010, at 5:30 AM, Colin Watson <address@hidden> wrote:

> Am I the only one who finds GRUB's pager really strange?
> 
> I'm used to pagers behaving roughly like 'more' (actually 'less' but
> never mind that).  At the end of a page, you can press Space and you'll
> get another page of text, or you can press Return and you'll get another
> line of text.  I think most people with experience on Unix-like systems
> are familiar with this kind of thing.
> 
> GRUB's pager is pretty much backwards from this.  If you press Return,
> you get another page of text.  If you press Space, the comment in
> grub-core/normal/term.c says that you should get another "one lines"
> (sic) of text, but in fact you get two more lines.
> 
> How about something like this?  This seems to behave a lot more
> naturally for me.  Am I missing some subtle detail?
> 
> 2010-11-23  Colin Watson  <address@hidden>
> 
>    * grub-core/normal/term.c (print_more): Make \r or \n scroll one
>    line, and other keys scroll an entire page (previous handling was
>    for \r and \n to scroll a page and other keys to scroll two lines).
> 
> === modified file 'grub-core/normal/term.c'
> --- grub-core/normal/term.c    2010-09-30 19:04:09 +0000
> +++ grub-core/normal/term.c    2010-11-23 13:24:33 +0000
> @@ -91,16 +91,16 @@ print_more (void)
>   grub_term_restore_pos (pos);
>   grub_free (pos);
> 
> -  /* Scroll one lines or an entire page, depending on the key.  */
> +  /* Scroll one line or an entire page, depending on the key.  */
> 
>   if (key == '\r' || key =='\n')
> -    grub_normal_reset_more ();
> -  else
>     {
>       static struct term_state *state;
>       for (state = term_states; state; state = state->next)
> -    state->num_lines -= 2;
> +    state->num_lines--;
>     }
> +  else
> +    grub_normal_reset_more ();
> }
> 
> void
> 
> Thanks,
> 
> -- 
> Colin Watson                                       address@hidden
> 
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/grub-devel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]