Blame util-linux-2.11y-multibyte.patch
|
cvsdist |
67c2933 |
--- util-linux-2.11y/text-utils/more.c.multibyte 2003-02-03 16:22:32.000000000 +0000
|
|
cvsdist |
67c2933 |
+++ util-linux-2.11y/text-utils/more.c 2003-02-03 17:03:45.000000000 +0000
|
|
cvsdist |
67c2933 |
@@ -1163,7 +1163,23 @@
|
|
cvsdist |
67c2933 |
my_putstring(state ? ULenter : ULexit);
|
|
cvsdist |
67c2933 |
}
|
|
cvsdist |
67c2933 |
if (c != ' ' || pstate == 0 || state != 0 || ulglitch == 0)
|
|
cvsdist |
67c2933 |
+#ifdef ENABLE_WIDECHAR
|
|
cvsdist |
67c2933 |
+ {
|
|
cvsdist |
67c2933 |
+ wchar_t wc;
|
|
cvsdist |
67c2933 |
+ size_t mblength;
|
|
cvsdist |
67c2933 |
+ mbstate_t state;
|
|
cvsdist |
67c2933 |
+ memset (&state, '\0', sizeof (mbstate_t));
|
|
cvsdist |
67c2933 |
+ s--; n++;
|
|
cvsdist |
67c2933 |
+ mblength = mbrtowc (&wc, s, n, &state);
|
|
cvsdist |
67c2933 |
+ if (mblength == (size_t) -2 || mblength == (size_t) -1)
|
|
cvsdist |
67c2933 |
+ mblength = 1;
|
|
cvsdist |
67c2933 |
+ while (mblength--)
|
|
cvsdist |
67c2933 |
+ putchar (*s++);
|
|
cvsdist |
67c2933 |
+ n += mblength;
|
|
cvsdist |
67c2933 |
+ }
|
|
cvsdist |
67c2933 |
+#else
|
|
cvsdist |
67c2933 |
putchar(c);
|
|
cvsdist |
67c2933 |
+#endif /* ENABLE_WIDECHAR */
|
|
cvsdist |
67c2933 |
if (state && *chUL) {
|
|
cvsdist |
67c2933 |
pr(chBS);
|
|
cvsdist |
67c2933 |
my_putstring(chUL);
|