From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.33) id 1CGF7v-0001lF-MY for mharc-grub-devel@gnu.org; Sat, 09 Oct 2004 07:11:03 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CGF7u-0001i9-0T for grub-devel@gnu.org; Sat, 09 Oct 2004 07:11:02 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CGF7t-0001hY-GI for grub-devel@gnu.org; Sat, 09 Oct 2004 07:11:01 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CGF7t-0001hO-BK for grub-devel@gnu.org; Sat, 09 Oct 2004 07:11:01 -0400 Received: from [194.106.33.237] (helo=outmail.freedom2surf.net) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.34) id 1CGF0v-00034U-G5 for grub-devel@gnu.org; Sat, 09 Oct 2004 07:03:51 -0400 Received: from bfg.majoroak.f2s.com (i-195-137-1-136.freedom2surf.net [195.137.1.136]) by outmail.freedom2surf.net (8.12.10/8.12.10) with ESMTP id i99B3enG021449 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) for ; Sat, 9 Oct 2004 12:03:46 +0100 From: Timothy Baldwin To: The development of GRUB 2 User-Agent: KMail/1.7 References: <200410060329.44046.tim.lists@majoroak.f2s.com> <87brff97lv.fsf@marco.marco-g.com> <200410071122.21554.okuji@enbug.org> In-Reply-To: <200410071122.21554.okuji@enbug.org> MIME-Version: 1.0 Date: Sat, 9 Oct 2004 12:03:31 +0100 Content-Type: multipart/signed; boundary="nextPart8380446.Jl8VUZ2SXW"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200410091203.39901.tim.lists@majoroak.f2s.com> Subject: Re: [patch] Widening terminal coordinates, and reading terminal size. X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Oct 2004 11:11:02 -0000 --nextPart8380446.Jl8VUZ2SXW Content-Type: multipart/mixed; boundary="Boundary-01=_EW8ZBOxkciT49FS" Content-Transfer-Encoding: 7bit Content-Disposition: inline --Boundary-01=_EW8ZBOxkciT49FS Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Thursday 07 Oct 2004 10:22, Yoshinori K. Okuji wrote: > I don't like getdimensions, since dimensions can be read as the number > of axes. I vote for grub_getgeometry. Since GRUB does not have a window > system, I don't think it is ambiguous. I've changed it to grub_getgeometry. A new patch is attached, and here is t= he=20 changelog: 2004-10-03 Timothy Baldwin * include/grub/term.h=20 (grub_getsizexy): New prototype. (grub_gotoxy): Arguments changed to unsigned. (grub_getxy): Returns via pointers to unsigned, instead of packed into a 16-bit value, all callers updated. (struct grub_term): Likewise for `grub_getxy'. Added a new member `grub_getsizexy', arguments to `grub_gotoxy' changed to unsigned, `grub_getxy'. * kern/term.c (grub_getsizexy): New function. (grub_getxy): Changed arguments as above. * kern/i386/pc/startup.S (grub_console_getsizexy): New function. (grub_console_getxy): Changed arguments as above. * include/grub/i386/pc/console.h (grub_console_getsizexy): New prototype (grub_console_getxy): Changed arguments as above. * term/i386/pc/console.c (grub_console_term): Added grub_console_getsizexy. * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_getsizexy): New functi= on. (grub_ofconsole_getxy): Changed arguments as above. (grub_ofconsole_term): Added grub_ofconsole_getsizexy. =20 * util/console.c (grub_ncurses_getsizexy): New function. (grub_ncurses_getxy): Changed arguments as above. (grub_ncurses_term): Added grub_ncurses_getsizexy. * term/i386/pc/console.c (grub_vga_getsizexy): New function. (grub_vga_getxy): Changed arguments as above. (grub_vga_term): Added grub_ncurses_getsizexy. =20 PS. I haven't signed any copyright forms.=20 =2D-=20 Member AFFS, WYLUG, SWP (UK), ANL, RESPECT, Leeds SA, Leeds Anti-war coalit= ion No to software patents! No to DRM/EUCD - hands off our computers! --Boundary-01=_EW8ZBOxkciT49FS Content-Type: text/x-diff; charset="iso-8859-1"; name="term.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="term.diff" Index: include/grub/term.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/grub/grub2/include/grub/term.h,v retrieving revision 1.6 diff -u -r1.6 term.h =2D-- include/grub/term.h 4 Apr 2004 13:46:00 -0000 1.6 +++ include/grub/term.h 8 Oct 2004 18:07:42 -0000 @@ -75,11 +75,14 @@ /* Get a character. */ int (*getkey) (void); =20 =2D /* Get the cursor position. The return value is ((X << 8) | Y). */ =2D grub_uint16_t (*getxy) (void); + /* Get the window size. */ + void (*getgeometry) (int *x, int *y); + =20 + /* Get the cursor position. */ + void (*getxy) (int *x, int *y); =20 /* Go to the position (X, Y). */ =2D void (*gotoxy) (grub_uint8_t x, grub_uint8_t y); + void (*gotoxy) (int x, int y); =20 /* Clear the screen. */ void (*cls) (void); @@ -116,8 +119,9 @@ void EXPORT_FUNC(grub_putcode) (grub_uint32_t code); int EXPORT_FUNC(grub_getkey) (void); int EXPORT_FUNC(grub_checkkey) (void); =2Dgrub_uint16_t EXPORT_FUNC(grub_getxy) (void); =2Dvoid EXPORT_FUNC(grub_gotoxy) (grub_uint8_t x, grub_uint8_t y); +void EXPORT_FUNC(grub_getgeometry) (int *x, int *y); +void EXPORT_FUNC(grub_getxy) (int *x, int *y); +void EXPORT_FUNC(grub_gotoxy) (int x, int y); void EXPORT_FUNC(grub_cls) (void); void EXPORT_FUNC(grub_setcolorstate) (grub_term_color_state state); void EXPORT_FUNC(grub_setcolor) (grub_uint8_t normal_color, Index: include/grub/i386/pc/console.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/grub/grub2/include/grub/i386/pc/console.h,v retrieving revision 1.4 diff -u -r1.4 console.h =2D-- include/grub/i386/pc/console.h 4 Apr 2004 13:46:01 -0000 1.4 +++ include/grub/i386/pc/console.h 8 Oct 2004 18:07:42 -0000 @@ -43,8 +43,9 @@ void grub_console_real_putchar (int c); int EXPORT_FUNC(grub_console_checkkey) (void); int EXPORT_FUNC(grub_console_getkey) (void); =2Dgrub_uint16_t grub_console_getxy (void); =2Dvoid grub_console_gotoxy (grub_uint8_t x, grub_uint8_t y); +void grub_console_getgeometry (int *x, int *y); +void grub_console_getxy (int *x, int *y); +void grub_console_gotoxy (int x, int y); void grub_console_cls (void); void grub_console_setcursor (int on); =20 Index: kern/term.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/grub/grub2/kern/term.c,v retrieving revision 1.7 diff -u -r1.7 term.c =2D-- kern/term.c 4 Apr 2004 13:46:02 -0000 1.7 +++ kern/term.c 8 Oct 2004 18:07:42 -0000 @@ -92,9 +92,10 @@ { if (code =3D=3D '\t' && grub_cur_term->getxy) { =2D int n; + int n, dummy; =20 =2D n =3D 8 - ((grub_getxy () >> 8) & 7); + grub_getxy(&n, &dummy); + n =3D 8 - (n & 7); while (n--) grub_putcode (' '); =20 @@ -112,7 +113,8 @@ if (grub_more && grub_more_lines =3D=3D 24 - 1) { char key; =2D int pos =3D grub_getxy (); + int x, y; + grub_getxy (&x, &y); =20 /* Show --MORE-- on the lower left side of the screen. */ grub_gotoxy (1, 24 - 1); @@ -125,7 +127,7 @@ /* Remove the message. */ grub_gotoxy (1, 24 -1); grub_printf (" "); =2D grub_gotoxy (pos >> 8, pos & 0xFF); + grub_gotoxy (x, y); =20 /* Scroll one lines or an entire page, depending on the key. */ if (key =3D=3D '\r' || key =3D=3D'\n') @@ -212,14 +214,20 @@ return (grub_cur_term->checkkey) (); } =20 =2Dgrub_uint16_t =2Dgrub_getxy (void) +void +grub_getgeometry (int *x, int *y) +{ + (grub_cur_term->getgeometry) (x, y); +} + +void +grub_getxy (int *x, int *y) { =2D return (grub_cur_term->getxy) (); + (grub_cur_term->getxy) (x, y); } =20 void =2Dgrub_gotoxy (grub_uint8_t x, grub_uint8_t y) +grub_gotoxy (int x, int y) { (grub_cur_term->gotoxy) (x, y); } Index: kern/i386/pc/startup.S =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/grub/grub2/kern/i386/pc/startup.S,v retrieving revision 1.13 diff -u -r1.13 startup.S =2D-- kern/i386/pc/startup.S 4 Apr 2004 13:46:02 -0000 1.13 +++ kern/i386/pc/startup.S 8 Oct 2004 18:07:42 -0000 @@ -1310,7 +1310,41 @@ =20 =09 /* =2D * grub_uint16_t grub_console_getxy (void) + * grub_console_getgeometry (int *x, int *y) + * BIOS call "INT 10H Function 0Fh" to get video parameters + * Call with %ah =3D 0x0F + * Returns %al =3D video mode + * %ah =3D number of columns + * %bh =3D active page + */ + + +FUNCTION(grub_console_getgeometry) + pushl %ebp + pushl %edx + pushl %eax + + call prot_to_real + .code16 + + movb $0xF, %ah + int $0x10 /* get video parameters */ + + DATA32 call real_to_prot + .code32 + + popl %eax + movzbl %ah, %ecx + movl %ecx, (%eax) + popl %eax + movl $25, (%eax) /* FIXME: Don't assume width */ +=09 +1: popl %ebp + ret + + +/* + * grub_uint16_t grub_console_getxy (int *x, int *y) * BIOS call "INT 10H Function 03h" to get cursor position * Call with %ah =3D 0x03 * %bh =3D page @@ -1324,6 +1358,8 @@ FUNCTION(grub_console_getxy) pushl %ebp pushl %ebx /* save EBX */ + pushl %edx + pushl %eax =20 call prot_to_real .code16 @@ -1335,16 +1371,21 @@ DATA32 call real_to_prot .code32 =20 =2D movb %dl, %ah =2D movb %dh, %al + popl %eax + movzbl %dl, %ecx + movl %ecx, (%eax) =20 + popl %eax + movzbl %dh, %ecx + movl %ecx, (%eax) +=09 popl %ebx popl %ebp ret =20 =20 /* =2D * void grub_console_gotoxy(grub_uint8_t x, grub_uint8_t y) + * void grub_console_gotoxy (int x, int y) * BIOS call "INT 10H Function 02h" to set cursor position * Call with %ah =3D 0x02 * %bh =3D page Index: normal/cmdline.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/grub/grub2/normal/cmdline.c,v retrieving revision 1.8 diff -u -r1.8 cmdline.c =2D-- normal/cmdline.c 27 Jun 2004 11:03:24 -0000 1.8 +++ normal/cmdline.c 8 Oct 2004 18:07:42 -0000 @@ -465,7 +465,7 @@ grub_cmdline_get (const char *prompt, char cmdline[], unsigned max_len, int echo_char, int readline) { =2D unsigned xpos, ypos, ystart; + unsigned xpos, ypos, ystart, dummy; grub_size_t lpos, llen; grub_size_t plen; char buf[max_len]; @@ -491,10 +491,12 @@ { if (xpos++ > 78) { + int xtemp, ytemp; grub_putchar ('\n'); =20 xpos =3D 1; =2D if (ypos =3D=3D (unsigned) (grub_getxy () & 0xFF)) + grub_getxy(&xtemp, &ytemp); + if (ypos =3D=3D ytemp) ystart--; else ypos++; @@ -546,13 +548,15 @@ lpos =3D llen =3D 0; buf[0] =3D '\0'; =20 =2D if ((grub_getxy () >> 8) !=3D 0) + grub_getxy (&xpos, &dummy); + if (xpos !=3D 0) grub_putchar ('\n'); =20 grub_printf (prompt); =20 xpos =3D plen; =2D ystart =3D ypos =3D (grub_getxy () & 0xFF); + grub_getxy (&dummy, &ypos); + ystart =3D ypos; =20 cl_insert (cmdline); =20 @@ -610,7 +614,8 @@ /* Restore the prompt. */ grub_printf ("\n%s%s", prompt, buf); xpos =3D plen; =2D ystart =3D ypos =3D (grub_getxy () & 0xFF); + grub_getxy (&dummy, &ypos); + ystart =3D ypos; } =20 if (insert) Index: normal/menu.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/grub/grub2/normal/menu.c,v retrieving revision 1.8 diff -u -r1.8 menu.c =2D-- normal/menu.c 18 Sep 2004 13:42:05 -0000 1.8 +++ normal/menu.c 8 Oct 2004 18:07:42 -0000 @@ -37,9 +37,8 @@ #define DISP_LL 0x2517 #define DISP_LR 0x251B =20 =2D/* FIXME: These should be dynamically obtained from a terminal. */ =2D#define TERM_WIDTH (80 - 1) =2D#define TERM_HEIGHT 25 +static int TERM_WIDTH =3D (80 - 1); +static int TERM_HEIGHT =3D 25; =20 /* The number of lines of "GRUB version..." at the top. */ #define TERM_INFO_HEIGHT 1 @@ -228,6 +227,7 @@ init_page (int nested, int edit) { grub_normal_init_page (); + grub_getgeometry(&TERM_WIDTH, &TERM_HEIGHT); draw_border (); print_message (nested, edit); } Index: term/i386/pc/console.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/grub/grub2/term/i386/pc/console.c,v retrieving revision 1.4 diff -u -r1.4 console.c =2D-- term/i386/pc/console.c 4 Apr 2004 13:46:03 -0000 1.4 +++ term/i386/pc/console.c 8 Oct 2004 18:07:42 -0000 @@ -107,6 +107,7 @@ .putchar =3D grub_console_putchar, .checkkey =3D grub_console_checkkey, .getkey =3D grub_console_getkey, + .getgeometry =3D grub_console_getgeometry, .getxy =3D grub_console_getxy, .gotoxy =3D grub_console_gotoxy, .cls =3D grub_console_cls, Index: term/i386/pc/vga.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/grub/grub2/term/i386/pc/vga.c,v retrieving revision 1.5 diff -u -r1.5 vga.c =2D-- term/i386/pc/vga.c 4 Apr 2004 13:46:03 -0000 1.5 +++ term/i386/pc/vga.c 8 Oct 2004 18:07:42 -0000 @@ -396,25 +396,34 @@ #if DEBUG_VGA if (show) { =2D grub_uint16_t pos =3D grub_getxy (); + int xpos, ypos; + grub_getxy (&xpos, &ypos); =20 show =3D 0; grub_gotoxy (0, 0); =2D grub_printf ("[%u:%u]", (unsigned) (pos >> 8), (unsigned) (pos & 0= xff)); =2D grub_gotoxy (pos >> 8, pos & 0xff); + grub_printf ("[%u:%u]", (unsigned) xpos, (unsigned) ypos); + grub_gotoxy (xpos, ypos); show =3D 1; } #endif } =20 =2Dstatic grub_uint16_t =2Dgrub_vga_getxy (void) +static void +grub_vga_getgeometry (int *x, int *y) +{ + *x =3D TEXT_WIDTH; + *y =3D TEXT_HEIGHT; +} + +static void +grub_vga_getxy (int *x, int *y) { =2D return ((xpos << 8) | ypos); + *x =3D xpos; + *y =3D ypos; } =20 static void =2Dgrub_vga_gotoxy (grub_uint8_t x, grub_uint8_t y) +grub_vga_gotoxy (int x, int y) { if (x >=3D TEXT_WIDTH || y >=3D TEXT_HEIGHT) { @@ -500,6 +509,7 @@ .putchar =3D grub_vga_putchar, .checkkey =3D grub_console_checkkey, .getkey =3D grub_console_getkey, + .getgeometry =3D grub_vga_getgeometry, .getxy =3D grub_vga_getxy, .gotoxy =3D grub_vga_gotoxy, .cls =3D grub_vga_cls, Index: term/powerpc/ieee1275/ofconsole.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/grub/grub2/term/powerpc/ieee1275/ofconsole.c,v retrieving revision 1.3 diff -u -r1.3 ofconsole.c =2D-- term/powerpc/ieee1275/ofconsole.c 14 Sep 2004 21:21:12 -0000 1.3 +++ term/powerpc/ieee1275/ofconsole.c 8 Oct 2004 18:07:42 -0000 @@ -201,14 +201,22 @@ return key; } =20 =2Dstatic grub_uint16_t =2Dgrub_ofconsole_getxy (void) +static void +grub_ofconsole_getgeometry (int *x, int *y) +{ + *x =3D 80; + *y =3D 25; +} + +static void +grub_ofconsole_getxy (int *x, int *y) { =2D return ((grub_curr_x - 1) << 8) | grub_curr_y; + *x =3D grub_curr_x - 1; + *y =3D grub_curr_y; } =20 static void =2Dgrub_ofconsole_gotoxy (grub_uint8_t x, grub_uint8_t y) +grub_ofconsole_gotoxy (int x, int y) { char s[11]; /* 5 + 3 + 3. */ grub_curr_x =3D x; @@ -289,6 +297,7 @@ .putchar =3D grub_ofconsole_putchar, .checkkey =3D grub_ofconsole_checkkey, .getkey =3D grub_ofconsole_getkey, + .getgeometry =3D grub_ofconsole_getgeometry, .getxy =3D grub_ofconsole_getxy, .gotoxy =3D grub_ofconsole_gotoxy, .cls =3D grub_ofconsole_cls, Index: util/console.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/grub/grub2/util/console.c,v retrieving revision 1.5 diff -u -r1.5 console.c =2D-- util/console.c 4 Apr 2004 13:46:03 -0000 1.5 +++ util/console.c 8 Oct 2004 18:07:42 -0000 @@ -121,19 +121,20 @@ return c; } =20 =2Dstatic grub_uint16_t =2Dgrub_ncurses_getxy (void) +static void +grub_ncurses_getgeometry (int *x, int *y) { =2D int x; =2D int y; =2D =2D getyx (stdscr, y, x); + getmaxyx (stdscr, *y, *x); +} =20 =2D return (x << 8) | y; +static void +grub_ncurses_getxy (int *x, int *y) +{ + getyx (stdscr, *y, *x); } =20 static void =2Dgrub_ncurses_gotoxy (grub_uint8_t x, grub_uint8_t y) +grub_ncurses_gotoxy (int x, int y) { move (y, x); } @@ -189,6 +190,7 @@ .putchar =3D grub_ncurses_putchar, .checkkey =3D grub_ncurses_checkkey, .getkey =3D grub_ncurses_getkey, + .getgeometry =3D grub_ncurses_getgeometry, .getxy =3D grub_ncurses_getxy, .gotoxy =3D grub_ncurses_gotoxy, .cls =3D grub_ncurses_cls, --Boundary-01=_EW8ZBOxkciT49FS-- --nextPart8380446.Jl8VUZ2SXW Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) iD8DBQBBZ8WLjXSPyZ9/z+QRAjJoAJ97A52kYWCFNJqsy/laU2mX8FK5+wCfRcNW hTGbIElkeztAW9uomHLiG6E= =6Sr9 -----END PGP SIGNATURE----- --nextPart8380446.Jl8VUZ2SXW--