* Fixed NPC_TALK message being displayed with EOL character attached (bugreport:4596, since r14270).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14535 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
459d8fd961
commit
9808dfb86b
@ -1,6 +1,7 @@
|
|||||||
Date Added
|
Date Added
|
||||||
|
|
||||||
2010/12/01
|
2010/12/01
|
||||||
|
* Fixed NPC_TALK message being displayed with EOL character attached (bugreport:4596, since r14270). [Ai4rei]
|
||||||
* Reverted change from r14533 and restored the 3rd field of mob_avail.txt being optional (bugreport:4599, since r14532). [Ai4rei]
|
* Reverted change from r14533 and restored the 3rd field of mob_avail.txt being optional (bugreport:4599, since r14532). [Ai4rei]
|
||||||
* Monster database reading now utilizes sv_readdb. [Ai4rei]
|
* Monster database reading now utilizes sv_readdb. [Ai4rei]
|
||||||
2010/11/30
|
2010/11/30
|
||||||
|
@ -3830,8 +3830,10 @@ static int mob_read_randommonster(void)
|
|||||||
*------------------------------------------*/
|
*------------------------------------------*/
|
||||||
static bool mob_parse_row_chatdb(char** str, const char* source, int line, int* last_msg_id)
|
static bool mob_parse_row_chatdb(char** str, const char* source, int line, int* last_msg_id)
|
||||||
{
|
{
|
||||||
|
char* msg;
|
||||||
struct mob_chat *ms;
|
struct mob_chat *ms;
|
||||||
int msg_id;
|
int msg_id;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
msg_id = atoi(str[0]);
|
msg_id = atoi(str[0]);
|
||||||
|
|
||||||
@ -3853,13 +3855,29 @@ static bool mob_parse_row_chatdb(char** str, const char* source, int line, int*
|
|||||||
//Color
|
//Color
|
||||||
ms->color=strtoul(str[1],NULL,0);
|
ms->color=strtoul(str[1],NULL,0);
|
||||||
//Message
|
//Message
|
||||||
if(strlen(str[2])>(CHAT_SIZE_MAX-1)){
|
msg = str[2];
|
||||||
|
len = strlen(msg);
|
||||||
|
|
||||||
|
while( len && ( msg[len-1]=='\r' || msg[len-1]=='\n' ) )
|
||||||
|
{// find EOL to strip
|
||||||
|
len--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(len>(CHAT_SIZE_MAX-1))
|
||||||
|
{
|
||||||
if (msg_id != *last_msg_id) {
|
if (msg_id != *last_msg_id) {
|
||||||
ShowError("mob_chat: readdb: Message too long! Line %d, id: %d\n", line, msg_id);
|
ShowError("mob_chat: readdb: Message too long! Line %d, id: %d\n", line, msg_id);
|
||||||
*last_msg_id = msg_id;
|
*last_msg_id = msg_id;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
else if( !len )
|
||||||
|
{
|
||||||
|
ShowWarning("mob_parse_row_chatdb: Empty message for id %d.\n", msg_id);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
msg[len] = 0; // strip previously found EOL
|
||||||
strncpy(ms->msg, str[2], CHAT_SIZE_MAX);
|
strncpy(ms->msg, str[2], CHAT_SIZE_MAX);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user