X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Futf8.c;h=255383051ba010d5939bf3d5dc678af4e5bcbb70;hb=4c0a7a9cb02f9904c2e890f77ff8ce3a6beb25f4;hp=be5bcb0788176a22bc884502fda86a9ad2a5a27d;hpb=9427e87923288dfe6fdf80011f77bf4a135898ac;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/utf8.c b/src/src/utf8.c index be5bcb078..255383051 100644 --- a/src/src/utf8.c +++ b/src/src/utf8.c @@ -52,6 +52,10 @@ uschar * s1, * s; int rc; #ifdef SUPPORT_I18N_2008 +/* Avoid lowercasing plain-ascii domains */ +if (!string_is_utf8(utf8)) + return string_copy(utf8); + /* Only lowercase is accepted by the library call. A pity since we lose any mixed-case annotation. This does not really matter for a domain. */ { @@ -94,6 +98,7 @@ string_domain_alabel_to_utf8(const uschar * alabel, uschar ** err) const uschar * label; int sep = '.'; uschar * s = NULL; +int size = 0, len = 0; while (label = string_nextinlist(&alabel, &sep, NULL, 0)) if ( string_is_alabel(label) @@ -101,7 +106,7 @@ while (label = string_nextinlist(&alabel, &sep, NULL, 0)) ) return NULL; else - s = string_append_listele(s, '.', label); + s = string_append_listele(s, &size, &len, '.', label); return s; #else @@ -198,7 +203,7 @@ return NULL; /* Whole address conversion. The *err string pointer should be null before the call. -Return NULL on oeeror, with (optional) errstring pointer filled in +Return NULL on error, with (optional) errstring pointer filled in */ uschar *