diff options
author | Andre Weinand | 2003-11-17 22:43:00 +0000 |
---|---|---|
committer | Andre Weinand | 2003-11-17 22:43:00 +0000 |
commit | 8c3fe25250b06f74272244c11e8080988eca8640 (patch) | |
tree | adacd292f485d7ca32642f1e0a781012b81505c1 | |
parent | 762f06caa63ea5c57387b5d6b43a8332c990c29a (diff) | |
download | eclipse.platform.team-8c3fe25250b06f74272244c11e8080988eca8640.tar.gz eclipse.platform.team-8c3fe25250b06f74272244c11e8080988eca8640.tar.xz eclipse.platform.team-8c3fe25250b06f74272244c11e8080988eca8640.zip |
fixed #46805v20031117
2 files changed, 166 insertions, 82 deletions
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java index 51f66ea49..4f22d265d 100644 --- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java +++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java @@ -27,6 +27,7 @@ import org.eclipse.jface.viewers.*; import org.eclipse.jface.dialogs.ErrorDialog; import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.MultiStatus; @@ -35,6 +36,8 @@ import org.eclipse.core.runtime.Status; import org.eclipse.ui.*; import org.eclipse.compare.CompareConfiguration; +import org.eclipse.compare.IStreamContentAccessor; +import org.eclipse.compare.IStreamContentAccessorExtension2; /** * Convenience and utility methods. @@ -186,46 +189,6 @@ public class Utilities { return bos.toByteArray(); } - /** - * Returns null if an error occurred. - */ - public static String readString(InputStream is) { - if (is == null) - return null; - BufferedReader reader= null; - try { - StringBuffer buffer= new StringBuffer(); - char[] part= new char[2048]; - int read= 0; - reader= new BufferedReader(new InputStreamReader(is, ResourcesPlugin.getEncoding())); - - while ((read= reader.read(part)) != -1) - buffer.append(part, 0, read); - - return buffer.toString(); - - } catch (IOException ex) { - // NeedWork - } finally { - if (reader != null) { - try { - reader.close(); - } catch (IOException ex) { - // silently ignored - } - } - } - return null; - } - - public static byte[] getBytes(String s) { - try { - return s.getBytes(ResourcesPlugin.getEncoding()); - } catch (UnsupportedEncodingException e) { - return s.getBytes(); - } - } - public static String getIconPath(Display display) { return "icons/full/"; //$NON-NLS-1$ } @@ -547,5 +510,84 @@ public class Utilities { result.add(status); result.add(entry); return result; - } + } + + // encoding + + /** + * Returns null if an error occurred. + */ + public static String readString(InputStream is, String encoding) { + if (is == null) + return null; + BufferedReader reader= null; + try { + StringBuffer buffer= new StringBuffer(); + char[] part= new char[2048]; + int read= 0; + reader= new BufferedReader(new InputStreamReader(is, encoding)); + + while ((read= reader.read(part)) != -1) + buffer.append(part, 0, read); + + return buffer.toString(); + + } catch (IOException ex) { + // NeedWork + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException ex) { + // silently ignored + } + } + } + return null; + } + + public static String getCharset(IResource resource) { + if (resource != null) { + /* + try { + return resource.getCharset(); + } catch (CoreException ex) { + } + */ + } + return ResourcesPlugin.getEncoding(); + } + + public static byte[] getBytes(String s, String encoding) { + byte[] bytes= null; + if (s != null) { + try { + bytes= s.getBytes(encoding); //$NON-NLS-1$ + } catch (UnsupportedEncodingException e) { + bytes= s.getBytes(); + } + } + return bytes; + } + + public static String guessCharset(String path) { + //System.err.println("Utilities.guessCharset: " + path); + int dot= path.lastIndexOf('.'); + if (dot >= 0) { + String extension= path.substring(dot); + if (extension.equalsIgnoreCase(".xml")) //$NON-NLS-1$ + return "UTF-8"; //$NON-NLS-1$ + } + return ResourcesPlugin.getEncoding(); + } + + public static String readString(IStreamContentAccessor sa) throws CoreException { + InputStream is= sa.getContents(); + String encoding= null; + if (sa instanceof IStreamContentAccessorExtension2) + encoding= ((IStreamContentAccessorExtension2)sa).getCharset(); + if (encoding == null) + encoding= ResourcesPlugin.getEncoding(); + return Utilities.readString(is, encoding); + } } diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java index 51f66ea49..4f22d265d 100644 --- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java +++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java @@ -27,6 +27,7 @@ import org.eclipse.jface.viewers.*; import org.eclipse.jface.dialogs.ErrorDialog; import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.MultiStatus; @@ -35,6 +36,8 @@ import org.eclipse.core.runtime.Status; import org.eclipse.ui.*; import org.eclipse.compare.CompareConfiguration; +import org.eclipse.compare.IStreamContentAccessor; +import org.eclipse.compare.IStreamContentAccessorExtension2; /** * Convenience and utility methods. @@ -186,46 +189,6 @@ public class Utilities { return bos.toByteArray(); } - /** - * Returns null if an error occurred. - */ - public static String readString(InputStream is) { - if (is == null) - return null; - BufferedReader reader= null; - try { - StringBuffer buffer= new StringBuffer(); - char[] part= new char[2048]; - int read= 0; - reader= new BufferedReader(new InputStreamReader(is, ResourcesPlugin.getEncoding())); - - while ((read= reader.read(part)) != -1) - buffer.append(part, 0, read); - - return buffer.toString(); - - } catch (IOException ex) { - // NeedWork - } finally { - if (reader != null) { - try { - reader.close(); - } catch (IOException ex) { - // silently ignored - } - } - } - return null; - } - - public static byte[] getBytes(String s) { - try { - return s.getBytes(ResourcesPlugin.getEncoding()); - } catch (UnsupportedEncodingException e) { - return s.getBytes(); - } - } - public static String getIconPath(Display display) { return "icons/full/"; //$NON-NLS-1$ } @@ -547,5 +510,84 @@ public class Utilities { result.add(status); result.add(entry); return result; - } + } + + // encoding + + /** + * Returns null if an error occurred. + */ + public static String readString(InputStream is, String encoding) { + if (is == null) + return null; + BufferedReader reader= null; + try { + StringBuffer buffer= new StringBuffer(); + char[] part= new char[2048]; + int read= 0; + reader= new BufferedReader(new InputStreamReader(is, encoding)); + + while ((read= reader.read(part)) != -1) + buffer.append(part, 0, read); + + return buffer.toString(); + + } catch (IOException ex) { + // NeedWork + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException ex) { + // silently ignored + } + } + } + return null; + } + + public static String getCharset(IResource resource) { + if (resource != null) { + /* + try { + return resource.getCharset(); + } catch (CoreException ex) { + } + */ + } + return ResourcesPlugin.getEncoding(); + } + + public static byte[] getBytes(String s, String encoding) { + byte[] bytes= null; + if (s != null) { + try { + bytes= s.getBytes(encoding); //$NON-NLS-1$ + } catch (UnsupportedEncodingException e) { + bytes= s.getBytes(); + } + } + return bytes; + } + + public static String guessCharset(String path) { + //System.err.println("Utilities.guessCharset: " + path); + int dot= path.lastIndexOf('.'); + if (dot >= 0) { + String extension= path.substring(dot); + if (extension.equalsIgnoreCase(".xml")) //$NON-NLS-1$ + return "UTF-8"; //$NON-NLS-1$ + } + return ResourcesPlugin.getEncoding(); + } + + public static String readString(IStreamContentAccessor sa) throws CoreException { + InputStream is= sa.getContents(); + String encoding= null; + if (sa instanceof IStreamContentAccessorExtension2) + encoding= ((IStreamContentAccessorExtension2)sa).getCharset(); + if (encoding == null) + encoding= ResourcesPlugin.getEncoding(); + return Utilities.readString(is, encoding); + } } |