#include <winsock.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <misclib.h>
#include "io.h"
#include "chat.h"
#include "connap.h"
#include "util.h"
PRIV* find_priv_by_nick(char *nick)
{
PRIV *p;
for (p = privs; p; p = p->next) {
if (! strcmp(p->nick, nick))
break;
}
return p;
}
CHAN* find_chan_by_name(char *channel)
{
CHAN *c;
for (c = channels; c; c = c->next) {
if (! strcmp(c->name, channel))
break;
}
return c;
}
int cmd_match(char *s, char *cmd, int len)
{
if ((int)strlen(s) < len)
return 0;
return !strncmp(s, cmd, strlen(s));
}
int split_server(char *s, char **name, char **port, char **meta)
{
char *p = s;
while (isspace(*p))
p++;
if (! *p)
return 0;
*name = p;
if (! (p = strchr(*name, ':')))
return 0;
*p++ = 0;
*port = p;
if (! (p = strchr(*port, ':')))
return 0;
*p++ = 0;
*meta = p;
return 1;
}
char * get_file_tail(char *filename)
{
char *p, *p2, *tail, *tail2;
if ((p = strrchr(filename, '\\'))) {
tail = p;
*p = '\0';
if ((p2 = strrchr(filename, '\\')))
tail = p2;
*p = '\\';
} else if ((p = strrchr(filename, '/'))) {
tail = p;
*p = '\0';
if ((p2 = strrchr(filename, '/')))
tail = p2;
*p = '/';
} else
tail = filename;
if (tail != filename)
tail++;
tail2 = new_string(tail);
return tail2;
}
char *get_dir(char *filename)
{
char *tail, *dir;
int dir_len;
tail = strrchr(filename, '/');
dir_len = tail - filename;
if (dir_len) {
dir = (char*)calloc(dir_len + 1, 1);
strncpy(dir, filename, dir_len);
} else
dir = new_string("/");
return dir;
}