Subversion Repositories Kolibri OS

Rev

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();