Rev 4015 | Rev 7024 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1665 | Nasarus | 1 | |
2 | { |
||
3 | |||
4 | |||
5 | unsigned *n; |
||
6 | unsigned num_of_file; |
||
7 | unsigned *t; |
||
8 | unsigned type_of_file; |
||
9 | int i, result; |
||
2617 | Albom | 10 | |
1665 | Nasarus | 11 | |
2617 | Albom | 12 | |
1665 | Nasarus | 13 | k70.p04 = 0; |
14 | //k70.p08 = 0; |
||
6857 | siemargl | 15 | k70.p12 = 2; // just for test exist & read number of entries |
16 | k70.p16 = (unsigned) malloc(32+k70.p12*560); |
||
3245 | Albom | 17 | k70.p20 = 0; |
1665 | Nasarus | 18 | |
19 | |||
20 | // Если ls запускается без параметров, просматриваем текущий каталог |
||
4015 | Albom | 21 | if ( !strlen(dir) ) |
1665 | Nasarus | 22 | k70.p21 = cur_dir; |
23 | else |
||
24 | k70.p21 = dir; |
||
25 | |||
2617 | Albom | 26 | |
27 | if ( !((result==0) || (result==6)) ) // проверяем существование каталога |
||
4015 | Albom | 28 | { |
1665 | Nasarus | 29 | free( (void*) k70.p16); |
3245 | Albom | 30 | return FALSE; |
1665 | Nasarus | 31 | } |
32 | |||
33 | |||
3245 | Albom | 34 | num_of_file = *n; // число файлов в каталоге |
4015 | Albom | 35 | |
1665 | Nasarus | 36 | |
6857 | siemargl | 37 | k70.p12 = num_of_file; |
38 | free( (void*) k70.p16); |
||
39 | k70.p16 = (unsigned) malloc(32+k70.p12*560); |
||
40 | if ( !k70.p16 ) |
||
41 | return FALSE; |
||
42 | |||
43 | |||
44 | if ( !((result==0) || (result==6)) ) |
||
45 | { |
||
46 | free( (void*) k70.p16); |
||
47 | return FALSE; |
||
48 | } |
||
49 | |||
50 | |||
1665 | Nasarus | 51 | { |
52 | printf (" %s", k70.p16+32+40+(264+40)*i); |
||
53 | t = (unsigned*) (k70.p16+32+(264+40)*i); |
||
3245 | Albom | 54 | type_of_file = *t; |
1665 | Nasarus | 55 | if ( (0x10 == (type_of_file&0x10)) || (8 == (type_of_file&8)) ) |
56 | printf ("/"); |
||
57 | printf ("\n\r"); |
||
58 | } |
||
59 | |||
60 | |||
3245 | Albom | 61 | return TRUE; |
1665 | Nasarus | 62 | }> |
63 |