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;