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=-c 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. --- 4548a3ecc4248a1d4bd4fdd45d9a2bb1e61d1e70 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. */ }