diff options
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | misc-utils/rename.c | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index 3ad35abec..2a8d4e490 100644 --- a/configure.ac +++ b/configure.ac @@ -449,6 +449,8 @@ AC_CHECK_DECL([SO_PASSCRED], #include <sys/socket.h>]) AC_CHECK_FUNCS([ \ + __fpurge \ + fpurge \ __fpending \ secure_getenv \ __secure_getenv \ diff --git a/misc-utils/rename.c b/misc-utils/rename.c index c9add7780..2bbf7589a 100644 --- a/misc-utils/rename.c +++ b/misc-utils/rename.c @@ -14,7 +14,13 @@ for i in $@; do N=`echo "$i" | sed "s/$FROM/$TO/g"`; mv "$i" "$N"; done * in cases involving special characters. Here a C version. */ #include <stdio.h> -#include <stdio_ext.h> +#ifdef HAVE_STDIO_EXT_H +# include <stdio_ext.h> +#endif +#ifdef HAVE_FPURGE +# define HAVE___FPURGE 1 +# define __fpurge fpurge +#endif #include <string.h> #include <stdlib.h> #include <errno.h> @@ -73,12 +79,14 @@ static int ask(char *name) else { buf[0] = c; if (c != '\n' && tty_cbreak) { +#ifdef HAVE___FPURGE /* Possibly purge a multi-byte character; or do a required purge of the rest of the line (including the newline) if the tty has been put back in canonical mode (for example by a shell after a SIGTSTP signal). */ __fpurge(stdin); +#endif printf("\n"); } else if (c != '\n') |