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 :) 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 :(



-- Per Einar Ellefsen [EMAIL PROTECTED]
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) }
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to