2002-05-22 Ognyan Kulev <ogi@fmi.uni-sofia.bg> * migcom.c (myfclose): New function. (main): Use myfclose instead of fclose. * user.c (WriteUserIndividual): Check for file errors when closing file. Index: hurd/mig/ChangeLog =================================================================== RCS file: /cvsroot/hurd/mig/ChangeLog,v retrieving revision 1.23 diff -u -p -r1.23 ChangeLog --- hurd/mig/ChangeLog 6 Apr 2002 05:26:24 -0000 1.23 +++ hurd/mig/ChangeLog 22 May 2002 16:45:04 -0000 @@ -1,3 +1,10 @@ +2002-05-22 Ognyan Kulev <ogi@fmi.uni-sofia.bg> + + * migcom.c (myfclose): New function. + (main): Use myfclose instead of fclose. + * user.c (WriteUserIndividual): Check for file errors + when closing file. + 2002-04-05 Roland McGrath <roland@frob.com> * Makefile.am (cpu.symc): Depend on gensym.awk. Index: hurd/mig/migcom.c =================================================================== RCS file: /cvsroot/hurd/mig/migcom.c,v retrieving revision 1.3 diff -u -p -r1.3 migcom.c --- hurd/mig/migcom.c 8 Jun 2001 00:49:17 -0000 1.3 +++ hurd/mig/migcom.c 22 May 2002 16:45:24 -0000 @@ -79,6 +79,7 @@ extern int yyparse(); static FILE *myfopen(const char *name, const char *mode); +static void myfclose(FILE *file, const char *name); static string_t RoutineListFileName; @@ -239,7 +240,7 @@ main(int argc, char **argv) fflush(stdout); } WriteUserHeader(uheader, StatementList); - fclose(uheader); + myfclose(uheader, UserHeaderFileName); if (ServerHeaderFileName) { if (BeVerbose) @@ -248,7 +249,7 @@ main(int argc, char **argv) fflush (stdout); } WriteServerHeader(sheader, StatementList); - fclose(sheader); + myfclose(sheader, ServerHeaderFileName); } if (IsKernelServer) { @@ -258,7 +259,7 @@ main(int argc, char **argv) fflush(stdout); } WriteInternalHeader(iheader, StatementList); - fclose(iheader); + myfclose(iheader, InternalHeaderFileName); } if (UserFilePrefix) { @@ -277,7 +278,7 @@ main(int argc, char **argv) fflush(stdout); } WriteUser(user, StatementList); - fclose(user); + myfclose(user, UserFileName); } if (BeVerbose) { @@ -285,13 +286,13 @@ main(int argc, char **argv) fflush(stdout); } WriteServer(server, StatementList); - fclose(server); + myfclose(server, ServerFileName); if (RoutineListFileName != strNULL) { FILE *listfile = myfopen (RoutineListFileName, "w"); WriteRoutineList (listfile, StatementList); - fclose (listfile); + myfclose (listfile, RoutineListFileName); } if (BeVerbose) @@ -317,4 +318,11 @@ myfopen(const char *name, const char *mo fatal("fopen(): ", realname, unix_error_string(errno)); return file; +} + +static void +myfclose(FILE *file, const char *name) +{ + if (ferror(file) || fclose(file)) + fatal("fclose(): ", name, unix_error_string(errno)); } Index: hurd/mig/user.c =================================================================== RCS file: /cvsroot/hurd/mig/user.c,v retrieving revision 1.3 diff -u -p -r1.3 user.c --- hurd/mig/user.c 11 Oct 1999 08:44:52 -0000 1.3 +++ hurd/mig/user.c 22 May 2002 16:45:35 -0000 @@ -1320,7 +1320,9 @@ WriteUserIndividual(const statement_t *s WriteRoutine(file, stat->stRoutine); WriteEpilog(file); - fclose(file); + if (ferror(file) || fclose(file)) + fatal("fclose(): ", filename, + unix_error_string(errno)); strfree(filename); } break;