From 889b35ebd1659d7e14deee8b3c6cf63d2237ff9e Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Tue, 2 May 2023 18:02:47 -0400 Subject: fix ls segfault --- src/util/shared.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/util/shared.c') diff --git a/src/util/shared.c b/src/util/shared.c index 3e6fca3..600a967 100644 --- a/src/util/shared.c +++ b/src/util/shared.c @@ -1,6 +1,7 @@ #include "shared.h" #include +#include #include #include #include @@ -232,3 +233,25 @@ FILE* get_tty_stream(char* type) { return file; } +static char path_buffer[PATH_MAX + 1]; +static int path_buffer_index = 0; + +char* get_path_buffer() { + return path_buffer; +} + +int push_path_buffer(const char* string) { + int save = path_buffer_index; + if (path_buffer_index > 1 || (path_buffer_index == 1 && path_buffer[0] != '/')) { + path_buffer[path_buffer_index++] = '/'; + } + int string_len = strlen(string); + memcpy(path_buffer + path_buffer_index, string, string_len + 1); + path_buffer_index += string_len; + return save; +} + +void pop_path_buffer(int i) { + path_buffer_index = i; + path_buffer[path_buffer_index] = '\0'; +} -- cgit v1.2.3-freya