Subversion Repositories Kolibri OS

Rev

Rev 5512 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5512 Rev 5513
Line 15... Line 15...
15
 
15
 
Line 16... Line 16...
16
Clipboard clipboard;
16
Clipboard clipboard;
17
 
17
 
18
void Copy(dword pcth, char cut)
18
void Copy(dword pcth, char cut)
19
{
19
{
20
        dword selected_offset2;
-
 
21
        byte copy_t[4096];
20
    dword selected_offset2;
22
        int cont = 0;
21
    byte copy_t[4096];
23
        dword buff_data;
22
    dword buff_data;
-
 
23
    int ind = 0;
-
 
24
      
-
 
25
    if (selected_count)
-
 
26
	{
-
 
27
        buff_data = malloc(selected_count*4096+10);
-
 
28
        ESDWORD[buff_data] = selected_count*4096+10;
24
        int ind = 0;
29
        ESDWORD[buff_data+4] = 3;
25
        
30
        ESINT[buff_data+8] = selected_count;
26
        for (i=0; i
31
        for (i=0; i
27
        {
-
 
28
                selected_offset2 = file_mas[i]*304 + buf+32 + 7;
-
 
29
                if (ESBYTE[selected_offset2]) cont++;
-
 
30
        }
-
 
31
		if (!cont)
-
 
32
		{
-
 
33
            buff_data = malloc(4106);
-
 
34
            ESDWORD[buff_data] = 4106;
-
 
35
            ESDWORD[buff_data+4] = 3;
-
 
36
            ESINT[buff_data+8] = 1;
-
 
37
            strlcpy(buff_data+10, #file_path, 4096);;
-
 
38
			clipboard.SetSlotData(4106, buff_data);
-
 
39
	    }
-
 
40
		else
-
 
41
		{
-
 
42
            buff_data = malloc(cont*4096+10);
-
 
43
            ESDWORD[buff_data] = cont*4096+10;
-
 
44
            ESDWORD[buff_data+4] = 3;
-
 
45
            ESINT[buff_data+8] = cont;
-
 
46
            for (i=0; i
-
 
47
            {
32
        {
48
                    selected_offset2 = file_mas[i]*304 + buf+32 + 7;
33
            selected_offset2 = file_mas[i]*304 + buf+32 + 7;
49
                    if (ESBYTE[selected_offset2]) {
34
            if (ESBYTE[selected_offset2]) {
50
                            strcpy(#copy_t, #path);
-
 
51
                            strcat(#copy_t, file_mas[i]*304+buf+72);
35
                strcpy(#copy_t, #path);
52
                            
-
 
53
                            strlcpy(ind*4096+buff_data+10, #copy_t, 4096);;
36
                strcat(#copy_t, file_mas[i]*304+buf+72);                         
54
                            ind++;
37
                strlcpy(ind*4096+buff_data+10, #copy_t, 4096);;
-
 
38
                ind++;
55
                    }
39
            }
-
 
40
        }
-
 
41
		clipboard.SetSlotData(selected_count*4096+10, buff_data);
-
 
42
	}
-
 
43
	else
-
 
44
	{
-
 
45
		buff_data = malloc(4106);
-
 
46
        ESDWORD[buff_data] = 4106;
-
 
47
        ESDWORD[buff_data+4] = 3;
-
 
48
        ESINT[buff_data+8] = 1;
56
            }
49
        strlcpy(buff_data+10, #file_path, 4096);;
57
			clipboard.SetSlotData(cont*4096+10, buff_data);
50
		clipboard.SetSlotData(4106, buff_data);
58
		}
51
	}
59
	cut_active = cut;
52
	cut_active = cut;
Line 60... Line 53...
60
	free(buff_data);
53
	free(buff_data);