Defining an override via a missing.h can prove difficult when a file needs to use basename and dirname both the APIs and needs to include libgen.h for them, in such situations there will be signature clash for basename function. --- mesh/mesh-config-json.c | 3 +-- mesh/missing.h | 21 --------------------- mesh/rpl.c | 3 +-- mesh/util.c | 10 ++++++++++ mesh/util.h | 5 +++++ 5 files changed, 17 insertions(+), 25 deletions(-) delete mode 100644 mesh/missing.h diff --git a/mesh/mesh-config-json.c b/mesh/mesh-config-json.c index a17a48b6d..5372130d7 100644 --- a/mesh/mesh-config-json.c +++ b/mesh/mesh-config-json.c @@ -28,7 +28,6 @@ #include <ell/ell.h> #include <json-c/json.h> -#include "mesh/missing.h" #include "mesh/mesh-defs.h" #include "mesh/util.h" #include "mesh/mesh-config.h" @@ -2708,7 +2707,7 @@ void mesh_config_destroy_nvm(struct mesh_config *cfg) if (!hex2str(cfg->uuid, 16, uuid, sizeof(uuid))) return; - node_name = basename(node_dir); + node_name = mesh_basename(node_dir); /* Make sure path name of node follows expected guidelines */ if (strcmp(node_name, uuid)) diff --git a/mesh/missing.h b/mesh/missing.h deleted file mode 100644 index 464df9b1c..000000000 --- a/mesh/missing.h +++ /dev/null @@ -1,21 +0,0 @@ -// SPDX-License-Identifier: LGPL-2.1-or-later -/* - * - * BlueZ - Bluetooth protocol stack for Linux - * - * Copyright (C) 2024 Khem Raj <raj.khem@xxxxxxxxx> - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif -#if !HAVE_DECL_BASENAME -#include <string.h> -static inline const char *basename(const char *path) -{ - const char *base = strrchr(path, '/'); - - return base ? base + 1 : path; -} -#endif diff --git a/mesh/rpl.c b/mesh/rpl.c index 2fa17d72f..69533bf43 100644 --- a/mesh/rpl.c +++ b/mesh/rpl.c @@ -24,7 +24,6 @@ #include <ell/ell.h> -#include "mesh/missing.h" #include "mesh/mesh-defs.h" #include "mesh/node.h" @@ -147,7 +146,7 @@ static void get_entries(const char *iv_path, struct l_queue *rpl_list) if (!dir) return; - iv_txt = basename(iv_path); + iv_txt = mesh_basename(iv_path); if (sscanf(iv_txt, "%08x", &iv_index) != 1) { closedir(dir); return; diff --git a/mesh/util.c b/mesh/util.c index 82b57f642..73f13aab7 100644 --- a/mesh/util.c +++ b/mesh/util.c @@ -161,3 +161,13 @@ void enable_debug(void) debug_enabled = true; l_debug_enable("*"); } + +#if !HAVE_DECL_BASENAME +#include <string.h> +const char *mesh_basename(const char *path) +{ + const char *base = strrchr(path, '/'); + + return base ? base + 1 : path; +} +#endif diff --git a/mesh/util.h b/mesh/util.h index 085ec3330..bb417dc40 100644 --- a/mesh/util.h +++ b/mesh/util.h @@ -16,3 +16,8 @@ void print_packet(const char *label, const void *data, uint16_t size); int create_dir(const char *dir_name); void del_path(const char *path); void enable_debug(void); +#if !HAVE_DECL_BASENAME +const char *mesh_basename(const char *path); +#else +#define mesh_basename basename +#endif