Fixes build against musl libc, since it doesn't provide a GNU-compatible implementation of basename. Signed-off-by: Ismael Luceno <ismael@xxxxxxxxxxx> --- Notes: Changes since v3: - Fixed whitespace error Changes since v2: - Fixed style complaint from checkpatch.pl Changes since v1: - Fixed missing parameter at mesh/rpl.c:150 mesh/mesh-config-json.c | 4 +++- mesh/rpl.c | 4 +++- tools/hex2hcd.c | 7 ++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/mesh/mesh-config-json.c b/mesh/mesh-config-json.c index a17a48b6d11f..49b9d01a7ef4 100644 --- a/mesh/mesh-config-json.c +++ b/mesh/mesh-config-json.c @@ -2708,7 +2708,9 @@ 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 = strrchr(node_dir, '/'); + if (!node_name++) + node_name = node_dir; /* Make sure path name of node follows expected guidelines */ if (strcmp(node_name, uuid)) diff --git a/mesh/rpl.c b/mesh/rpl.c index 2fa17d72f6cb..1c58703eae4e 100644 --- a/mesh/rpl.c +++ b/mesh/rpl.c @@ -147,7 +147,9 @@ static void get_entries(const char *iv_path, struct l_queue *rpl_list) if (!dir) return; - iv_txt = basename(iv_path); + iv_txt = strrchr(iv_path, '/'); + if (!iv_txt++) + iv_txt = iv_path; if (sscanf(iv_txt, "%08x", &iv_index) != 1) { closedir(dir); return; diff --git a/tools/hex2hcd.c b/tools/hex2hcd.c index 452ab2beb572..093486a051ab 100644 --- a/tools/hex2hcd.c +++ b/tools/hex2hcd.c @@ -303,7 +303,12 @@ static void ver_parse_entry(const char *pathname) } if (S_ISREG(st.st_mode)) { - ver_parse_file(basename(pathname)); + const char *bname; + + bname = strrchr(pathname, '/'); + if (!bname++) + bname = pathname; + ver_parse_file(bname); goto done; } -- 2.46.0