else { setverdict(fail, valueof(t_u1ch), "!=", valueof(t_u1)); }
}
+// Fixed indexing errors when the string only contained ASCII characters (HT70680)
+function f_changeUnichar(in universal charstring pl_char)
+return universal charstring
+{
+ log("lengthof(pl_char): ", lengthof(pl_char))
+ log("pl_char: ", pl_char); // garbage here
+ return pl_char;
+}
+
+function f_modifyUnichar(in universal charstring pl_str)
+return universal charstring
+{
+ var integer vl_size := lengthof(pl_str);
+ var universal charstring vl_tmp;
+
+ for (var integer vl_i := 0; vl_i < vl_size; vl_i := vl_i + 1)
+ {
+ log("pl_str[vl_i]: ", pl_str[vl_i])
+ vl_tmp := f_changeUnichar(pl_str[vl_i]);
+ log("vl_tmp: ", vl_tmp); // garbage here
+ pl_str[vl_i] := vl_tmp; // segmentation fault here
+ }
+
+ return pl_str;
+}
+
+testcase tc_indexing_HT70680() runs on empty
+{
+ // must contain only ASCII characters
+ var universal charstring v_str := "alma123";
+ var universal charstring v_res := f_modifyUnichar(v_str);
+ if (v_str == v_res) { setverdict(pass); }
+ else { setverdict(fail, "got: ", v_res, " expected: ", v_str); }
+}
+
control {
execute(tc_charstring_content());
//execute(tc_unichar_utf8_mp1());
//execute(tc_unichar_utf8_mp2());
execute(tc_unichar_utf8_template());
+ execute(tc_indexing_HT70680());
}
}