From: hniksic Date: Thu, 11 Apr 2002 17:51:45 +0000 (-0700) Subject: [svn] Convert URLs in
. X-Git-Tag: v1.13~1816 X-Git-Url: http://sjero.net/git/?p=wget;a=commitdiff_plain;h=8f93191f2656768dee6f9f700b9653421df55e1c [svn] Convert URLs in . Published in . --- diff --git a/src/ChangeLog b/src/ChangeLog index f84d5294..56713018 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2002-04-11 Hrvoje Niksic + + * html-url.c (tag_handle_form): New function. Pick up form + actions and mark them for conversion only. + 2002-04-11 Hrvoje Niksic * progress.c (struct progress_implementation): Use PARAMS when diff --git a/src/html-url.c b/src/html-url.c index fdafe0f1..11789e59 100644 --- a/src/html-url.c +++ b/src/html-url.c @@ -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 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. */