From edcb5a44ca5c367acc9e0e1347810fdf0ac9eb89 Mon Sep 17 00:00:00 2001 From: Guillaume Chereau <guillaume@noctua-software.com> Date: Tue, 16 Jul 2024 18:26:37 +0800 Subject: [PATCH] Do not use strlcpy and strlcat They are not standard yet. Better for now to avoid them. --- src/goxel.h | 5 ----- src/main.c | 12 +++++++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/goxel.h b/src/goxel.h index e47fbde87..ecb2dafe1 100644 --- a/src/goxel.h +++ b/src/goxel.h @@ -242,11 +242,6 @@ static inline float smoothstep(float edge0, float edge1, float x) return x * x * (3.0f - 2.0f * x); } -// Fallback for strlcpy if it doesn't exists. -#ifndef strlcpy -#define strlcpy(dst, src, size) snprintf(dst, size, "%s", src) -#endif - /* * Function: mix * Linear blend of x and y. diff --git a/src/main.c b/src/main.c index 44d5791fc..cf8173411 100644 --- a/src/main.c +++ b/src/main.c @@ -302,12 +302,12 @@ static void split_path_and_file( sep = strrchr(path_and_file, '/'); if (!sep) { - strlcpy(path, path_and_file, path_size); - file[0] = '\0'; + snprintf(file, file_size, "%s", path_and_file); + path[0] = '\0'; } else { path_len = (int)(sep - path_and_file); snprintf(path, path_size, "%.*s", path_len, path_and_file); - strlcpy(file, sep + 1, file_size); + snprintf(file, file_size, "%s", sep + 1); } } @@ -315,9 +315,11 @@ static void filters_to_nfd_spec( const char *const *filters, char buf[], size_t buf_size) { int i; + size_t len = 0; + buf[0] = '\0'; for (i = 0; filters[i]; i++) { - strlcat(buf, filters[i] + 2, buf_size); + len += snprintf(buf + len, buf_size - len, "%s", filters[i] + 2); } } @@ -356,7 +358,7 @@ static bool open_dialog( &(nfdsavedialogu8args_t){ .filterList = &filter, .filterCount = 1, - .defaultPath = default_path, + .defaultPath = default_path[0] ? default_path : NULL, .defaultName = default_name, .parentWindow = nfd_window, });