comparison src/filedata.c @ 913:2f9edd196dca

clean up fd->change on error
author nadvornik
date Tue, 22 Jul 2008 18:27:12 +0000
parents 9108a7158c02
children 9427c91951e8
comparison
equal deleted inserted replaced
912:9108a7158c02 913:2f9edd196dca
1329 } 1329 }
1330 1330
1331 return ret; 1331 return ret;
1332 } 1332 }
1333 1333
1334 static void file_data_sc_revert_ci_list(GList *fd_list)
1335 {
1336 GList *work;
1337
1338 work = fd_list;
1339 while (work)
1340 {
1341 FileData *fd = work->data;
1342
1343 file_data_sc_free_ci(fd);
1344 work = work->prev;
1345 }
1346 }
1347
1348
1334 gboolean file_data_sc_add_ci_copy_list(GList *fd_list, const gchar *dest) 1349 gboolean file_data_sc_add_ci_copy_list(GList *fd_list, const gchar *dest)
1335 { 1350 {
1336 GList *work; 1351 GList *work;
1337 gboolean ret = TRUE;
1338 1352
1339 work = fd_list; 1353 work = fd_list;
1340 while (work) 1354 while (work)
1341 { 1355 {
1342 FileData *fd = work->data; 1356 FileData *fd = work->data;
1343 1357
1344 if (!file_data_sc_add_ci_copy(fd, dest)) ret = FALSE; 1358 if (!file_data_sc_add_ci_copy(fd, dest))
1345 work = work->next; 1359 {
1346 } 1360 file_data_sc_revert_ci_list(work->prev);
1347 1361 return FALSE;
1348 return ret; 1362 }
1363 work = work->next;
1364 }
1365
1366 return TRUE;
1349 } 1367 }
1350 1368
1351 gboolean file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest) 1369 gboolean file_data_sc_add_ci_move_list(GList *fd_list, const gchar *dest)
1352 { 1370 {
1353 GList *work; 1371 GList *work;
1354 gboolean ret = TRUE;
1355 1372
1356 work = fd_list; 1373 work = fd_list;
1357 while (work) 1374 while (work)
1358 { 1375 {
1359 FileData *fd = work->data; 1376 FileData *fd = work->data;
1360 1377
1361 if (!file_data_sc_add_ci_move(fd, dest)) ret = FALSE; 1378 if (!file_data_sc_add_ci_move(fd, dest))
1362 work = work->next; 1379 {
1363 } 1380 file_data_sc_revert_ci_list(work->prev);
1364 1381 return FALSE;
1365 return ret; 1382 }
1383 work = work->next;
1384 }
1385
1386 return TRUE;
1366 } 1387 }
1367 1388
1368 gboolean file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest) 1389 gboolean file_data_sc_add_ci_rename_list(GList *fd_list, const gchar *dest)
1369 { 1390 {
1370 GList *work; 1391 GList *work;
1371 gboolean ret = TRUE;
1372 1392
1373 work = fd_list; 1393 work = fd_list;
1374 while (work) 1394 while (work)
1375 { 1395 {
1376 FileData *fd = work->data; 1396 FileData *fd = work->data;
1377 1397
1378 if (!file_data_sc_add_ci_rename(fd, dest)) ret = FALSE; 1398 if (!file_data_sc_add_ci_rename(fd, dest))
1379 work = work->next; 1399 {
1380 } 1400 file_data_sc_revert_ci_list(work->prev);
1381 1401 return FALSE;
1382 return ret; 1402 }
1403 work = work->next;
1404 }
1405
1406 return TRUE;
1383 } 1407 }
1384 1408
1385 gboolean file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest) 1409 gboolean file_data_sc_add_ci_unspecified_list(GList *fd_list, const gchar *dest)
1386 { 1410 {
1387 GList *work; 1411 GList *work;
1388 gboolean ret = TRUE;
1389 1412
1390 work = fd_list; 1413 work = fd_list;
1391 while (work) 1414 while (work)
1392 { 1415 {
1393 FileData *fd = work->data; 1416 FileData *fd = work->data;
1394 1417
1395 if (!file_data_sc_add_ci_unspecified(fd, dest)) ret = FALSE; 1418 if (!file_data_sc_add_ci_unspecified(fd, dest))
1396 work = work->next; 1419 {
1397 } 1420 file_data_sc_revert_ci_list(work->prev);
1398 1421 return FALSE;
1399 return ret; 1422 }
1423 work = work->next;
1424 }
1425
1426 return TRUE;
1400 } 1427 }
1401 1428
1402 void file_data_sc_free_ci_list(GList *fd_list) 1429 void file_data_sc_free_ci_list(GList *fd_list)
1403 { 1430 {
1404 GList *work; 1431 GList *work;