summaryrefslogtreecommitdiffstats
path: root/misc-utils/rename.c
diff options
context:
space:
mode:
Diffstat (limited to 'misc-utils/rename.c')
-rw-r--r--misc-utils/rename.c10
1 files changed, 9 insertions, 1 deletions
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')