diff options
| author | Paul Eggert | 2014-07-14 12:23:18 -0700 |
|---|---|---|
| committer | Paul Eggert | 2014-07-14 12:23:18 -0700 |
| commit | ba1ed52f0c2c7fd15fe1feadabfd0af88e19b4c3 (patch) | |
| tree | 5ef95ac07de2a856369957a7ac047b9f58b78594 /lib-src/movemail.c | |
| parent | 091adafaac52ff409790728af63cab19bd52fc8f (diff) | |
| download | emacs-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.c | 17 |
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); |