Skip to content

Commit f29baac

Browse files
authored
Fixed #580 - CRLF Issue on Windows (#581)
* Fixed #580 * Updated examples
1 parent 873c704 commit f29baac

File tree

5 files changed

+9
-6
lines changed

5 files changed

+9
-6
lines changed

common.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ apply plugin: 'java'
66
apply plugin: 'maven'
77

88
String mavenGroupId = 'org.cirdles'
9-
String mavenVersion = '1.7.2'
9+
String mavenVersion = '1.7.3'
1010

1111
sourceCompatibility = '1.8'
1212
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

squidCore/src/main/java/org/cirdles/squid/core/PrawnXMLFileHandler.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
import org.cirdles.squid.shrimp.ShrimpDataFileInterface;
4949
import org.cirdles.squid.shrimp.ShrimpDataLegacyFileInterface;
5050
import org.xml.sax.SAXException;
51-
import static org.cirdles.squid.utilities.fileUtilities.TextFileUtilities.writeTextFileFromListOfStrings;
51+
import static org.cirdles.squid.utilities.fileUtilities.TextFileUtilities.writeTextFileFromListOfStringsWithUnixLineEnd;
5252

5353
/**
5454
* Handles common operations involving Prawn files.
@@ -190,7 +190,7 @@ public ShrimpDataFileInterface unmarshallPrawnFileXML(String prawnFileLocation,
190190
lines.add(i, headerArray[i]);
191191
}
192192

193-
File prawnDataFile = writeTextFileFromListOfStrings(lines, "tempPrawnXMLFileName", ".xml");
193+
File prawnDataFile = writeTextFileFromListOfStringsWithUnixLineEnd(lines, "tempPrawnXMLFileName", ".xml");
194194

195195
if (isPrawnLegacyFile) {
196196
ShrimpDataLegacyFileInterface myPrawnLegacyFile = readRawDataLegacyFile(prawnDataFile);
@@ -260,7 +260,7 @@ public void writeRawDataFileAsXML(ShrimpDataFileInterface prawnFile, String file
260260
lines.add(1, "<!-- SHRIMP SW PRAWN Data File -->");
261261
lines.add(2, "<!-- SQUID3-generated PRAWN Data File copy -->");
262262

263-
File updatedPrawnFile = writeTextFileFromListOfStrings(lines, "updatedPrawnFile", ".xml");
263+
File updatedPrawnFile = writeTextFileFromListOfStringsWithUnixLineEnd(lines, "updatedPrawnFile", ".xml");
264264
Path updatedPrawnOutput = updatedPrawnFile.toPath();
265265
Files.copy(updatedPrawnOutput, originalPrawnOutput, StandardCopyOption.REPLACE_EXISTING);
266266
}

squidCore/src/main/java/org/cirdles/squid/utilities/fileUtilities/TextFileUtilities.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -49,21 +49,24 @@ public class TextFileUtilities {
4949
* @return
5050
* @throws IOException
5151
*/
52-
public static File writeTextFileFromListOfStrings(List<String> stringLine, String targetTextFileName, String extension)
52+
public static File writeTextFileFromListOfStringsWithUnixLineEnd(List<String> stringLine, String targetTextFileName, String extension)
5353
throws IOException {
5454
File targetTextFile;
5555

5656
// detect Operating System ... we need POSIX code for use on Ubuntu Server
5757
String OS = System.getProperty("os.name").toLowerCase(Locale.US);
5858
if (OS.toLowerCase(Locale.US).contains("win")) {
59+
// Feb 2021 Issue #580 force windows into suppressing CRLF for LF so Squid25 can open these files
60+
System.setProperty("line.separator", "\n");
5961
Path pathTempXML = Paths.get(targetTextFileName + extension).toAbsolutePath();
6062
try (BufferedWriter writer = Files.newBufferedWriter(pathTempXML, StandardCharsets.UTF_8)) {
6163
for (String line : stringLine) {
6264
writer.write(line);
6365
writer.newLine();
6466
}
6567
}
66-
targetTextFile = new File(targetTextFileName + extension);
68+
targetTextFile = pathTempXML.toFile();
69+
System.setProperty("line.separator", "\r\n");
6770
} else {
6871
// Posix attributes added to support web service on Linux
6972
Set<PosixFilePermission> perms = EnumSet.of(OWNER_READ, OWNER_WRITE, OWNER_EXECUTE, GROUP_READ);
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)