Fix for bug introduced in multilingual motd's. Should fix Bug #16451 and #17054. Thank goes to pandaemonium for is help/fix of that issue.

This commit is contained in:
Pelish 2010-04-11 09:58:05 +00:00
parent 700ba62993
commit 27a1de3879
3 changed files with 9 additions and 7 deletions

View file

@ -39,6 +39,7 @@ Westwood Online games:
- Nox Quest v1.02b
- Emperor: Battle for Dune v1.09
- Renegade v1.037
- Lands of Lore 3 (autoupdate only)
-----
@ -56,7 +57,6 @@ anyone who can contribute to our project in any way.
Project homepages/distribution sites:
- project home and main distribution site: http://pvpgn.berlios.de
- alternate project home: http://www.pvpgn.org
- alternate distribution site: http://www.pvpgn.de
Support channels:

View file

@ -136,14 +136,13 @@ static void conn_send_welcome(t_connection * c)
def_langtag = std::strrchr(tempmotdfile,'-');
if (!def_langtag) {
extention = std::strrchr(tempmotdfile,'.');
lang_filename = (char*)xmalloc(std::strlen(tempmotdfile)+7);
}
else {
*def_langtag = '\0';
def_langtag++;
extention = std::strrchr(def_langtag,'.');
lang_filename = (char*)xmalloc(std::strlen(tempmotdfile));
}
lang_filename = (char*)xmalloc(std::strlen(tempmotdfile)+1+std::strlen(lang_str)+1+std::strlen(extention)+1);
if (extention) {
*extention = '\0';

View file

@ -1018,7 +1018,8 @@ static int _handle_joingame_command(t_connection * conn, int numparams, char **
gametype = game_get_type(game);
if ((conn_set_game(conn, gamename, gamepass, "", gametype, 0))<0) {
irc_send(conn,ERR_NOSUCHCHANNEL,":JOINGAME failed");
snprintf(_temp, sizeof(_temp), "%s :JOINGAME failed",e[0]);
irc_send(conn,ERR_GAMEHASCLOSED,_temp);
}
else {
/*conn_set_channel()*/
@ -1054,7 +1055,8 @@ static int _handle_joingame_command(t_connection * conn, int numparams, char **
irc_send_rpl_namreply(conn,channel);
}
else {
irc_send(conn,ERR_NOSUCHCHANNEL,":JOINGAME failed");
snprintf(_temp, sizeof(_temp), "%s :JOINGAME failed", e[0]);
irc_send(conn,ERR_GAMEHASCLOSED,_temp);
}
}
}
@ -1743,11 +1745,12 @@ static int _handle_rungsearch_command(t_connection * conn, int numparams, char *
if ((numparams>=4) && (params[0]) && (params[1]) && (params[3])) {
cl_tag = tag_sku_to_uint(std::atoi(params[3]));
if ((cl_tag != CLIENTTAG_TIBERNSUN_UINT) && (cl_tag != CLIENTTAG_REDALERT2_UINT)) {
if ((cl_tag != CLIENTTAG_TIBERNSUN_UINT) && (cl_tag != CLIENTTAG_TIBSUNXP_UINT)
&& (cl_tag != CLIENTTAG_REDALERT2_UINT) && (cl_tag != CLIENTTAG_YURISREV_UINT)) {
// PELISH: We are not supporting ladders for all WOL clients yet
std::strcat(data,"\r\n");
_ladder_send(conn,data);
DEBUG1("Wants rung search for SKU %s", params[0]);
DEBUG1("Wants rung search for SKU %s", params[3]);
return 0;
}