diff options
author | Vincent Sanders <vince@kyllikki.org> | 2015-04-17 10:40:11 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2015-04-17 10:40:11 +0100 |
commit | 89a3f250d257b1f4ae018e2057377243d98226e1 (patch) | |
tree | a2ea07434b665edd81cb05e8ed7f60d5b15ccc52 /gtk/viewsource.c | |
parent | 7ec917eed28fa973438f0d1d8d3e3a45649f6875 (diff) | |
download | netsurf-89a3f250d257b1f4ae018e2057377243d98226e1.tar.gz netsurf-89a3f250d257b1f4ae018e2057377243d98226e1.tar.bz2 |
Ensure GTK source viewer reports errors appropriately.
Diffstat (limited to 'gtk/viewsource.c')
-rw-r--r-- | gtk/viewsource.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gtk/viewsource.c b/gtk/viewsource.c index abc9f9483..62e595900 100644 --- a/gtk/viewsource.c +++ b/gtk/viewsource.c @@ -28,7 +28,7 @@ #include "gtk/viewdata.h" #include "gtk/viewsource.h" -void nsgtk_viewsource(GtkWindow *parent, struct browser_window *bw) +nserror nsgtk_viewsource(GtkWindow *parent, struct browser_window *bw) { nserror ret; struct hlcache_handle *hlcontent; @@ -41,11 +41,11 @@ void nsgtk_viewsource(GtkWindow *parent, struct browser_window *bw) hlcontent = browser_window_get_content(bw); if (hlcontent == NULL) { - return; + return NSERROR_BAD_PARAMETER; } if (content_get_type(hlcontent) != CONTENT_HTML) { - return; + return NSERROR_BAD_CONTENT; } source_data = content_get_source_data(hlcontent, &source_size); @@ -54,11 +54,15 @@ void nsgtk_viewsource(GtkWindow *parent, struct browser_window *bw) if (ret != NSERROR_OK) { filename = strdup(messages_get("SaveSource")); if (filename == NULL) { - return; + return NSERROR_NOMEM; } } title = malloc(strlen(nsurl_access(browser_window_get_url(bw))) + SLEN("Source of - NetSurf") + 1); + if (title == NULL) { + free(filename); + return NSERROR_NOMEM; + } sprintf(title, "Source of %s - NetSurf", nsurl_access(browser_window_get_url(bw))); ret = utf8_from_enc(source_data, @@ -72,4 +76,6 @@ void nsgtk_viewsource(GtkWindow *parent, struct browser_window *bw) free(filename); free(title); + + return ret; } |