summaryrefslogtreecommitdiff
path: root/render/form.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2004-03-21 20:07:14 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2004-03-21 20:07:14 +0000
commit3aeafecd7b547e3f535fb5a700fc20e590dab967 (patch)
tree3a903ee55002a0d5553bfae7d31adbc028b24897 /render/form.c
parent423f0f1e7068ba4874435c02e31b054e62ae7966 (diff)
downloadnetsurf-3aeafecd7b547e3f535fb5a700fc20e590dab967.tar.gz
netsurf-3aeafecd7b547e3f535fb5a700fc20e590dab967.tar.bz2
[project @ 2004-03-21 20:07:14 by jmb]
<input type="file" support> Broken in places. svn path=/import/netsurf/; revision=645
Diffstat (limited to 'render/form.c')
-rw-r--r--render/form.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/render/form.c b/render/form.c
index 6eee708b2..145ef68bd 100644
--- a/render/form.c
+++ b/render/form.c
@@ -11,10 +11,12 @@
*/
#include <assert.h>
+#include <stdio.h>
#include <string.h>
#include "curl/curl.h"
#include "netsurf/render/box.h"
#include "netsurf/render/form.h"
+#include "netsurf/utils/log.h"
#include "netsurf/utils/utils.h"
@@ -79,6 +81,7 @@ struct form_successful_control *form_successful_controls(struct form *form,
option = option->next) {
if (option->selected) {
success_new = xcalloc(1, sizeof(*success_new));
+ success_new->file = false;
success_new->name = xstrdup(control->name);
success_new->value = xstrdup(option->value);
success_new->next = 0;
@@ -92,6 +95,7 @@ struct form_successful_control *form_successful_controls(struct form *form,
/* textarea */
if (control->type == GADGET_TEXTAREA) {
success_new = xcalloc(1, sizeof(*success_new));
+ success_new->file = false;
success_new->name = xstrdup(control->name);
success_new->value = form_textarea_value(control);
success_new->next = 0;
@@ -105,6 +109,7 @@ struct form_successful_control *form_successful_controls(struct form *form,
unsigned int len = strlen(control->name) + 3;
/* x */
success_new = xcalloc(1, sizeof(*success_new));
+ success_new->file = false;
success_new->name = xcalloc(1, len);
sprintf(success_new->name, "%s.x", control->name);
success_new->value = xcalloc(1, 20);
@@ -114,6 +119,7 @@ struct form_successful_control *form_successful_controls(struct form *form,
last_success = success_new;
/* y */
success_new = xcalloc(1, sizeof(*success_new));
+ success_new->file = false;
success_new->name = xcalloc(1, len);
sprintf(success_new->name, "%s.y", control->name);
success_new->value = xcalloc(1, 20);
@@ -127,9 +133,22 @@ struct form_successful_control *form_successful_controls(struct form *form,
if (control->type == GADGET_RESET)
continue;
+ /* file */
+ if (control->type == GADGET_FILE) {
+ success_new = xcalloc(1, sizeof(*success_new));
+ success_new->file = true;
+ success_new->name = xstrdup(control->name);
+ success_new->value = xstrdup(control->value);
+ success_new->next = 0;
+ last_success->next = success_new;
+ last_success = success_new;
+ continue;
+ }
+
/* all others added if they have a value */
if (control->value) {
success_new = xcalloc(1, sizeof(*success_new));
+ success_new->file = false;
success_new->name = xstrdup(control->name);
success_new->value = xstrdup(control->value);
success_new->next = 0;