3,9 → 3,13 |
{ |
int j; |
int iss = a; |
int size1, size2; |
if (a >= b) return; |
for (j = a; j <= b; j++) |
if (ESDWORD[file_mas[j]*304 + buf+64] <= ESDWORD[file_mas[b]*304 + buf+64]) { file_mas[iss] >< file_mas[j]; iss++;} |
size2 = items.get(b)*304 + buf+64; |
for (j = a; j <= b; j++) { |
size1 = items.get(j)*304 + buf+64; |
if (ESDWORD[size1] <= ESDWORD[size2]) { items.swap(iss,j); iss++;} |
} |
Sort_by_Size (a, iss-2); |
Sort_by_Size (iss, b); |
} |
15,9 → 19,10 |
{ |
int j; |
int isn = a; |
dword name2 = items.get(b)*304 + buf+72; |
if (a >= b) return; |
for (j = a; j <= b; j++) { |
if (strcmpi(file_mas[j]*304 + buf+72, file_mas[b]*304 + buf+72)<=0) { file_mas[isn] >< file_mas[j]; isn++;} |
if (strcmpi(items.get(j)*304 + buf+72, name2)<=0) { items.swap(isn,j); isn++;} |
} |
Sort_by_Name(a, isn-2); |
Sort_by_Name(isn, b); |
30,10 → 35,10 |
dword filename1, filename2, ext1, ext2; |
int n, isn = a; |
if (a >= b) return; |
filename2 = items.get(b)*304 + buf+72; |
for (j = a; j <= b; j++) |
{ |
filename1 = file_mas[j]*304 + buf+72; |
filename2 = file_mas[b]*304 + buf+72; |
filename1 = items.get(j)*304 + buf+72; |
|
n=strlen(filename1)-1; |
WHILE (n>0) && (ESBYTE[filename1+n]!='.') n--; |
44,8 → 49,8 |
if (n) ext2 = filename2+n+1; else ext2=0; |
|
n=strcmp(ext1, ext2); |
if (n<0) { file_mas[isn] >< file_mas[j]; isn++;} |
if (!n) && (strcmp(filename1, filename2) <= 0) { file_mas[isn] >< file_mas[j]; isn++;} |
if (n<0) { items.swap(isn, j); isn++;} |
if (!n) && (strcmp(filename1, filename2) <= 0) { items.swap(isn,j); isn++;} |
} |
Sort_by_Type(a, isn-2); |
Sort_by_Type(isn, b); |