X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/597cfb3fbc57114062f12dfdfa37c0157fff1e97..7291159e257595ede482684563d5146b13f00384:/lib-src/movemail.c diff --git a/lib-src/movemail.c b/lib-src/movemail.c index 46c47a97bd..aaaf91b1b1 100644 --- a/lib-src/movemail.c +++ b/lib-src/movemail.c @@ -1,12 +1,13 @@ /* movemail foo bar -- move file foo to file bar, locking file foo the way /bin/mail respects. - Copyright (C) 1986, 92, 93, 94, 96, 1999 Free Software Foundation, Inc. + Copyright (C) 1986, 1992, 1993, 1994, 1996, 1999, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 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 2, or (at your option) +the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, @@ -16,8 +17,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, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ /* Important notice: defining MAIL_USE_FLOCK or MAIL_USE_LOCKF *will cause loss of mail* if you do it on a system that does not normally @@ -245,7 +246,7 @@ main (argc, argv) #endif if (*outname == 0) - fatal ("Destination file name is empty", 0); + fatal ("Destination file name is empty", 0, 0); /* Check access to output file. */ if (access (outname, F_OK) == 0 && access (outname, W_OK) != 0) @@ -465,6 +466,8 @@ main (argc, argv) while (1) { nread = read (indesc, buf, sizeof buf); + if (nread < 0) + pfatal_with_name (inname); if (nread != write (outdesc, buf, nread)) { int saved_errno = errno; @@ -601,12 +604,12 @@ mail_spool_name (inname) /* Print error message and exit. */ void -fatal (s1, s2) - char *s1, *s2; +fatal (s1, s2, s3) + char *s1, *s2, *s3; { if (delete_lockname) unlink (delete_lockname); - error (s1, s2, 0); + error (s1, s2, s3); exit (EXIT_FAILURE); } @@ -631,17 +634,16 @@ void pfatal_with_name (name) char *name; { - char *s = concat ("", strerror (errno), " for %s"); - fatal (s, name); + fatal ("%s for %s", strerror (errno), name); } void pfatal_and_delete (name) char *name; { - char *s = concat ("", strerror (errno), " for %s"); + char *s = strerror (errno); unlink (name); - fatal (s, name); + fatal ("%s for %s", s, name); } /* Return a newly-allocated string whose contents concatenate those of s1, s2, s3. */ @@ -669,7 +671,7 @@ xmalloc (size) { long *result = (long *) malloc (size); if (!result) - fatal ("virtual memory exhausted", 0); + fatal ("virtual memory exhausted", 0, 0); return result; }