diff options
| author | nasrlol <nsrddyn@gmail.com> | 2025-02-08 16:56:49 +0100 |
|---|---|---|
| committer | nasrlol <nsrddyn@gmail.com> | 2025-02-08 16:56:49 +0100 |
| commit | 361cfbe3f804502f42fdbacc15e88adb42baece1 (patch) | |
| tree | 6f76dab267055e6e6a6f835daeddb2cf02c89de2 | |
| parent | a03bda11909b066095f734c01988d2c0d75c261f (diff) | |
worked a bit on the main function of the source code
| -rw-r--r-- | main.c | 52 |
1 files changed, 24 insertions, 28 deletions
@@ -1,26 +1,22 @@ +#define _GNU_SOURCE + +#include <stdio.h> #include <stdlib.h> #include <string.h> + #include <sys/types.h> #include <dirent.h> #include <unistd.h> +#include <stdbool.h> -/* BOOLEANS */ -#define true 1 -#define false 0 -#define _DEFAULT_SOURCE -#define MAX_HISTORY 10 +#define MAX_HISTORY 100 #define MAX_COMMAND_LENGTH 256 - -static int CURRENT_COMMAND_INDEX = 0; -static int CURRENT_COMMAND_HISTORY_INDEX = 0; -static char COMMAND_HISTORY[MAX_HISTORY][MAX_COMMAND_LENGTH]; - - - -static char *line_read = (char*)NULL; +static int CURRENT_COMMAND_INDEX = 0; +static int CURRENT_HISTORY_INDEX = 0; +static char *COMMAND_HISTORY[MAX_HISTORY] = { NULL}; // DEFAULT SHELL COMMANDS @@ -38,7 +34,6 @@ void list_directories() { struct dirent **namelist; int n; - n = scandir(".", &namelist, NULL, alphasort); if (n == -1) { @@ -64,23 +59,25 @@ void echo(char *command, char *argv) } } -char *save_history(char *user_input) +char **save_history(char *user_input) { - - while (CURRENT_COMMAND_HISTORY_INDEX < MAX_HISTORY) + char **command_history; + + for (CURRENT_HISTORY_INDEX; CURRENT_HISTORY_INDEX < MAX_HISTORY; CURRENT_HISTORY_INDEX++) { - while (CURRENT_COMMAND_INDEX < MAX_COMMAND_LENGTH) - { - COMMAND_HISTORY[CURRENT_COMMAND_HISTORY_INDEX][CURRENT_COMMAND_INDEX] = *user_input; - CURRENT_COMMAND_HISTORY_INDEX++; - } + for(CURRENT_COMMAND_INDEX; CURRENT_COMMAND_INDEX < MAX_COMMAND_LENGTH; CURRENT_COMMAND_INDEX++) + { + command_history[CURRENT_HISTORY_INDEX][CURRENT_COMMAND_INDEX] = user_input[CURRENT_COMMAND_INDEX]; + } } - return *COMMAND_HISTORY; + return command_history; } // GET USER INPUT char * get_line() { + char *line_read = malloc(sizeof(char) * MAX_COMMAND_LENGTH); + if (line_read) { free(line_read); @@ -97,12 +94,11 @@ char * get_line() int main(void) { - char *input; - while(strcmp(input, "exit") != 0) + char *input = malloc(sizeof(char *) * MAX_COMMAND_LENGTH); + while (true) { - list_directories(); + scanf("%s", input); } - exit_program(input); - + return 0; } |
