From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.33) id 1Cg9Ej-0002HI-L6 for mharc-grub-devel@gnu.org; Sun, 19 Dec 2004 17:09:09 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1Cg9EZ-0002Bi-7l for grub-devel@gnu.org; Sun, 19 Dec 2004 17:08:59 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1Cg9EY-0002BE-D0 for grub-devel@gnu.org; Sun, 19 Dec 2004 17:08:58 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1Cg9EY-0002Ab-4g for grub-devel@gnu.org; Sun, 19 Dec 2004 17:08:58 -0500 Received: from [217.12.11.35] (helo=smtp004.mail.ukl.yahoo.com) by monty-python.gnu.org with smtp (Exim 4.34) id 1Cg93p-0007kj-BB for grub-devel@gnu.org; Sun, 19 Dec 2004 16:57:54 -0500 Received: from unknown (HELO ?192.168.0.2?) (subdino2004@83.194.35.37 with plain) by smtp004.mail.ukl.yahoo.com with SMTP; 19 Dec 2004 21:57:51 -0000 Message-ID: <41C5F963.8010908@yahoo.fr> Date: Sun, 19 Dec 2004 22:57:55 +0100 From: Vincent Pelletier User-Agent: Mozilla Thunderbird 0.9 (X11/20041124) X-Accept-Language: fr, en MIME-Version: 1.0 To: The development of GRUB 2 References: <41BEC01B.9020709@yahoo.fr> <200412191622.00337.okuji@enbug.org> <41C5F65C.4080809@yahoo.fr> In-Reply-To: <41C5F65C.4080809@yahoo.fr> X-Enigmail-Version: 0.89.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: multipart/mixed; boundary="------------090202000905070608080000" Subject: Re: [PATCH] Re: [BUG] grub2 menu : freeze while initial drawing 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: Sun, 19 Dec 2004 22:08:59 -0000 This is a multi-part message in MIME format. --------------090202000905070608080000 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Here is the patch. :$ Vincent Pelletier --------------090202000905070608080000 Content-Type: text/plain; name="menu.c.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="menu.c.diff" Index: menu.c =================================================================== RCS file: /cvsroot/grub/grub2/normal/menu.c,v retrieving revision 1.8 diff -u -p -r1.8 menu.c --- menu.c 18 Sep 2004 13:42:05 -0000 1.8 +++ menu.c 19 Dec 2004 21:27:40 -0000 @@ -51,7 +51,7 @@ #define TERM_SCROLL_WIDTH 1 /* The Y position of the top border. */ -#define TERM_TOP_BORDER_Y (TERM_MARGIN + TERM_HEIGHT + TERM_MARGIN) +#define TERM_TOP_BORDER_Y (TERM_MARGIN + TERM_INFO_HEIGHT + TERM_MARGIN) /* The X position of the left border. */ #define TERM_LEFT_BORDER_X TERM_MARGIN @@ -94,31 +94,28 @@ draw_border (void) grub_gotoxy (TERM_MARGIN, TERM_TOP_BORDER_Y); grub_putcode (DISP_UL); - for (i = 0; i < TERM_BORDER_WIDTH - 2; i++) + for (i = 0; i < TERM_BORDER_WIDTH; i++) grub_putcode (DISP_HLINE); grub_putcode (DISP_UR); - i = 1; - while (1) + for(i=0;i<(unsigned) TERM_NUM_ENTRIES;i++) { - grub_gotoxy (TERM_MARGIN, TERM_TOP_BORDER_Y + i); - - if (i > (unsigned) TERM_NUM_ENTRIES) - break; - + grub_gotoxy (TERM_MARGIN, TERM_TOP_BORDER_Y + i + 1); grub_putcode (DISP_VLINE); - grub_gotoxy (TERM_MARGIN + TERM_BORDER_WIDTH - 1, TERM_TOP_BORDER_Y + i); + grub_gotoxy (TERM_MARGIN + TERM_BORDER_WIDTH + 1, TERM_TOP_BORDER_Y + i + 1); grub_putcode (DISP_VLINE); - i++; } + grub_gotoxy (TERM_MARGIN, TERM_TOP_BORDER_Y + TERM_NUM_ENTRIES + 1); grub_putcode (DISP_LL); - for (i = 0; i < TERM_BORDER_WIDTH - 2; i++) + for (i = 0; i < TERM_BORDER_WIDTH; i++) grub_putcode (DISP_HLINE); grub_putcode (DISP_LR); grub_setcolorstate (GRUB_TERM_COLOR_STANDARD); + + grub_gotoxy (TERM_MARGIN, TERM_TOP_BORDER_Y + TERM_NUM_ENTRIES + TERM_MARGIN +1 ); } static void @@ -172,7 +169,7 @@ print_entry (int y, int highlight, grub_ grub_gotoxy (TERM_LEFT_BORDER_X + TERM_MARGIN, y); grub_putchar (' '); for (x = TERM_LEFT_BORDER_X + TERM_MARGIN + 1; - x < TERM_LEFT_BORDER_X + TERM_BORDER_WIDTH - 1; + x < TERM_LEFT_BORDER_X + TERM_BORDER_WIDTH + 1; x++) { if (*title && x <= TERM_LEFT_BORDER_X + TERM_ENTRY_WIDTH + 1) @@ -202,7 +199,7 @@ print_entries (grub_menu_t menu, int fir if (first) grub_putcode (DISP_UP); else - grub_putchar (' '); + grub_putcode (DISP_VLINE); e = get_entry (menu, first); @@ -219,7 +216,7 @@ print_entries (grub_menu_t menu, int fir if (e) grub_putcode (DISP_DOWN); else - grub_putchar (' '); + grub_putcode (DISP_VLINE); grub_gotoxy (TERM_CURSOR_X, TERM_FIRST_ENTRY_Y + offset); } --------------090202000905070608080000--