forked from pool/util-linux
33 lines
848 B
Diff
33 lines
848 B
Diff
|
From 418cb4b3bb7a61aec62ebe91194f7722ea608842 Mon Sep 17 00:00:00 2001
|
||
|
From: Karel Zak <kzak@redhat.com>
|
||
|
Date: Thu, 1 Aug 2013 16:41:50 +0200
|
||
|
Subject: [PATCH] more: guarantee space for multibyte
|
||
|
|
||
|
.. to make the code more robust.
|
||
|
|
||
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||
|
---
|
||
|
text-utils/more.c | 6 ++++++
|
||
|
1 file changed, 6 insertions(+)
|
||
|
|
||
|
diff --git a/text-utils/more.c b/text-utils/more.c
|
||
|
index 9af15b3..ac35acc 100644
|
||
|
--- a/text-utils/more.c
|
||
|
+++ b/text-utils/more.c
|
||
|
@@ -1030,6 +1030,12 @@ int get_line(register FILE *f, int *length)
|
||
|
|
||
|
if (column >= Mcol && fold_opt)
|
||
|
break;
|
||
|
+#ifdef HAVE_WIDECHAR
|
||
|
+ if (use_mbc_buffer_flag == 0 && p >= &Line[LineLen - 1 - 4])
|
||
|
+ /* don't read another char if there is no space for
|
||
|
+ * whole multibyte sequence */
|
||
|
+ break;
|
||
|
+#endif
|
||
|
c = Getc(f);
|
||
|
}
|
||
|
if (column >= Mcol && Mcol > 0) {
|
||
|
--
|
||
|
1.8.4
|
||
|
|