diff options
| author | default <nobody@localhost> | 2025-02-15 06:00:19 +0100 |
|---|---|---|
| committer | default <nobody@localhost> | 2025-02-15 06:00:19 +0100 |
| commit | f0f93b84bec5373f9c6567b7b415ea77ca0bd064 (patch) | |
| tree | 5f653f221f9ebaacb7c50e3cd60b0147b45c0c13 /data.c | |
| parent | d8ae88e779d8d27868c5357424132eab48bf18a5 (diff) | |
Optimized lang_str().
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 19 |
1 files changed, 6 insertions, 13 deletions
@@ -4072,21 +4072,14 @@ void badlogin_inc(const char *user, const char *addr) const char *lang_str(const char *str, const snac *user) /* returns a translated string */ { - if (user && xs_is_string(str) && xs_is_dict(srv_langs)) { - /* get user preference */ - const char *lang = xs_dict_get(user->config, "lang"); + const char *n_str = str; - if (xs_is_string(lang)) { - const xs_dict *strs = xs_dict_get(srv_langs, lang); + if (user && xs_is_dict(user->lang) && xs_is_string(str)) { + n_str = xs_dict_get(user->lang, str); - if (xs_is_dict(strs)) { - const char *n_str = xs_dict_get(strs, str); - - if (xs_is_string(n_str)) - str = n_str; - } - } + if (xs_is_null(n_str) || *n_str == '\0') + n_str = str; } - return str; + return n_str; } |