summaryrefslogtreecommitdiff
path: root/monkey/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'monkey/main.c')
-rw-r--r--monkey/main.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/monkey/main.c b/monkey/main.c
index 22aaf1e06..1922393a8 100644
--- a/monkey/main.c
+++ b/monkey/main.c
@@ -114,12 +114,53 @@ static bool nslog_stream_configure(FILE *fptr)
return true;
}
+/**
+ * Return the filename part of a full path
+ *
+ * \param path full path and filename
+ * \return filename (will be freed with free())
+ */
+
+static char *filename_from_path(char *path)
+{
+ char *leafname;
+
+ leafname = strrchr(path, '/');
+ if (!leafname)
+ leafname = path;
+ else
+ leafname += 1;
+
+ return strdup(leafname);
+}
+
+/**
+ * Add a path component/filename to an existing path
+ *
+ * \param path buffer containing path + free space
+ * \param length length of buffer "path"
+ * \param newpart string containing path component to add to path
+ * \return true on success
+ */
+
+static bool path_add_part(char *path, int length, const char *newpart)
+{
+ if(path[strlen(path) - 1] != '/')
+ strncat(path, "/", length);
+
+ strncat(path, newpart, length);
+
+ return true;
+}
+
static struct gui_browser_table monkey_browser_table = {
.poll = monkey_poll,
.quit = monkey_quit,
.get_resource_url = gui_get_resource_url,
.launch_url = gui_launch_url,
.cert_verify = gui_cert_verify,
+ .filename_from_path = filename_from_path,
+ .path_add_part = path_add_part,
};
int