summaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
authorGravatar default2025-02-15 06:00:19 +0100
committerGravatar default2025-02-15 06:00:19 +0100
commitf0f93b84bec5373f9c6567b7b415ea77ca0bd064 (patch)
tree5f653f221f9ebaacb7c50e3cd60b0147b45c0c13 /data.c
parentSome message tweaks. (diff)
downloadpenes-snac2-f0f93b84bec5373f9c6567b7b415ea77ca0bd064.tar.gz
penes-snac2-f0f93b84bec5373f9c6567b7b415ea77ca0bd064.tar.xz
penes-snac2-f0f93b84bec5373f9c6567b7b415ea77ca0bd064.zip
Optimized lang_str().
Diffstat (limited to 'data.c')
-rw-r--r--data.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/data.c b/data.c
index f935b39..4308aa5 100644
--- a/data.c
+++ b/data.c
@@ -4072,21 +4072,14 @@ void badlogin_inc(const char *user, const char *addr)
4072const char *lang_str(const char *str, const snac *user) 4072const char *lang_str(const char *str, const snac *user)
4073/* returns a translated string */ 4073/* returns a translated string */
4074{ 4074{
4075 if (user && xs_is_string(str) && xs_is_dict(srv_langs)) { 4075 const char *n_str = str;
4076 /* get user preference */
4077 const char *lang = xs_dict_get(user->config, "lang");
4078 4076
4079 if (xs_is_string(lang)) { 4077 if (user && xs_is_dict(user->lang) && xs_is_string(str)) {
4080 const xs_dict *strs = xs_dict_get(srv_langs, lang); 4078 n_str = xs_dict_get(user->lang, str);
4081 4079
4082 if (xs_is_dict(strs)) { 4080 if (xs_is_null(n_str) || *n_str == '\0')
4083 const char *n_str = xs_dict_get(strs, str); 4081 n_str = str;
4084
4085 if (xs_is_string(n_str))
4086 str = n_str;
4087 }
4088 }
4089 } 4082 }
4090 4083
4091 return str; 4084 return n_str;
4092} 4085}