Merge remote-tracking branch 'gordon-quad/master'

https://github.com/haavard/tox-weechat/pull/11
This commit is contained in:
Håvard Pettersson 2017-02-07 22:57:58 -08:00
commit 9928d0b8ed
17 changed files with 515 additions and 285 deletions

View file

@ -123,11 +123,18 @@ twc_get_status_message_nt(Tox *tox, int32_t friend_number)
char *
twc_get_peer_name_nt(Tox *tox, int32_t group_number, int32_t peer_number)
{
uint8_t name[TOX_MAX_NAME_LENGTH] = {0};
uint8_t name[TOX_MAX_NAME_LENGTH+1] = {0};
TOX_ERR_CONFERENCE_PEER_QUERY err = TOX_ERR_CONFERENCE_PEER_QUERY_OK;
int length = tox_group_peername(tox, group_number, peer_number, name);
if (length >= 0)
return twc_null_terminate(name, length);
int length = tox_conference_peer_get_name_size(tox, group_number, peer_number, &err);
if ((err == TOX_ERR_CONFERENCE_PEER_QUERY_OK) && (length <= TOX_MAX_NAME_LENGTH))
{
tox_conference_peer_get_name(tox, group_number, peer_number, name, &err);
if (err == TOX_ERR_CONFERENCE_PEER_QUERY_OK)
return twc_null_terminate(name, length);
else
return "<unknown>";
}
else
return "<unknown>";
}
@ -186,15 +193,10 @@ twc_uint32_reverse_bytes(uint32_t num)
}
/**
* Hash a Tox ID of size TOX_PUBLIC_KEY_SIZE bytes using a modified djb2 hash.
* Fit correct unicode string into max chars. Return number of bytes
*/
unsigned long long
twc_hash_tox_id(const uint8_t *tox_id)
int
twc_fit_utf8(const char *str, int max)
{
unsigned long long hash = 5381;
for (size_t i = 0; i < TOX_PUBLIC_KEY_SIZE; ++i)
hash ^= (hash << 5) + (hash >> 2) + tox_id[i];
return hash;
return weechat_utf8_real_pos(str, weechat_utf8_strnlen(str, max));
}