merge mainline into filesys

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-12-19 00:54:05 +01:00
commit 052677ba71
11 changed files with 131 additions and 25 deletions

View file

@ -131,5 +131,6 @@ grub-core/gnulib/unistd.h
grub-core/gnulib/warn-on-use.h grub-core/gnulib/warn-on-use.h
grub-core/gnulib/wchar.h grub-core/gnulib/wchar.h
grub-core/gnulib/wctype.h grub-core/gnulib/wctype.h
grub-core/rs_decoder.S
widthspec.bin widthspec.bin
widthspec.h widthspec.h

View file

@ -1,3 +1,75 @@
2010-12-19 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/affs.c (grub_affs_mount): Read data->bblock.rootblock
rather than assuming than rootblock is exactly in the middle.
(grub_affs_label): Likewise.
2010-12-19 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/affs.c (grub_affs_fs) [GRUB_UTIL]: Explicitly set
reserved_first_sector to 0.
* grub-core/fs/cpio.c (grub_cpio_fs) [GRUB_UTIL]: Likewise.
* grub-core/fs/sfs.c (grub_sfs_fs) [GRUB_UTIL]: Likewise.
* grub-core/fs/xfs.c (grub_xfs_fs) [GRUB_UTIL]: Likewise.
2010-12-19 Vladimir Serbinenko <phcoder@gmail.com>
Fix handling of UTF-16 UDF labels.
* grub-core/fs/udf.c (grub_udf_iterate_dir): Move string-parsing part
(read_string): .. here.
(grub_udf_label): Use read_string.
2010-12-18 Vladimir Serbinenko <phcoder@gmail.com>
* util/grub-mkfont.c (main): Handle errors from FT_Set_Pixel_Sizes.
2010-12-18 Colin Watson <cjwatson@ubuntu.com>
* grub-core/normal/term.c (print_more): Make \r or \n scroll one
line, and other keys scroll an entire page (previous handling was
for \r and \n to scroll a page and other keys to scroll two lines).
2010-12-18 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_make_mbi):
Set ptrdest to correct get_physical_target_address rather than
incorrect get_virtual_current_address.
2010-12-18 kashyap garimella <garimella.kashyap@gmail.com>
* grub-core/loader/i386/multiboot_mbi.c (grub_multiboot_load): Use
correct cat to grub_uint8_t * rather than grub_uint32_t *.
2010-12-10 Colin Watson <cjwatson@ubuntu.com>
* .bzrignore: Ignore grub-core/rs_decoder.S.
2010-12-10 Colin Watson <cjwatson@ubuntu.com>
* grub-core/gettext/gettext.c (grub_gettext_init_ext): Factor out
.mo/.mo.gz opening sequence to ...
(grub_mofile_open_lang): ... here.
(grub_gettext_init_ext): If opening ll_CC fails, try ll.
* util/grub.d/00_header.in (grub_lang): Include country part of
locale.
Reported by: Mario Limonciello.
2010-12-09 Robert Millan <rmh@gnu.org>
* NEWS: Document addition of ZFS support.
2010-12-04 Colin Watson <cjwatson@ubuntu.com>
* grub-core/kern/i386/pc/startup.S (grub_console_getkey): Use `>> 1'
rather than `/ 2', as the latter requires -Wa,--divide which would
require bumping our minimum binutils version.
2010-12-03 BVK Chaitanya <bvk.groups@gmail.com>
* util/grub-script-check.c (main): Print script line number on
error.
2010-12-01 Robert Millan <rmh@gnu.org> 2010-12-01 Robert Millan <rmh@gnu.org>
* grub-core/fs/zfs/zfs.c: New file. * grub-core/fs/zfs/zfs.c: New file.

4
NEWS
View file

@ -51,9 +51,7 @@ New in 1.99:
* Add `sendkey' command (i386-pc only). * Add `sendkey' command (i386-pc only).
* ZFS support in `grub-install' and `grub-mkconfig'. Note: complete * ZFS support.
functionality requires external ZFS implementation (available from
grub-extras).
* Support 1.x versions of mdadm metadata. * Support 1.x versions of mdadm metadata.

View file

@ -894,6 +894,8 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir,
return 0; return 0;
filename = read_string (raw, dirent.file_ident_length); filename = read_string (raw, dirent.file_ident_length);
if (!filename)
grub_print_error ();
if (filename && hook (filename, type, child)) if (filename && hook (filename, type, child))
{ {

View file

@ -261,24 +261,16 @@ grub_mofile_open (const char *filename)
return fd_mo; return fd_mo;
} }
/* Returning grub_file_t would be more natural, but grub_mofile_open assigns
to fd_mo anyway ... */
static void static void
grub_gettext_init_ext (const char *lang) grub_mofile_open_lang (const char *locale_dir, const char *locale)
{ {
char *mo_file; char *mo_file;
char *locale_dir;
locale_dir = grub_env_get ("locale_dir");
if (locale_dir == NULL)
{
grub_dprintf ("gettext", "locale_dir variable is not set up.\n");
return;
}
fd_mo = NULL;
/* mo_file e.g.: /boot/grub/locale/ca.mo */ /* mo_file e.g.: /boot/grub/locale/ca.mo */
mo_file = grub_xasprintf ("%s/%s.mo", locale_dir, lang); mo_file = grub_xasprintf ("%s/%s.mo", locale_dir, locale);
if (!mo_file) if (!mo_file)
return; return;
@ -295,6 +287,38 @@ grub_gettext_init_ext (const char *lang)
return; return;
fd_mo = grub_mofile_open (mo_file); fd_mo = grub_mofile_open (mo_file);
} }
}
static void
grub_gettext_init_ext (const char *locale)
{
char *locale_dir;
locale_dir = grub_env_get ("locale_dir");
if (locale_dir == NULL)
{
grub_dprintf ("gettext", "locale_dir variable is not set up.\n");
return;
}
fd_mo = NULL;
grub_mofile_open_lang (locale_dir, locale);
/* ll_CC didn't work, so try ll. */
if (fd_mo == NULL)
{
char *lang = grub_strdup (locale);
char *underscore = grub_strchr (lang, '_');
if (underscore)
{
*underscore = '\0';
grub_mofile_open_lang (locale_dir, lang);
}
grub_free (lang);
}
if (fd_mo) if (fd_mo)
{ {

View file

@ -650,7 +650,7 @@ FUNCTION(grub_console_getkey)
jae 2f jae 2f
movl %edx, %eax movl %edx, %eax
leal LOCAL(bypass_table), %edi leal LOCAL(bypass_table), %edi
movl $((LOCAL(bypass_table_end) - LOCAL(bypass_table)) / 2), %ecx movl $((LOCAL(bypass_table_end) - LOCAL(bypass_table)) >> 1), %ecx
repne scasw repne scasw
jz 3f jz 3f

View file

@ -141,7 +141,7 @@ grub_multiboot_load (grub_file_t file)
} }
if (header->bss_end_addr) if (header->bss_end_addr)
grub_memset ((grub_uint32_t *) source + load_size, 0, grub_memset ((grub_uint8_t *) source + load_size, 0,
header->bss_end_addr - header->load_addr - load_size); header->bss_end_addr - header->load_addr - load_size);
grub_multiboot_payload_eip = header->entry_addr; grub_multiboot_payload_eip = header->entry_addr;
@ -441,7 +441,7 @@ grub_multiboot_make_mbi (grub_uint32_t *target)
if (err) if (err)
return err; return err;
ptrorig = get_virtual_current_address (ch); ptrorig = get_virtual_current_address (ch);
ptrdest = (grub_addr_t) get_virtual_current_address (ch); ptrdest = get_physical_target_address (ch);
*target = ptrdest; *target = ptrdest;

View file

@ -91,16 +91,16 @@ print_more (void)
grub_term_restore_pos (pos); grub_term_restore_pos (pos);
grub_free (pos); grub_free (pos);
/* Scroll one lines or an entire page, depending on the key. */ /* Scroll one line or an entire page, depending on the key. */
if (key == '\r' || key =='\n') if (key == '\r' || key =='\n')
grub_normal_reset_more ();
else
{ {
static struct term_state *state; static struct term_state *state;
for (state = term_states; state; state = state->next) for (state = term_states; state; state = state->next)
state->num_lines -= 2; state->num_lines--;
} }
else
grub_normal_reset_more ();
} }
void void

View file

@ -1170,7 +1170,8 @@ main (int argc, char *argv[])
font_info.style = ft_face->style_flags; font_info.style = ft_face->style_flags;
font_info.size = size; font_info.size = size;
FT_Set_Pixel_Sizes (ft_face, size, size); if (FT_Set_Pixel_Sizes (ft_face, size, size))
grub_util_error ("can't set %dx%d font size", size, size);
add_font (&font_info, ft_face, file_format != PF2); add_font (&font_info, ft_face, file_format != PF2);
FT_Done_Face (ft_face); FT_Done_Face (ft_face);
} }

View file

@ -73,6 +73,7 @@ main (int argc, char *argv[])
{ {
char *argument; char *argument;
char *input; char *input;
int lineno = 0;
FILE *file = 0; FILE *file = 0;
int verbose = 0; int verbose = 0;
int found_input = 0; int found_input = 0;
@ -111,6 +112,7 @@ main (int argc, char *argv[])
cmdline[i] = '\0'; cmdline[i] = '\0';
} }
lineno++;
*line = grub_strdup (cmdline); *line = grub_strdup (cmdline);
free (cmdline); free (cmdline);
@ -189,5 +191,11 @@ main (int argc, char *argv[])
if (file) fclose (file); if (file) fclose (file);
return (found_input && script == 0); if (found_input && script == 0)
{
fprintf (stderr, "error: line no: %u\n", lineno);
return 1;
}
return 0;
} }

View file

@ -23,7 +23,7 @@ prefix=@prefix@
exec_prefix=@exec_prefix@ exec_prefix=@exec_prefix@
libdir=@libdir@ libdir=@libdir@
locale_dir=`echo ${GRUB_PREFIX}/locale | sed ${transform}` locale_dir=`echo ${GRUB_PREFIX}/locale | sed ${transform}`
grub_lang=`echo $LANG | cut -d _ -f 1` grub_lang=`echo $LANG | cut -d . -f 1`
. ${libdir}/grub/grub-mkconfig_lib . ${libdir}/grub/grub-mkconfig_lib