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( ';' );
+ }
+ }
}
}