Merge branch 'feature-ui' of https://github.com/Numillyash/Struct_lab_03 into feature-ui

# Conflicts:
#	handler.h
master
germanFid 2022-06-23 11:36:27 +03:00
commit 34f6f5958a
4 changed files with 38 additions and 28 deletions

View File

@ -249,7 +249,7 @@ int executeCommand(char *command, char *minorArg, Folder *majorArgFolder, File *
else else
print_list(PrintDirectory, 0); print_list(PrintDirectory, 0);
return SUCCESS; return SUCCESS;
} }
@ -275,16 +275,16 @@ int executeCommand(char *command, char *minorArg, Folder *majorArgFolder, File *
{ {
printf("FIND!\n"); printf("FIND!\n");
char* buf = (char*) malloc(MAX_ARG_LEN); char *buf = (char *)malloc(MAX_ARG_LEN);
char* fname = (char*) malloc(MAX_ARG_LEN); char *fname = (char *)malloc(MAX_ARG_LEN);
char* ext = (char*) malloc(MAX_ARG_LEN); char *ext = (char *)malloc(MAX_ARG_LEN);
int count = 0; int count = 0;
printf("MinorArg: %s\n", minorArg); printf("MinorArg: %s\n", minorArg);
strcpy(buf, minorArg); strcpy(buf, minorArg);
char* sep = "."; char *sep = ".";
char* istr = strtok(buf, sep); char *istr = strtok(buf, sep);
while (istr != NULL) while (istr != NULL)
{ {
@ -303,7 +303,7 @@ int executeCommand(char *command, char *minorArg, Folder *majorArgFolder, File *
istr = strtok(NULL, sep); istr = strtok(NULL, sep);
} }
printf("Count: %d\n", count); printf("Count: %d\n", count);
if (count == 1) if (count == 1)
@ -350,7 +350,6 @@ int commandParserHandler(char *input, Folder *RootFolder, Folder **CurrentFolder
str[i] = ' '; str[i] = ' ';
} }
} }
istr = strtok(str, sep); istr = strtok(str, sep);
@ -436,7 +435,7 @@ int commandParserHandler(char *input, Folder *RootFolder, Folder **CurrentFolder
istr = strtok(NULL, sep); // Выделяем следующую часть istr = strtok(NULL, sep); // Выделяем следующую часть
} }
printf("%d: %s, %s, %s\n", i ,command, arg1, arg2); printf("%d: %s, %s, %s\n", i, command, arg1, arg2);
result = executeCommand(command, arg1, ResultFolder, ResultFile, ResultFolder != NULL, RootFolder, CurrentFolder); result = executeCommand(command, arg1, ResultFolder, ResultFile, ResultFolder != NULL, RootFolder, CurrentFolder);
// printf("- exec: %d", r); // printf("- exec: %d", r);
@ -447,4 +446,4 @@ cleanup:
free(arg2); free(arg2);
return result; return result;
} }

30
main.c
View File

@ -23,6 +23,8 @@ int main(int argc, char **argv)
addFolder("test11", &RootFolder.folders[0].folders[1]); addFolder("test11", &RootFolder.folders[0].folders[1]);
addFile("test", "exe", &RootFolder.folders[0]); addFile("test", "exe", &RootFolder.folders[0]);
print_list(&RootFolder, 1);
// print_path(&RootFolder.folders[0].folders[0], NULL); // print_path(&RootFolder.folders[0].folders[0], NULL);
// print_path(NULL, &RootFolder.folders[0].files[0]); // print_path(NULL, &RootFolder.folders[0].files[0]);
@ -31,7 +33,7 @@ int main(int argc, char **argv)
// find_file("test", "exe", &RootFolder); // find_file("test", "exe", &RootFolder);
// delete_folder(&RootFolder.folders[0].folders[1].folders[0]); delete_folder(&RootFolder.folders[0]);
// find_folder("test11", &RootFolder); // find_folder("test11", &RootFolder);
@ -52,22 +54,22 @@ int main(int argc, char **argv)
// else // else
// printf("ResultFolder is NULL\n"); // printf("ResultFolder is NULL\n");
char *buf;
while (1) char *buf;
while (1)
{
printf("%s > ", CurrentFolder->filename);
buf = commandCallHandler();
if (buf == NULL)
{ {
printf("%s > ", CurrentFolder->filename); printf("Input too long!\n");
buf = commandCallHandler();
if (buf == NULL)
{
printf("Input too long!\n");
}
iResult = commandParserHandler(buf, &RootFolder, &CurrentFolder);
printf("result: %d\n", iResult);
} }
iResult = commandParserHandler(buf, &RootFolder, &CurrentFolder);
printf("result: %d\n", iResult);
}
return 0; return 0;
} }

View File

@ -265,7 +265,7 @@ void delete_file(File *deleting)
file_ind = i; file_ind = i;
} }
for (i = file_ind + 1; i < parent->files_count_cur; i++) for (i = file_ind; i < parent->files_count_cur; i++)
{ {
parent->files[i] = parent->files[i + 1]; parent->files[i] = parent->files[i + 1];
} }
@ -275,6 +275,13 @@ void delete_file(File *deleting)
void delete_folder(Folder *deleting) void delete_folder(Folder *deleting)
{ {
// char *p = (char *)malloc(1);
// p[0] = '\0';
// get_path(p, deleting, NULL);
// printf("%d\n", deleting->folders_count_cur);
// printf("%d\n", deleting->parent->folders_count_cur);
// print_list(deleting, 1);
int i; // iterator int i; // iterator
int fold_ind = -1; int fold_ind = -1;
if (deleting != NULL) if (deleting != NULL)
@ -287,20 +294,22 @@ void delete_folder(Folder *deleting)
fold_ind = i; fold_ind = i;
} }
printf("%d\n", fold_ind);
free(deleting->files); free(deleting->files);
while (deleting->folders_count_cur) while (deleting->folders_count_cur)
{ {
delete_folder(&(deleting->folders[0])); delete_folder(&(deleting->folders[deleting->folders_count_cur - 1]));
} }
free(deleting->folders); free(deleting->folders);
for (i = fold_ind + 1; i < parent->folders_count_cur; i++) for (i = fold_ind; i < parent->folders_count_cur; i++)
{ {
parent->folders[i] = parent->folders[i + 1]; parent->folders[i] = parent->folders[i + 1];
} }
parent->folders[parent->folders_count_cur - 1];
parent->folders_count_cur--; parent->folders_count_cur--;
} }
// print_list(deleting->parent, 1);
} }
int get_path(char *path, Folder *fld, File *fil) int get_path(char *path, Folder *fld, File *fil)

BIN
work1

Binary file not shown.