Rev 5931 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5931 | Rev 5957 | ||
---|---|---|---|
Line 5... | Line 5... | ||
5 | enum {NOCUT, CUT}; |
5 | enum {NOCUT, CUT}; |
Line 6... | Line 6... | ||
6 | 6 | ||
Line 7... | Line -... | ||
7 | Clipboard clipboard; |
- | |
8 | 7 | Clipboard clipboard; |
|
9 | dword _copy_path_ = 0; |
8 | |
10 | void Copy(dword pcth, char cut) |
9 | void Copy(dword pcth, char cut) |
11 | { |
10 | { |
12 | dword selected_offset2; |
11 | dword selected_offset2; |
13 | byte copy_t[4096]; |
12 | byte copy_t[4096]; |
14 | dword buff_data; |
- | |
15 | int ind = 0; |
13 | dword buff_data; |
16 | 14 | int ind = 0; |
|
17 | if (selected_count) |
15 | if (selected_count) |
18 | { |
16 | { |
19 | buff_data = malloc(selected_count*4096+10); |
17 | buff_data = malloc(selected_count*4096+10); |
Line 56... | Line 54... | ||
56 | char copy_rezult; |
54 | char copy_rezult; |
57 | int j; |
55 | int j; |
58 | int cnt = 0; |
56 | int cnt = 0; |
59 | dword buf; |
57 | dword buf; |
60 | dword tmp; |
58 | file_count_copy = 0; |
61 | file_count_copy = 0; |
- | |
62 | copy_bar.value = 0; |
59 | copy_bar.value = 0; |
63 | 60 | ||
Line 64... | Line 61... | ||
64 | buf = clipboard.GetSlotData(clipboard.GetSlotCount()-1); |
61 | buf = clipboard.GetSlotData(clipboard.GetSlotCount()-1); |
65 | if (DSDWORD[buf+4] != 3) return; |
62 | if (DSDWORD[buf+4] != 3) return; |
66 | cnt = ESINT[buf+8]; |
63 | cnt = ESINT[buf+8]; |
- | 64 | for (j = 0; j < cnt; j++) { |
|
- | 65 | strlcpy(#copy_from, j*4096+buf+10, 4096); |
|
- | 66 | GetFileInfo(#copy_from, #file_info_count); |
|
- | 67 | if ( file_info_count.isfolder ) DirFileCount(#copy_from); |
|
- | 68 | else file_count_copy++; |
|
- | 69 | } |
|
- | 70 | copy_bar.max = file_count_copy; |
|
- | 71 | ||
- | 72 | if (cut_active) operation_flag = MOVE_FLAG; |
|
- | 73 | else operation_flag = COPY_FLAG; |
|
Line -... | Line 74... | ||
- | 74 | ||
67 | 75 | DisplayOperationForm(); |
|
68 | for (j = 0; j < cnt; j++) { |
76 | for (j = 0; j < cnt; j++) { |
69 | strlcpy(#copy_from, j*4096+buf+10, 4096); |
77 | strlcpy(#copy_from, j*4096+buf+10, 4096); |
70 | if (!copy_from) DialogExit(); |
78 | if (!copy_from) DialogExit(); |
71 | strcpy(#copy_to, #path); |
79 | strcpy(#copy_to, #path); |
- | 80 | strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); |
|
- | 81 | if (!strcmp(#copy_from,#copy_to)) |
|
- | 82 | { |
|
- | 83 | strcpy(#copy_to, #path); |
|
- | 84 | strcat(#copy_to, "new_"); |
|
- | 85 | strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); |
|
72 | strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); |
86 | } |
73 | if (strstr(#copy_to, #copy_from)) |
87 | if (strstr(#copy_to, #copy_from)) |
74 | { |
- | |
75 | cut_active=false; |
88 | { |
76 | notify("Copy directory into itself is a bad idea..."); |
89 | notify("Copy directory into itself is a bad idea..."); |
77 | DialogExit(); |
90 | DialogExit(); |
- | 91 | } |
|
78 | } |
92 | |
- | 93 | if (copy_rezult = copyf(#copy_from,#copy_to)) |
|
79 | IF (cut_active) fs.move(#copy_from, #copy_to); |
94 | { |
80 | ELSE fs.copy(#copy_from, #copy_to); |
95 | Write_Error(copy_rezult); |
- | 96 | } |
|
- | 97 | else if (cut_active) |
|
- | 98 | { |
|
- | 99 | //strcpy(#file_path, #copy_from); |
|
Line -... | Line 100... | ||
- | 100 | Del_File2(#copy_from, 0); |
|
- | 101 | ||
- | 102 | } |
|
- | 103 | } |
|
81 | } |
104 | if (cut_active) |
- | 105 | { |
|
82 | 106 | cut_active=false; |
|
83 | cut_active=false; |
107 | } |
84 | if (info_after_copy) notify(INFO_AFTER_COPY); |
108 | if (info_after_copy) notify(INFO_AFTER_COPY); |
85 | DialogExit(); |
109 | DialogExit(); |