59 lines
1.2 KiB
Diff
59 lines
1.2 KiB
Diff
--- a/mesh/rpl.c
|
|
+++ b/mesh/rpl.c
|
|
@@ -33,6 +33,17 @@
|
|
|
|
static const char *rpl_dir = "/rpl";
|
|
|
|
+char *
|
|
+xbasename(const char *filename)
|
|
+{
|
|
+#ifdef __GLIBC__
|
|
+ return basename(filename);
|
|
+#else
|
|
+ char *p = strrchr (filename, '/');
|
|
+ return p ? p + 1 : (char *) filename;
|
|
+#endif
|
|
+}
|
|
+
|
|
bool rpl_put_entry(struct mesh_node *node, uint16_t src, uint32_t iv_index,
|
|
uint32_t seq)
|
|
{
|
|
@@ -146,7 +157,7 @@ static void get_entries(const char *iv_p
|
|
if (!dir)
|
|
return;
|
|
|
|
- iv_txt = basename(iv_path);
|
|
+ iv_txt = xbasename(iv_path);
|
|
if (sscanf(iv_txt, "%08x", &iv_index) != 1) {
|
|
closedir(dir);
|
|
return;
|
|
--- a/tools/hex2hcd.c
|
|
+++ b/tools/hex2hcd.c
|
|
@@ -25,6 +25,17 @@
|
|
#include <stdbool.h>
|
|
#include <sys/stat.h>
|
|
|
|
+char *
|
|
+xbasename(const char *filename)
|
|
+{
|
|
+#ifdef __GLIBC__
|
|
+ return basename(filename);
|
|
+#else
|
|
+ char *p = strrchr (filename, '/');
|
|
+ return p ? p + 1 : (char *) filename;
|
|
+#endif
|
|
+}
|
|
+
|
|
static ssize_t process_record(int fd, const char *line, uint16_t *upper_addr)
|
|
{
|
|
const char *ptr = line + 1;
|
|
@@ -302,7 +313,7 @@ static void ver_parse_entry(const char *
|
|
}
|
|
|
|
if (S_ISREG(st.st_mode)) {
|
|
- ver_parse_file(basename(pathname));
|
|
+ ver_parse_file(xbasename(pathname));
|
|
goto done;
|
|
}
|
|
|