mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
[svn] Don't let absolute path specified by -P introduce absolute file names
to links converted by -k.
This commit is contained in:
parent
799e51d8fb
commit
168f03d21d
@ -1,3 +1,9 @@
|
|||||||
|
2003-10-16 Hrvoje Niksic <hniksic@xemacs.org>
|
||||||
|
|
||||||
|
* convert.c (construct_relative): Don't handle absolute files
|
||||||
|
specially -- for example, -P/tmp/foo shouldn't imply that
|
||||||
|
converted files must refer to "/tmp/foo/..."!
|
||||||
|
|
||||||
2003-10-15 Hrvoje Niksic <hniksic@xemacs.org>
|
2003-10-15 Hrvoje Niksic <hniksic@xemacs.org>
|
||||||
|
|
||||||
* http.c: Consider status 307 a valid redirect.
|
* http.c: Consider status 307 a valid redirect.
|
||||||
|
@ -327,33 +327,27 @@ convert_links (const char *file, struct urlpos *links)
|
|||||||
logprintf (LOG_VERBOSE, "%d-%d\n", to_file_count, to_url_count);
|
logprintf (LOG_VERBOSE, "%d-%d\n", to_file_count, to_url_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Construct and return a malloced copy of the relative link from two
|
/* Construct and return a link that points from S1's position to S2.
|
||||||
pieces of information: local name S1 of the referring file and
|
Both files should be local file names, S1 of the referrering file,
|
||||||
local name S2 of the referred file.
|
and S2 of the referred file.
|
||||||
|
|
||||||
So, if S1 is "jagor.srce.hr/index.html" and S2 is
|
So, if S1 is "H/index.html" and S2 is "H/images/news.gif", this
|
||||||
"jagor.srce.hr/images/news.gif", the function will return
|
function will return "images/news.gif". On the other hand, if S1
|
||||||
"images/news.gif".
|
is "H/ioccc/index.html", and S2 is "H/images/fly.gif", it will
|
||||||
|
return "../images/fly.gif".
|
||||||
Alternately, if S1 is "fly.cc.fer.hr/ioccc/index.html", and S2 is
|
|
||||||
"fly.cc.fer.hr/images/fly.gif", the function will return
|
|
||||||
"../images/fly.gif".
|
|
||||||
|
|
||||||
Caveats: S1 should not begin with `/', unless S2 also begins with
|
Caveats: S1 should not begin with `/', unless S2 also begins with
|
||||||
'/'. S1 should not contain things like ".." and such --
|
'/'. S1 should not contain things like ".." and such --
|
||||||
construct_relative ("fly/ioccc/../index.html",
|
construct_relative ("fly/ioccc/../index.html",
|
||||||
"fly/images/fly.gif") will fail. (A workaround is to call
|
"fly/images/fly.gif") will fail. (A workaround is to call
|
||||||
something like path_simplify() on S1). */
|
something like path_simplify() on S1). */
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
construct_relative (const char *s1, const char *s2)
|
construct_relative (const char *s1, const char *s2)
|
||||||
{
|
{
|
||||||
int i, cnt, sepdirs1;
|
int i, cnt, sepdirs1;
|
||||||
char *res;
|
char *res;
|
||||||
|
|
||||||
if (*s2 == '/')
|
|
||||||
return xstrdup (s2);
|
|
||||||
/* S1 should *not* be absolute, if S2 wasn't. */
|
|
||||||
assert (*s1 != '/');
|
|
||||||
i = cnt = 0;
|
i = cnt = 0;
|
||||||
/* Skip the directories common to both strings. */
|
/* Skip the directories common to both strings. */
|
||||||
while (1)
|
while (1)
|
||||||
|
Loading…
Reference in New Issue
Block a user