X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/518dd7224679f6c48ff331d8b304d2f7f784f96b..a536e299736886f3e7d9c1185c380d67e974679f:/lib-src/cvtmail.c diff --git a/lib-src/cvtmail.c b/lib-src/cvtmail.c index 1f3b8ff9f9..20ef341243 100644 --- a/lib-src/cvtmail.c +++ b/lib-src/cvtmail.c @@ -1,9 +1,10 @@ -/* Copyright (C) 1985 Free Software Foundation +/* 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 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 +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. * @@ -29,14 +31,21 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ * 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. */ #include +char *malloc (); +char *realloc (); +char *getenv (); + +char *xmalloc (); +char *xrealloc (); +void skip_to_lf (); +void sysfail (); +int main (argc, argv) int argc; char *argv[]; @@ -50,7 +59,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 +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) { @@ -89,48 +103,44 @@ 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; } +void skip_to_lf (stream) FILE *stream; { register int c; - while ((c = getc(stream)) != '\n') + while ((c = getc(stream)) != EOF && c != '\n') ; } -int -xmalloc (size) - int size; -{ - int result = malloc (size); - if (!result) - fatal ("virtual memory exhausted", 0); - return result; -} -int -xrealloc (ptr, size) - char *ptr; - int size; +void +error (s1, s2) + char *s1, *s2; { - int result = realloc (ptr, size); - if (!result) - fatal ("virtual memory exhausted"); - return result; + fprintf (stderr, "cvtmail: "); + fprintf (stderr, s1, s2); + fprintf (stderr, "\n"); } /* Print error message and exit. */ +void fatal (s1, s2) char *s1, *s2; { @@ -138,10 +148,32 @@ fatal (s1, s2) exit (1); } -error (s1, s2) - char *s1, *s2; +void +sysfail (s) + char *s; +{ + fprintf (stderr, "cvtmail: "); + perror (s); + exit (1); +} + +char * +xmalloc (size) + unsigned size; +{ + char *result = malloc (size); + if (!result) + fatal ("virtual memory exhausted", 0); + return result; +} + +char * +xrealloc (ptr, size) + char *ptr; + unsigned size; { - printf ("cvtmail: "); - printf (s1, s2); - printf ("\n"); + char *result = realloc (ptr, size); + if (!result) + fatal ("virtual memory exhausted"); + return result; }