Make muc_nick return a const char* const

In the documentation of the `muc_nick` function we can read:

> The nickname is owned by the chat room and should not be modified or freed

We should reflect that in the return type and `strdup` the value for the
plugin API.

Fixes: https://github.com/profanity-im/profanity/issues/2013
This commit is contained in:
Hanspeter Portner
2025-01-19 13:21:31 +01:00
parent baddf2a8da
commit cb395b7c09
11 changed files with 23 additions and 18 deletions

View File

@@ -231,7 +231,8 @@ api_get_current_nick(void)
if (current->type == WIN_MUC) {
ProfMucWin* mucwin = (ProfMucWin*)current;
assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK);
return muc_nick(mucwin->roomjid);
const char* const nick = muc_nick(mucwin->roomjid);
return nick ? strdup(nick) : NULL;
} else {
return NULL;
}
@@ -286,7 +287,9 @@ api_current_win_is_console(void)
char*
api_get_room_nick(const char* barejid)
{
return muc_nick(barejid);
const char* const nick = muc_nick(barejid);
return nick ? strdup(nick) : NULL;
}
void