On Thu, Aug 12, 2010 at 01:56:19AM -0400, Mike Frysinger wrote: >Add some helper functions that abort on failure, and change the fwrite >and fget calls to use those. This should kill off all the ugly gcc >warnings that some distros emit about ignoring return values due to >usage of warn_unused_result attributes. > >Signed-off-by: Mike Frysinger <vapier@xxxxxxxxxx> Looks good to me, Acked-by: WANG Cong <xiyou.wangcong@xxxxxxxxx> >--- > scripts/kconfig/conf.c | 4 ++-- > scripts/kconfig/confdata.c | 2 +- > scripts/kconfig/expr.c | 2 +- > scripts/kconfig/lkc.h | 24 ++++++++++++++++++++++++ > 4 files changed, 28 insertions(+), 4 deletions(-) > >diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c >index 274f271..b382a39 100644 >--- a/scripts/kconfig/conf.c >+++ b/scripts/kconfig/conf.c >@@ -108,7 +108,7 @@ static int conf_askvalue(struct symbol *sym, const char *def) > check_stdin(); > case oldaskconfig: > fflush(stdout); >- fgets(line, 128, stdin); >+ xfgets(line, 128, stdin); > return 1; > default: > break; >@@ -306,7 +306,7 @@ static int conf_choice(struct menu *menu) > check_stdin(); > case oldaskconfig: > fflush(stdout); >- fgets(line, 128, stdin); >+ xfgets(line, 128, stdin); > strip(line); > if (line[0] == '?') { > print_help(menu); >diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c >index f81f263..7d9f271 100644 >--- a/scripts/kconfig/confdata.c >+++ b/scripts/kconfig/confdata.c >@@ -412,7 +412,7 @@ static void conf_write_string(bool headerfile, const char *name, > while (1) { > l = strcspn(str, "\"\\"); > if (l) { >- fwrite(str, l, 1, out); >+ xfwrite(str, l, 1, out); > str += l; > } > if (!*str) >diff --git a/scripts/kconfig/expr.c b/scripts/kconfig/expr.c >index 8f18e37..330e7c0 100644 >--- a/scripts/kconfig/expr.c >+++ b/scripts/kconfig/expr.c >@@ -1087,7 +1087,7 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char * > > static void expr_print_file_helper(void *data, struct symbol *sym, const char *str) > { >- fwrite(str, strlen(str), 1, data); >+ xfwrite(str, strlen(str), 1, data); > } > > void expr_fprint(struct expr *e, FILE *out) >diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h >index 76db065..a3bd66a 100644 >--- a/scripts/kconfig/lkc.h >+++ b/scripts/kconfig/lkc.h >@@ -169,6 +169,30 @@ static inline bool sym_has_value(struct symbol *sym) > return sym->flags & SYMBOL_DEF_USER ? true : false; > } > >+#define internal_error(fmt, args...) \ >+do { \ >+ fprintf(stderr, "%s:%s:%i: %s: " fmt "\n", __FILE__, \ >+ __func__, __LINE__, _("internal error"), ## args); \ >+ exit(1); \ >+} while (0) >+ >+#define xfwrite(ptr, size, nmemb, stream) \ >+({ \ >+ size_t _nmemb = (nmemb); \ >+ size_t ret = fwrite(ptr, size, _nmemb, stream); \ >+ if (ret != _nmemb) \ >+ internal_error("%s", _("fwrite() came up short")); \ >+ ret; \ >+}) >+ >+#define xfgets(s, size, stream) \ >+({ \ >+ char *ret = fgets(s, size, stream); \ >+ if (ret == NULL) \ >+ internal_error("%s", _("fgets() came up short")); \ >+ ret; \ >+}) >+ > #ifdef __cplusplus > } > #endif >-- >1.7.2 > >-- >To unsubscribe from this list: send the line "unsubscribe linux-kernel" in >the body of a message to majordomo@xxxxxxxxxxxxxxx >More majordomo info at http://vger.kernel.org/majordomo-info.html >Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html