Merge pull request #2014 from ventosus/issue#2013

Make `muc_nick` return a `const char* const`
This commit is contained in:
Michael Vetter
2025-01-26 18:54:17 +01:00
committed by GitHub
11 changed files with 23 additions and 18 deletions

View File

@@ -307,7 +307,7 @@ void
groupchat_log_msg_out(const gchar* const room, const gchar* const msg) groupchat_log_msg_out(const gchar* const room, const gchar* const msg)
{ {
if (prefs_get_boolean(PREF_GRLOG)) { if (prefs_get_boolean(PREF_GRLOG)) {
char* mynick = muc_nick(room); const char* const mynick = muc_nick(room);
_groupchat_log_chat(connection_get_barejid(), room, mynick, msg); _groupchat_log_chat(connection_get_barejid(), room, mynick, msg);
} }
} }
@@ -326,7 +326,7 @@ groupchat_log_omemo_msg_out(const gchar* const room, const gchar* const msg)
if (prefs_get_boolean(PREF_CHLOG)) { if (prefs_get_boolean(PREF_CHLOG)) {
const char* mybarejid = connection_get_barejid(); const char* mybarejid = connection_get_barejid();
auto_gchar gchar* pref_omemo_log = prefs_get_string(PREF_OMEMO_LOG); auto_gchar gchar* pref_omemo_log = prefs_get_string(PREF_OMEMO_LOG);
char* mynick = muc_nick(room); const char* const mynick = muc_nick(room);
if (strcmp(pref_omemo_log, "on") == 0) { if (strcmp(pref_omemo_log, "on") == 0) {
_groupchat_log_chat(mybarejid, room, mynick, msg); _groupchat_log_chat(mybarejid, room, mynick, msg);

View File

@@ -4633,7 +4633,7 @@ cmd_bookmark(ProfWin* window, const char* const command, gchar** args)
// default to current nickname, password, and autojoin "on" // default to current nickname, password, and autojoin "on"
ProfMucWin* mucwin = (ProfMucWin*)window; ProfMucWin* mucwin = (ProfMucWin*)window;
assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK);
char* nick = muc_nick(mucwin->roomjid); const char* const nick = muc_nick(mucwin->roomjid);
char* password = muc_password(mucwin->roomjid); char* password = muc_password(mucwin->roomjid);
gboolean added = bookmark_add(mucwin->roomjid, nick, password, "on", NULL); gboolean added = bookmark_add(mucwin->roomjid, nick, password, "on", NULL);
if (added) { if (added) {

View File

@@ -114,7 +114,7 @@ sv_ev_login_account_success(char* account_name, gboolean secured)
GList* curr = rooms; GList* curr = rooms;
while (curr) { while (curr) {
char* password = muc_password(curr->data); char* password = muc_password(curr->data);
char* nick = muc_nick(curr->data); const char* const nick = muc_nick(curr->data);
presence_join_room(curr->data, nick, password); presence_join_room(curr->data, nick, password);
curr = g_list_next(curr); curr = g_list_next(curr);
} }
@@ -336,7 +336,7 @@ sv_ev_room_message(ProfMessage* message)
return; return;
} }
char* mynick = muc_nick(mucwin->roomjid); const char* const mynick = muc_nick(mucwin->roomjid);
// only log message not coming from this client (but maybe same account, different client) // only log message not coming from this client (but maybe same account, different client)
// our messages are logged when outgoing // our messages are logged when outgoing

View File

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

View File

@@ -435,7 +435,9 @@ python_api_get_current_nick(PyObject* self, PyObject* args)
char* nick = api_get_current_nick(); char* nick = api_get_current_nick();
disable_python_threads(); disable_python_threads();
if (nick) { if (nick) {
return Py_BuildValue("s", nick); PyObject* obj = Py_BuildValue("s", nick);
free(nick);
return obj;
} else { } else {
Py_RETURN_NONE; Py_RETURN_NONE;
} }

View File

@@ -778,7 +778,7 @@ ui_room_join(const char* const roomjid, gboolean focus)
} }
ProfWin* window = (ProfWin*)mucwin; ProfWin* window = (ProfWin*)mucwin;
char* nick = muc_nick(roomjid); const char* const nick = muc_nick(roomjid);
win_print(window, THEME_ROOMINFO, "!", "-> You have joined the room as %s", nick); win_print(window, THEME_ROOMINFO, "!", "-> You have joined the room as %s", nick);
if (prefs_get_boolean(PREF_MUC_PRIVILEGES)) { if (prefs_get_boolean(PREF_MUC_PRIVILEGES)) {
char* role = muc_role_str(roomjid); char* role = muc_role_str(roomjid);

View File

@@ -368,7 +368,7 @@ mucwin_history(ProfMucWin* mucwin, const ProfMessage* const message)
assert(mucwin != NULL); assert(mucwin != NULL);
char* nick = message->from_jid->resourcepart; char* nick = message->from_jid->resourcepart;
char* mynick = muc_nick(mucwin->roomjid); const char* const mynick = muc_nick(mucwin->roomjid);
GSList* mentions = get_mentions(prefs_get_boolean(PREF_NOTIFY_MENTION_WHOLE_WORD), prefs_get_boolean(PREF_NOTIFY_MENTION_CASE_SENSITIVE), message->plain, mynick); GSList* mentions = get_mentions(prefs_get_boolean(PREF_NOTIFY_MENTION_WHOLE_WORD), prefs_get_boolean(PREF_NOTIFY_MENTION_CASE_SENSITIVE), message->plain, mynick);
GList* triggers = prefs_message_get_triggers(message->plain); GList* triggers = prefs_message_get_triggers(message->plain);
@@ -512,7 +512,7 @@ mucwin_outgoing_msg(ProfMucWin* mucwin, const char* const message, const char* c
assert(mucwin != NULL); assert(mucwin != NULL);
ProfWin* window = (ProfWin*)mucwin; ProfWin* window = (ProfWin*)mucwin;
char* mynick = muc_nick(mucwin->roomjid); const char* const mynick = muc_nick(mucwin->roomjid);
// displayed message char // displayed message char
auto_char char* ch = get_enc_char(enc_mode, mucwin->message_char); auto_char char* ch = get_enc_char(enc_mode, mucwin->message_char);
@@ -548,7 +548,7 @@ mucwin_incoming_msg(ProfMucWin* mucwin, const ProfMessage* const message, GSList
} }
ProfWin* window = (ProfWin*)mucwin; ProfWin* window = (ProfWin*)mucwin;
char* mynick = muc_nick(mucwin->roomjid); const char* const mynick = muc_nick(mucwin->roomjid);
auto_char char* ch = get_enc_char(message->enc, mucwin->message_char); auto_char char* ch = get_enc_char(message->enc, mucwin->message_char);

View File

@@ -426,7 +426,7 @@ muc_rooms(void)
* Return current users nickname for the specified room * Return current users nickname for the specified room
* The nickname is owned by the chat room and should not be modified or freed * The nickname is owned by the chat room and should not be modified or freed
*/ */
char* const char* const
muc_nick(const char* const room) muc_nick(const char* const room)
{ {
ChatRoom* chat_room = g_hash_table_lookup(rooms, room); ChatRoom* chat_room = g_hash_table_lookup(rooms, room);

View File

@@ -94,7 +94,7 @@ GList* muc_rooms(void);
void muc_set_features(const char* const room, GSList* features); void muc_set_features(const char* const room, GSList* features);
char* muc_nick(const char* const room); const char* const muc_nick(const char* const room);
char* muc_password(const char* const room); char* muc_password(const char* const room);
void muc_nick_change_start(const char* const room, const char* const new_nick); void muc_nick_change_start(const char* const room, const char* const new_nick);

View File

@@ -259,7 +259,7 @@ _send_room_presence(xmpp_stanza_t* presence)
GList* curr = rooms; GList* curr = rooms;
while (curr) { while (curr) {
const char* room = curr->data; const char* room = curr->data;
const char* nick = muc_nick(room); const char* const nick = muc_nick(room);
if (nick) { if (nick) {
auto_char char* full_room_jid = create_fulljid(room, nick); auto_char char* full_room_jid = create_fulljid(room, nick);
@@ -327,7 +327,7 @@ presence_leave_chat_room(const char* const room_jid)
{ {
assert(room_jid != NULL); assert(room_jid != NULL);
char* nick = muc_nick(room_jid); const char* const nick = muc_nick(room_jid);
if (!nick) { if (!nick) {
log_error("Could not get nickname for room: %s", room_jid); log_error("Could not get nickname for room: %s", room_jid);
return; return;

View File

@@ -1384,7 +1384,7 @@ stanza_is_muc_self_presence(xmpp_stanza_t* const stanza,
if (from) { if (from) {
auto_jid Jid* from_jid = jid_create(from); auto_jid Jid* from_jid = jid_create(from);
if (muc_active(from_jid->barejid)) { if (muc_active(from_jid->barejid)) {
char* nick = muc_nick(from_jid->barejid); const char* const nick = muc_nick(from_jid->barejid);
if (g_strcmp0(from_jid->resourcepart, nick) == 0) { if (g_strcmp0(from_jid->resourcepart, nick) == 0) {
return TRUE; return TRUE;
} }
@@ -1394,7 +1394,7 @@ stanza_is_muc_self_presence(xmpp_stanza_t* const stanza,
if (muc_nick_change_pending(from_jid->barejid)) { if (muc_nick_change_pending(from_jid->barejid)) {
char* new_nick = from_jid->resourcepart; char* new_nick = from_jid->resourcepart;
if (new_nick) { if (new_nick) {
char* nick = muc_nick(from_jid->barejid); const char* const nick = muc_nick(from_jid->barejid);
char* old_nick = muc_old_nick(from_jid->barejid, new_nick); char* old_nick = muc_old_nick(from_jid->barejid, new_nick);
if (g_strcmp0(old_nick, nick) == 0) { if (g_strcmp0(old_nick, nick) == 0) {
return TRUE; return TRUE;