From: David Levine Date: Wed, 26 Dec 2012 01:25:43 +0000 (-0600) Subject: Removed call to fpurge() and its platform-specific emulations X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/4548a3ecc4248a1d4bd4fdd45d9a2bb1e61d1e70?ds=sidebyside;hp=9db3474c4cfc16b01d132e03ddf2c91b8db8b594 Removed call to fpurge() and its platform-specific emulations from discard.c. discard() is called on stdout from mhl(1) and msh(1) in interrupt handlers, and post(8) but only with -debug. tcflush() should do the purge when stdout is a terminal. If it's a file or pipe, well, maybe some garbage could get flushed out. And it's called on the streams that post uses to talk to its smtp server, so removed those calls because they no longer do anything. And removed LINUX_STDIO define from configure.ac. --- diff --git a/configure.ac b/configure.ac index c3ebacf0..23152892 100644 --- a/configure.ac +++ b/configure.ac @@ -451,15 +451,6 @@ AC_CHECK_HEADERS([errno.h fcntl.h crypt.h ncurses/termcap.h termcap.h \ langinfo.h wchar.h wctype.h iconv.h netdb.h \ sys/param.h sys/time.h sys/stream.h]) -dnl -dnl Checks for _IO_write_ptr. A Linuxism used by nmh on linux. We -dnl really use a whole set of them, but this check should be -dnl sufficient. -dnl -AC_CHECK_HEADER(libio.h, [ - AC_EGREP_HEADER(_IO_write_ptr, libio.h, [ - AC_DEFINE(LINUX_STDIO,1,[Use the Linux _IO_*_ptr defines from .]) ]) ]) - AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1, [Define to 1 if `struct winsize' requires .]),, [[#if HAVE_SYS_STREAM_H diff --git a/mts/smtp/smtp.c b/mts/smtp/smtp.c index b1d57dd6..4b2e30a6 100755 --- a/mts/smtp/smtp.c +++ b/mts/smtp/smtp.c @@ -799,8 +799,6 @@ sm_end (int type) smtalk (SM_QUIT, "QUIT"); else { kill (sm_child, SIGKILL); - discard (sm_rfp); - discard (sm_wfp); } if (type == NOTOK) { sm_reply.code = sm_note.code; diff --git a/sbr/discard.c b/sbr/discard.c index a1efa488..83b0bfbc 100644 --- a/sbr/discard.c +++ b/sbr/discard.c @@ -20,15 +20,7 @@ discard (FILE *io) tcflush (fileno(io), TCOFLUSH); -#if defined(_FSTDIO) || defined(__DragonFly__) - fpurge (io); -#else -# ifdef LINUX_STDIO - io->_IO_write_ptr = io->_IO_write_base; -# else - if ((io->_ptr = io->_base)) - io->_cnt = 0; -# endif -#endif + /* There used to be an fpurge() here on some platforms, stdio + hackery on others. But it didn't seem necessary. */ }