diff options
author | Michael Valenta | 2006-10-12 20:03:27 +0000 |
---|---|---|
committer | Michael Valenta | 2006-10-12 20:03:27 +0000 |
commit | a098d48ef9a46804dc00bd9737baaa875be6546b (patch) | |
tree | ca31bd3037ab8ee7bbd126ffbce159a15e290b12 /bundles/org.eclipse.team.ui | |
parent | 4f5c5d87ade9e4784eca85f9c6ab3e520ae66b65 (diff) | |
download | eclipse.platform.team-a098d48ef9a46804dc00bd9737baaa875be6546b.tar.gz eclipse.platform.team-a098d48ef9a46804dc00bd9737baaa875be6546b.tar.xz eclipse.platform.team-a098d48ef9a46804dc00bd9737baaa875be6546b.zip |
Bug 72995 When comparing with CVS we see a wrong encoding
Diffstat (limited to 'bundles/org.eclipse.team.ui')
4 files changed, 38 insertions, 6 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/StorageTypedElement.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/StorageTypedElement.java index 8d91015f3..179035fea 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/StorageTypedElement.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/StorageTypedElement.java @@ -131,4 +131,8 @@ public abstract class StorageTypedElement implements ITypedElement, IEncodedStre */ protected abstract IEditorInput getDocumentKey(Object element); + public String getLocalEncoding() { + return localEncoding; + } + } diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionEditorInput.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionEditorInput.java index 5086a4468..4544182fb 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionEditorInput.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionEditorInput.java @@ -10,10 +10,10 @@ *******************************************************************************/ package org.eclipse.team.internal.ui.history; +import java.io.InputStream; import java.util.Date; -import org.eclipse.core.resources.IFileState; -import org.eclipse.core.resources.IStorage; +import org.eclipse.core.resources.*; import org.eclipse.core.runtime.*; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.osgi.util.NLS; @@ -43,6 +43,31 @@ public class FileRevisionEditorInput extends PlatformObject implements IWorkbenc return new FileRevisionEditorInput(revision, storage); } + private static IStorage wrapStorage(final IStorage storage, final String charset) { + if (charset == null) + return storage; + return new IEncodedStorage() { + public Object getAdapter(Class adapter) { + return storage.getAdapter(adapter); + } + public boolean isReadOnly() { + return storage.isReadOnly(); + } + public String getName() { + return storage.getName(); + } + public IPath getFullPath() { + return storage.getFullPath(); + } + public InputStream getContents() throws CoreException { + return storage.getContents(); + } + public String getCharset() throws CoreException { + return charset; + } + }; + } + /** * Creates FileRevisionEditorInput on the given revision. * @param revision the file revision @@ -59,6 +84,10 @@ public class FileRevisionEditorInput extends PlatformObject implements IWorkbenc this(state, state); } + public FileRevisionEditorInput(Object revision, IStorage storage, String charset) { + this(revision, wrapStorage(storage, charset)); + } + public IStorage getStorage() throws CoreException { return storage; } diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionTypedElement.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionTypedElement.java index d105234dd..0e360b403 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionTypedElement.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/FileRevisionTypedElement.java @@ -106,7 +106,7 @@ public class FileRevisionTypedElement extends StorageTypedElement { */ public IEditorInput getDocumentKey(Object element) { if (element == this && getBufferedStorage() != null) { - return new FileRevisionEditorInput(fileRevision, getBufferedStorage()); + return new FileRevisionEditorInput(fileRevision, getBufferedStorage(), getLocalEncoding()); } return null; } diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/RemoteResourceTypedElement.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/RemoteResourceTypedElement.java index 44d9cb91a..1d367f541 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/RemoteResourceTypedElement.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/RemoteResourceTypedElement.java @@ -12,8 +12,7 @@ package org.eclipse.team.internal.ui.synchronize; import org.eclipse.compare.ITypedElement; import org.eclipse.core.resources.IStorage; -import org.eclipse.core.runtime.Assert; -import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.*; import org.eclipse.team.core.TeamException; import org.eclipse.team.core.variants.IResourceVariant; import org.eclipse.team.internal.core.mapping.ResourceVariantFileRevision; @@ -69,7 +68,7 @@ public class RemoteResourceTypedElement extends StorageTypedElement { */ public IEditorInput getDocumentKey(Object element) { if (element == this && getBufferedStorage() != null) { - return new FileRevisionEditorInput(new ResourceVariantFileRevision(remote), getBufferedStorage()); + return new FileRevisionEditorInput(new ResourceVariantFileRevision(remote), getBufferedStorage(), getLocalEncoding()); } return null; } |