At 20:31 15.06.2002, Stas Bekman wrote:
Per Einar Ellefsen wrote:
Ok, here's the deal:
download/binaries.pod links to docs::1.0::os::index. However, that link turns up as broken.
I have tracked the problem down the the creation of %src_docs. If you look at the dump, you'll see that docs/1.0/os/win32/index.html is in there, but docs/1.0/os/index.html isn't. This is a bug, because win32/ isn't a docset, but os/ is.
It seems like the problem lies here: (DocSet::RunTime, line 110):
map { m{(.*?/?)[^/]+$} # add autogenerated index.html
? ("$1index.html" => 1, $_ => 1)
: ($_ => 1); # shouldn't happen, but just in case
}
From this, the problem is that it just takes the longest path and appends index.html, without checking if it's a DocSet or not... I'm not sure how to fix this, as I suppose it would require checking up with the other DocSet classes to see the status of that directory...
I can fix this quickly by making win32 a docset and linking to that (which I will probably do anyway); however, that isn't a long-term solution.
See if I've fixed it. Actually while fixing I've greatly simplified the code and found at least one bug (now fixed) :)
I've simply mapped all config.cfg to index.html, that should be the right thing. Obviously the previous solution was just a spaghetti :)
Ok, thanks a lot Stas, but that broke all links on Win32 :)
well, not that, but extra fixing on top of the index.html fix :) the
s|$base/|| was obviously not crossplatform (notice the trailing /), so I thought abs2rel is the only way to do that well. I guess I could use substr() on the first char, but who knows what separators are out there.
I tracked it down to a bug in File::Spec::Win32::abs2rel , which is fixed by the attached patch. I'm not sure if I understood the abs2rel code well enough to submit a patch to p5p though... I'm afraid of breaking other things :(
Doh! Too bad :( I don't like the idea of compensating for bugs in the code, especially when the bug fix is applied globally (without checking $^O eq 'MSWin32'). How about putting an abs2rel in Util.pm and do all the bug fixing there? Though we should use the fqdn call then, so later it won't be confused with File::Spec's abs2rel.
But before we do that, which Perl version has thing bug? Is it in 5.8.0-RC1? If so please submit the test case and the patch to p5p asap (use the perlbug script in the source distribution), since 5.8.0 will be released rsn.
Index: lib/DocSet/RunTime.pm
===================================================================
RCS file: /home/cvs/modperl-docs/lib/DocSet/RunTime.pm,v
retrieving revision 1.8
diff -u -r1.8 RunTime.pm
--- lib/DocSet/RunTime.pm 15 Jun 2002 18:20:33 -0000 1.8
+++ lib/DocSet/RunTime.pm 16 Jun 2002 10:40:38 -0000
@@ -102,7 +102,7 @@
my $rel_uri = path2uri($rel_path);
$src_docs{$rel_uri} = {
map { s/config\.cfg$/index.html/; ($_ => 1) } # autogenerated
index.html
- map path2uri( abs2rel($_, $full_base_path) ), # full
path=>relative uri
+ map path2uri( abs2rel($_, $full_base_path) =~ /^(?:\w:)?(.*)/ ),#
full path=>relative uri (regex is bugfix for File::Spec::Win32)
grep $rsub_keep_ext->($_), # get files with wanted exts
grep !$rsub_skip_seen->($_), # skip seen base dirs
@{ expand_dir($full_base_path) }
--
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
