From 5cef74481ce9f3a7fb86aa64fa671bc601028e8b Mon Sep 17 00:00:00 2001 From: klmp200 Date: Mon, 15 May 2017 11:22:53 +0200 Subject: [PATCH] Indentation avec tabulations --- fish_shell/fish_commands.c | 64 +++++----- fish_shell/fish_core.c | 242 ++++++++++++++++++------------------- fish_shell/fish_types.h | 6 +- main.c | 10 +- 4 files changed, 163 insertions(+), 159 deletions(-) diff --git a/fish_shell/fish_commands.c b/fish_shell/fish_commands.c index ab4057d..8ed9bc3 100644 --- a/fish_shell/fish_commands.c +++ b/fish_shell/fish_commands.c @@ -7,58 +7,58 @@ /* Necessary global variables */ char * builtinCommandsStr[] = { - "cd", - "help", - "exit" + "cd", + "help", + "exit" }; builtinCommand *builtinCommands[] = { - &fishCd, - &fishHelp, - &fishExit + &fishCd, + &fishHelp, + &fishExit }; char ** getBuiltinCommandsStr(){ - return builtinCommandsStr; + return builtinCommandsStr; } builtinCommand **getBuiltinCommands(){ - return builtinCommands; + return builtinCommands; } int fishCd(WordArray *args) { - if (args->size < 2){ - fprintf(stderr, "fish: Où sont les arguments de ta commande \"cd\" connard ?!\n"); - } else { - if (chdir(args->words[1]) != 0){ - perror("fish"); - } - } - return 1; + if (args->size < 2){ + fprintf(stderr, "fish: Où sont les arguments de ta commande \"cd\" connard ?!\n"); + } else { + if (chdir(args->words[1]) != 0){ + perror("fish"); + } + } + return 1; } int fishHelp(WordArray *args) { - int i; - printf("Bartuccio Antoine, Amalvy Arthur, Yann Chevanton\n"); - printf("Tape tes putains de noms de programmes et tes arguments de merde et tabasse ENTER !\n"); - printf("Les commandes suivantes sont internes :\nls"); - for (i=0; i < getNbBuiltins(); i++){ - printf("\t%s\n", builtinCommandsStr[i]); - } - printf("Et sinon pour le reste, RTFM !"); - if (args->size > 0) - return 1; - return 1; + int i; + printf("Bartuccio Antoine, Amalvy Arthur, Yann Chevanton\n"); + printf("Tape tes putains de noms de programmes et tes arguments de merde et tabasse ENTER !\n"); + printf("Les commandes suivantes sont internes :\nls"); + for (i=0; i < getNbBuiltins(); i++){ + printf("\t%s\n", builtinCommandsStr[i]); + } + printf("Et sinon pour le reste, RTFM !"); + if (args->size > 0) + return 1; + return 1; } int fishExit(WordArray *args) { - if (args->size != 1) - return 1; - else - return 0; + if (args->size != 1) + return 1; + else + return 0; } int getNbBuiltins() { - return sizeof(builtinCommandsStr) / sizeof(char*); + return sizeof(builtinCommandsStr) / sizeof(char*); } diff --git a/fish_shell/fish_core.c b/fish_shell/fish_core.c index 5aa9ed2..2f3e9c7 100644 --- a/fish_shell/fish_core.c +++ b/fish_shell/fish_core.c @@ -12,172 +12,172 @@ #define FISH_TOKENS " \t\r\n\a" void fishLoop(Settings * settings){ - char * line = NULL; - WordArray * splited = NULL; - int status = 1; + char * line = NULL; + WordArray * splited = NULL; + int status = 1; - do { - printf("%s", settings->PS1); - line = fishReadLine(); - line = fishExpand(line); + do { + printf("%s", settings->PS1); + line = fishReadLine(); + line = fishExpand(line); - splited = split(line, FISH_TOKENS); + splited = split(line, FISH_TOKENS); - status = fishExecute(splited); + status = fishExecute(splited); - freeWordArray(splited); - free(line); - } while(status); + freeWordArray(splited); + free(line); + } while(status); } int countSeparators(char *string, char *separators) { - int nb = 0; - int i = 0; - int k = 0; - while (string[i] != '\0'){ - while (separators[k] != '\0'){ - if (string[i] == separators[k]){ - nb++; - } - k++; - } - i++; - k = 0; - } - return nb; + int nb = 0; + int i = 0; + int k = 0; + while (string[i] != '\0'){ + while (separators[k] != '\0'){ + if (string[i] == separators[k]){ + nb++; + } + k++; + } + i++; + k = 0; + } + return nb; } WordArray * split(char *string, char *separator){ - int array_size = countSeparators(string, separator) + 1; - WordArray *tokens = (WordArray*) malloc(sizeof(WordArray)); - char *to_delete = strdup(string); - char *token = NULL; - int i = 0; + int array_size = countSeparators(string, separator) + 1; + WordArray *tokens = (WordArray*) malloc(sizeof(WordArray)); + char *to_delete = strdup(string); + char *token = NULL; + int i = 0; - if (tokens != NULL){ - tokens->words = (char **) malloc(sizeof(char*) * (array_size + 1)); - tokens->words[array_size] = NULL; - tokens->size = array_size; - } + if (tokens != NULL){ + tokens->words = (char **) malloc(sizeof(char*) * (array_size + 1)); + tokens->words[array_size] = NULL; + tokens->size = array_size; + } - if (tokens == NULL || to_delete == NULL || tokens->words == NULL){ - fprintf(stderr, "fish: Error allocating fucking pointer !"); - exit(EXIT_FAILURE); - } + if (tokens == NULL || to_delete == NULL || tokens->words == NULL){ + fprintf(stderr, "fish: Error allocating fucking pointer !"); + exit(EXIT_FAILURE); + } - while((token = strsep(&to_delete, separator)) != NULL){ - tokens->words[i] = strdup(token); - i++; - } + while((token = strsep(&to_delete, separator)) != NULL){ + tokens->words[i] = strdup(token); + i++; + } - free(to_delete); + free(to_delete); - return tokens; + return tokens; } void freeWordArray(WordArray *array) { - int i; - if (array != NULL) { - for (i = 0; i < array->size; i++) { - free(array->words[i]); - } - free(array); - } + int i; + if (array != NULL) { + for (i = 0; i < array->size; i++) { + free(array->words[i]); + } + free(array); + } } char *fishReadLine() { - size_t bufferSize = FISH_BUFFER_SIZE; - int position = 0; - char *line = malloc(sizeof(char*) * bufferSize); - int c; + size_t bufferSize = FISH_BUFFER_SIZE; + int position = 0; + char *line = malloc(sizeof(char*) * bufferSize); + int c; - if (line == NULL){ - fprintf(stderr, "fish: Error allocating fucking buffer shit !"); - exit(EXIT_FAILURE); - } + if (line == NULL){ + fprintf(stderr, "fish: Error allocating fucking buffer shit !"); + exit(EXIT_FAILURE); + } - while (1){ - c = getchar(); + while (1){ + c = getchar(); - switch (c){ - case '\n': - line[position] = '\0'; - return line; - case EOF: - exit(EXIT_SUCCESS); - default: - line[position] = (char) c; - } + switch (c){ + case '\n': + line[position] = '\0'; + return line; + case EOF: + exit(EXIT_SUCCESS); + default: + line[position] = (char) c; + } - position++; + position++; - if ((size_t) position > bufferSize){ - bufferSize+=bufferSize; - line = realloc(line, bufferSize); - if (line == NULL){ - fprintf(stderr, "fish: Error allocating fucking buffer shit !"); - exit(EXIT_FAILURE); - } - } - } + if ((size_t) position > bufferSize){ + bufferSize+=bufferSize; + line = realloc(line, bufferSize); + if (line == NULL){ + fprintf(stderr, "fish: Error allocating fucking buffer shit !"); + exit(EXIT_FAILURE); + } + } + } - return NULL; + return NULL; } char *fishExpand(char *line) { - return line; + return line; } Settings *getSettings() { - Settings *s = (Settings*) malloc(sizeof(Settings)); - if (s == NULL){ - fprintf(stderr, "fish: Error allocating fucking settings"); - exit(EXIT_FAILURE); - } - s->PS1 = strdup("\n~>"); + Settings *s = (Settings*) malloc(sizeof(Settings)); + if (s == NULL){ + fprintf(stderr, "fish: Error allocating fucking settings"); + exit(EXIT_FAILURE); + } + s->PS1 = strdup("\n~>"); - return s; + return s; } int fishLoad(WordArray *array) { - pid_t pid; - int status; + pid_t pid; + int status; - pid = fork(); - if (pid == 0){ - /* Executes only in the child process */ - if (execvp(array->words[0], array->words) == -1){ - /* Error during system call */ - perror("fish"); - } - exit(EXIT_FAILURE); - } else if (pid < 0){ - /* Fork failed */ - perror("fish"); - } else { - /* Handle parent process */ + pid = fork(); + if (pid == 0){ + /* Executes only in the child process */ + if (execvp(array->words[0], array->words) == -1){ + /* Error during system call */ + perror("fish"); + } + exit(EXIT_FAILURE); + } else if (pid < 0){ + /* Fork failed */ + perror("fish"); + } else { + /* Handle parent process */ - /* Wait for the child process to finish */ - do { - waitpid(pid, &status, WUNTRACED); - } while (!WIFEXITED(status) && !WIFSIGNALED(status)); - } + /* Wait for the child process to finish */ + do { + waitpid(pid, &status, WUNTRACED); + } while (!WIFEXITED(status) && !WIFSIGNALED(status)); + } - return 1; + return 1; } int fishExecute(WordArray *array) { - int i; - if (array->size < 0) - return 1; + int i; + if (array->size < 0) + return 1; - for (i=0; i < getNbBuiltins(); i++){ - if (!strcmp(array->words[0], getBuiltinCommandsStr()[i])){ - return getBuiltinCommands()[i](array); - } - } + for (i=0; i < getNbBuiltins(); i++){ + if (!strcmp(array->words[0], getBuiltinCommandsStr()[i])){ + return getBuiltinCommands()[i](array); + } + } - return fishLoad(array); + return fishLoad(array); } diff --git a/fish_shell/fish_types.h b/fish_shell/fish_types.h index 32402c2..a8d5b54 100644 --- a/fish_shell/fish_types.h +++ b/fish_shell/fish_types.h @@ -8,12 +8,12 @@ /* Custom types */ typedef struct { - char ** words; - int size; + char ** words; + int size; } WordArray; typedef struct { - char *PS1; + char *PS1; } Settings; diff --git a/main.c b/main.c index d0efe10..9abfbf9 100644 --- a/main.c +++ b/main.c @@ -1,9 +1,13 @@ #include #include "fish_shell/fish_core.h" +#include "fish_shell/fish_types.h" int main() { - /* todo load config file */ - fishLoop(getSettings()); + /* todo load config file */ + Settings *s = getSettings(); + fishLoop(s); + free(s->PS1); + free(s); - return EXIT_SUCCESS; + return EXIT_SUCCESS; }