aboutsummaryrefslogtreecommitdiffstats
path: root/lib-src
diff options
context:
space:
mode:
authorJim Blandy1992-04-01 11:14:15 +0000
committerJim Blandy1992-04-01 11:14:15 +0000
commit08564963293aac2ea90a3dee54f48ded962238eb (patch)
tree4424e2ded321dd8606dabc4ef00a6f058108725b /lib-src
parentca1d1d23251bc8f159d0131d345702aabf2dd078 (diff)
downloademacs-08564963293aac2ea90a3dee54f48ded962238eb.tar.gz
emacs-08564963293aac2ea90a3dee54f48ded962238eb.zip
*** empty log message ***
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/movemail.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/lib-src/movemail.c b/lib-src/movemail.c
index d1294788a9b..de766e6d609 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -96,7 +96,6 @@ main (argc, argv)
96{ 96{
97 char *inname, *outname; 97 char *inname, *outname;
98 int indesc, outdesc; 98 int indesc, outdesc;
99 char buf[1024];
100 int nread; 99 int nread;
101 100
102#ifndef MAIL_USE_FLOCK 101#ifndef MAIL_USE_FLOCK
@@ -182,8 +181,7 @@ main (argc, argv)
182 to bug-gnu-emacs@prep.ai.mit.edu so we can fix it. */ 181 to bug-gnu-emacs@prep.ai.mit.edu so we can fix it. */
183 182
184 lockname = concat (inname, ".lock", ""); 183 lockname = concat (inname, ".lock", "");
185 tempname = (char *) xmalloc (strlen (inname) + 20); 184 tempname = strcpy (xmalloc (strlen (inname)+1), inname);
186 strcpy (tempname, inname);
187 p = tempname + strlen (tempname); 185 p = tempname + strlen (tempname);
188 while (p != tempname && p[-1] != '/') 186 while (p != tempname && p[-1] != '/')
189 p--; 187 p--;
@@ -249,19 +247,23 @@ main (argc, argv)
249#endif 247#endif
250#endif /* MAIL_USE_FLOCK */ 248#endif /* MAIL_USE_FLOCK */
251 249
252 while (1) 250 {
253 { 251 char buf[1024];
254 nread = read (indesc, buf, sizeof buf); 252
255 if (nread != write (outdesc, buf, nread)) 253 while (1)
256 { 254 {
257 int saved_errno = errno; 255 nread = read (indesc, buf, sizeof buf);
258 unlink (outname); 256 if (nread != write (outdesc, buf, nread))
259 errno = saved_errno; 257 {
260 pfatal_with_name (outname); 258 int saved_errno = errno;
261 } 259 unlink (outname);
262 if (nread < sizeof buf) 260 errno = saved_errno;
263 break; 261 pfatal_with_name (outname);
264 } 262 }
263 if (nread < sizeof buf)
264 break;
265 }
266 }
265 267
266#ifdef BSD 268#ifdef BSD
267 if (fsync (outdesc) < 0) 269 if (fsync (outdesc) < 0)