summaryrefslogtreecommitdiff
path: root/windows/gui.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2014-01-16 00:01:25 +0000
committerVincent Sanders <vince@kyllikki.org>2014-01-16 00:01:25 +0000
commit38cb39339a8f1f9a0afb69340a404fd767db5a79 (patch)
tree0b5ed63f639e8d8e66011a425ee595545b74300d /windows/gui.c
parentbd065d4a434755e67642a071e255cba596de8d1e (diff)
downloadnetsurf-38cb39339a8f1f9a0afb69340a404fd767db5a79.tar.gz
netsurf-38cb39339a8f1f9a0afb69340a404fd767db5a79.tar.bz2
move filename_from_path and path_add_part into gui operation tables
Diffstat (limited to 'windows/gui.c')
-rw-r--r--windows/gui.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/windows/gui.c b/windows/gui.c
index fa748254c..40124671d 100644
--- a/windows/gui.c
+++ b/windows/gui.c
@@ -1809,6 +1809,43 @@ nsws_create_main_class(HINSTANCE hinstance) {
return ret;
}
+/**
+ * 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_window_table window_table = {
.create = gui_window_create,
.destroy = gui_window_destroy,
@@ -1840,6 +1877,8 @@ struct gui_clipboard_table *win32_clipboard_table = &clipboard_table;
static struct gui_table browser_table = {
.poll = gui_poll,
+ .filename_from_path = filename_from_path,
+ .path_add_part = path_add_part,
};
struct gui_browser_table *win32_browser_table = &browser_table;