Am Donnerstag, den 14.08.2008, 09:13 +0200 schrieb Marco Gerards: > So this patch isn't really required, but you want it for Lenny?
[EMAIL PROTECTED] That's the one Robert and me thought could be something for lenny. I have forgotten to merge the disk/raid.c changes which Robert wanted to have in the last grub_print_error () patches. As I already told you on IRC, I now start to believe like Robert that the idea isn't that bad to have a function for the utils which prints to stderr but it doestn't `exit ()' liek grub_util_error does. Maybe not only raid.mod has a use for this but others too. > > 2008-08-14 Felix Zielcke <[EMAIL PROTECTED]> > > > > * include/grub/err.h (grub_error_stack_assert): New variable > > declaration. > > * kern/err.c (grub_error_stack_assert): Remove static. > > (grub_print_error): Disable it for [GRUB_UTIL] because ... > > * util/err.c: New file with grub_print_error () using fprintf > > (stderr, ...). > > Can you just use misc.c? As already said on IRC [EMAIL PROTECTED] grub-mkimage would then need to have kern/err.c included. > > > * conf/common.rmk: Add it for grub-probe. > > > I have been thinking of an alternative way to fix this. A bit of a > compromise between what you want and what I want and perhaps cleaner. This whole problem, confuses me now myself. Bean is rewriting the whole RAID code anyway and Robert and me would like to have a simple and small patch for lenny. For upstream (i.e. you ;)) I want a clean solution, that's why I did now the RFC topic. Maybe it's just better if I don't think now for lenny. > You could define a function grub_err_printf or something like that. > Which you use in grub_print_error. You can redefine it for > GRUB_UTIL to grub_util_error and to grub_print otherwise. > > I didn't study the code. Will this be easier and cleaner? Thanks to Robert for the hint with the copyright years. As always with me, changelog and code is probable still not perfect ;) but I think the genereal idea behind it is a step to come nearer to a clean good solution for this whole problem ([EMAIL PROTECTED]) It does compile cleanly i.e. doestn't introduce any warnings at all and it works with the 2 raid/disk.c changes from msgid I said at the beginning of this mail. 2008-08-14 Felix Zielcke <[EMAIL PROTECTED]> * include/grub.err.h (grub_err_printf): New function prototype. * util/misc.c (grub_err_printf): New function. * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for grub_printf. * kern/err.c (grub_print_error): Use grub_err_printf.
Index: kern/err.c =================================================================== --- kern/err.c (Revision 1804) +++ kern/err.c (Arbeitskopie) @@ -1,7 +1,7 @@ /* err.c - error handling routines */ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 2002,2005,2007 Free Software Foundation, Inc. + * Copyright (C) 2002,2005,2007,2008 Free Software Foundation, Inc. * * GRUB is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -121,14 +121,14 @@ grub_print_error (void) do { if (grub_errno != GRUB_ERR_NONE) - grub_printf ("error: %s\n", grub_errmsg); + grub_err_printf ("error: %s\n", grub_errmsg); } while (grub_error_pop ()); /* If there was an assert while using error stack, report about it. */ if (grub_error_stack_assert) { - grub_printf ("assert: error stack overflow detected!\n"); + grub_err_printf ("assert: error stack overflow detected!\n"); grub_error_stack_assert = 0; } } Index: kern/misc.c =================================================================== --- kern/misc.c (Revision 1804) +++ kern/misc.c (Arbeitskopie) @@ -133,6 +133,10 @@ grub_printf (const char *fmt, ...) return ret; } +#ifndef GRUB_UTIL +int grub_err_printf (const char *fmt, ...) +__attribute__ ((alias("grub_printf"))); +#endif void grub_real_dprintf (const char *file, const int line, const char *condition, Index: include/grub/err.h =================================================================== --- include/grub/err.h (Revision 1804) +++ include/grub/err.h (Arbeitskopie) @@ -1,7 +1,7 @@ /* err.h - error numbers and prototypes */ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 2002,2005,2007 Free Software Foundation, Inc. + * Copyright (C) 2002,2005,2007,2008 Free Software Foundation, Inc. * * GRUB is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -64,5 +64,6 @@ void EXPORT_FUNC(grub_fatal) (const char void EXPORT_FUNC(grub_error_push) (void); int EXPORT_FUNC(grub_error_pop) (void); void EXPORT_FUNC(grub_print_error) (void); +int EXPORT_FUNC(grub_err_printf) (const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); #endif /* ! GRUB_ERR_HEADER */ Index: util/misc.c =================================================================== --- util/misc.c (Revision 1804) +++ util/misc.c (Arbeitskopie) @@ -1,6 +1,6 @@ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 2002,2003,2005,2006,2007 Free Software Foundation, Inc. + * Copyright (C) 2002,2003,2005,2006,2007,2008 Free Software Foundation, Inc. * * GRUB is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -74,6 +74,18 @@ grub_util_error (const char *fmt, ...) exit (1); } +int +grub_err_printf (const char *fmt, ...) +{ + va_list ap; + int ret; + + va_start (ap, fmt); + ret = vfprintf (stderr, fmt, ap); + va_end (ap); + + return ret; +} void * xmalloc (size_t size) {
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel