From ca033583a4cac43ed507be286ba3399895643406 Mon Sep 17 00:00:00 2001 From: Artem Grinev Date: Tue, 10 Nov 2020 01:47:07 +0300 Subject: [PATCH] Simplified logic a bit, made punctuation handling more correct --- src/modules/users/Config.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp index b0af2d5c8..37cd990d1 100644 --- a/src/modules/users/Config.cpp +++ b/src/modules/users/Config.cpp @@ -307,12 +307,15 @@ transliterate( const QString& input ) return input; } - auto transliterable = icu::UnicodeString( input.utf16() ); - + icu::UnicodeString transliterable( input.utf16() ); transliterator->transliterate( transliterable ); - return QString::fromUtf16( transliterable.getTerminatedBuffer() ); - +} +#else +static QString +transliterate( const QString& input ) +{ + return input; } #endif @@ -374,13 +377,8 @@ Config::setFullName( const QString& name ) // Build login and hostname, if needed static QRegExp rx( "[^a-zA-Z0-9 ]", Qt::CaseInsensitive ); -#ifdef HAVE_ICU - QString cleanName = transliterate(name); - cleanName.replace("'", ""); -#else - QString cleanName = name; -#endif - cleanName = CalamaresUtils::removeDiacritics( cleanName ).replace( rx, " " ).toLower().simplified(); + + QString cleanName = CalamaresUtils::removeDiacritics( transliterate( name ) ).replace( QRegExp( "[-']" ), "").replace( rx, " " ).toLower().simplified(); QStringList cleanParts = cleanName.split( ' ' );