clean up some code duplication when checking nicks for validity
This commit is contained in:
parent
7233e364cc
commit
72dee03d50
3 changed files with 24 additions and 44 deletions
|
@ -74,7 +74,6 @@ static void hurt_destroy(void *hurt);
|
|||
|
||||
static int heal_nick(struct Client *, struct Client *);
|
||||
|
||||
static int nick_is_valid(const char *);
|
||||
/* }}} */
|
||||
|
||||
/* {{{ State containers */
|
||||
|
@ -312,7 +311,7 @@ mo_heal(struct Client *client_p, struct Client *source_p,
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (nick_is_valid(parv[1]))
|
||||
if (is_valid_nick(parv[1]))
|
||||
{
|
||||
target_p = find_named_person(parv[1]);
|
||||
if (target_p == NULL)
|
||||
|
@ -364,7 +363,7 @@ me_heal(struct Client *client_p, struct Client *source_p,
|
|||
if (parc < 2)
|
||||
return 0;
|
||||
|
||||
if (nick_is_valid(parv[1]))
|
||||
if (is_valid_nick(parv[1]))
|
||||
{
|
||||
target_p = find_person(parv[1]);
|
||||
if (target_p != NULL && MyConnect(target_p))
|
||||
|
@ -638,25 +637,6 @@ heal_nick(struct Client *source_p, struct Client *target_p)
|
|||
}
|
||||
/* }}} */
|
||||
|
||||
/*
|
||||
* Anything else...
|
||||
*/
|
||||
|
||||
/* {{{ static int nick_is_valid() */
|
||||
static int
|
||||
nick_is_valid(const char *nick)
|
||||
{
|
||||
const char *s = nick;
|
||||
|
||||
for (; *s != '\0'; s++) {
|
||||
if (!IsNickChar(*s))
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/*
|
||||
* vim: ts=8 sw=8 noet fdm=marker tw=80
|
||||
*/
|
||||
|
|
|
@ -616,4 +616,25 @@ extern char *generate_uid(void);
|
|||
void allocate_away(struct Client *);
|
||||
void free_away(struct Client *);
|
||||
|
||||
static inline int
|
||||
is_valid_nick(const char *nick)
|
||||
{
|
||||
int len = 0;
|
||||
|
||||
if(EmptyString(nick) || *nick == '-' || IsDigit(*nick))
|
||||
return 0;
|
||||
|
||||
for(; *nick; nick++)
|
||||
{
|
||||
len++;
|
||||
if(!IsNickChar(*nick))
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(len >= NICKLEN)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
#endif /* INCLUDED_client_h */
|
||||
|
|
|
@ -154,27 +154,6 @@ me_login(struct Client *client_p, struct Client *source_p,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
clean_nick(const char *nick)
|
||||
{
|
||||
int len = 0;
|
||||
|
||||
if(EmptyString(nick) || *nick == '-' || IsDigit(*nick))
|
||||
return 0;
|
||||
|
||||
for(; *nick; nick++)
|
||||
{
|
||||
len++;
|
||||
if(!IsNickChar(*nick))
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(len >= NICKLEN)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
me_rsfnc(struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
|
@ -197,7 +176,7 @@ me_rsfnc(struct Client *client_p, struct Client *source_p,
|
|||
if(!MyClient(target_p))
|
||||
return 0;
|
||||
|
||||
if(!clean_nick(parv[2]))
|
||||
if(!is_valid_nick(parv[2]))
|
||||
return 0;
|
||||
|
||||
curts = atol(parv[4]);
|
||||
|
|
Loading…
Reference in a new issue