struct file_wordexp {
int err;
+ char *pattern;
wordexp_t we;
};
{
struct file_wordexp *ret=g_new0(struct file_wordexp, 1);
+ ret->pattern=g_strdup(pattern);
ret->err=wordexp(pattern, &ret->we, 0);
if (ret->err)
dbg(0,"wordexp('%s') returned %d\n", pattern, ret->err);
int
file_wordexp_get_count(struct file_wordexp *wexp)
{
+ if (wexp->error)
+ return 1;
return wexp->we.we_wordc;
}
char **
file_wordexp_get_array(struct file_wordexp *wexp)
{
+ if (wexp->error)
+ return &wexp->pattern;
return wexp->we.we_wordv;
}
{
if (! wexp->err)
wordfree(&wexp->we);
+ g_free(wexp->pattern);
g_free(wexp);
}