From 295eceece371b516e771de93b6127bf728999483 Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 26 Jul 2014 19:24:00 -0400 Subject: initial commit so far source analysis is working. =) --- src/cuchaz/enigma/gui/SourceFormatter.java | 62 ++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/cuchaz/enigma/gui/SourceFormatter.java (limited to 'src/cuchaz/enigma/gui/SourceFormatter.java') diff --git a/src/cuchaz/enigma/gui/SourceFormatter.java b/src/cuchaz/enigma/gui/SourceFormatter.java new file mode 100644 index 0000000..f387840 --- /dev/null +++ b/src/cuchaz/enigma/gui/SourceFormatter.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright (c) 2014 Jeff Martin. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Public License v3.0 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/gpl.html + * + * Contributors: + * Jeff Martin - initial API and implementation + ******************************************************************************/ +package cuchaz.enigma.gui; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.StringReader; + +public class SourceFormatter +{ + public static String format( String in ) + { + return collapseNewlines( in ); + } + + private static String collapseNewlines( String in ) + { + StringBuffer buf = new StringBuffer(); + int numBlankLines = 0; + + BufferedReader reader = new BufferedReader( new StringReader( in ) ); + String line = null; + try + { + while( ( line = reader.readLine() ) != null ) + { + // how blank lines is this? + boolean isBlank = line.trim().length() == 0; + if( isBlank ) + { + numBlankLines++; + + // stop printing blank lines after the first one + if( numBlankLines < 2 ) + { + buf.append( line ); + buf.append( "\n" ); + } + } + else + { + numBlankLines = 0; + buf.append( line ); + buf.append( "\n" ); + } + } + } + catch( IOException ex ) + { + // StringReader will never throw an IOExecption here... + } + return buf.toString(); + } +} -- cgit v1.2.3