Rev 8827 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8827 | Rev 9173 | ||
---|---|---|---|
- | 1 | extern int (*mkdir)(char*); |
|
1 | int cmd_mkdir(char dir[]) { |
2 | |
2 | char temp[FILENAME_MAX]; |
- | |
3 | kol_struct70 k70; |
- | |
4 | unsigned result; |
3 | int cmd_mkdir(char dir[]) { |
5 | - | ||
6 | if (NULL == dir) { |
4 | unsigned dir_len = strlen(dir); |
7 | printf(CMD_MKDIR_USAGE); |
5 | if(!dir_len){ |
8 | return TRUE; |
6 | printf(CMD_MKDIR_USAGE); |
9 | } |
7 | return TRUE; |
10 | 8 | } |
|
- | 9 | ||
- | 10 | char *temp = malloc(dir_len+3); |
|
11 | if ( 0 == strcmp(dir, ".") || ( 0 == strcmp(dir, "..") ) || ( 0 == strcmp(cur_dir, "/")) ) { |
11 | char *dir_path = strdup(dir); |
- | 12 | ksys_bdfe_t *bdfe = malloc(sizeof(ksys_bdfe_t)); |
|
12 | return FALSE; |
13 | if(!dir_path || !temp || !bdfe){ |
13 | } |
14 | return FALSE; |
14 | 15 | } |
|
15 | k70.p00 = 9; |
- | |
16 | k70.p04 = 0; |
- | |
17 | //k70.p08 = 0; |
- | |
18 | k70.p12 = 0; |
- | |
19 | k70.p16 = 0; |
- | |
20 | k70.p20 = 0; |
- | |
21 | - | ||
22 | if ( '/' == dir[0]) |
16 | |
23 | k70.p21 = dir; |
17 | if(dir[0]=='/' || dir[0]=='\\'){ |
24 | else { |
18 | temp[0]='\0'; |
25 | strcpy(temp, cur_dir); |
- | |
26 | if (temp[strlen(temp)-1] != '/') |
- | |
27 | strcat(temp, "/"); // add slash |
- | |
28 | strcat(temp, dir); |
19 | }else{ |
29 | k70.p21 = temp; |
- | |
30 | } |
20 | strcpy(temp,"."); |
31 | 21 | } |
|
32 | result = kol_file_70(&k70); |
22 | |
- | 23 | char *pch = strtok(dir_path,"\\/"); |
|
- | 24 | ||
- | 25 | while (pch != NULL){ |
|
- | 26 | strcat(temp, "/"); |
|
- | 27 | strcat(temp, pch); |
|
- | 28 | if(_ksys_file_get_info(temp, bdfe)){ |
|
- | 29 | if(mkdir(temp)){ |
|
- | 30 | printf("\033[0;31;40m FAIL %s\n", temp); |
|
- | 31 | }else { |
|
- | 32 | printf("\033[0;32;40m OK %s\n", temp); |
|
- | 33 | } |
|
- | 34 | }else{ |
|
- | 35 | printf("\033[0;33;40m EXIST %s\n", temp); |
|
- | 36 | } |
|
- | 37 | pch = strtok(NULL, "\\/"); |
|
- | 38 | } |
|
- | 39 | printf("\033[0m"); |
|
33 | 40 | free(bdfe); |
|
34 | if (0 == result) |
- | |
35 | return TRUE; |
- | |
36 | else |
- | |
37 | return FALSE; |
41 | free(dir_path); |
38 | - | ||
39 | } |
42 | free(temp); |
- | 43 | return TRUE; |
|
- | 44 | } |