mschorm / rpms / util-linux

Forked from rpms/util-linux 2 years ago
Clone
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);