/* ** m_part ** parv[0] = sender prefix ** parv[1] = channel ** parv[2] = reason */ static void m_part(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) { char *p, *name; char reason[TOPICLEN + 1]; if(EmptyString(parv[1])) { sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "PART"); return; } reason[0] = '\0'; if(parc > 2) strlcpy(reason, parv[2], sizeof(reason)); name = strtoken(&p, parv[1], ","); /* Finish the flood grace period... */ if(MyClient(source_p) && !IsFloodDone(source_p)) flood_endgrace(source_p); while (name) { part_one_client(client_p, source_p, name, reason); name = strtoken(&p, (char *) NULL, ","); } return; }
/* ** m_part ** parv[0] = sender prefix ** parv[1] = channel ** parv[2] = reason */ static int m_part(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) { char *p, *name; char reason[REASONLEN + 1]; char *s = LOCAL_COPY(parv[1]); reason[0] = '\0'; if(parc > 2) strlcpy(reason, parv[2], sizeof(reason)); name = strtoken(&p, s, ","); /* Finish the flood grace period... */ if(MyClient(source_p) && !IsFloodDone(source_p)) flood_endgrace(source_p); while (name) { part_one_client(client_p, source_p, name, reason); name = strtoken(&p, NULL, ","); } return 0; }
/* ** m_part ** parv[0] = sender prefix ** parv[1] = channel ** parv[2] = reason */ static void m_part(struct Client *client_p, struct Client *source_p, int parc, char *parv[]) { char *p = NULL, *name = NULL; char reason[KICKLEN + 1] = { '\0' }; if (IsServer(source_p)) return; if (EmptyString(parv[1])) { sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "PART"); return; } if (parc > 2 && !EmptyString(parv[2])) strlcpy(reason, parv[2], sizeof(reason)); /* Finish the flood grace period... */ if (MyClient(source_p) && !IsFloodDone(source_p)) flood_endgrace(source_p); for (name = strtoken(&p, parv[1], ","); name; name = strtoken(&p, NULL, ",")) part_one_client(source_p, name, reason); }
/* ** m_part ** parv[0] = sender prefix ** parv[1] = channel ** parv[2] = reason */ static int m_part(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) { char *p, *name; char *reason = NULL; char *s = LOCAL_COPY(parv[1]); if(parc > 2) reason = LOCAL_COPY_N(parv[2], REASONLEN); name = rb_strtok_r(s, ",", &p); /* Finish the flood grace period... */ if(MyClient(source_p) && !IsFloodDone(source_p)) flood_endgrace(source_p); while(name) { part_one_client(client_p, source_p, name, reason); name = rb_strtok_r(NULL, ",", &p); } return 0; }