X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/340ff9deaea2a7258d3ee1eca65487b4cd8dd305..28146d2b8e7e9b28565d24a4a88d1f6dc6bb12c4:/lib-src/cvtmail.c diff --git a/lib-src/cvtmail.c b/lib-src/cvtmail.c index b6e0c58ceb..20ef341243 100644 --- a/lib-src/cvtmail.c +++ b/lib-src/cvtmail.c @@ -1,4 +1,5 @@ /* Copyright (C) 1985, 1994 Free Software Foundation + This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify @@ -13,7 +14,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ /* cvtmail: * Program to convert oldstyle goslings emacs mail directories into @@ -21,7 +23,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ * exist in your home directory, containing individual mail messages in * separate files in the standard gosling emacs mail reader format. * - * Program takes one argument: an output file. THis file will contain + * Program takes one argument: an output file. This file will contain * all the messages in Messages directory, in berkeley mail format. * If no output file is mentioned, messages are put in ~/OMAIL. * @@ -41,6 +43,7 @@ char *getenv (); char *xmalloc (); char *xrealloc (); void skip_to_lf (); +void sysfail (); int main (argc, argv) @@ -74,15 +77,20 @@ main (argc, argv) cf = (char *) xmalloc (cflen); mddf = fopen (mdd, "r"); + if (!mddf) + sysfail (mdd); if (argc > 1) - mfilef = fopen (argv[1], "w"); + mfile = argv[1]; else { mfile = (char *) xmalloc (strlen (hd) + 7); strcpy (mfile, hd); strcat (mfile, "/OMAIL"); - mfilef = fopen (mfile, "w"); } + mfilef = fopen (mfile, "w"); + if (!mfilef) + sysfail (mfile); + skip_to_lf (mddf); while (fscanf (mddf, "%4c%14[0123456789]", pre, name) != EOF) { @@ -95,11 +103,16 @@ main (argc, argv) strcat (cf,"/"); strcat (cf, name); cff = fopen (cf, "r"); - while ((c = getc(cff)) != EOF) - putc (c, mfilef); - putc ('\n', mfilef); - skip_to_lf (mddf); - fclose (cff); + if (!cff) + perror (cf); + else + { + while ((c = getc(cff)) != EOF) + putc (c, mfilef); + putc ('\n', mfilef); + skip_to_lf (mddf); + fclose (cff); + } } fclose (mddf); fclose (mfilef); @@ -111,7 +124,7 @@ skip_to_lf (stream) FILE *stream; { register int c; - while ((c = getc(stream)) != '\n') + while ((c = getc(stream)) != EOF && c != '\n') ; } @@ -135,6 +148,15 @@ fatal (s1, s2) exit (1); } +void +sysfail (s) + char *s; +{ + fprintf (stderr, "cvtmail: "); + perror (s); + exit (1); +} + char * xmalloc (size) unsigned size;