From fa93d05b7ea0de5720b006d43e4330d884069606 Mon Sep 17 00:00:00 2001 From: Date: Mon, 30 Jan 2006 12:18:43 +0100 Subject: [PATCH] current_link_evhook: return effaced --- src/viewer/text/link.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/viewer/text/link.c b/src/viewer/text/link.c index 90bef1149..019743f6d 100644 --- a/src/viewer/text/link.c +++ b/src/viewer/text/link.c @@ -63,12 +63,18 @@ current_link_evhook(struct document_view *doc_view, enum script_event_hook_type if (!doc_view->vs->ecmascript) return -1; foreach (evhook, *link->event_hooks) { - struct string src = INIT_STRING(evhook->src, strlen(evhook->src)); + unsigned char *ret; if (evhook->type != type) continue; - /* TODO: Some even handlers return a bool. */ - if (!ecmascript_eval_boolback(doc_view->vs->ecmascript, &src)) - return 0; + ret = evhook->src; + while ((ret = strstr(ret, "return "))) + while (*ret != ' ') *ret++ = ' '; + { + struct string src = INIT_STRING(evhook->src, strlen(evhook->src)); + /* TODO: Some even handlers return a bool. */ + if (!ecmascript_eval_boolback(doc_view->vs->ecmascript, &src)) + return 0; + } } return 1; @@ -874,9 +880,9 @@ try_submit_given_form(struct session *ses, struct document_view *doc_view, assert(interpreter); /* SEE and SpiderMonkey do not like return outside * functions. */ - while ((ret = strstr(ret, "return "))) { + while ((ret = strstr(ret, "return "))) while (*ret != ' ') *ret++ = ' '; - } + add_to_string(&code, form->onsubmit); res = ecmascript_eval_boolback(interpreter, &code); done_string(&code);