diff --git a/src/builtins/get_loop_cmd.c b/src/builtins/get_loop_cmd.c index 83b4f32..b40c3ce 100644 --- a/src/builtins/get_loop_cmd.c +++ b/src/builtins/get_loop_cmd.c @@ -5,36 +5,30 @@ ** get_loop_cmd */ +#include #include #include #include #include #include -#include -#include #include #include -#include +#include -#include "ast.h" -#include "builtins.h" #include "common.h" -#include "exec.h" -#include "redirects.h" -#include "u_str.h" -#include "u_mem.h" #include "loop.h" -#include "local.h" +#include "u_mem.h" +#include "u_str.h" static usr_cmd_t *buffers_realloc(usr_cmd_t *usr) { - char **new_buffers = u_realloc(usr->cmds, sizeof + char **new_buffers = (char **)u_realloc((void *)usr->cmds, sizeof *usr->cmds * usr->sz, sizeof *usr->cmds * (usr->cap << 1)); - if (new_buffers == NULL) - return NULL; + if ((void *)new_buffers == NULL) + return nullptr; usr->cmds = new_buffers; usr->cap <<= 1; return usr; @@ -43,7 +37,7 @@ usr_cmd_t *buffers_realloc(usr_cmd_t *usr) static usr_cmd_t *increase_buffers(usr_cmd_t *usr, size_t *buffer_len) { - usr->cmds[usr->sz] = NULL; + usr->cmds[usr->sz] = nullptr; getline(&(usr->cmds[usr->sz]), buffer_len, stdin); *buffer_len = u_strlen(usr->cmds[usr->sz]); usr->cmds[usr->sz][*buffer_len - 1] = '\0'; @@ -52,27 +46,27 @@ usr_cmd_t *increase_buffers(usr_cmd_t *usr, size_t *buffer_len) } static -usr_cmd_t *handle_end(usr_cmd_t *us, char prompt[]) +usr_cmd_t *handle_end(usr_cmd_t *us, char const *prompt) { us->sz--; - if (!us->cmds[us->sz] || strcmp("end", us->cmds[us->sz])){ + if (!us->cmds[us->sz] || strcmp("end", us->cmds[us->sz]) != 0){ printf("%s: end not found.\n", prompt); free_array(us->cmds); - us->cmds = NULL; + us->cmds = nullptr; exit(RETURN_FAILURE); - return NULL; + return nullptr; } free(us->cmds[us->sz]); - us->cmds[us->sz] = NULL; + us->cmds[us->sz] = nullptr; return us; } static -usr_cmd_t *get_first_cmd(usr_cmd_t *usr, char prompt[], size_t *bf_len) +usr_cmd_t *get_first_cmd(usr_cmd_t *usr, char const *prompt, size_t *bf_len) { if (isatty(STDIN_FILENO)) printf("%s? ", prompt); - usr->cmds[usr->sz] = NULL; + usr->cmds[usr->sz] = nullptr; getline(&(usr->cmds[usr->sz]), bf_len, stdin); *bf_len = u_strlen(usr->cmds[usr->sz]); usr->cmds[usr->sz][*bf_len - 1] = '\0'; @@ -80,23 +74,23 @@ usr_cmd_t *get_first_cmd(usr_cmd_t *usr, char prompt[], size_t *bf_len) return usr; } -usr_cmd_t *get_usr_loop_cmd(usr_cmd_t *usr_cmd, char prompt[]) +usr_cmd_t *get_usr_loop_cmd(usr_cmd_t *usr_cmd, char const *prompt) { size_t buffer_len; if (usr_cmd == NULL) - return NULL; - usr_cmd->cmds = malloc(sizeof(char *) * usr_cmd->cap); - if (usr_cmd->cmds == NULL) - return NULL; + return nullptr; + usr_cmd->cmds = (char **)malloc(sizeof(char *) * usr_cmd->cap); + if ((void *)usr_cmd->cmds == NULL) + return nullptr; usr_cmd = get_first_cmd(usr_cmd, prompt, &buffer_len); - while (strcmp("end", usr_cmd->cmds[usr_cmd->sz - 1])){ + while (strcmp("end", usr_cmd->cmds[usr_cmd->sz - 1]) != 0){ if (isatty(STDIN_FILENO)) printf("%s? ", prompt); if (usr_cmd->sz >= usr_cmd->cap) usr_cmd = buffers_realloc(usr_cmd); if (usr_cmd == NULL) - return NULL; + return nullptr; increase_buffers(usr_cmd, &buffer_len); } usr_cmd = handle_end(usr_cmd, prompt); diff --git a/src/builtins/loop.c b/src/builtins/loop.c index 41849b5..e3baa3b 100644 --- a/src/builtins/loop.c +++ b/src/builtins/loop.c @@ -4,26 +4,25 @@ ** File description: ** foreach */ + +#include +#include #include #include #include #include #include -#include -#include #include #include -#include +#include #include "ast.h" #include "builtins.h" #include "common.h" #include "exec.h" -#include "redirects.h" -#include "u_str.h" -#include "u_mem.h" -#include "loop.h" #include "local.h" +#include "loop.h" +#include "u_str.h" void exit_child(int sig __attribute__((unused))) { @@ -31,7 +30,7 @@ void exit_child(int sig __attribute__((unused))) } static -bool checking_for_error(ef_t *ef, char **args) +bool checking_for_error(char **args) { if (my_array_len(args) < 3) return (WRITE_CONST(STDERR_FILENO, "foreach: Too few arguments.\n"), @@ -42,7 +41,7 @@ bool checking_for_error(ef_t *ef, char **args) } static -bool checking_while_error(ef_t *ef, char **args) +bool checking_while_error(char **args) { if (my_array_len(args) < 2) return (WRITE_CONST(STDERR_FILENO, "while: Too few arguments.\n"), @@ -69,7 +68,7 @@ int foreach_loop(ef_t *ef, char **args, usr_cmd_t *usr_cmds) int status = 0; char **save_cmds = arraydup(usr_cmds->cmds); - if (save_cmds == NULL) + if ((void *)save_cmds == NULL) exit(84); for (int i = 2; args[i]; i++){ if (!set_local(ef->exec_ctx->local, args[1], args[i])) @@ -88,7 +87,7 @@ int while_loop(ef_t *ef, usr_cmd_t *usr_cmds) int status = 0; char **save_cmds = arraydup(usr_cmds->cmds); - if (save_cmds == NULL) + if ((void *)save_cmds == NULL) exit(84); while (true){ status = do_a_lap(ef, usr_cmds->cmds); @@ -100,7 +99,7 @@ int while_loop(ef_t *ef, usr_cmd_t *usr_cmds) } static -int choose_loop(ef_t *ef, char **args, usr_cmd_t *usr_cmd, char prompt[]) +int choose_loop(ef_t *ef, char **args, usr_cmd_t *usr_cmd, char const *prompt) { if (strcmp(prompt, "foreach") == 0) return foreach_loop(ef, args, usr_cmd); @@ -108,7 +107,7 @@ int choose_loop(ef_t *ef, char **args, usr_cmd_t *usr_cmd, char prompt[]) } static -void launch_loop(ef_t *ef, char **args, char prompt[]) +void launch_loop(ef_t *ef, char **args, char const *prompt) { int status = RETURN_FAILURE; usr_cmd_t *usr_cmds = malloc(sizeof(usr_cmd_t)); @@ -134,7 +133,7 @@ int builtins_foreach(ef_t *ef, char **args) int status = 0; pid_t pid; - if (checking_for_error(ef, args)) + if (checking_for_error(args)) return RETURN_FAILURE; pid = fork(); if (pid == 0) @@ -152,7 +151,7 @@ int builtins_while(ef_t *ef, char **args) int status = 0; pid_t pid; - if (checking_while_error(ef, args)) + if (checking_while_error(args)) return RETURN_FAILURE; pid = fork(); if (pid == 0) diff --git a/src/loop.h b/src/loop.h index b8f8544..84c72f0 100644 --- a/src/loop.h +++ b/src/loop.h @@ -16,5 +16,5 @@ typedef struct { char **cmds; } usr_cmd_t; -usr_cmd_t *get_usr_loop_cmd(usr_cmd_t *usr_cmd, char prompt[]); +usr_cmd_t *get_usr_loop_cmd(usr_cmd_t *usr_cmd, char const *prompt); #endif /* LOOP_H */