1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-03 14:25:37 +02:00

[267247] Wrong encoding

This commit is contained in:
David McKnight 2009-03-11 20:16:14 +00:00
parent 6a1b685f8a
commit a5357c0c00
5 changed files with 26 additions and 39 deletions

View file

@ -35,6 +35,7 @@
* David McKnight (IBM) - [235221] Files truncated on exit of Eclipse
* David McKnight (IBM) - [247189] SystemEditableRemoteFile.openEditor() not updating the default editor properly
* David McKnight (IBM) - [249544] Save conflict dialog appears when saving files in the editor
* David McKnight (IBM) - [267247] Wrong encoding
*******************************************************************************/
package org.eclipse.rse.files.ui.resources;
@ -80,6 +81,7 @@ import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.services.files.RemoteFileIOException;
import org.eclipse.rse.subsystems.files.core.SystemIFileProperties;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
import org.eclipse.rse.subsystems.files.core.subsystems.IVirtualRemoteFile;
@ -731,10 +733,12 @@ public class SystemEditableRemoteFile implements ISystemEditableRemoteObject, IP
}
}
subsystem.upload(localPath, remoteFile, SystemEncodingUtil.ENCODING_UTF_8, null);
IFile file = getLocalResource();
String srcEncoding = RemoteFileUtility.getSourceEncoding(file);
subsystem.upload(localPath, remoteFile, srcEncoding, null);
// update timestamp
IFile file = getLocalResource();
SystemIFileProperties properties = new SystemIFileProperties(file);
//DKM- saveAS fix

View file

@ -1582,20 +1582,7 @@ public class UniversalFileTransferUtility {
{
try
{
String srcCharSet = null;
try
{
srcCharSet = ((IFile)srcFileOrFolder).getCharset(false);
if (srcCharSet == null || srcCharSet.length() == 0)
{
srcCharSet = srcFileOrFolder.getWorkspace().getRoot().getDefaultCharset();
}
}
catch (CoreException e)
{
srcCharSet = SystemEncodingUtil.ENCODING_UTF_8;
}
String srcCharSet = RemoteFileUtility.getSourceEncoding((IFile)srcFileOrFolder);
String srcFileLocation = srcFileOrFolder.getLocation().toOSString();
@ -1806,18 +1793,7 @@ public class UniversalFileTransferUtility {
boolean isText = RemoteFileUtility.getSystemFileTransferModeRegistry().isText(newPath);
if (isText)
{
try
{
srcCharSet = ((IFile)srcFileOrFolder).getCharset(false);
if (srcCharSet == null || srcCharSet.length() == 0)
{
srcCharSet = srcFileOrFolder.getWorkspace().getRoot().getDefaultCharset();
}
}
catch (CoreException e)
{
srcCharSet = SystemEncodingUtil.ENCODING_UTF_8;
}
srcCharSet = RemoteFileUtility.getSourceEncoding((IFile)srcFileOrFolder);
}
IPath location = srcFileOrFolder.getLocation();
IRemoteFile copiedFile = null;

View file

@ -313,7 +313,7 @@ implements IValidatorRemoteSelection
path = path.append(absolutePath);
String tempFile = path.toString();
srcFS.download(srcFileOrFolder, tempFile, SystemEncodingUtil.ENCODING_UTF_8, null);
targetFS.upload(tempFile, SystemEncodingUtil.ENCODING_UTF_8, newPath, System.getProperty("file.encoding"), null); //$NON-NLS-1$
}

View file

@ -12,7 +12,7 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
* David McKnight (IBM) - [267247] Wrong encoding
*******************************************************************************/
package org.eclipse.rse.internal.files.ui.actions;
@ -35,6 +35,7 @@ import org.eclipse.compare.internal.CompareUIPlugin;
import org.eclipse.compare.internal.Utilities;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFileState;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.MessageDialog;
@ -43,7 +44,6 @@ import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.rse.files.ui.resources.SystemEditableRemoteFile;
import org.eclipse.rse.services.clientserver.SystemEncodingUtil;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.subsystems.files.core.subsystems.RemoteFile;
import org.eclipse.rse.ui.actions.SystemBaseAction;
@ -304,7 +304,8 @@ public class SystemEditionAction extends SystemBaseAction
try
{
InputStream is = sa.getContents();
String text = Utilities.readString(is, SystemEncodingUtil.ENCODING_UTF_8);
String encoding = ResourcesPlugin.getEncoding();
String text = Utilities.readString(is, encoding);
document.replace(0, document.getLength(), text);
}
catch (CoreException e)

View file

@ -23,6 +23,7 @@
* David McKnight (IBM) - [235221] Files truncated on exit of Eclipse
* David McKnight (IBM) - [249544] Save conflict dialog appears when saving files in the editor
* Kevin Doyle (IBM) - [242389] [usability] RSE Save Conflict dialog should indicate which file is in conflict
* David McKnight (IBM) - [267247] Wrong encoding
*******************************************************************************/
package org.eclipse.rse.internal.files.ui.actions;
@ -48,7 +49,6 @@ import org.eclipse.rse.internal.files.ui.Activator;
import org.eclipse.rse.internal.files.ui.FileResources;
import org.eclipse.rse.internal.files.ui.ISystemFileConstants;
import org.eclipse.rse.internal.ui.SystemResources;
import org.eclipse.rse.services.clientserver.SystemEncodingUtil;
import org.eclipse.rse.services.clientserver.messages.CommonMessages;
import org.eclipse.rse.services.clientserver.messages.ICommonMessageIds;
import org.eclipse.rse.services.clientserver.messages.SimpleSystemMessage;
@ -57,6 +57,7 @@ import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.services.files.RemoteFileIOException;
import org.eclipse.rse.services.files.RemoteFileSecurityException;
import org.eclipse.rse.subsystems.files.core.SystemIFileProperties;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
import org.eclipse.rse.ui.RSEUIPlugin;
@ -124,8 +125,9 @@ public class SystemUploadConflictAction extends SystemBaseAction implements Runn
try
{
String srcEncoding = RemoteFileUtility.getSourceEncoding(_tempFile);
// copy temp file to remote system
fs.upload(_tempFile.getLocation().makeAbsolute().toOSString(), _saveasFile, SystemEncodingUtil.ENCODING_UTF_8, monitor);
fs.upload(_tempFile.getLocation().makeAbsolute().toOSString(), _saveasFile, srcEncoding, monitor);
// set original time stamp to 0 so that file will be overwritten next download
SystemIFileProperties properties = new SystemIFileProperties(_tempFile);
@ -157,12 +159,14 @@ public class SystemUploadConflictAction extends SystemBaseAction implements Runn
try
{
IRemoteFileSubSystem fs = _remoteFile.getParentRemoteFileSubSystem();
SystemIFileProperties properties = new SystemIFileProperties(_tempFile);
SystemIFileProperties properties = new SystemIFileProperties(_tempFile);
// download remote version
fs.download(_remoteFile, _tempFile.getLocation().makeAbsolute().toOSString(), SystemEncodingUtil.ENCODING_UTF_8, monitor);
// download remote version
String srcEncoding = RemoteFileUtility.getSourceEncoding(_tempFile);
properties.setRemoteFileTimeStamp(_remoteFile.getLastModified());
fs.download(_remoteFile, _tempFile.getLocation().makeAbsolute().toOSString(), srcEncoding, monitor);
properties.setRemoteFileTimeStamp(_remoteFile.getLastModified());
//properties.setRemoteFileTimeStamp(-1);
properties.setDirty(false);
@ -204,7 +208,9 @@ public class SystemUploadConflictAction extends SystemBaseAction implements Runn
// making sure we have the same version as is in the cache
_remoteFile = fs.getRemoteFileObject(_remoteFile.getAbsolutePath(), monitor);
fs.upload(_tempFile.getLocation().makeAbsolute().toOSString(), _remoteFile, SystemEncodingUtil.ENCODING_UTF_8, monitor);
String srcEncoding = RemoteFileUtility.getSourceEncoding(_tempFile);
fs.upload(_tempFile.getLocation().makeAbsolute().toOSString(), _remoteFile, srcEncoding, monitor);
// wait for timestamp to update before re-fetching remote file
_remoteFile.markStale(true);