aboutsummaryrefslogtreecommitdiff
path: root/util-linux/rev.c
diff options
context:
space:
mode:
Diffstat (limited to 'util-linux/rev.c')
-rw-r--r--util-linux/rev.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/util-linux/rev.c b/util-linux/rev.c
index 3c1b22f09..f952447e4 100644
--- a/util-linux/rev.c
+++ b/util-linux/rev.c
@@ -32,7 +32,7 @@
32#endif 32#endif
33 33
34/* In-place invert */ 34/* In-place invert */
35static void strrev(CHAR_T *s, int len) 35static void bb_strrev(CHAR_T *s, int len)
36{ 36{
37 int i; 37 int i;
38 38
@@ -40,6 +40,10 @@ static void strrev(CHAR_T *s, int len)
40 len--; 40 len--;
41 if (len != 0 && s[len] == '\n') 41 if (len != 0 && s[len] == '\n')
42 len--; 42 len--;
43#if ENABLE_PLATFORM_MINGW32
44 if (len != 0 && s[len] == '\r')
45 len--;
46#endif
43 } 47 }
44 48
45 for (i = 0; i < len; i++, len--) { 49 for (i = 0; i < len; i++, len--) {
@@ -100,14 +104,14 @@ int rev_main(int argc UNUSED_PARAM, char **argv)
100 /* Convert to wchar_t (might error out!) */ 104 /* Convert to wchar_t (might error out!) */
101 int len = mbstowcs(tmp, buf, bufsize); 105 int len = mbstowcs(tmp, buf, bufsize);
102 if (len >= 0) { 106 if (len >= 0) {
103 strrev(tmp, len); 107 bb_strrev(tmp, len);
104 /* Convert back to char */ 108 /* Convert back to char */
105 wcstombs(buf, tmp, bufsize); 109 wcstombs(buf, tmp, bufsize);
106 } 110 }
107 free(tmp); 111 free(tmp);
108 } 112 }
109#else 113#else
110 strrev(buf, strlen(buf)); 114 bb_strrev(buf, strlen(buf));
111#endif 115#endif
112 fputs(buf, stdout); 116 fputs(buf, stdout);
113 } 117 }