[geary/cherry-pick-904f08e3] Merge branch 'mjog/735-unicode-avatar-initials' into 'mainline'



commit 55ed9f57d3b2b4f48403cd4bd3a7db67078aeb82
Author: Michael Gratton <mike vee net>
Date:   Tue Mar 17 12:08:08 2020 +0000

    Merge branch 'mjog/735-unicode-avatar-initials' into 'mainline'
    
    Diacritics in avatar initials
    
    Closes #735
    
    See merge request GNOME/geary!443
    
    (cherry picked from commit 904f08e3fdd50e94daf947c8b0872e1c3b2f1cd7)
    
    cfa414f0 Util.Avatar::extract_initials_from_name: Don't strip diacritics
    ad6b58cf Util.Avatar::extract_initials_from_name: Trivial optimisation

 src/client/util/util-avatar.vala       | 6 +++---
 test/client/util/util-avatar-test.vala | 2 ++
 2 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/src/client/util/util-avatar.vala b/src/client/util/util-avatar.vala
index 01075160..a6cd3ee2 100644
--- a/src/client/util/util-avatar.vala
+++ b/src/client/util/util-avatar.vala
@@ -72,7 +72,7 @@ namespace Util.Avatar {
     }
 
     public string? extract_initials_from_name(string name) {
-        string normalized = name.strip().up().normalize();
+        string normalized = name.strip().normalize(-1, DEFAULT_COMPOSE);
         string? initials = null;
         if (normalized != "") {
             GLib.StringBuilder buf = new GLib.StringBuilder();
@@ -82,7 +82,7 @@ namespace Util.Avatar {
             // Get the first alphanumeric char of the string
             for (int i = 0; normalized.get_next_char(ref index, out c); i++) {
                 if (c.isalnum()) {
-                    buf.append_unichar(c);
+                    buf.append_unichar(c.toupper());
                     break;
                 }
             }
@@ -92,7 +92,7 @@ namespace Util.Avatar {
             if (index >= 0) {
                 for (int i = 0; normalized.get_next_char(ref index, out c); i++) {
                     if (c.isalnum()) {
-                        buf.append_unichar(c);
+                        buf.append_unichar(c.toupper());
                         break;
                     }
                 }
diff --git a/test/client/util/util-avatar-test.vala b/test/client/util/util-avatar-test.vala
index 6fe612c3..87f2e5b5 100644
--- a/test/client/util/util-avatar-test.vala
+++ b/test/client/util/util-avatar-test.vala
@@ -22,6 +22,8 @@ public class Util.Avatar.Test : TestCase {
         assert_string("AB", extract_initials_from_name("aardvark !baardvark"));
         assert_string("AC", extract_initials_from_name("aardvark baardvark !caardvark"));
 
+        assert_string("Ó", extract_initials_from_name("óvári"));
+
         assert_true(extract_initials_from_name("") == null);
         assert_true(extract_initials_from_name(" ") == null);
         assert_true(extract_initials_from_name("  ") == null);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]