work = vf->list;
while (work)
{
-
IconData *id = work->data;
FileData *fd = id->fd;
work = work->next;
+
b += fd->size;
}
work = old_list;
while (work)
{
- IconData *id;
- FileData *fd;
-
- GList *needle;
-
- id = work->data;
- fd = id->fd;
+ IconData *id = work->data;
+ FileData *fd = id->fd;
+ GList *needle = vf->list;
- needle = vf->list;
while (needle)
{
IconData *idn = needle->data;
FileData *fdn = idn->fd;
+
if (fdn == fd)
{
/* swap, to retain old thumb, selection */
while (work)
{
FileData *fd = work->data;
- gint f = vficon_index_by_fd(vf, work->data);
+ gint f = vficon_index_by_fd(vf, fd);
g_assert(fd->magick == 0x12345678);
+
if (f >= 0) list = g_list_prepend(list, GINT_TO_POINTER(f));
work = work->next;
}
while (list)
{
gint c = TRUE;
+
work = list;
while (work && c)
{
gpointer p = work->data;
+
work = work->next;
if (row == GPOINTER_TO_INT(p))
{
}
if (!c) list = g_list_remove(list, p);
}
+
if (c && list)
{
g_list_free(list);
list = NULL;
}
}
+
if (row > count - 1)
{
if (rev < 0)
match = TRUE;
}
}
+
if (!match)
{
new_row = g_list_index(vf->list, ignore_id);
work = NULL;
}
}
+
if (new_row == -1)
{
/* selection all ignored, use closest */
{
new_row = g_list_index(vf->list, VFICON_INFO(vf, selection)->data);
}
+
if (new_row >= 0)
{
IconData *idn = g_list_nth_data(vf->list, new_row);