This would make debugging video problems a bit easier. 2011-01-14 Colin Watson <cjwat...@ubuntu.com>
* grub-core/commands/videoinfo.c (hook): Indicate current video mode with `*'. (grub_cmd_videoinfo): Fetch current video mode. === modified file 'grub-core/commands/videoinfo.c' --- grub-core/commands/videoinfo.c 2010-09-15 12:37:28 +0000 +++ grub-core/commands/videoinfo.c 2011-01-14 20:34:26 +0000 @@ -26,6 +26,7 @@ #include <grub/i18n.h> static unsigned height, width, depth; +static struct grub_video_mode_info *current_mode; static int hook (const struct grub_video_mode_info *info) @@ -39,7 +40,13 @@ hook (const struct grub_video_mode_info if (info->mode_number == GRUB_VIDEO_MODE_NUMBER_INVALID) grub_printf (" "); else - grub_printf (" 0x%03x ", info->mode_number); + { + if (current_mode && info->mode_number == current_mode->mode_number) + grub_printf ("*"); + else + grub_printf (" "); + grub_printf (" 0x%03x ", info->mode_number); + } grub_printf ("%4d x %4d x %2d ", info->width, info->height, info->bpp); if (info->mode_type & GRUB_VIDEO_MODE_TYPE_PURE_TEXT) @@ -120,6 +127,8 @@ grub_cmd_videoinfo (grub_command_t cmd _ FOR_VIDEO_ADAPTERS (adapter) { + struct grub_video_mode_info info; + grub_printf ("Adapter '%s':\n", adapter->name); if (!adapter->iterate) @@ -128,7 +137,17 @@ grub_cmd_videoinfo (grub_command_t cmd _ continue; } - if (adapter->id != id) + current_mode = NULL; + + if (adapter->id == id) + { + if (grub_video_get_info (&info) == GRUB_ERR_NONE) + current_mode = &info; + else + /* Don't worry about errors. */ + grub_errno = GRUB_ERR_NONE; + } + else { if (adapter->init ()) { @@ -143,6 +162,8 @@ grub_cmd_videoinfo (grub_command_t cmd _ adapter->iterate (hook); + current_mode = NULL; + if (adapter->id != id) { if (adapter->fini ()) Thanks, -- Colin Watson [cjwat...@ubuntu.com] _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel