diff --git a/include/irc_string.h b/include/irc_string.h index 9c93edac9..913c86844 100644 --- a/include/irc_string.h +++ b/include/irc_string.h @@ -98,8 +98,6 @@ char *strip_tabs(char *dest, const unsigned char *src, size_t len); #define EmptyString(x) ((x) == NULL || *(x) == '\0') #define CheckEmpty(x) EmptyString(x) ? "" : x -char *strtoken(char **save, char *str, const char *fs); - /* * character macros */ diff --git a/modules/core/m_join.c b/modules/core/m_join.c index 8e3f1a0fc..48c875263 100644 --- a/modules/core/m_join.c +++ b/modules/core/m_join.c @@ -148,7 +148,7 @@ m_join(struct Client *client_p, struct Client *source_p, int parc, const char *p * this code has a side effect of losing keys, but.. */ chanlist = LOCAL_COPY(parv[1]); - for(name = strtoken(&p, chanlist, ","); name; name = strtoken(&p, NULL, ",")) + for(name = rb_strtok_r(chanlist, ",", &p); name; name = rb_strtok_r(NULL, ",", &p)) { /* check the length and name of channel is ok */ if(!check_channel_name_loc(source_p, name) || (strlen(name) > LOC_CHANNELLEN)) @@ -210,11 +210,11 @@ m_join(struct Client *client_p, struct Client *source_p, int parc, const char *p if(parc > 2) { mykey = LOCAL_COPY(parv[2]); - key = strtoken(&p2, mykey, ","); + key = rb_strtok_r(mykey, ",", &p2); } - for(name = strtoken(&p, jbuf, ","); name; - key = (key) ? strtoken(&p2, NULL, ",") : NULL, name = strtoken(&p, NULL, ",")) + for(name = rb_strtok_r(jbuf, ",", &p); name; + key = (key) ? rb_strtok_r(NULL, ",", &p2) : NULL, name = rb_strtok_r(NULL, ",", &p)) { hook_data_channel_activity hook_info; diff --git a/modules/core/m_message.c b/modules/core/m_message.c index 7eb220618..f559719cc 100644 --- a/modules/core/m_message.c +++ b/modules/core/m_message.c @@ -250,7 +250,7 @@ build_target_list(int p_or_n, const char *command, struct Client *client_p, ntargets = 0; - for(nick = strtoken(&p, target_list, ","); nick; nick = strtoken(&p, NULL, ",")) + for(nick = rb_strtok_r(target_list, ",", &p); nick; nick = rb_strtok_r(NULL, ",", &p)) { char *with_prefix; /* diff --git a/modules/core/m_part.c b/modules/core/m_part.c index a098b6e4a..9e72ebc2d 100644 --- a/modules/core/m_part.c +++ b/modules/core/m_part.c @@ -73,7 +73,7 @@ m_part(struct Client *client_p, struct Client *source_p, int parc, const char *p if(parc > 2) rb_strlcpy(reason, parv[2], sizeof(reason)); - name = strtoken(&p, s, ","); + name = rb_strtok_r(s, ",", &p); /* Finish the flood grace period... */ if(MyClient(source_p) && !IsFloodDone(source_p)) @@ -84,7 +84,7 @@ m_part(struct Client *client_p, struct Client *source_p, int parc, const char *p while(name) { part_one_client(client_p, source_p, name, reason); - name = strtoken(&p, NULL, ","); + name = rb_strtok_r(NULL, ",", &p); } return 0; } diff --git a/modules/m_accept.c b/modules/m_accept.c index 15c733427..3af9c9eb9 100644 --- a/modules/m_accept.c +++ b/modules/m_accept.c @@ -76,7 +76,7 @@ m_accept(struct Client *client_p, struct Client *source_p, int parc, const char build_nicklist(source_p, addbuf, delbuf, parv[1]); /* parse the delete list */ - for (nick = strtoken(&p, delbuf, ","); nick != NULL; nick = strtoken(&p, NULL, ",")) + for (nick = rb_strtok_r(delbuf, ",", &p); nick != NULL; nick = rb_strtok_r(NULL, ",", &p)) { /* shouldnt happen, but lets be paranoid */ if((target_p = find_named_person(nick)) == NULL) @@ -102,7 +102,7 @@ m_accept(struct Client *client_p, struct Client *source_p, int parc, const char accept_num = rb_dlink_list_length(&source_p->localClient->allow_list); /* parse the add list */ - for (nick = strtoken(&p, addbuf, ","); nick; nick = strtoken(&p, NULL, ",")) + for (nick = rb_strtok_r(addbuf, ",", &p); nick; nick = rb_strtok_r(NULL, ",", &p), accept_num++) { /* shouldnt happen, but lets be paranoid */ if((target_p = find_named_person(nick)) == NULL) @@ -129,7 +129,6 @@ m_accept(struct Client *client_p, struct Client *source_p, int parc, const char /* why is this here? */ /* del_from accept(target_p, source_p); */ add_accept(source_p, target_p); - accept_num++; } return 0; @@ -160,7 +159,7 @@ build_nicklist(struct Client *source_p, char *addbuf, char *delbuf, const char * del = lenadd = lendel = 0; /* build list of clients to add into addbuf, clients to remove in delbuf */ - for (name = strtoken(&p, n, ","); name; name = strtoken(&p, NULL, ","), del = 0) + for (name = rb_strtok_r(n, ",", &p); name; name = rb_strtok_r(NULL, ",", &p), del = 0) { if(*name == '-') { diff --git a/modules/m_capab.c b/modules/m_capab.c index 89b4281bc..58901fb8d 100644 --- a/modules/m_capab.c +++ b/modules/m_capab.c @@ -84,7 +84,7 @@ mr_capab(struct Client *client_p, struct Client *source_p, int parc, const char for (i = 1; i < parc; i++) { char *t = LOCAL_COPY(parv[i]); - for (s = strtoken(&p, t, " "); s; s = strtoken(&p, NULL, " ")) + for (s = rb_strtok_r(t, " ", &p); s; s = rb_strtok_r(NULL, " ", &p)) { for (cap = captab; cap->name; cap++) { @@ -121,7 +121,7 @@ me_gcap(struct Client *client_p, struct Client *source_p, source_p->serv->fullcaps = rb_strdup(parv[1]); - for (s = strtoken(&p, t, " "); s; s = strtoken(&p, NULL, " ")) + for (s = rb_strtok_r(t, " ", &p); s; s = rb_strtok_r(NULL, " ", &p)) { for (cap = captab; cap->name; cap++) { diff --git a/modules/m_ison.c b/modules/m_ison.c index 67a0939da..bcd7d943d 100644 --- a/modules/m_ison.c +++ b/modules/m_ison.c @@ -86,7 +86,7 @@ m_ison(struct Client *client_p, struct Client *source_p, int parc, const char *p for (i = 1; i < parc; i++) { char *cs = LOCAL_COPY(parv[i]); - for (nick = strtoken(&p, cs, " "); nick; nick = strtoken(&p, NULL, " ")) + for (nick = rb_strtok_r(cs, " ", &p); nick; nick = rb_strtok_r(NULL, " ", &p)) { target_p = find_named_client(nick); diff --git a/modules/m_monitor.c b/modules/m_monitor.c index e64b94792..1193c69e2 100644 --- a/modules/m_monitor.c +++ b/modules/m_monitor.c @@ -73,7 +73,7 @@ add_monitor(struct Client *client_p, const char *nicks) tmp = LOCAL_COPY(nicks); - for(name = strtoken(&p, tmp, ","); name; name = strtoken(&p, NULL, ",")) + for(name = rb_strtok_r(tmp, ",", &p); name; name = rb_strtok_r(NULL, ",", &p)) { if(EmptyString(name) || strlen(name) > NICKLEN-1) continue; @@ -170,7 +170,7 @@ del_monitor(struct Client *client_p, const char *nicks) tmp = LOCAL_COPY(nicks); - for(name = strtoken(&p, tmp, ","); name; name = strtoken(&p, NULL, ",")) + for(name = rb_strtok_r(tmp, ",", &p); name; name = rb_strtok_r(NULL, ",", &p)) { if(EmptyString(name)) continue; diff --git a/src/irc_string.c b/src/irc_string.c index 1c773ac39..e550e1d5f 100644 --- a/src/irc_string.c +++ b/src/irc_string.c @@ -109,40 +109,6 @@ strip_tabs(char *dest, const unsigned char *src, size_t len) return dest; } -/* - * strtoken - walk through a string of tokens, using a set of separators - * argv 9/90 - * - */ -char * -strtoken(char **save, char *str, const char *fs) -{ - char *pos = *save; /* keep last position across calls */ - char *tmp; - - if(str) - pos = str; /* new string scan */ - - while(pos && *pos && strchr(fs, *pos) != NULL) - ++pos; /* skip leading separators */ - - if(!pos || !*pos) - return (pos = *save = NULL); /* string contains only sep's */ - - tmp = pos; /* now, keep position of the token */ - - while(*pos && strchr(fs, *pos) == NULL) - ++pos; /* skip content of the token */ - - if(*pos) - *pos++ = '\0'; /* remove first sep after the token */ - else - pos = NULL; /* end of string */ - - *save = pos; - return tmp; -} - char * strip_colour(char *string) {