# HG changeset patch
# User František Kučera <franta-hg@frantovo.cz>
# Date 1319037833 -7200
# Node ID 08c9fb6fb01795dd6d5d404e1b84a20f709a6562
# Parent  dd361cf60002ca6999ac9589804c5c7a25cd02e7
Drupal: tidy – správné označování konců řádků (jen tam, kde už je nějaký text)

diff -r dd361cf60002 -r 08c9fb6fb017 src/org/sonews/storage/DrupalMessage.java
--- a/src/org/sonews/storage/DrupalMessage.java	Tue Oct 18 22:55:43 2011 +0200
+++ b/src/org/sonews/storage/DrupalMessage.java	Wed Oct 19 17:23:53 2011 +0200
@@ -64,6 +64,7 @@
 	private static final String CRLF = "\r\n";
 	public static final String CHARSET = "UTF-8";
 	private static final String XHTML_CONTENT_TYPE = "text/html; charset=" + CHARSET;
+	private static final String ZNAKČKA_KONCE_ŘÁDKU = "◆";
 	private String messageID;
 
 	/**
@@ -198,7 +199,7 @@
 		 *		- použít delší zástupný řetězec, ne jen jeden znak
 		 *		- umísťovat ho jen tam, kde už nějaký text je (ne mezi >\s*<)
 		 */
-		inputText = inputText.replaceAll("\\n", "◆\n");
+		inputText = označKonceŘádků(inputText);
 
 		Runtime r = Runtime.getRuntime();
 		Process p = r.exec(new String[]{"tidy", // http://tidy.sourceforge.net
@@ -219,12 +220,23 @@
 
 		String outputText = streamToString(p.getInputStream());
 
-		outputText = outputText.replaceAll("◆\\n", "\n");
-		outputText = outputText.replaceAll("◆", "\n");
+		outputText = vraťKonceŘádků(outputText);
 
 		return outputText;
 	}
 
+	private static String označKonceŘádků(String text) {
+		text = text.replaceAll(">\\s+<", "> <");
+		text = text.replaceAll("\\n", ZNAKČKA_KONCE_ŘÁDKU + "\n");
+		return text;
+	}
+
+	private static String vraťKonceŘádků(String text) {
+		text = text.replaceAll(ZNAKČKA_KONCE_ŘÁDKU + "\\n", "\n");
+		text = text.replaceAll(ZNAKČKA_KONCE_ŘÁDKU, "\n");
+		return text;
+	}
+
 	/**
 	 * TODO: refaktorovat, přesunout
 	 */