From b49b6db4f16cf31bd144eeec9427997c057d6f06 Mon Sep 17 00:00:00 2001 From: hniksic Date: Sat, 9 Apr 2005 15:18:36 -0700 Subject: [PATCH] [svn] Correct logic of check #6 in download_child_p. By Larry Jones and Hrvoje Niksic. --- src/ChangeLog | 12 ++++++++++++ src/recur.c | 18 +++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 9be27d80..fc04daea 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,15 @@ +2005-04-09 Hrvoje Niksic + + * 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 + + * 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 * url.c: Use "static const" in preference to "const static". diff --git a/src/recur.c b/src/recur.c index af2cbc81..3f037c6c 100644 --- a/src/recur.c +++ b/src/recur.c @@ -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)) { -- 2.39.2