From e8348213482d63498b783983978ab2754bc6e6fd Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Sun, 8 Dec 2013 01:18:10 -0500 Subject: [PATCH] replace name_compare with lib function --- src/friendlist.c | 2 +- src/groupchat.c | 2 +- src/misc_tools.c | 21 +++------------------ src/misc_tools.h | 4 ++-- 4 files changed, 7 insertions(+), 22 deletions(-) diff --git a/src/friendlist.c b/src/friendlist.c index 97b2d6d..2aba91d 100644 --- a/src/friendlist.c +++ b/src/friendlist.c @@ -28,7 +28,7 @@ static int friendlist_index[MAX_FRIENDS_NUM] = {0}; static int index_name_cmp(const void *n1, const void *n2) { - int res = name_compare(friends[*(int *) n1].name, friends[*(int *) n2].name); + int res = qsort_strcasecmp_hlpr(friends[*(int *) n1].name, friends[*(int *) n2].name); int k = 100; /* Use weight to make qsort always put online friends before offline */ diff --git a/src/groupchat.c b/src/groupchat.c index c680ecc..b3a614c 100644 --- a/src/groupchat.c +++ b/src/groupchat.c @@ -190,7 +190,7 @@ static void groupchat_onGroupNamelistChange(ToxWindow *self, Tox *m, int groupnu uint8_t peername[TOX_MAX_NAME_LENGTH] = {0}; memcpy(peername, &groupchats[groupnum].peer_names[peernum*TOX_MAX_NAME_LENGTH], sizeof(peername)); - qsort(groupchats[groupnum].peer_names, groupchats[groupnum].num_peers, TOX_MAX_NAME_LENGTH, name_compare); + qsort(groupchats[groupnum].peer_names, groupchats[groupnum].num_peers, TOX_MAX_NAME_LENGTH, qsort_strcasecmp_hlpr); ChatContext *ctx = self->chatwin; print_time(ctx->history); diff --git a/src/misc_tools.c b/src/misc_tools.c index 4caf7b4..7312c07 100644 --- a/src/misc_tools.c +++ b/src/misc_tools.c @@ -158,25 +158,10 @@ void alert_window(ToxWindow *self, int type, bool is_beep) beep(); } -/* case-insensitive string compare function for use with qsort - same return logic as strcmp */ -int name_compare(const void *nick1, const void *nick2) +/* case-insensitive string compare function for use with qsort */ +int qsort_strcasecmp_hlpr(const void *nick1, const void *nick2) { - char s[TOX_MAX_NAME_LENGTH]; - char t[TOX_MAX_NAME_LENGTH]; - strcpy(s, (const char *) nick1); - strcpy(t, (const char *) nick2); - - int i; - - for (i = 0; s[i] && t[i]; ++i) { - s[i] = tolower(s[i]); - t[i] = tolower(t[i]); - - if (s[i] != t[i]) - break; - } - - return s[i] - t[i]; + return strcasecmp((const char *) nick1, (const char *) nick2); } /* Returns true if nick is valid. A valid toxic nick: diff --git a/src/misc_tools.h b/src/misc_tools.h index 6963a94..d636287 100644 --- a/src/misc_tools.h +++ b/src/misc_tools.h @@ -35,8 +35,8 @@ bool timed_out(uint64_t timestamp, uint64_t timeout, uint64_t curtime); /* Colours the window tab according to type. Beeps if is_beep is true */ void alert_window(ToxWindow *self, int type, bool is_beep); -/* case-insensitive string compare function for use with qsort - same return logic as strcmp */ -int name_compare(const void *nick1, const void *nick2); +/* case-insensitive string compare function for use with qsort */ +int qsort_strcasecmp_hlpr(const void *nick1, const void *nick2); /* Returns true if nick is valid. A valid toxic nick: - cannot be empty