|
|
@@ -149,8 +149,8 @@ public class FixCRLF extends MatchingTask { |
|
|
|
*/ |
|
|
|
public FixCRLF () { |
|
|
|
tabs = ASIS; |
|
|
|
if (System.getProperty("path.separator").equals(":")) { |
|
|
|
ctrlz = REMOVE; |
|
|
|
if (System.getProperty("path.separator").equals(":")) { |
|
|
|
ctrlz = REMOVE; |
|
|
|
if (System.getProperty("os.name").indexOf("Mac") > -1) { |
|
|
|
eol = CR; |
|
|
|
eolstr = "\r"; |
|
|
@@ -158,12 +158,12 @@ public class FixCRLF extends MatchingTask { |
|
|
|
eol = LF; |
|
|
|
eolstr = "\n"; |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
ctrlz = ASIS; |
|
|
|
} |
|
|
|
else { |
|
|
|
ctrlz = ASIS; |
|
|
|
eol = CRLF; |
|
|
|
eolstr = "\r\n"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@@ -211,7 +211,7 @@ public class FixCRLF extends MatchingTask { |
|
|
|
eol = LF; |
|
|
|
eolstr = "\n"; |
|
|
|
} else { |
|
|
|
// Must be "crlf" |
|
|
|
// Must be "crlf" |
|
|
|
eol = CRLF; |
|
|
|
eolstr = "\r\n"; |
|
|
|
} |
|
|
@@ -276,13 +276,13 @@ public class FixCRLF extends MatchingTask { |
|
|
|
public void setTablength(int tlength) throws BuildException { |
|
|
|
if (tlength < 2 || tlength >80) { |
|
|
|
throw new BuildException("tablength must be between 2 and 80", |
|
|
|
location); |
|
|
|
location); |
|
|
|
} |
|
|
|
tablength = tlength; |
|
|
|
StringBuffer sp = new StringBuffer(); |
|
|
|
for (int i = 0; i < tablength; i++) { |
|
|
|
sp.append(' '); |
|
|
|
} |
|
|
|
for (int i = 0; i < tablength; i++) { |
|
|
|
sp.append(' '); |
|
|
|
} |
|
|
|
spaces = sp.toString(); |
|
|
|
} |
|
|
|
|
|
|
@@ -335,7 +335,7 @@ public class FixCRLF extends MatchingTask { |
|
|
|
// log options used |
|
|
|
log("options:" + |
|
|
|
" eol=" + |
|
|
|
(eol==ASIS ? "asis" : eol==CR ? "cr" : eol==LF ? "lf" : "crlf") + |
|
|
|
(eol==ASIS ? "asis" : eol==CR ? "cr" : eol==LF ? "lf" : "crlf") + |
|
|
|
" tab=" + (tabs==TABS ? "add" : tabs==ASIS ? "asis" : "remove") + |
|
|
|
" eof=" + (ctrlz==ADD ? "add" : ctrlz==ASIS ? "asis" : "remove") + |
|
|
|
" tablength=" + tablength, |
|
|
@@ -345,7 +345,7 @@ public class FixCRLF extends MatchingTask { |
|
|
|
String[] files = ds.getIncludedFiles(); |
|
|
|
|
|
|
|
for (int i = 0; i < files.length; i++) { |
|
|
|
processFile(files[i]); |
|
|
|
processFile(files[i]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -363,12 +363,12 @@ public class FixCRLF extends MatchingTask { |
|
|
|
} |
|
|
|
|
|
|
|
private void processFile(String file) throws BuildException { |
|
|
|
File srcFile = new File(srcDir, file); |
|
|
|
File tmpFile = null; |
|
|
|
File srcFile = new File(srcDir, file); |
|
|
|
File tmpFile = null; |
|
|
|
BufferedWriter outWriter; |
|
|
|
OneLiner.BufferLine line; |
|
|
|
|
|
|
|
// read the contents of the file |
|
|
|
// read the contents of the file |
|
|
|
OneLiner lines = new OneLiner(srcFile); |
|
|
|
|
|
|
|
try { |
|
|
@@ -507,17 +507,34 @@ public class FixCRLF extends MatchingTask { |
|
|
|
|
|
|
|
File destFile = new File(destDir == null ? srcDir : destDir, |
|
|
|
file); |
|
|
|
|
|
|
|
try { |
|
|
|
lines.close(); |
|
|
|
lines = null; |
|
|
|
} |
|
|
|
catch (IOException e) { |
|
|
|
throw new BuildException("Unable to close source file " + srcFile); |
|
|
|
} |
|
|
|
|
|
|
|
if (destFile.exists()) { |
|
|
|
if (!destFile.delete()) { |
|
|
|
throw new BuildException("Unable to delete " + destFile); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (!tmpFile.renameTo(destFile)) { |
|
|
|
throw new BuildException("Failed to transform " + srcFile |
|
|
|
+ " to " + destFile |
|
|
|
+ ". Couldn't rename temporary file."); |
|
|
|
+ ". Couldn't rename temporary file: " + tmpFile); |
|
|
|
} else { |
|
|
|
tmpFile = null; |
|
|
|
} |
|
|
|
|
|
|
|
} finally { |
|
|
|
try { |
|
|
|
lines.close(); |
|
|
|
if (lines != null) { |
|
|
|
lines.close(); |
|
|
|
} |
|
|
|
} catch (IOException io) { |
|
|
|
log("Error closing "+srcFile, Project.MSG_ERR); |
|
|
|
} // end of catch |
|
|
@@ -596,13 +613,13 @@ public class FixCRLF extends MatchingTask { |
|
|
|
* before the terminator is found. |
|
|
|
*/ |
|
|
|
private void endOfCharConst(OneLiner.BufferLine bufline, char terminator) |
|
|
|
throws BuildException |
|
|
|
throws BuildException |
|
|
|
{ |
|
|
|
int ptr = bufline.getNext(); |
|
|
|
int eol = bufline.length(); |
|
|
|
int eol = bufline.length(); |
|
|
|
char c; |
|
|
|
ptr++; // skip past initial quote |
|
|
|
while (ptr < eol) { |
|
|
|
ptr++; // skip past initial quote |
|
|
|
while (ptr < eol) { |
|
|
|
if ((c = bufline.getChar(ptr++)) == '\\') { |
|
|
|
ptr++; |
|
|
|
} |
|
|
@@ -612,9 +629,9 @@ public class FixCRLF extends MatchingTask { |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
} // end of while (ptr < eol) |
|
|
|
// Must have fallen through to the end of the line |
|
|
|
throw new BuildException("endOfCharConst: unterminated char constant"); |
|
|
|
} // end of while (ptr < eol) |
|
|
|
// Must have fallen through to the end of the line |
|
|
|
throw new BuildException("endOfCharConst: unterminated char constant"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@@ -630,64 +647,64 @@ public class FixCRLF extends MatchingTask { |
|
|
|
* @param BufferedWriter outWriter Sink for the processed string |
|
|
|
*/ |
|
|
|
private void notInConstant(OneLiner.BufferLine bufline, int end, |
|
|
|
BufferedWriter outWriter) |
|
|
|
BufferedWriter outWriter) |
|
|
|
{ |
|
|
|
// N.B. both column and string index are zero-based |
|
|
|
// Process a string not part of a constant; |
|
|
|
// i.e. convert tabs<->spaces as required |
|
|
|
// This is NOT called for ASIS tab handling |
|
|
|
int nextTab; |
|
|
|
// N.B. both column and string index are zero-based |
|
|
|
// Process a string not part of a constant; |
|
|
|
// i.e. convert tabs<->spaces as required |
|
|
|
// This is NOT called for ASIS tab handling |
|
|
|
int nextTab; |
|
|
|
int nextStop; |
|
|
|
int tabspaces; |
|
|
|
String line = bufline.substring(bufline.getNext(), end); |
|
|
|
int place = 0; // Zero-based |
|
|
|
int col = bufline.getColumn(); // Zero-based |
|
|
|
|
|
|
|
// process sequences of white space |
|
|
|
// first convert all tabs to spaces |
|
|
|
linebuf.setLength(0); |
|
|
|
while ((nextTab = line.indexOf((int) '\t', place)) >= 0) { |
|
|
|
linebuf.append(line.substring(place, nextTab)); // copy to the TAB |
|
|
|
col += nextTab - place; |
|
|
|
tabspaces = tablength - (col % tablength); |
|
|
|
linebuf.append(spaces.substring(0, tabspaces)); |
|
|
|
col += tabspaces; |
|
|
|
place = nextTab + 1; |
|
|
|
} // end of while |
|
|
|
linebuf.append(line.substring(place, line.length())); |
|
|
|
// if converting to spaces, all finished |
|
|
|
String linestring = new String(linebuf.toString()); |
|
|
|
if (tabs == REMOVE) { |
|
|
|
String line = bufline.substring(bufline.getNext(), end); |
|
|
|
int place = 0; // Zero-based |
|
|
|
int col = bufline.getColumn(); // Zero-based |
|
|
|
|
|
|
|
// process sequences of white space |
|
|
|
// first convert all tabs to spaces |
|
|
|
linebuf.setLength(0); |
|
|
|
while ((nextTab = line.indexOf((int) '\t', place)) >= 0) { |
|
|
|
linebuf.append(line.substring(place, nextTab)); // copy to the TAB |
|
|
|
col += nextTab - place; |
|
|
|
tabspaces = tablength - (col % tablength); |
|
|
|
linebuf.append(spaces.substring(0, tabspaces)); |
|
|
|
col += tabspaces; |
|
|
|
place = nextTab + 1; |
|
|
|
} // end of while |
|
|
|
linebuf.append(line.substring(place, line.length())); |
|
|
|
// if converting to spaces, all finished |
|
|
|
String linestring = new String(linebuf.toString()); |
|
|
|
if (tabs == REMOVE) { |
|
|
|
try { |
|
|
|
outWriter.write(linestring); |
|
|
|
} catch (IOException e) { |
|
|
|
throw new BuildException(e); |
|
|
|
} // end of try-catch |
|
|
|
} |
|
|
|
else { // tabs == ADD |
|
|
|
} |
|
|
|
else { // tabs == ADD |
|
|
|
int tabCol; |
|
|
|
linebuf2.setLength(0); |
|
|
|
place = 0; |
|
|
|
col = bufline.getColumn(); |
|
|
|
int placediff = col - 0; |
|
|
|
// for the length of the string, cycle through the tab stop |
|
|
|
// positions, checking for a space preceded by at least one |
|
|
|
// other space at the tab stop. if so replace the longest possible |
|
|
|
// preceding sequence of spaces with a tab. |
|
|
|
nextStop = col + (tablength - col % tablength); |
|
|
|
if (nextStop - col < 2) { |
|
|
|
linebuf2.setLength(0); |
|
|
|
place = 0; |
|
|
|
col = bufline.getColumn(); |
|
|
|
int placediff = col - 0; |
|
|
|
// for the length of the string, cycle through the tab stop |
|
|
|
// positions, checking for a space preceded by at least one |
|
|
|
// other space at the tab stop. if so replace the longest possible |
|
|
|
// preceding sequence of spaces with a tab. |
|
|
|
nextStop = col + (tablength - col % tablength); |
|
|
|
if (nextStop - col < 2) { |
|
|
|
linebuf2.append(linestring.substring( |
|
|
|
place, nextStop - placediff)); |
|
|
|
place = nextStop - placediff; |
|
|
|
nextStop += tablength; |
|
|
|
} |
|
|
|
|
|
|
|
for ( ; nextStop - placediff <= linestring.length() |
|
|
|
; nextStop += tablength) |
|
|
|
{ |
|
|
|
for (tabCol = nextStop; |
|
|
|
nextStop += tablength; |
|
|
|
} |
|
|
|
|
|
|
|
for ( ; nextStop - placediff <= linestring.length() |
|
|
|
; nextStop += tablength) |
|
|
|
{ |
|
|
|
for (tabCol = nextStop; |
|
|
|
--tabCol - placediff >= place |
|
|
|
&& linestring.charAt(tabCol - placediff) == ' ' |
|
|
|
&& linestring.charAt(tabCol - placediff) == ' ' |
|
|
|
;) |
|
|
|
{ |
|
|
|
; // Loop for the side-effects |
|
|
@@ -707,8 +724,8 @@ public class FixCRLF extends MatchingTask { |
|
|
|
place = nextStop - placediff; |
|
|
|
} // end of for (nextStop ... ) |
|
|
|
|
|
|
|
// pick up that last bit, if any |
|
|
|
linebuf2.append(linestring.substring(place, linestring.length())); |
|
|
|
// pick up that last bit, if any |
|
|
|
linebuf2.append(linestring.substring(place, linestring.length())); |
|
|
|
|
|
|
|
try { |
|
|
|
outWriter.write(linebuf2.toString()); |
|
|
@@ -716,11 +733,11 @@ public class FixCRLF extends MatchingTask { |
|
|
|
throw new BuildException(e); |
|
|
|
} // end of try-catch |
|
|
|
|
|
|
|
} // end of else tabs == ADD |
|
|
|
} // end of else tabs == ADD |
|
|
|
|
|
|
|
// Set column position as modified by this method |
|
|
|
bufline.setColumn(bufline.getColumn() + linestring.length()); |
|
|
|
bufline.setNext(end); |
|
|
|
// Set column position as modified by this method |
|
|
|
bufline.setColumn(bufline.getColumn() + linestring.length()); |
|
|
|
bufline.setNext(end); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
@@ -730,101 +747,101 @@ public class FixCRLF extends MatchingTask { |
|
|
|
private int state = javafiles ? LOOKING : NOTJAVA; |
|
|
|
|
|
|
|
private StringBuffer eolStr = new StringBuffer(LINEBUFLEN); |
|
|
|
private StringBuffer eofStr = new StringBuffer(); |
|
|
|
private StringBuffer eofStr = new StringBuffer(); |
|
|
|
|
|
|
|
private BufferedReader reader; |
|
|
|
private String line; |
|
|
|
private BufferedReader reader; |
|
|
|
private String line; |
|
|
|
|
|
|
|
public OneLiner(File srcFile) |
|
|
|
public OneLiner(File srcFile) |
|
|
|
throws BuildException |
|
|
|
{ |
|
|
|
try { |
|
|
|
reader = new BufferedReader |
|
|
|
(new FileReader(srcFile), INBUFLEN); |
|
|
|
nextLine(); |
|
|
|
} catch (IOException e) { |
|
|
|
throw new BuildException(e); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
protected void nextLine() |
|
|
|
throws BuildException { |
|
|
|
int ch; |
|
|
|
int eolcount = 0; |
|
|
|
|
|
|
|
eolStr.setLength(0); |
|
|
|
|
|
|
|
try { |
|
|
|
int linelen; |
|
|
|
|
|
|
|
reader.mark(INBUFLEN); |
|
|
|
line = reader.readLine(); |
|
|
|
if (line == null) { |
|
|
|
// Eof has been reached |
|
|
|
linelen = 0; |
|
|
|
} |
|
|
|
else { |
|
|
|
linelen = line.length(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Find the EOL character(s) |
|
|
|
|
|
|
|
reader.reset(); |
|
|
|
|
|
|
|
// an IOException will be thrown |
|
|
|
reader.skip((long)linelen); |
|
|
|
reader.mark(INBUFLEN); |
|
|
|
ch = reader.read(); |
|
|
|
switch ((char) ch) { |
|
|
|
case '\r': |
|
|
|
// Check for \r, \r\n and \r\r\n |
|
|
|
// Regard \r\r not followed by \n as two lines |
|
|
|
++eolcount; |
|
|
|
eolStr.append('\r'); |
|
|
|
switch ((char)(ch = reader.read())) { |
|
|
|
case '\r': |
|
|
|
if ((char)(ch = reader.read()) == '\n') { |
|
|
|
eolcount += 2; |
|
|
|
eolStr.append("\r\n"); |
|
|
|
} |
|
|
|
break; |
|
|
|
case '\n': |
|
|
|
++eolcount; |
|
|
|
eolStr.append('\n'); |
|
|
|
break; |
|
|
|
} // end of switch ((char)(ch = reader.read())) |
|
|
|
break; |
|
|
|
|
|
|
|
case '\n': |
|
|
|
++eolcount; |
|
|
|
eolStr.append('\n'); |
|
|
|
break; |
|
|
|
|
|
|
|
} // end of switch ((char) ch) |
|
|
|
|
|
|
|
// Reset the position of the file reader |
|
|
|
reader.reset(); |
|
|
|
reader.skip((long)eolcount); |
|
|
|
|
|
|
|
// if at eolcount == 0 and trailing characters of string |
|
|
|
// are CTRL-Zs, set eofStr |
|
|
|
if (line != null && eolcount == 0) { |
|
|
|
int i = linelen; |
|
|
|
while (--i >= 0 && line.charAt(i) == CTRLZ) {} |
|
|
|
if (i < linelen - 1) { |
|
|
|
// Trailing characters are ^Zs |
|
|
|
// Construct new line and eofStr |
|
|
|
eofStr.append(line.substring(i + 1)); |
|
|
|
line = i < 0 ? null : line.substring(0, i + 1); |
|
|
|
} |
|
|
|
|
|
|
|
} // end of if (eolcount == 0) |
|
|
|
|
|
|
|
} catch (IOException e) { |
|
|
|
throw new BuildException(e); |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
try { |
|
|
|
reader = new BufferedReader |
|
|
|
(new FileReader(srcFile), INBUFLEN); |
|
|
|
nextLine(); |
|
|
|
} catch (IOException e) { |
|
|
|
throw new BuildException(e); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
protected void nextLine() |
|
|
|
throws BuildException { |
|
|
|
int ch; |
|
|
|
int eolcount = 0; |
|
|
|
|
|
|
|
eolStr.setLength(0); |
|
|
|
|
|
|
|
try { |
|
|
|
int linelen; |
|
|
|
|
|
|
|
reader.mark(INBUFLEN); |
|
|
|
line = reader.readLine(); |
|
|
|
if (line == null) { |
|
|
|
// Eof has been reached |
|
|
|
linelen = 0; |
|
|
|
} |
|
|
|
else { |
|
|
|
linelen = line.length(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Find the EOL character(s) |
|
|
|
|
|
|
|
reader.reset(); |
|
|
|
|
|
|
|
// an IOException will be thrown |
|
|
|
reader.skip((long)linelen); |
|
|
|
reader.mark(INBUFLEN); |
|
|
|
ch = reader.read(); |
|
|
|
switch ((char) ch) { |
|
|
|
case '\r': |
|
|
|
// Check for \r, \r\n and \r\r\n |
|
|
|
// Regard \r\r not followed by \n as two lines |
|
|
|
++eolcount; |
|
|
|
eolStr.append('\r'); |
|
|
|
switch ((char)(ch = reader.read())) { |
|
|
|
case '\r': |
|
|
|
if ((char)(ch = reader.read()) == '\n') { |
|
|
|
eolcount += 2; |
|
|
|
eolStr.append("\r\n"); |
|
|
|
} |
|
|
|
break; |
|
|
|
case '\n': |
|
|
|
++eolcount; |
|
|
|
eolStr.append('\n'); |
|
|
|
break; |
|
|
|
} // end of switch ((char)(ch = reader.read())) |
|
|
|
break; |
|
|
|
|
|
|
|
case '\n': |
|
|
|
++eolcount; |
|
|
|
eolStr.append('\n'); |
|
|
|
break; |
|
|
|
|
|
|
|
} // end of switch ((char) ch) |
|
|
|
|
|
|
|
// Reset the position of the file reader |
|
|
|
reader.reset(); |
|
|
|
reader.skip((long)eolcount); |
|
|
|
|
|
|
|
// if at eolcount == 0 and trailing characters of string |
|
|
|
// are CTRL-Zs, set eofStr |
|
|
|
if (line != null && eolcount == 0) { |
|
|
|
int i = linelen; |
|
|
|
while (--i >= 0 && line.charAt(i) == CTRLZ) {} |
|
|
|
if (i < linelen - 1) { |
|
|
|
// Trailing characters are ^Zs |
|
|
|
// Construct new line and eofStr |
|
|
|
eofStr.append(line.substring(i + 1)); |
|
|
|
line = i < 0 ? null : line.substring(0, i + 1); |
|
|
|
} |
|
|
|
|
|
|
|
} // end of if (eolcount == 0) |
|
|
|
|
|
|
|
} catch (IOException e) { |
|
|
|
throw new BuildException(e); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public String getEofStr() { |
|
|
|
return eofStr.toString(); |
|
|
@@ -838,22 +855,22 @@ public class FixCRLF extends MatchingTask { |
|
|
|
this.state = state; |
|
|
|
} |
|
|
|
|
|
|
|
public boolean hasMoreElements() |
|
|
|
{ |
|
|
|
return line != null; |
|
|
|
} |
|
|
|
|
|
|
|
public Object nextElement() |
|
|
|
throws NoSuchElementException |
|
|
|
{ |
|
|
|
if (! hasMoreElements()) { |
|
|
|
throw new NoSuchElementException("OneLiner"); |
|
|
|
} |
|
|
|
BufferLine tmpLine = |
|
|
|
new BufferLine(line, eolStr.toString()); |
|
|
|
nextLine(); |
|
|
|
return tmpLine; |
|
|
|
} |
|
|
|
public boolean hasMoreElements() |
|
|
|
{ |
|
|
|
return line != null; |
|
|
|
} |
|
|
|
|
|
|
|
public Object nextElement() |
|
|
|
throws NoSuchElementException |
|
|
|
{ |
|
|
|
if (! hasMoreElements()) { |
|
|
|
throw new NoSuchElementException("OneLiner"); |
|
|
|
} |
|
|
|
BufferLine tmpLine = |
|
|
|
new BufferLine(line, eolStr.toString()); |
|
|
|
nextLine(); |
|
|
|
return tmpLine; |
|
|
|
} |
|
|
|
|
|
|
|
public void close() throws IOException { |
|
|
|
if (reader != null) { |
|
|
@@ -861,94 +878,94 @@ public class FixCRLF extends MatchingTask { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class BufferLine { |
|
|
|
private int next = 0; |
|
|
|
private int column = 0; |
|
|
|
private int lookahead = UNDEF; |
|
|
|
private String line; |
|
|
|
private String eolStr; |
|
|
|
|
|
|
|
public BufferLine(String line, String eolStr) |
|
|
|
throws BuildException |
|
|
|
{ |
|
|
|
next = 0; |
|
|
|
column = 0; |
|
|
|
this.line = line; |
|
|
|
this.eolStr = eolStr; |
|
|
|
} |
|
|
|
|
|
|
|
public int getNext() { |
|
|
|
return next; |
|
|
|
} |
|
|
|
|
|
|
|
public void setNext(int next) { |
|
|
|
this.next = next; |
|
|
|
} |
|
|
|
|
|
|
|
public int getLookahead() { |
|
|
|
return lookahead; |
|
|
|
} |
|
|
|
|
|
|
|
public void setLookahead(int lookahead) { |
|
|
|
this.lookahead = lookahead; |
|
|
|
} |
|
|
|
|
|
|
|
public char getChar(int i) { |
|
|
|
return line.charAt(i); |
|
|
|
} |
|
|
|
|
|
|
|
public char getNextChar() { |
|
|
|
return getChar(next); |
|
|
|
} |
|
|
|
|
|
|
|
public char getNextCharInc() { |
|
|
|
return getChar(next++); |
|
|
|
} |
|
|
|
|
|
|
|
public int getColumn() { |
|
|
|
return column; |
|
|
|
} |
|
|
|
|
|
|
|
public void setColumn(int col) { |
|
|
|
column = col; |
|
|
|
} |
|
|
|
|
|
|
|
public int incColumn() { |
|
|
|
return column++; |
|
|
|
} |
|
|
|
|
|
|
|
public int length() { |
|
|
|
return line.length(); |
|
|
|
} |
|
|
|
|
|
|
|
public int getEolLength() { |
|
|
|
return eolStr.length(); |
|
|
|
} |
|
|
|
|
|
|
|
public String getLineString() { |
|
|
|
return line; |
|
|
|
} |
|
|
|
|
|
|
|
public String getEol() { |
|
|
|
return eolStr; |
|
|
|
} |
|
|
|
|
|
|
|
public String substring(int begin) { |
|
|
|
return line.substring(begin); |
|
|
|
} |
|
|
|
|
|
|
|
public String substring(int begin, int end) { |
|
|
|
return line.substring(begin, end); |
|
|
|
} |
|
|
|
|
|
|
|
public void setState(int state) { |
|
|
|
OneLiner.this.setState(state); |
|
|
|
} |
|
|
|
|
|
|
|
public int getState() { |
|
|
|
return OneLiner.this.getState(); |
|
|
|
} |
|
|
|
} |
|
|
|
class BufferLine { |
|
|
|
private int next = 0; |
|
|
|
private int column = 0; |
|
|
|
private int lookahead = UNDEF; |
|
|
|
private String line; |
|
|
|
private String eolStr; |
|
|
|
|
|
|
|
public BufferLine(String line, String eolStr) |
|
|
|
throws BuildException |
|
|
|
{ |
|
|
|
next = 0; |
|
|
|
column = 0; |
|
|
|
this.line = line; |
|
|
|
this.eolStr = eolStr; |
|
|
|
} |
|
|
|
|
|
|
|
public int getNext() { |
|
|
|
return next; |
|
|
|
} |
|
|
|
|
|
|
|
public void setNext(int next) { |
|
|
|
this.next = next; |
|
|
|
} |
|
|
|
|
|
|
|
public int getLookahead() { |
|
|
|
return lookahead; |
|
|
|
} |
|
|
|
|
|
|
|
public void setLookahead(int lookahead) { |
|
|
|
this.lookahead = lookahead; |
|
|
|
} |
|
|
|
|
|
|
|
public char getChar(int i) { |
|
|
|
return line.charAt(i); |
|
|
|
} |
|
|
|
|
|
|
|
public char getNextChar() { |
|
|
|
return getChar(next); |
|
|
|
} |
|
|
|
|
|
|
|
public char getNextCharInc() { |
|
|
|
return getChar(next++); |
|
|
|
} |
|
|
|
|
|
|
|
public int getColumn() { |
|
|
|
return column; |
|
|
|
} |
|
|
|
|
|
|
|
public void setColumn(int col) { |
|
|
|
column = col; |
|
|
|
} |
|
|
|
|
|
|
|
public int incColumn() { |
|
|
|
return column++; |
|
|
|
} |
|
|
|
|
|
|
|
public int length() { |
|
|
|
return line.length(); |
|
|
|
} |
|
|
|
|
|
|
|
public int getEolLength() { |
|
|
|
return eolStr.length(); |
|
|
|
} |
|
|
|
|
|
|
|
public String getLineString() { |
|
|
|
return line; |
|
|
|
} |
|
|
|
|
|
|
|
public String getEol() { |
|
|
|
return eolStr; |
|
|
|
} |
|
|
|
|
|
|
|
public String substring(int begin) { |
|
|
|
return line.substring(begin); |
|
|
|
} |
|
|
|
|
|
|
|
public String substring(int begin, int end) { |
|
|
|
return line.substring(begin, end); |
|
|
|
} |
|
|
|
|
|
|
|
public void setState(int state) { |
|
|
|
OneLiner.this.setState(state); |
|
|
|
} |
|
|
|
|
|
|
|
public int getState() { |
|
|
|
return OneLiner.this.getState(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@@ -964,9 +981,9 @@ public class FixCRLF extends MatchingTask { |
|
|
|
* Enumerated attribute with the values "asis", "cr", "lf" and "crlf". |
|
|
|
*/ |
|
|
|
public static class CrLf extends EnumeratedAttribute { |
|
|
|
public String[] getValues() { |
|
|
|
return new String[] {"asis", "cr", "lf", "crlf"}; |
|
|
|
} |
|
|
|
public String[] getValues() { |
|
|
|
return new String[] {"asis", "cr", "lf", "crlf"}; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |