summaryrefslogtreecommitdiff
path: root/desktop
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 /desktop
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 'desktop')
-rw-r--r--desktop/gui.h18
-rw-r--r--desktop/gui_factory.c7
-rw-r--r--desktop/gui_factory.h2
-rw-r--r--desktop/save_complete.c7
4 files changed, 30 insertions, 4 deletions
diff --git a/desktop/gui.h b/desktop/gui.h
index 686bb59d4..102aade45 100644
--- a/desktop/gui.h
+++ b/desktop/gui.h
@@ -344,6 +344,24 @@ struct gui_browser_table {
*/
void (*cert_verify)(nsurl *url, const struct ssl_cert_info *certs, unsigned long num, nserror (*cb)(bool proceed, void *pw), void *cbpw);
+ /**
+ * Return the filename part of a full path
+ *
+ * \param path full path and filename
+ * \return filename (will be freed with free())
+ */
+ char *(*filename_from_path)(char *path);
+
+ /**
+ * 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
+ */
+ bool (*path_add_part)(char *path, int length, const char *newpart);
+
};
diff --git a/desktop/gui_factory.c b/desktop/gui_factory.c
index f47b73007..cd5031b0d 100644
--- a/desktop/gui_factory.c
+++ b/desktop/gui_factory.c
@@ -316,6 +316,13 @@ static nserror verify_browser_register(struct gui_browser_table *gbt)
if (gbt->poll == NULL) {
return NSERROR_BAD_PARAMETER;
}
+ if (gbt->filename_from_path == NULL) {
+ return NSERROR_BAD_PARAMETER;
+ }
+ if (gbt->path_add_part == NULL) {
+ return NSERROR_BAD_PARAMETER;
+ }
+
/* fill in the optional entries with defaults */
if (gbt->quit == NULL) {
diff --git a/desktop/gui_factory.h b/desktop/gui_factory.h
index c70ca8f37..50b5eb31e 100644
--- a/desktop/gui_factory.h
+++ b/desktop/gui_factory.h
@@ -23,7 +23,7 @@
#ifndef _NETSURF_DESKTOP_GUI_FACTORY_H_
#define _NETSURF_DESKTOP_GUI_FACTORY_H_
-struct gui_table;
+#include "desktop/gui.h"
extern struct gui_table *guit; /* the gui vtable */
diff --git a/desktop/save_complete.c b/desktop/save_complete.c
index 3e5234af4..bd2ed4dea 100644
--- a/desktop/save_complete.c
+++ b/desktop/save_complete.c
@@ -37,6 +37,7 @@
#include "content/hlcache.h"
#include "css/css.h"
#include "desktop/save_complete.h"
+#include "desktop/gui_factory.h"
#include "render/box.h"
#include "render/html.h"
#include "utils/corestrings.h"
@@ -147,7 +148,7 @@ static bool save_complete_save_buffer(save_complete_ctx *ctx,
char fullpath[PATH_MAX];
strncpy(fullpath, ctx->path, sizeof fullpath);
- error = path_add_part(fullpath, sizeof fullpath, leafname);
+ error = guit->browser->path_add_part(fullpath, sizeof fullpath, leafname);
if (error == false) {
warn_user("NoMemory", NULL);
return false;
@@ -1048,7 +1049,7 @@ static bool save_complete_save_html_document(save_complete_ctx *ctx,
else
snprintf(filename, sizeof filename, "%p", c);
- error = path_add_part(fullpath, sizeof fullpath, filename);
+ error = guit->browser->path_add_part(fullpath, sizeof fullpath, filename);
if (error == false) {
warn_user("NoMemory", NULL);
return false;
@@ -1125,7 +1126,7 @@ static bool save_complete_inventory(save_complete_ctx *ctx)
char fullpath[PATH_MAX];
strncpy(fullpath, ctx->path, sizeof fullpath);
- error = path_add_part(fullpath, sizeof fullpath, "Inventory");
+ error = guit->browser->path_add_part(fullpath, sizeof fullpath, "Inventory");
if (error == false) {
warn_user("NoMemory", NULL);
return false;