X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/518dd7224679f6c48ff331d8b304d2f7f784f96b..0925c80cd3d8f9a973d699fc1dbdbe79cca62988:/lib-src/cvtmail.c?ds=sidebyside diff --git a/lib-src/cvtmail.c b/lib-src/cvtmail.c index 1f3b8ff9f9..562c5522ed 100644 --- a/lib-src/cvtmail.c +++ b/lib-src/cvtmail.c @@ -1,9 +1,11 @@ -/* Copyright (C) 1985 Free Software Foundation +/* Copyright (C) 1985, 1994, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. + This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 1, or (at your option) +the Free Software Foundation; either version 2, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, @@ -13,7 +15,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., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ /* cvtmail: * Program to convert oldstyle goslings emacs mail directories into @@ -21,22 +24,32 @@ 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. * * In order to get rmail to read the messages, the resulting file must * be mv'ed to ~/mbox, and then have rmail invoked on them. - * + * * Author: Larry Kolodney, 1985 - - * RMS, 2 Sept 85: Removed fix maximums on file name sizes. */ +#ifdef HAVE_CONFIG_H +#include +#endif #include +#ifndef HAVE_STDLIB_H +char *getenv (); +#endif +char *xmalloc __P ((unsigned)); +char *xrealloc __P ((char *, unsigned)); +void skip_to_lf __P ((FILE *)); +void sysfail __P ((char *)); + +int main (argc, argv) int argc; char *argv[]; @@ -50,7 +63,7 @@ main (argc, argv) FILE *mddf; FILE *mfilef; FILE *cff; - char pre[10], post[100]; + char pre[10]; char name[14]; int c; @@ -68,15 +81,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) { @@ -89,59 +107,82 @@ 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); - return 0; + fclose (mfilef); + return EXIT_SUCCESS; } +void skip_to_lf (stream) FILE *stream; { register int c; - while ((c = getc(stream)) != '\n') + while ((c = getc(stream)) != EOF && c != '\n') ; } -int + +void +error (s1, s2) + char *s1, *s2; +{ + fprintf (stderr, "cvtmail: "); + fprintf (stderr, s1, s2); + fprintf (stderr, "\n"); +} + +/* Print error message and exit. */ + +void +fatal (s1, s2) + char *s1, *s2; +{ + error (s1, s2); + exit (EXIT_FAILURE); +} + +void +sysfail (s) + char *s; +{ + fprintf (stderr, "cvtmail: "); + perror (s); + exit (EXIT_FAILURE); +} + +char * xmalloc (size) - int size; + unsigned size; { - int result = malloc (size); + char *result = (char *) malloc (size); if (!result) fatal ("virtual memory exhausted", 0); return result; } -int +char * xrealloc (ptr, size) char *ptr; - int size; + unsigned size; { - int result = realloc (ptr, size); + char *result = (char *) realloc (ptr, size); if (!result) - fatal ("virtual memory exhausted"); + fatal ("virtual memory exhausted", 0); return result; } -/* Print error message and exit. */ +/* arch-tag: b93c25a9-9012-44f1-b78b-9cc7aed44a7a + (do not change this comment) */ -fatal (s1, s2) - char *s1, *s2; -{ - error (s1, s2); - exit (1); -} - -error (s1, s2) - char *s1, *s2; -{ - printf ("cvtmail: "); - printf (s1, s2); - printf ("\n"); -} +/* cvtmail.c ends here */