Ok, I got it :)

Shouldn't we still allow ".\" and "..\" as well as windows people might use that for internal links? Or is that illegal also for links between files?

-Lukas


Dennis Lundberg wrote:
I was caught by this one the other day as well, but didn't have time then to see what had gone wrong.

Cabasson Denis wrote:

(I know there is a DOXIA list, but I haven't been able to find it in a short time, so I used the Maven dev one).

My problem is that on Windows, links beginning with "./", such as "./link" is not interpreted as an external link (because StructureSink.isExternalLink is seaching for ".\"). Thus, it is rendered as href="#./link" which is troublesome. And in most plugin, (like the PMD one), they are just using "./" instead of bothering with the separatorChar.


Having links that contains the \ character is plain wrong. See RFC2396 section 2.4.3.
  http://www.ietf.org/rfc/rfc2396.txt

We should change StructureSink.isExternalLink so that it doesn't use File.separator. It should be using the / character directly.

Thus, this revision broke a lot of existing reports (at least on Windows).

I agree with you that DOXIA-47 is correctly fixed by this patch, but it breaking quite a lot of other things, which is not good.

Anyway, after some research, I have found that ".\link", if interpreted correctly by DOXIA is not interpreted correctly by web browsers (at least Opera and Firefox).

Thus I guess a fix to this would be to change the StructureSink.isExternalLink method to use "/" instead of separatorChar (and repbulish a SNAPSHOT version).

Denis.

-----Message d'origine-----
De : Lukas Theussl [mailto:[EMAIL PROTECTED] Envoyé : mardi 17 juillet 2007 16:46
À : Maven Developers List
Objet : Re: [DOXIA] Revert doxia revision 555417

(you know there is a doxia list?...)

I don't quite understand your evaluation of the problem. StructureSink.isExternalLink uses text.indexOf( "." + File.separatorChar ), so this returns true for "./link" (Unix) and ".\link" (Windows). In any case you should get an external link (no #) for "./some/path/file.html".

Anyway, DOXIA-47 is fixed correctly IMO, if there is a Locale problem then this is a separate issue, you should open another JIRA for that.

Cheers,
-Lukas


Cabasson Denis wrote:

Could you please revert the Doxia revision : http://svn.apache.org/viewvc?view=rev&revision=555417

And deploy a new snapshot version of doxia since latest version
(doxia-core-1.0-alpha-9-20070714.200033-13) is shipping

with this patch.

This patch is breaking report created by lots of plugin.

Indeed links

beginning with "./some/path/file.html" are no longer considered as local link on my configuration (Windows with French Locale)

and ends

up as links to anchor : href="#./some/path/file.html".

This can be tracked to the fact that

http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/ma

in

/java/org/apache/maven/doxia/sink/StructureSink.java?revision=519803&v

ie w=markup StructureSink#isExternalLink is using File.separator to search for relative links (which is '\' instead of '/' on windows), while most of the report plugin are just using the '/' char (for example, see

http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/

ma

in/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java?revision=51

70 80&view=markup AbstractPmdReport#constructXRefLocation ).

Before revision 555417, everything was fine but with this

revision, a

lots of reports are broken here, with relative links being

now wrongly

considered as links to anchors.

I guess http://jira.codehaus.org/browse/DOXIA-47 should be

reopened,

and another solution found (or maybe StructureSink should be more lenient on the separator char).

Thanks!

Denis.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to