[Top][All Lists]

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

Re: Pager does work from a menu?

From: adrian15
Subject: Re: Pager does work from a menu?
Date: Tue, 12 Jun 2007 16:16:59 +0200
User-agent: Thunderbird (X11/20061107)

Robert Millan escribió:
On Tue, Jun 12, 2007 at 01:57:42PM +0200, adrian15 wrote:
This code from: normal/command.c

  /* Enable the pager if the environment pager is set to 1.  */
  if (interactive)
    pager = grub_env_get ("pager");
    pager = 0;
  if (pager && (! grub_strcmp (pager, "1")))
    grub_set_more (1);

Can anyone confirm my suspictions that even the pager variable set to 1
there is NO stop on the screen when running a grub option that has the
cat command inside it with a big file?

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.

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.

I am suspecting because in grub legacy there was the same stupid
behaviour which I fixed of course.

I also do not like the way that pager is run. I mean, putting a getkey
inside the

grub_putcode (grub_uint32_t code)

function from: kern/term.c

it seems to me a bit childish although I do not know so far a better

Please try to tear down that language!  "stupid" and "childish" are in general
not very appropiate words for a development list.
Written down. Sorry, I'll try to use more formal synonims next time.

I suppose you're referring to:

          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.


reply via email to

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