]> sjero.net Git - wget/commitdiff
[svn] Correct logic of check #6 in download_child_p.
authorhniksic <devnull@localhost>
Sat, 9 Apr 2005 22:18:36 +0000 (15:18 -0700)
committerhniksic <devnull@localhost>
Sat, 9 Apr 2005 22:18:36 +0000 (15:18 -0700)
By Larry Jones and Hrvoje Niksic.

src/ChangeLog
src/recur.c

index 9be27d80bab3f75daba9c5029cb59e72df5b2af5..fc04daea49bd9a0560e96c87e3b1cfae552a14bd 100644 (file)
@@ -1,3 +1,15 @@
+2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * recur.c (download_child_p): When -p is used, (temporarily)
+       ignore accept/reject rules for HTMLs, even when they are at the
+       maximum recursion depth.  That is because with -p we are, if
+       necessary, overstepping the max. depth to get the requisites.
+
+2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
+
+       * recur.c (download_child_p): Correct the logic in check number 6:
+       test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
+
 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
 
        * url.c: Use "static const" in preference to "const static".
index af2cbc81fdedb8f344c66b9bad807691abcc3233..3f037c6cbb7d212ade30908905c0b0d179cc4e1e 100644 (file)
@@ -516,13 +516,21 @@ download_child_p (const struct urlpos *upos, struct url *parent, int depth,
     }
 
   /* 6. Check for acceptance/rejection rules.  We ignore these rules
-     for directories (no file name to match) and for HTML documents,
-     which might lead to other files that do need to be downloaded.
-     That is, unless we've exhausted the recursion depth anyway.  */
+     for directories (no file name to match) and for non-leaf HTMLs,
+     which can lead to other files that do need to be downloaded.  (-p
+     automatically implies non-leaf because with -p we can, if
+     necesary, overstep the maximum depth to get the page requisites.)  */
   if (u->file[0] != '\0'
       && !(has_html_suffix_p (u->file)
-          && depth != INFINITE_RECURSION
-          && depth < opt.reclevel - 1))
+          /* The exception only applies to non-leaf HTMLs (but -p
+             always implies non-leaf because we can overstep the
+             maximum depth to get the requisites): */
+          && (/* non-leaf */
+              opt.reclevel == INFINITE_RECURSION
+              /* also non-leaf */
+              || depth < opt.reclevel - 1
+              /* -p, which implies non-leaf (see above) */
+              || opt.page_requisites)))
     {
       if (!acceptable (u->file))
        {