summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim J. Robbins <tjr@FreeBSD.org>2004-07-16 06:21:40 +0000
committerTim J. Robbins <tjr@FreeBSD.org>2004-07-16 06:21:40 +0000
commit507e8f1644e1cedddcd381cb9fa2fffa13c95bc1 (patch)
treee76326f4d4f4966b7f8c4658b910163a1524bd0e
parent794adb75eed596fe830ab96b1ccfee6b97bd3f3d (diff)
Notes
-rw-r--r--usr.bin/rev/rev.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/usr.bin/rev/rev.c b/usr.bin/rev/rev.c
index 6a48d5e7e35e..87c858712ff8 100644
--- a/usr.bin/rev/rev.c
+++ b/usr.bin/rev/rev.c
@@ -50,21 +50,26 @@ __FBSDID("$FreeBSD$");
#include <err.h>
#include <errno.h>
+#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <wchar.h>
void usage(void);
int
main(int argc, char *argv[])
{
- const char *filename, *p, *t;
+ const char *filename;
+ wchar_t *p, *t;
FILE *fp;
size_t len;
int ch, rval;
+ setlocale(LC_ALL, "");
+
while ((ch = getopt(argc, argv, "")) != -1)
switch(ch) {
case '?':
@@ -88,13 +93,13 @@ main(int argc, char *argv[])
}
filename = *argv++;
}
- while ((p = fgetln(fp, &len)) != NULL) {
+ while ((p = fgetwln(fp, &len)) != NULL) {
if (p[len - 1] == '\n')
--len;
t = p + len - 1;
for (t = p + len - 1; t >= p; --t)
- putchar(*t);
- putchar('\n');
+ putwchar(*t);
+ putwchar('\n');
}
if (ferror(fp)) {
warn("%s", filename);