11 | | Sat 14 Jul 2007 09:27:33 PM UTC, comment #1: |
12 | | |
13 | | can confirm this bug in cvs, 4.6.1 or 4.6.1 + patches. |
14 | | it only works if the complete tree is 755, otherwise they are |
15 | | unlinked without notice - however that works |
16 | | |
17 | | i am working on a patch to support skipall, it might be possible i |
18 | | could fix that too. |
19 | | but looking at the code i worry about recursion :) |
20 | | |
21 | | its on line 1356 in file.c (recursive_erase) |
22 | | the returnstatus gets abused and therefore lost unless it is a |
23 | | FILE_CONTINE: |
24 | | |
25 | | 1346: return file_error if != FILE_CONT |
26 | | 1328: return_status = file_error != FILE_CONT |
27 | | 1338: return return_status |
28 | | |
29 | | the operation in line 1328 seems to be the odd one, but i cannot |
30 | | fully understand its working: |
31 | | return_status = |
32 | | (recursive_erase |
33 | | (ctx, path, progress_count, progress_bytes) |
34 | | != FILE_CONT); |
35 | | |
36 | | is it to end the while loop on abort? |
37 | | |
38 | | besides the fact skip is ignored completely this should be a clean |
39 | | path before adding skip (&skipall)? |
40 | | |
41 | | thanks for i|o |
42 | | me <me4mc> |
43 | | Sat 16 Jun 2007 08:47:06 AM UTC, original submission: |
44 | | |
| 46 | |
| 47 | Comment 1 by me <me4mc> at Sat 14 Jul 2007 09:27:33 PM UTC: |
| 48 | {{{ |
| 49 | can confirm this bug in cvs, 4.6.1 or 4.6.1 + patches. |
| 50 | it only works if the complete tree is 755, otherwise they are |
| 51 | unlinked without notice - however that works |
| 52 | |
| 53 | i am working on a patch to support skipall, it might be possible i |
| 54 | could fix that too. |
| 55 | but looking at the code i worry about recursion :) |
| 56 | |
| 57 | its on line 1356 in file.c (recursive_erase) |
| 58 | the returnstatus gets abused and therefore lost unless it is a |
| 59 | FILE_CONTINE: |
| 60 | |
| 61 | 1346: return file_error if != FILE_CONT |
| 62 | 1328: return_status = file_error != FILE_CONT |
| 63 | 1338: return return_status |
| 64 | |
| 65 | the operation in line 1328 seems to be the odd one, but i cannot |
| 66 | fully understand its working: |
| 67 | return_status = |
| 68 | (recursive_erase |
| 69 | (ctx, path, progress_count, progress_bytes) |
| 70 | != FILE_CONT); |
| 71 | |
| 72 | is it to end the while loop on abort? |
| 73 | |
| 74 | besides the fact skip is ignored completely this should be a clean |
| 75 | path before adding skip (&skipall)? |
| 76 | |
| 77 | thanks for i|o |
| 78 | }}} |