1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-01 14:15:23 +02:00

[179939] BIDI3.3: HCG Text files written in ASCII Hebrew do not look correctly. Do not download to UTF-8 encoding unnecessarily. Just download to the encoding that is specified for the remote file.

If an encoding is not explicitly specified, then download in the platform defalt encoding.
This commit is contained in:
Kushal Munir 2007-04-19 04:51:30 +00:00
parent 9c2d3393e7
commit 49f5af68cc
6 changed files with 25 additions and 15 deletions

View file

@ -598,7 +598,7 @@ public class SystemEditableRemoteFile implements ISystemEditableRemoteObject, IP
return false;
}
subsystem.download(remoteFile, localPath, SystemEncodingUtil.ENCODING_UTF_8, monitor);
subsystem.download(remoteFile, localPath, remoteFile.getEncoding(), monitor);
if (monitor.isCanceled())
{
return false;
@ -1438,7 +1438,7 @@ public class SystemEditableRemoteFile implements ISystemEditableRemoteObject, IP
else {
if (!properties.getUsedBinaryTransfer()) {
encoding = SystemEncodingUtil.ENCODING_UTF_8;
encoding = remoteFile.getEncoding();
}
}

View file

@ -230,7 +230,13 @@ public class SystemUniversalTempFileListener extends SystemTempFileListener
try
{
// upload our pending changes to the remote file
fs.upload(tempFile.getLocation().makeAbsolute().toOSString(), remoteFile, SystemEncodingUtil.ENCODING_UTF_8, monitor);
String srcEncoding = tempFile.getCharset(true);
if (srcEncoding == null) {
srcEncoding = remoteFile.getEncoding();
}
fs.upload(tempFile.getLocation().makeAbsolute().toOSString(), remoteFile, srcEncoding, monitor);
}
catch (RemoteFileSecurityException e)

View file

@ -167,7 +167,8 @@ public class UniversalFileTransferUtility
// copy remote file to workspace
SystemUniversalTempFileListener listener = SystemUniversalTempFileListener.getListener();
listener.addIgnoreFile(tempFile);
srcFS.download(srcFileOrFolder, tempFile.getLocation().makeAbsolute().toOSString(), SystemEncodingUtil.ENCODING_UTF_8, monitor);
String remoteEncoding = srcFileOrFolder.getEncoding();
srcFS.download(srcFileOrFolder, tempFile.getLocation().makeAbsolute().toOSString(), remoteEncoding, monitor);
listener.removeIgnoreFile(tempFile);
if (!tempFile.exists() && !tempFile.isSynchronized(IResource.DEPTH_ZERO))
{
@ -196,12 +197,12 @@ public class UniversalFileTransferUtility
try
{
String cset = tempFile.getCharset();
if (!cset.equals(SystemEncodingUtil.ENCODING_UTF_8))
if (!cset.equals(remoteEncoding))
{
//System.out.println("charset ="+cset);
//System.out.println("tempfile ="+tempFile.getFullPath());
tempFile.setCharset(SystemEncodingUtil.ENCODING_UTF_8, monitor);
tempFile.setCharset(remoteEncoding, monitor);
}
}
catch (Exception e)
@ -528,7 +529,8 @@ public class UniversalFileTransferUtility
// copy remote file to workspace
SystemUniversalTempFileListener listener = SystemUniversalTempFileListener.getListener();
listener.addIgnoreFile(tempFile);
download(srcFileOrFolder, tempFile, SystemEncodingUtil.ENCODING_UTF_8, monitor);
String encoding = System.getProperty("file.encoding"); //$NON-NLS-1$
download(srcFileOrFolder, tempFile, encoding, monitor);
listener.removeIgnoreFile(tempFile);
if (!tempFile.exists() && !tempFile.isSynchronized(IResource.DEPTH_ZERO))
{
@ -549,9 +551,9 @@ public class UniversalFileTransferUtility
try
{
String cset = tempFile.getCharset();
if (!cset.equals(SystemEncodingUtil.ENCODING_UTF_8))
if (!cset.equals(encoding))
{
tempFile.setCharset(SystemEncodingUtil.ENCODING_UTF_8, monitor);
tempFile.setCharset(encoding, monitor);
}
}
catch (Exception e)

View file

@ -313,7 +313,7 @@ public class SystemRemoteEditManager
description.setNatureIds(newNatures);
editProject.setDescription(description, null);
editProject.setDefaultCharset(SystemEncodingUtil.ENCODING_UTF_8, new NullProgressMonitor());
// editProject.setDefaultCharset(SystemEncodingUtil.ENCODING_UTF_8, new NullProgressMonitor());
// add java support

View file

@ -597,11 +597,13 @@ public class LocalFileService extends AbstractFileService implements IFileServic
destinationFile.setLastModified(localFile.lastModified());
//TODO check if we want to preserve permissions
//if(!localFile.canWrite()) destinationFile.setReadOnly();
if (destinationFile.length() != localFile.length()) {
// File lengths can be different if the encodings are different
/* if (destinationFile.length() != localFile.length()) {
// throw new RemoteFileCancelledException();
System.err.println("local.upload: size mismach on "+destinationFile.getAbsolutePath()); //$NON-NLS-1$
return false;
}
}*/
}
}
catch (IOException e)

View file

@ -68,7 +68,7 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
protected IRemoteFile _userHome;
public FileServiceSubSystem(IHost host, IConnectorService connectorService, IFileService hostFileService, IHostFileToRemoteFileAdapter fileAdapter, ISearchService searchService)
{
@ -454,7 +454,7 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
File localFile = new File(localpath);
try
{
getFileService().download(monitor, parentPath, file.getName(), localFile, isBinary(file), encoding);
getFileService().download(monitor, parentPath, file.getName(), localFile, isBinary(file), file.getEncoding());
}
catch (SystemMessageException e)
{
@ -533,7 +533,7 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
{
String remoteParentPath = destination.getParentPath();
String remoteFileName = destination.getName();
String hostEncoding = getRemoteEncoding(); // default host encoding
String hostEncoding = destination.getEncoding();
boolean isBinary = isBinary(encoding, hostEncoding, destination.getAbsolutePath());
if (!destination.canWrite())