Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/commands.c @ 659:e61aa455c61b
MUC: Add "nickname" option variable
The nickname is now optional in the "/room join" command. The default
nickname is the "nickname" option value; if there is none, the jid username
is used.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sun, 08 Jan 2006 01:25:58 +0100 |
parents | d5db5be78eb0 |
children | 633a0522bd37 |
comparison
equal
deleted
inserted
replaced
658:5d71d1f8887e | 659:e61aa455c61b |
---|---|
1301 | 1301 |
1302 static void room_join(gpointer bud, char *arg) | 1302 static void room_join(gpointer bud, char *arg) |
1303 { | 1303 { |
1304 char **paramlst; | 1304 char **paramlst; |
1305 char *roomname, *nick; | 1305 char *roomname, *nick; |
1306 char *tmpnick = NULL; | |
1306 | 1307 |
1307 paramlst = split_arg(arg, 2, 0); // roomid, nickname | 1308 paramlst = split_arg(arg, 2, 0); // roomid, nickname |
1308 roomname = *paramlst; | 1309 roomname = *paramlst; |
1309 nick = *(paramlst+1); | 1310 nick = *(paramlst+1); |
1310 | 1311 |
1313 scr_LogPrint(LPRINT_NORMAL, "Invalid room name"); | 1314 scr_LogPrint(LPRINT_NORMAL, "Invalid room name"); |
1314 free_arg_lst(paramlst); | 1315 free_arg_lst(paramlst); |
1315 return; | 1316 return; |
1316 } | 1317 } |
1317 | 1318 |
1319 // If no nickname is provided with the /join command, | |
1320 // we try the "nickname" option, then the username part of the jid. | |
1321 if (!nick || !*nick) { | |
1322 nick = (char*)settings_opt_get("nickname"); | |
1323 if (!nick) { | |
1324 nick = (char*)settings_opt_get("username"); | |
1325 if (nick && (strchr(nick, '@') > nick)) { | |
1326 char *p; | |
1327 nick = tmpnick = g_strdup(nick); | |
1328 p = strchr(nick, '@'); | |
1329 *p = 0; | |
1330 } | |
1331 } | |
1332 } | |
1333 // If we still have no nickname, give up | |
1318 if (!nick || !*nick) { | 1334 if (!nick || !*nick) { |
1319 scr_LogPrint(LPRINT_NORMAL, "Missing parameter (nickname)"); | 1335 scr_LogPrint(LPRINT_NORMAL, "Missing parameter (nickname)"); |
1320 free_arg_lst(paramlst); | 1336 free_arg_lst(paramlst); |
1321 return; | 1337 return; |
1322 } | 1338 } |
1329 scr_LogPrint(LPRINT_LOGNORM, "Sent a join request to <%s>", roomname); | 1345 scr_LogPrint(LPRINT_LOGNORM, "Sent a join request to <%s>", roomname); |
1330 | 1346 |
1331 buddylist_build(); | 1347 buddylist_build(); |
1332 update_roster = TRUE; | 1348 update_roster = TRUE; |
1333 free_arg_lst(paramlst); | 1349 free_arg_lst(paramlst); |
1350 if (tmpnick) | |
1351 g_free(tmpnick); | |
1334 } | 1352 } |
1335 | 1353 |
1336 static void room_invite(gpointer bud, char *arg) | 1354 static void room_invite(gpointer bud, char *arg) |
1337 { | 1355 { |
1338 char **paramlst; | 1356 char **paramlst; |