@elextr requested changes on this pull request.

Neat.

Its not perfect (eg Indic combining chars have class 0), but at least it should 
not result in invalid strings and the user can always override it with the 
preference.

> @@ -766,21 +766,47 @@ gchar *utils_get_date_time(const gchar *format, time_t 
> *time_to_use)
 }
 
 
+/* Extracts initials from @p name, with some Unicode support */
+GEANY_EXPORT_SYMBOL

If its exported it should be documented ?

>  gchar *utils_get_initials(const gchar *name)
 {
-       gint i = 1, j = 1;
-       gchar *initials = g_malloc0(5);
+       GString *initials;
+       gchar *composed;
+       gboolean at_bound = TRUE;
+       gboolean prev_matched = FALSE;
+
+       g_return_val_if_fail(name != NULL, NULL);
+
+       composed = g_utf8_normalize(name, -1, G_NORMALIZE_DEFAULT_COMPOSE);

I suspect it should be `G_NORMALIZE_ALL_COMPOSE` so composite characters get 
split and other compatibility transforms. (==NFKC?).

I am unsure if (for example) ligatures can occur as first letters of names, and 
if they do is the "initial" the ligature or the first letter of it?   Currently 
it selects the ligature as the "initial".  Anyway its not critical so long as 
the user can override it with the "initials" preference.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3846#pullrequestreview-2012843161
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany/pull/3846/review/[email protected]>

Reply via email to