diff options
author | Vincent Sanders <vince@kyllikki.org> | 2014-01-16 00:01:25 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2014-01-16 00:01:25 +0000 |
commit | 38cb39339a8f1f9a0afb69340a404fd767db5a79 (patch) | |
tree | 0b5ed63f639e8d8e66011a425ee595545b74300d /desktop | |
parent | bd065d4a434755e67642a071e255cba596de8d1e (diff) | |
download | netsurf-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.h | 18 | ||||
-rw-r--r-- | desktop/gui_factory.c | 7 | ||||
-rw-r--r-- | desktop/gui_factory.h | 2 | ||||
-rw-r--r-- | desktop/save_complete.c | 7 |
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; |