diff options
Diffstat (limited to 'monkey/main.c')
-rw-r--r-- | monkey/main.c | 41 |
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 |