Author: ltheussl Date: Wed Nov 14 05:45:31 2007 New Revision: 594878 URL: http://svn.apache.org/viewvc?rev=594878&view=rev Log: Generalize escapeHTML
Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/util/HtmlTools.java Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/util/HtmlTools.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/util/HtmlTools.java?rev=594878&r1=594877&r2=594878&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/util/HtmlTools.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/util/HtmlTools.java Wed Nov 14 05:45:31 2007 @@ -33,19 +33,35 @@ public class HtmlTools { /** - * Escape special characters in a text in HTML. + * Escape special HTML characters in a String in <code>xml</code> mode. + * + * @param text the String to escape, may be null. + * @return The escaped text or the empty string if text == null. + * @see #escapeHTML(String,boolean). + */ + public static String escapeHTML( String text ) + { + return escapeHTML( text, true ); + } + + /** + * Escape special HTML characters in a String. * * <pre> - * < becomes <code>&</code>lt; - * > becomes <code>&</code>gt; - * & becomes <code>&</code>amp; - * " becomes <code>&</code>quot; + * < becomes <code><</code> + * > becomes <code>></code> + * & becomes <code>&</code> + * " becomes <code>"</code> * </pre> * - * @param text the String to escape, may be null - * @return the text escaped, "" if null String input + * If <code>xmlMode</code> is true, every other character than the above remains unchanged, + * if <code>xmlMode</code> is false, non-ascii characters get replaced by their hex code. + * + * @param text The String to escape, may be null. + * @param xmlMode set to <code>false</code> to replace non-ascii characters. + * @return The escaped text or the empty string if text == null. */ - public static String escapeHTML( String text ) + public static final String escapeHTML( String text, boolean xmlMode ) { if ( text == null ) { @@ -73,7 +89,24 @@ buffer.append( """ ); break; default: - buffer.append( c ); + if ( xmlMode ) + { + buffer.append( c ); + } + else + { + if ( c <= 0x7E ) + { + // ASCII. + buffer.append( c ); + } + else + { + buffer.append( "&#" ); + buffer.append( (int) c ); + buffer.append( ';' ); + } + } } }