cziegeler 01/10/01 05:18:08 Modified: src/org/apache/cocoon/serialization LinkSerializer.java Log: Fixed bugs: mailto can not be traversed, links containing ankers are not properly handled Revision Changes Path 1.4 +13 -3 xml-cocoon2/src/org/apache/cocoon/serialization/LinkSerializer.java Index: LinkSerializer.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/serialization/LinkSerializer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- LinkSerializer.java 2001/08/20 13:55:16 1.3 +++ LinkSerializer.java 2001/10/01 12:18:07 1.4 @@ -20,7 +20,7 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a> - * @version CVS $Revision: 1.3 $ $Date: 2001/08/20 13:55:16 $ + * @version CVS $Revision: 1.4 $ $Date: 2001/10/01 12:18:07 $ */ public class LinkSerializer extends ExtendedXLinkPipe implements Serializer, Poolable { @@ -44,18 +44,28 @@ public void simpleLink(String href, String role, String arcrole, String title, String show, String actuate, String uri, String name, String raw, Attributes attr) throws SAXException { - if (traversable(href)) out.println(href); + if (traversable(href)) this.print(href); } public void startLocator(String href, String role, String title, String label, String uri, String name, String raw, Attributes attr) throws SAXException { - if (traversable(href)) out.println(href); + if (traversable(href)) this.print(href); } private boolean traversable(String href) { if (href.charAt(0) == '#') return false; if (href.indexOf("://") != -1) return false; + if (href.startsWith("mailto:") == true) return false; return true; + } + + private void print(String href) { + int ankerPos = href.indexOf('#'); + if (ankerPos == -1) { + out.println(href); + } else { + out.println(href.substring(0, ankerPos)); + } } /**
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]