diff options
Diffstat (limited to 'lang/gnu-apl/files/patch-src_Quad__CR.cc')
-rw-r--r-- | lang/gnu-apl/files/patch-src_Quad__CR.cc | 27 |
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; + } |