]> sjero.net Git - wget/commitdiff
[svn] Make -p work with framed pages.
authorhniksic <devnull@localhost>
Sat, 1 Dec 2001 03:06:41 +0000 (19:06 -0800)
committerhniksic <devnull@localhost>
Sat, 1 Dec 2001 03:06:41 +0000 (19:06 -0800)
Published in <sxsu1vby71t.fsf@florida.arsdigita.de>.

NEWS
TODO
src/ChangeLog
src/recur.c

diff --git a/NEWS b/NEWS
index a1853afb4461c94629736cd1fe8c2a4f2f860c83..777381e85d888cae903fe0c8c62791f5a8530bf2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -41,6 +41,10 @@ are now converted correctly.
 retrieving for inline images, stylesheets, and other documents needed
 to display the page.
 
+*** Page-requisites (-p) mode now works with frames.  In other words,
+`wget -p URL-THAT-USES-FRAMES' will now download the frame HTML files,
+and all the files that they need to be displayed properly.
+
 ** If a host has more than one IP address, Wget uses the other
 addresses when accessing the first one fails.
 
diff --git a/TODO b/TODO
index 8dea09d6be61bf5b713d64ce2e16a1cb645be54c..dd0baa10309bfd9677635cd9d192e2dae6a95c97 100644 (file)
--- a/TODO
+++ b/TODO
@@ -15,8 +15,6 @@ changes.
   It should connect to the proxy URL, log in as username@target-site,
   and continue as usual.
 
-* -p should probably go "_two_ more hops" on <FRAMESET> pages.
-
 * Add a --range parameter allowing you to explicitly specify a range of bytes to
   get from a file over HTTP (FTP only supports ranges ending at the end of the
   file, though forcibly disconnecting from the server at the desired endpoint
index c2592d132a3ce7eeb777536ca58f04f02eff750b..9d1bc81b359de7aeae81db5a841791a7abdf3c99 100644 (file)
@@ -1,3 +1,8 @@
+2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+       * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
+       depth by more than one.
+
 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
 
        * retr.c (retrieve_url): Don't allow more than 20 redirections.
index 6b8c41b079e9c6cf72581ada7c5823ce2ea9b19b..091df379deefad9a4224810e9a358d44d3cf2bf7 100644 (file)
@@ -255,17 +255,22 @@ retrieve_tree (const char *start_url)
       if (descend
          && depth >= opt.reclevel && opt.reclevel != INFINITE_RECURSION)
        {
-         if (opt.page_requisites && depth == opt.reclevel)
-           /* When -p is specified, we can do one more partial
-              recursion from the "leaf nodes" on the HTML document
-              tree.  The recursion is partial in that we won't
-              traverse any <A> or <AREA> tags, nor any <LINK> tags
-              except for <LINK REL="stylesheet">. */
-           dash_p_leaf_HTML = TRUE;
+         if (opt.page_requisites
+             && (depth == opt.reclevel || depth == opt.reclevel + 1))
+           {
+             /* When -p is specified, we are allowed to exceed the
+                maximum depth, but only for the "inline" links,
+                i.e. those that are needed to display the page.
+                Originally this could exceed the depth at most by
+                one, but we allow one more level so that the leaf
+                pages that contain frames can be loaded
+                correctly.  */
+             dash_p_leaf_HTML = TRUE;
+           }
          else
            {
              /* Either -p wasn't specified or it was and we've
-                already gone the one extra (pseudo-)level that it
+                already spent the two extra (pseudo-)levels that it
                 affords us, so we need to bail out. */
              DEBUGP (("Not descending further; at depth %d, max. %d.\n",
                       depth, opt.reclevel));