[Top][All Lists]

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

Re: Pager does work from a menu?

From: Robert Millan
Subject: Re: Pager does work from a menu?
Date: Wed, 13 Jun 2007 16:24:04 +0200
User-agent: Mutt/1.5.13 (2006-08-11)

On Tue, Jun 12, 2007 at 04:16:59PM +0200, adrian15 wrote:
> >
> >Can you ellaborate?  From the code you pasted, I just see that when
> >"interactive" is set to 0, this has the same effect as pager being set to
> >the "0" string.
> That's what I mean. I think that interactive for grub2 means being in 
> the grub2 shell (not in a menu). If you are in a menu (non interactive) 
> then there is no stop between pages.

Ah, yes.  Sounds like it.  Not sure if there was a reason for this, maybe
the ChangeLog shows something?

> But you know I am a bit lazy. I should at last try to do a grub.cfg and 
> test it on my test floppy and see if I am right or not.

Btw, do you know grub-emu?  It can probably help you with testing (rather
than grabbing to a floppy and reboot).

Ah, and there's also qemu (building a floppy image should be much easier now,
with grub-mkrescue).

> >
> >          grub_printf ("--MORE--");
> >          grub_setcolorstate (GRUB_TERM_COLOR_STANDARD);
> >
> >          key = grub_getkey ();
> >
> >What do you find wrong in this code?  AFAICS, the message is printed and 
> >then
> >we use grub_getkey to block untill a key is pressed.  Sounds like normal
> >pager-ish behaviour to me..
> The code is ok. What I do not find ok is that the screen pause happens 
> in a function which works it is to put a character on the screen.
> I do not quite understand why a function that only has to print a 
> character on the screen has also to deal with the screen by screen stop 
> problem.
> In my opinion this screen by screen stop problem should be solved in 
> another part of the source code but so far I do not know where.

You can move the code that handles screen stops somewhere else, but it's
still the code that prints something that has to trigger it, since screen
stops happen precisely when '\n' is printed.  What would basicaly change is
that instead of getkey() you call something else (e.g. pause()).

You can also move it to a lower layer (grub_cur_term->putchar), but then you
have to duplicate code (which is bad).

Robert Millan

My spam trap is address@hidden  Note: this address is only intended
for spam harvesters.  Writing to it will get you added to my black list.

reply via email to

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