diff --git a/uk/ac/sanger/artemis/io/StreamQualifier.java b/uk/ac/sanger/artemis/io/StreamQualifier.java index 5cb78f2d183357e0c044c925655f844c8455388d..9afa82156d6b9ae5c84c5395185dd5832623f9dc 100644 --- a/uk/ac/sanger/artemis/io/StreamQualifier.java +++ b/uk/ac/sanger/artemis/io/StreamQualifier.java @@ -106,10 +106,14 @@ class StreamQualifier { buffer.append ('/'); buffer.append (qualifier.getName ()); if (values.elementAt (i) != null) { + /* Escape double quotes */ + String processedValue = (String)values.elementAt (i).replaceAll("(^|[^\"])\"([^\"]|$)","$1\"\"$2"); + /* Mask line breaks in entries (e.g. notes/history) */ + processedValue = processedValue.replaceAll("\n", " "); buffer.append ('='); - buffer.append (quotedValue (qualifier_info, - qualifier.getName (), - (String)values.elementAt (i))); + buffer.append (quotedValue(qualifier_info, + qualifier.getName(), + processedValue)); } } @@ -140,10 +144,14 @@ class StreamQualifier { buffer.append ('/'); buffer.append (qualifier.getName ()); if (values.elementAt (i) != null) { + /* Escape double quotes */ + String processedValue = (String)values.elementAt (i).replaceAll("(^|[^\"])\"([^\"]|$)","$1\"\"$2"); + /* Mask line breaks in entries (e.g. notes/history) */ + processedValue = processedValue.replaceAll("\n", " "); buffer.append ('='); buffer.append (quotedValue (qualifier_info, qualifier.getName (), - (String)values.elementAt (i))); + processedValue)); } return_vector.add (buffer.toString ()); }