aboutsummaryrefslogtreecommitdiffstats
path: root/nick.c
diff options
context:
space:
mode:
authordequis <dx@dxzone.com.ar>2016-12-24 01:56:45 -0300
committerdequis <dx@dxzone.com.ar>2016-12-25 21:18:55 -0300
commit90254d0d6daa664707503f5c909198aefdc1151c (patch)
treeee200e261a20d92cbbaddcb6b851c9051a27c3c6 /nick.c
parent0483e1e6e3954787058aff78223cb758f0074f2d (diff)
Add nick_lowercase and nick_underscores settings
Diffstat (limited to 'nick.c')
-rw-r--r--nick.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/nick.c b/nick.c
index 9c47c2fe..f782aea2 100644
--- a/nick.c
+++ b/nick.c
@@ -93,7 +93,7 @@ char *nick_get(bee_user_t *bu)
}
nick_strip(irc, nick);
- if (set_getbool(&bu->bee->set, "lcnicks")) {
+ if (set_getbool(&bu->bee->set, "nick_lowercase")) {
nick_lc(irc, nick);
}
}
@@ -214,6 +214,11 @@ char *nick_gen(bee_user_t *bu)
rets = g_string_free(ret, FALSE);
if (ok && rets && *rets) {
nick_strip(irc, rets);
+
+ if (set_getbool(&bu->bee->set, "nick_lowercase")) {
+ nick_lc(irc, rets);
+ }
+
truncate_utf8(rets, MAX_NICK_LENGTH);
return rets;
}
@@ -287,6 +292,7 @@ void nick_del(bee_user_t *bu)
void nick_strip(irc_t *irc, char *nick)
{
int len = 0;
+ gboolean nick_underscores = set_getbool(&irc->b->set, "nick_underscores");
if (irc && (irc->status & IRC_UTF8_NICKS)) {
gunichar c;
@@ -296,8 +302,11 @@ void nick_strip(irc_t *irc, char *nick)
c = g_utf8_get_char_validated(p, -1);
n = g_utf8_find_next_char(p, NULL);
- if ((c < 0x7f && !(strchr(nick_lc_chars, c) ||
- strchr(nick_uc_chars, c))) ||
+ if (nick_underscores && c == ' ') {
+ *p = '_';
+ p = n;
+ } else if ((c < 0x7f && !(strchr(nick_lc_chars, c) ||
+ strchr(nick_uc_chars, c))) ||
!g_unichar_isgraph(c)) {
strcpy(tmp, n);
strcpy(p, tmp);
@@ -312,7 +321,10 @@ void nick_strip(irc_t *irc, char *nick)
int i;
for (i = len = 0; nick[i] && len < MAX_NICK_LENGTH; i++) {
- if (strchr(nick_lc_chars, nick[i]) ||
+ if (nick_underscores && nick[i] == ' ') {
+ nick[len] = '_';
+ len++;
+ } else if (strchr(nick_lc_chars, nick[i]) ||
strchr(nick_uc_chars, nick[i])) {
nick[len] = nick[i];
len++;