typedef struct _fileset {
- GList *entries;
- const char *dirname;
+ GList *entries;
+ char *dirname;
} fileset;
/* this is the fileset's global data */
-fileset set = { NULL, NULL};
+static fileset set = { NULL, NULL};
/* is this a probable file of a file set (does the naming pattern match)? */
/* Show statistics if they are valid */
if( result == 0 ) {
- entry = g_malloc(sizeof(fileset_entry));
+ entry = (fileset_entry *)g_malloc(sizeof(fileset_entry));
entry->fullname = g_strdup(path);
entry->name = g_strdup(fname);
static gint
fileset_sort_compare(gconstpointer a, gconstpointer b)
{
- const fileset_entry *entry_a = a;
- const fileset_entry *entry_b = b;
+ const fileset_entry *entry_a = (const fileset_entry *)a;
+ const fileset_entry *entry_b = (const fileset_entry *)b;
- return strcmp(entry_a->name, entry_b->name);
+ return strcmp(entry_a->name, entry_b->name);
}
/* add all entires to the dialog */
le = g_list_first(set.entries);
while(le) {
- fileset_dlg_add_file(le->data);
+ fileset_dlg_add_file((fileset_entry *)le->data);
le = g_list_next(le);
}
}
WS_DIR *dir; /* scanned directory */
WS_DIRENT *file; /* current file */
const char *name;
- fileset_entry *entry;
GString *dirname;
gchar *fname_dup;
if(fileset_filename_match_pattern(fname)) {
/* yes, go through the files in the directory and check if the file in question is part of the current file set */
if ((dir = ws_dir_open(dirname->str, 0, NULL)) != NULL) {
- while ((file = ws_dir_read_name(dir)) != NULL) {
- name = ws_dir_get_name(file);
+ while ((file = ws_dir_read_name(dir)) != NULL) {
+ name = ws_dir_get_name(file);
if(fileset_filename_match_pattern(name) && fileset_is_file_in_set(name, get_basename(fname))) {
fileset_add_file(dirname->str, name, strcmp(name, get_basename(fname))== 0 /* current */);
}
} /* if */
} else {
/* no, this is a "standalone file", just add this one */
- entry = fileset_add_file(dirname->str, get_basename(fname), TRUE /* current */);
+ fileset_add_file(dirname->str, get_basename(fname), TRUE /* current */);
/* don't add the file to the dialog here, this will be done in fileset_update_dlg() below */
}
/* add all entires to the dialog */
le = g_list_first(set.entries);
while(le) {
- entry = le->data;
+ entry = (fileset_entry *)le->data;
if(entry->current) {
return le;
}
return NULL;
}
- return le->data;
+ return (fileset_entry *)le->data;
}
return NULL;
}
- return le->data;
+ return (fileset_entry *)le->data;
}
/* delete a single entry */
static void fileset_entry_delete(gpointer data, gpointer user_data _U_)
{
- fileset_entry *entry = data;
+ fileset_entry *entry = (fileset_entry *)data;
g_free( (gpointer) entry->fullname);
entry->fullname = NULL;
g_free( (gpointer) entry->name);
entry->name = NULL;
+ g_free(entry);
}