if(!strcasecmp(data,"describe tirashazor]"))  {  send_pm("%s %s", chat_name, "He calls me a 'bith'!.");  return;  }
void process_text_message(const char *data, int PM) {     int x=0,y=0,z=0;    char des_name[300];    char text[300];    /*//Get to the text    int len;    if((len=strlen(data))>40)len=40;    if(PM==0)    {        for(x=0;x < len && data[x] != ':';x++) {            if(x == len) return;//This was RPing...skip it        }    x+=4;    }        const char * in_text=(data+x);*/     if(debug>=3)log_info("PM: %s\n", data);                   int i=0;    //TEMP    if(PM==1)    {      if(!strncasecmp(data/*in_text*/,"describe",8) && data[8] != '\0' && data[9] != '\0' && data[10] != '\0')      {         log_info("Describing...");            if(!strcasecmp(data/*in_text*/,"describe me]"))        {            if(!strcasecmp(chat_name,"crusadingknight"))            {                send_pm("%s %s%s", chat_name, "You are my lord and master, ", chat_name);                return;            }            if(!strcasecmp(chat_name,"tirashazor"))            {                send_pm("%s %s%s %s", chat_name, "I won't describe you, ", chat_name, "bith :P");                return;            }            //Don't know player            send_pm("%s %s%s", chat_name, "I don't know how you are, ", chat_name);            return;        }        else        {            if(!strcasecmp(data/*in_text*/,"describe crusadingknight]"))            {                send_pm("%s %s", chat_name, "He is my lord and master.");                return;            }            if(!strcasecmp(data/*in_text*/,"describe tirashazor]"))            {                send_pm("%s %s", chat_name, "He calls me a 'bith'!.");                return;            }            //Don't know who to describe            //Somehow adds some NULL variables? --FIXME            strncpy(des_name,data+9,(strlen(data+9)-1));            strcpy(des_name+(strlen(data+9)-1), "\0");             send_pm("%s I don't know who \"%s\" is.", chat_name, des_name);            return;        }      }      if((!strncasecmp(data,"echo",4)) && data[4] != '\0' && data[5] != '\0' && data[6] != '\0') {          strncpy(text, data+5, (strlen(data+4))-1);          strcpy(text+(strlen(data+4)-2), "\0");           send_raw_text(text);          return;      }            if((!strncasecmp(data,"send",4)) && data[4] != '\0' && data[5] != '\0' && data[6] != '\0') {          int i = 5, j = 0;          char toname[30];          while(data[i] != ' ' && data[i] != '\0') {                toname[j++] = data[i++];          }                                                                                toname[j] = '\0';          i++;          strncpy(text, data+i, (strlen(data+4))-1);          strcat(text, "\0");           send_pm("%s %s", toname, text);          return;      }            if((!strncasecmp(data,"tell me a story", 15)) && story != -1) {          send_pm("%s I'm already telling a story", chat_name);          return;      }      if((!strncasecmp(data,"tell me a story", 15)) && story == -1) {          send_pm("%s I Know: Harvy&Grim (A Tale in the Desert), Trik (The Battle at the well)", chat_name);          return;      }      if((!strncasecmp(data,"tell me", 7)) && story == -1) {          init_story(data+8);          return;      }            if((!strncasecmp(data,"fortune", 7))) {          get_quote("fortune.dat", chat_name);          return;      }      //Shouldn't need this anymore      if((!strncasecmp(data, "skip", 4))){          story=14;          return;      }                     //Don't understand      //Somehow adds NULL some variables? --FIXME      strncpy(text,data,(strlen(data)-1));      strcpy(text+(strlen(data)-1), "\0");        send_pm("%s %s!?\0", chat_name,text);      send_pm_enhanced("Help - Commands:\n\"Tell me a story\" -> List stories.\n\\"Tell me <storyname>\" -> Tell story <storyname>.\n\"Describe <name>\" \Describe character <name>, if I know them.\n\"Fortune\" -> Read a random quote.\n\I'll be able to do more soon. :)", chat_name);    }    else    {        //in_text++;//Skip color character        if(!strcasecmp((data+x)/*in_text*/,"describe me"))        {            if(!strcasecmp(chat_name,"crusadingknight"))            {                send_raw_text("%s %s%s", chat_name, "You are my lord and master, ", chat_name);                return;            }                        send_raw_text("%s %s%s", chat_name, "I don't know how you are, ", chat_name);         }        else        {            if(!strcasecmp((data+x)/*in_text*/,"describe crusadingknight"))                send_raw_text("%s %s", chat_name, "He is my lord and master.");        }    return;    }        }