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 2bef9b9be..b0a0c01aa 100644
--- a/util-linux/rev.c
+++ b/util-linux/rev.c
@@ -31,7 +31,7 @@
31#endif 31#endif
32 32
33/* In-place invert */ 33/* In-place invert */
34static void strrev(CHAR_T *s, int len) 34static void bb_strrev(CHAR_T *s, int len)
35{ 35{
36 int i; 36 int i;
37 37
@@ -39,6 +39,10 @@ static void strrev(CHAR_T *s, int len)
39 len--; 39 len--;
40 if (len != 0 && s[len] == '\n') 40 if (len != 0 && s[len] == '\n')
41 len--; 41 len--;
42#if ENABLE_PLATFORM_MINGW32
43 if (len != 0 && s[len] == '\r')
44 len--;
45#endif
42 } 46 }
43 47
44 for (i = 0; i < len; i++, len--) { 48 for (i = 0; i < len; i++, len--) {
@@ -99,14 +103,14 @@ int rev_main(int argc UNUSED_PARAM, char **argv)
99 /* Convert to wchar_t (might error out!) */ 103 /* Convert to wchar_t (might error out!) */
100 int len = mbstowcs(tmp, buf, bufsize); 104 int len = mbstowcs(tmp, buf, bufsize);
101 if (len >= 0) { 105 if (len >= 0) {
102 strrev(tmp, len); 106 bb_strrev(tmp, len);
103 /* Convert back to char */ 107 /* Convert back to char */
104 wcstombs(buf, tmp, bufsize); 108 wcstombs(buf, tmp, bufsize);
105 } 109 }
106 free(tmp); 110 free(tmp);
107 } 111 }
108#else 112#else
109 strrev(buf, strlen(buf)); 113 bb_strrev(buf, strlen(buf));
110#endif 114#endif
111 fputs(buf, stdout); 115 fputs(buf, stdout);
112 } 116 }