The attached patch changes string_rep_compatible so that when called
with utf8_encoding and iso_8859_1_encoding returns utf8. Looks that this
solves the problem and breaks nothing.
Index: src/string.c
===================================================================
--- src/string.c (revisión: 28527)
+++ src/string.c (copia de trabajo)
@@ -397,7 +397,8 @@
/* a table could possibly simplify the logic */
if (a->encoding == Parrot_utf8_encoding_ptr &&
- b->charset == Parrot_ascii_charset_ptr) {
+ (b->charset == Parrot_ascii_charset_ptr ||
+ b->charset == Parrot_iso_8859_1_charset_ptr)) {
if (a->strlen == a->bufused) {
*e = Parrot_fixed_8_encoding_ptr;
return Parrot_ascii_charset_ptr;
@@ -406,7 +407,8 @@
return a->charset;
}
if (b->encoding == Parrot_utf8_encoding_ptr &&
- a->charset == Parrot_ascii_charset_ptr) {
+ (a->charset == Parrot_ascii_charset_ptr ||
+ a->charset == Parrot_iso_8859_1_charset_ptr)) {
if (b->strlen == b->bufused) {
*e = Parrot_fixed_8_encoding_ptr;
return a->charset;