aboutsummaryrefslogtreecommitdiffstats
path: root/lib-src/movemail.c
diff options
context:
space:
mode:
authorPaul Eggert2014-07-14 12:23:18 -0700
committerPaul Eggert2014-07-14 12:23:18 -0700
commitba1ed52f0c2c7fd15fe1feadabfd0af88e19b4c3 (patch)
tree5ef95ac07de2a856369957a7ac047b9f58b78594 /lib-src/movemail.c
parent091adafaac52ff409790728af63cab19bd52fc8f (diff)
downloademacs-ba1ed52f0c2c7fd15fe1feadabfd0af88e19b4c3.tar.gz
emacs-ba1ed52f0c2c7fd15fe1feadabfd0af88e19b4c3.zip
Use binary-io module, O_BINARY, and "b" flag.
* admin/merge-gnulib (GNULIB_MODULES): Add binary-io. It was already present implicitly; this just makes the dependence explicit. * lib-src/etags.c, lib-src/hexl.c, lib-src/make-docfile.c: Include binary-io.h instead of fcntl.h and/or io.h. (main): Use set_binary_mode or SET_BINARY in place of handcrafted code. * lib-src/etags.c (main) [DOS_NT]: * lib-src/movemail.c (main) [WINDOWSNT]: Don't mess with _fmode. * lib-src/etags.c (main, process_file_name, analyse_regex): Use fopen/popen's "b" flag instead. * lib-src/movemail.c (main, popmail): Use open/lk_open/mkostemp's O_BINARY instead. * src/callproc.c (create_temp_file): Use mkostemp's O_BINARY flag. * src/emacs.c [MSDOS]: * src/emacs.c (main) [DOS_NT]: Don't mess with _fmode. (main) [MSDOS]: Use SET_BINARY instead of setmode. * src/minibuf.c: Include binary-io.h instead of fcntl.h. (read_minibuf_noninteractive): Use set_binary_mode instead of handcrafted code. Don't call emacs_set_tty if emacs_get_tty failed. * src/sysdep.c, src/systty.h (emacs_get_tty): Return int, not void. * src/sysdep.c (emacs_open, emacs_pipe): Use O_BINARY. * src/w32.c (pipe2): Adjust eassert to include O_BINARY. Fixes: debbugs:18006
Diffstat (limited to 'lib-src/movemail.c')
-rw-r--r--lib-src/movemail.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/lib-src/movemail.c b/lib-src/movemail.c
index d0d00fcf4cc..c600fc0ea53 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -191,11 +191,6 @@ main (int argc, char **argv)
191 uid_t real_gid = getgid (); 191 uid_t real_gid = getgid ();
192 uid_t priv_gid = getegid (); 192 uid_t priv_gid = getegid ();
193 193
194#ifdef WINDOWSNT
195 /* Ensure all file i/o is in binary mode. */
196 _fmode = _O_BINARY;
197#endif
198
199 delete_lockname = 0; 194 delete_lockname = 0;
200 195
201 while ((c = getopt (argc, argv, ARGSTR)) != EOF) 196 while ((c = getopt (argc, argv, ARGSTR)) != EOF)
@@ -304,7 +299,7 @@ main (int argc, char **argv)
304 299
305 memcpy (tempname, inname, inname_dirlen); 300 memcpy (tempname, inname, inname_dirlen);
306 strcpy (tempname + inname_dirlen, "EXXXXXX"); 301 strcpy (tempname + inname_dirlen, "EXXXXXX");
307 desc = mkostemp (tempname, 0); 302 desc = mkostemp (tempname, O_BINARY);
308 if (desc < 0) 303 if (desc < 0)
309 { 304 {
310 int mkostemp_errno = errno; 305 int mkostemp_errno = errno;
@@ -358,12 +353,12 @@ main (int argc, char **argv)
358 353
359#ifndef MAIL_USE_MMDF 354#ifndef MAIL_USE_MMDF
360#ifdef MAIL_USE_SYSTEM_LOCK 355#ifdef MAIL_USE_SYSTEM_LOCK
361 indesc = open (inname, O_RDWR); 356 indesc = open (inname, O_RDWR | O_BINARY);
362#else /* if not MAIL_USE_SYSTEM_LOCK */ 357#else /* if not MAIL_USE_SYSTEM_LOCK */
363 indesc = open (inname, O_RDONLY); 358 indesc = open (inname, O_RDONLY | O_BINARY);
364#endif /* not MAIL_USE_SYSTEM_LOCK */ 359#endif /* not MAIL_USE_SYSTEM_LOCK */
365#else /* MAIL_USE_MMDF */ 360#else /* MAIL_USE_MMDF */
366 indesc = lk_open (inname, O_RDONLY, 0, 0, 10); 361 indesc = lk_open (inname, O_RDONLY | O_BINARY, 0, 0, 10);
367#endif /* MAIL_USE_MMDF */ 362#endif /* MAIL_USE_MMDF */
368 363
369 if (indesc < 0) 364 if (indesc < 0)
@@ -372,7 +367,7 @@ main (int argc, char **argv)
372 /* Make sure the user can read the output file. */ 367 /* Make sure the user can read the output file. */
373 umask (umask (0) & 0377); 368 umask (umask (0) & 0377);
374 369
375 outdesc = open (outname, O_WRONLY | O_CREAT | O_EXCL, 0666); 370 outdesc = open (outname, O_WRONLY | O_BINARY | O_CREAT | O_EXCL, 0666);
376 if (outdesc < 0) 371 if (outdesc < 0)
377 pfatal_with_name (outname); 372 pfatal_with_name (outname);
378 373
@@ -675,7 +670,7 @@ popmail (char *mailbox, char *outfile, int preserve, char *password, int reverse
675 return EXIT_SUCCESS; 670 return EXIT_SUCCESS;
676 } 671 }
677 672
678 mbfi = open (outfile, O_WRONLY | O_CREAT | O_EXCL, 0666); 673 mbfi = open (outfile, O_WRONLY | O_BINARY | O_CREAT | O_EXCL, 0666);
679 if (mbfi < 0) 674 if (mbfi < 0)
680 { 675 {
681 pop_close (server); 676 pop_close (server);