Subversion Repositories Kolibri OS

Rev

Rev 3150 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3150 Rev 3152
Line 590... Line 590...
590
	{
590
	{
591
		copystr(temp_, #path_);
591
		copystr(temp_, #path_);
592
		if (somelen) path_[somelen]=NULL;
592
		if (somelen) path_[somelen]=NULL;
Line 593... Line 593...
593
		
593
		
594
		if (buf) free(buf);
594
		if (buf) free(buf);
595
    	buf = malloc(512);
595
    	buf = malloc(32);
596
		errornum=ReadDir(0, buf, #path_);
596
		errornum=ReadDir(0, buf, #path_);
597
		if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè
597
		if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè
598
		{
598
		{
599
			HistoryPath(ADD_NEW_PATH);
599
			HistoryPath(ADD_NEW_PATH);
600
			GoBack();
600
			GoBack();
601
			Write_Error(errornum);
601
			Write_Error(errornum);
602
			return;
602
			return;
603
		}
603
		}
604
    	count = ESDWORD[buf+8];
604
    	count = ESDWORD[buf+8];
605
    	buf = realloc(count * 304 + 512, buf); //ïî÷åìó 32?
605
    	buf = realloc(count * 304 + 32, buf); //ïî÷åìó 32?
606
		ReadDir(count, buf, #path_);
606
		ReadDir(count, buf, #path_);
607
		count=EBX;
-
 
608
		if (count>sizeof(file_mas)) count=sizeof(file_mas);
607
		count=EBX;
609
	}
608
	}
610
	if (count<>-1)
609
	if (count<>-1)
611
	{
610
	{
612
		//debug("successfully \n");
611
		//debug("successfully \n");
Line 631... Line 630...
631
 
630
 
632
inline Sorting()
631
inline Sorting()
633
{
632
{
Line 634... Line 633...
634
	dword k=0, l=1;
633
	dword k=0, l=1;
635
 
634
 
636
	if (!strcmp(#path,"/")) //|| (count > 5000) //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/"
635
	if (!strcmp(#path,"/")) || (count > 5000) //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/"
637
	{
636
	{
638
		FOR(k=1;k
637
		FOR(k=1;k
Line 657... Line 656...
657
	//Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû
656
	//Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû
658
	Sort_by_Name(0,k-1);
657
	Sort_by_Name(0,k-1);
659
	IF (sort_num==1) Sort_by_Name(k,count-1);
658
	IF (sort_num==1) Sort_by_Name(k,count-1);
660
	IF (sort_num==2) Sort_by_Type(k,count-1);
659
	IF (sort_num==2) Sort_by_Type(k,count-1);
661
	IF (sort_num==3) Sort_by_Size(k,count-1);
660
	IF (sort_num==3) Sort_by_Size(k,count-1);
662
	if (strcmp(file_mas[0]*304+buf+72,"..")<>0) //åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà
661
	//åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà
663
	{
-
 
664
		FOR(k--; k>0; k--;) { IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]>
662
	IF (k>0) && (strcmp(file_mas[0]*304+buf+72,"..")<>0) FOR(k--; k>0; k--;) IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]>
665
	}
-
 
666
}
663
}
Line 667... Line 664...
667
 
664
 
668
 
665