### Eclipse Workspace Patch 1.0 #P org.eclipse.team.cvs.core Index: src/org/eclipse/team/internal/ccvs/core/util/SyncFileWriter.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/SyncFileWriter.java,v retrieving revision 1.69 diff -u -r1.69 SyncFileWriter.java --- src/org/eclipse/team/internal/ccvs/core/util/SyncFileWriter.java 1 Aug 2007 14:17:40 -0000 1.69 +++ src/org/eclipse/team/internal/ccvs/core/util/SyncFileWriter.java 16 Apr 2008 12:58:32 -0000 @@ -545,7 +545,13 @@ try { InputStream in = getInputStream(file); if (in != null) { - BufferedReader reader = new BufferedReader(new InputStreamReader(in), 512); + InputStreamReader isr; + try { + isr = new InputStreamReader(in, file.getCharset()); + } catch(UnsupportedEncodingException ex) { + isr = new InputStreamReader(in); + } + BufferedReader reader = new BufferedReader(isr, 512); List fileContentStore = new ArrayList(); try { String line; @@ -584,7 +590,7 @@ public void run(IProgressMonitor monitor) throws CoreException { try { ByteArrayOutputStream os = new ByteArrayOutputStream(); - writeLinesToStreamAndClose(os, contents); + writeLinesToStreamAndClose(os, contents, file.getCharset()); if(!file.exists()) { file.create(new ByteArrayInputStream(os.toByteArray()), IResource.FORCE /*don't keep history but do force*/, null); } else { @@ -601,12 +607,16 @@ } } - private static void writeLinesToStreamAndClose(OutputStream os, String[] contents) throws CVSException { + private static void writeLinesToStreamAndClose(OutputStream os, String[] contents, String charset) throws CVSException { byte[] lineEnd = getLineDelimiter(); try { try { for (int i = 0; i < contents.length; i++) { - os.write(contents[i].getBytes()); + try { + os.write(contents[i].getBytes(charset)); + } catch(UnsupportedEncodingException ex) { + os.write(contents[i].getBytes()); + } os.write(lineEnd); } } finally {