From 581d87757601286fbb8250abc8d2bd185dddecb7 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 4 Jan 2014 19:34:04 +0000 Subject: In theory, store raw filenames and pass them through for file upload. Untested due to no file-upload in GTK frontend just yet --- render/form.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'render') diff --git a/render/form.c b/render/form.c index aa6661cfa..a4b882a64 100644 --- a/render/form.c +++ b/render/form.c @@ -50,6 +50,7 @@ #include "render/html.h" #include "render/html_internal.h" #include "render/layout.h" +#include "utils/corestrings.h" #include "utils/log.h" #include "utils/messages.h" #include "utils/talloc.h" @@ -346,7 +347,7 @@ bool form_successful_controls(struct form *form, struct fetch_multipart_data sentinel, *last_success, *success_new; char *value = NULL; bool had_submit = false; - char *charset; + char *charset, *rawfile_temp; last_success = &sentinel; sentinel.next = NULL; @@ -598,6 +599,28 @@ bool form_successful_controls(struct form *form, goto no_memory; } + /* Retrieve the filename from the DOM annotation */ + if (dom_node_get_user_data( + control->node, + corestring_dom___ns_key_file_name_node_data, + &rawfile_temp) != DOM_NO_ERR) { + LOG(("unable to get rawfile")); + goto no_memory; + } + + if (rawfile_temp == NULL) { + /* No annotation means the file was not + */ + success_new->rawfile = strdup(""); + } else { + success_new->rawfile = strdup(rawfile_temp); + } + + if (success_new->rawfile == NULL) { + LOG(("strdup failed")); + goto no_memory; + } + continue; break; -- cgit v1.2.3