1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00

[svn] Convert URLs in <form action=...>.

Published in <sxsit6yf7jo.fsf@florida.arsdigita.de>.
This commit is contained in:
hniksic 2002-04-11 10:51:45 -07:00
parent 1375a89141
commit 8f93191f26
2 changed files with 41 additions and 16 deletions

View File

@ -1,3 +1,8 @@
2002-04-11 Hrvoje Niksic <hniksic@arsdigita.com>
* html-url.c (tag_handle_form): New function. Pick up form
actions and mark them for conversion only.
2002-04-11 Hrvoje Niksic <hniksic@arsdigita.com>
* progress.c (struct progress_implementation): Use PARAMS when

View File

@ -48,6 +48,7 @@ typedef void (*tag_handler_t) PARAMS ((int, struct taginfo *,
DECLARE_TAG_HANDLER (tag_find_urls);
DECLARE_TAG_HANDLER (tag_handle_base);
DECLARE_TAG_HANDLER (tag_handle_form);
DECLARE_TAG_HANDLER (tag_handle_link);
DECLARE_TAG_HANDLER (tag_handle_meta);
@ -73,29 +74,31 @@ static struct {
{ "embed", tag_find_urls },
#define TAG_FIG 7
{ "fig", tag_find_urls },
#define TAG_FRAME 8
#define TAG_FORM 8
{ "form", tag_handle_form },
#define TAG_FRAME 9
{ "frame", tag_find_urls },
#define TAG_IFRAME 9
#define TAG_IFRAME 10
{ "iframe", tag_find_urls },
#define TAG_IMG 10
#define TAG_IMG 11
{ "img", tag_find_urls },
#define TAG_INPUT 11
#define TAG_INPUT 12
{ "input", tag_find_urls },
#define TAG_LAYER 12
#define TAG_LAYER 13
{ "layer", tag_find_urls },
#define TAG_LINK 13
#define TAG_LINK 14
{ "link", tag_handle_link },
#define TAG_META 14
#define TAG_META 15
{ "meta", tag_handle_meta },
#define TAG_OVERLAY 15
#define TAG_OVERLAY 16
{ "overlay", tag_find_urls },
#define TAG_SCRIPT 16
#define TAG_SCRIPT 17
{ "script", tag_find_urls },
#define TAG_TABLE 17
#define TAG_TABLE 18
{ "table", tag_find_urls },
#define TAG_TD 18
#define TAG_TD 19
{ "td", tag_find_urls },
#define TAG_TH 19
#define TAG_TH 20
{ "th", tag_find_urls }
};
@ -141,10 +144,11 @@ static struct {
from the information above. However, some places in the code refer
to the attributes not mentioned here. We add them manually. */
static const char *additional_attributes[] = {
"rel", /* for TAG_LINK */
"http-equiv", /* for TAG_META */
"name", /* for TAG_META */
"content" /* for TAG_META */
"rel", /* used by tag_handle_link */
"http-equiv", /* used by tag_handle_meta */
"name", /* used by tag_handle_meta */
"content", /* used by tag_handle_meta */
"action" /* used by tag_handle_form */
};
static const char **interesting_tags;
@ -475,6 +479,22 @@ tag_handle_base (int tagid, struct taginfo *tag, struct map_context *ctx)
ctx->base = xstrdup (newbase);
}
/* Mark the URL found in <form action=...> for conversion. */
static void
tag_handle_form (int tagid, struct taginfo *tag, struct map_context *ctx)
{
int attrind;
char *action = find_attr (tag, "action", &attrind);
if (action)
{
struct urlpos *action_urlpos = append_one_url (action, 0, tag,
attrind, ctx);
if (action_urlpos)
action_urlpos->ignore_when_downloading = 1;
}
}
/* Handle the LINK tag. It requires special handling because how its
links will be followed in -p mode depends on the REL attribute. */