summaryrefslogtreecommitdiff
path: root/lang/gnu-apl/files/patch-src_Quad__CR.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lang/gnu-apl/files/patch-src_Quad__CR.cc')
-rw-r--r--lang/gnu-apl/files/patch-src_Quad__CR.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/lang/gnu-apl/files/patch-src_Quad__CR.cc b/lang/gnu-apl/files/patch-src_Quad__CR.cc
new file mode 100644
index 000000000000..27a38ea92961
--- /dev/null
+++ b/lang/gnu-apl/files/patch-src_Quad__CR.cc
@@ -0,0 +1,27 @@
+--- src/Quad_CR.cc.orig 2019-06-23 12:39:20 UTC
++++ src/Quad_CR.cc
+@@ -1041,17 +1041,15 @@ Value_P Z(utf, LOC);
+ Value_P
+ Quad_CR::do_CR19(const Value & B)
+ {
+-UTF8_string utf(B);
+- for (size_t l = 0; l < utf.size();)
+- {
+- int len = 0;
+- const Unicode uni = UTF8_string::toUni(&utf[l], len, false);
+- if (uni == Invalid_Unicode) DOMAIN_ERROR;
++ if (B.get_rank() > 1) RANK_ERROR;
++const ShapeItem len_B = B.element_count();
+
+- l += len;
+- }
++UTF8 bytes_utf[len_B + 10];
++ loop(b, len_B) bytes_utf[b] = B.get_ravel(b).get_byte_value();
++ bytes_utf[len_B] = 0;
+
+-UCS_string ucs(utf);
++const UTF8_string utf(bytes_utf, len_B);
++const UCS_string ucs(utf);
+ Value_P Z(ucs, LOC);
+ return Z;
+ }