summaryrefslogtreecommitdiff
path: root/src/core/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/misc.c')
-rw-r--r--src/core/misc.c70
1 files changed, 13 insertions, 57 deletions
diff --git a/src/core/misc.c b/src/core/misc.c
index 4922dbc0..ed88be1c 100644
--- a/src/core/misc.c
+++ b/src/core/misc.c
@@ -28,10 +28,11 @@
typedef struct {
GInputCondition condition;
GInputFunction function;
- gpointer data;
+ void *data;
} IRSSI_INPUT_REC;
-static gboolean irssi_io_invoke(GIOChannel *source, GIOCondition condition, gpointer data)
+static int irssi_io_invoke(GIOChannel *source, GIOCondition condition,
+ void *data)
{
IRSSI_INPUT_REC *rec = data;
GInputCondition icond = 0;
@@ -43,14 +44,16 @@ static gboolean irssi_io_invoke(GIOChannel *source, GIOCondition condition, gpoi
if (condition & (G_IO_ERR | G_IO_HUP | G_IO_NVAL))
icond |= G_INPUT_EXCEPTION;
- if (rec->condition & icond)
- rec->function(rec->data, g_io_channel_unix_get_fd(source), icond);
+ if (rec->condition & icond) {
+ rec->function(rec->data, g_io_channel_unix_get_fd(source),
+ icond);
+ }
return TRUE;
}
int g_input_add(int source, GInputCondition condition,
- GInputFunction function, gpointer data)
+ GInputFunction function, void *data)
{
IRSSI_INPUT_REC *rec;
unsigned int result;
@@ -109,7 +112,8 @@ int find_substr(const char *list, const char *item)
ptr = strchr(list, ' ');
if (ptr == NULL) ptr = list+strlen(list);
- if (g_strncasecmp(list, item, ptr-list) == 0 && item[ptr-list] == '\0')
+ if (g_strncasecmp(list, item, ptr-list) == 0 &&
+ item[ptr-list] == '\0')
return TRUE;
list = ptr;
@@ -149,42 +153,10 @@ int strarray_find(char **array, const char *item)
return -1;
}
-int copyfile(const char *src, const char *dest)
-{
- FILE *fs, *fd;
- int ret;
-
- g_return_val_if_fail(src != NULL, FALSE);
- g_return_val_if_fail(dest != NULL, FALSE);
-
- fs = fopen(src, "rb");
- if (fs == NULL) return FALSE;
-
- ret = FALSE;
- remove(dest); /* just to be sure there's no link already in dest */
-
- fd = fopen(dest, "w+");
- if (fd != NULL) {
- int len;
- char buf[1024];
-
- while ((len = fread(buf, 1, sizeof(buf), fs)) > 0) {
- if (fwrite(buf, 1, len, fd) != len)
- break;
- }
- fclose(fd);
- ret = TRUE;
- }
-
- fclose(fs);
- return ret;
-}
-
int execute(const char *cmd)
{
char **args;
- char *prev, *dupcmd;
- int pid, max, cnt;
+ int pid;
g_return_val_if_fail(cmd != NULL, -1);
@@ -195,25 +167,9 @@ int execute(const char *cmd)
return pid;
}
- dupcmd = g_strdup(cmd);
- max = 5; cnt = 0;
- args = g_malloc(sizeof(char *)*max);
- for (prev = dupcmd; ; dupcmd++) {
- if (*dupcmd == '\0' || *dupcmd == ' ') {
- args[cnt++] = prev;
- if (cnt == max) {
- max += 5;
- args = g_realloc(args, sizeof(char *)*max);
- }
- if (*dupcmd == '\0') break;
- *dupcmd++ = '\0';
- prev = dupcmd;
- }
- }
- args[cnt] = NULL;
-
+ args = g_strsplit(cmd, " ", -1);
execvp(args[0], args);
- g_free(dupcmd);
+ g_strfreev(args);
_exit(99);
return -1;