Added workaround regexes for sloppyPrint()'s inconsistent line endings inside comments

This commit is contained in:
Vhati 2013-09-08 04:02:31 -04:00
parent 78704d2377
commit f3825d3bd8
2 changed files with 4 additions and 1 deletions

View file

@ -226,6 +226,7 @@ public class ModUtilities {
StringWriter writer = new StringWriter(); StringWriter writer = new StringWriter();
SloppyXMLOutputProcessor.sloppyPrint( mergedDoc, writer, encoding ); SloppyXMLOutputProcessor.sloppyPrint( mergedDoc, writer, encoding );
String mergedString = writer.toString(); String mergedString = writer.toString();
mergedString = mergedString.replaceAll( "\r(?!\n)|(?<!\r)\n", "\r\n" ); // sloppyPrint needs normalizing!?
InputStream result = encodeText( mergedString, encoding, mainDescription+"+"+appendDescription ); InputStream result = encodeText( mergedString, encoding, mainDescription+"+"+appendDescription );
return result; return result;
@ -259,6 +260,7 @@ public class ModUtilities {
StringWriter writer = new StringWriter(); StringWriter writer = new StringWriter();
SloppyXMLOutputProcessor.sloppyPrint( doc, writer, encoding ); SloppyXMLOutputProcessor.sloppyPrint( doc, writer, encoding );
String resultString = writer.toString(); String resultString = writer.toString();
resultString = resultString.replaceAll( "\r(?!\n)|(?<!\r)\n", "\r\n" ); // sloppyPrint needs normalizing!?
InputStream result = encodeText( resultString, encoding, srcDescription+" (cleaned)" ); InputStream result = encodeText( resultString, encoding, srcDescription+" (cleaned)" );
return result; return result;

View file

@ -150,12 +150,13 @@ public class SloppyXMLOutputProcessor extends AbstractXMLOutputProcessor {
* is encoding bytes to match. If encoding is null, the default * is encoding bytes to match. If encoding is null, the default
* is "UTF-8". * is "UTF-8".
* *
* LineEndings will be CR-LF. * LineEndings will be CR-LF. Except for comments!?
*/ */
public static void sloppyPrint( Document doc, Writer writer, String encoding ) throws IOException { public static void sloppyPrint( Document doc, Writer writer, String encoding ) throws IOException {
Format format = Format.getPrettyFormat(); Format format = Format.getPrettyFormat();
format.setExpandEmptyElements( false ); format.setExpandEmptyElements( false );
format.setOmitDeclaration( false ); format.setOmitDeclaration( false );
format.setIndent( "\t" );
format.setLineSeparator( LineSeparator.CRNL ); format.setLineSeparator( LineSeparator.CRNL );
if ( encoding != null ) format.setEncoding( encoding ); if ( encoding != null ) format.setEncoding( encoding );