]> err.no Git - sope/commitdiff
exposed stringEncodingForEncodingNamed:
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Thu, 31 May 2007 14:16:50 +0000 (14:16 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Thu, 31 May 2007 14:16:50 +0000 (14:16 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1492 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-core/NGExtensions/ChangeLog
sope-core/NGExtensions/FdExt.subproj/NSString+Encoding.m
sope-core/NGExtensions/NGExtensions/NSString+Encoding.h
sope-core/NGExtensions/Version

index 5afefe006c5f21321e05fb30357a62a24b1f0c9b..5e7f30fc0213186fd25bfcb1684742794757dd67 100644 (file)
@@ -1,3 +1,9 @@
+2007-05-31  Helge Hess  <helge.hess@opengroupware.org>
+
+       * FdExt.subproj/NSString+Encoding.m: added gnustep-base and
+         libFoundation implementations for
+         [NSString +stringEncodingForEncodingNamed:] (v4.7.194)
+
 2007-05-28  Helge Hess  <helge.hess@opengroupware.org>
 
        * NGCalendarDateRange.m: return nil for undefined KVC keys (v4.7.193)
index b181258739e771d9042a119e0a985569f78225a7..af77d2a6ff99241656c79d78a3998a9de23271d8 100644 (file)
@@ -1,5 +1,6 @@
 /*
-  Copyright (C) 2000-2005 SKYRIX Software AG
+  Copyright (C) 2000-2007 SKYRIX Software AG
+  Copyright (C) 2007      Helge Hess
 
   This file is part of SOPE.
 
 #  import <Foundation/NSByteOrder.h>
 #endif
 
+#if GNUSTEP_BASE_LIBRARY
+#import <GNUstepBase/GSMime.h>
+#endif
+
 // TODO: should move different implementations to different files ...
 
 
 
 @implementation NSString(Encoding)
 
+#if GNUSTEP_BASE_LIBRARY
+
++ (NSStringEncoding)stringEncodingForEncodingNamed:(NSString *)_encoding {
+  return [GSMimeDocument encodingFromCharset:_encoding];
+}
+
+#endif
+
+#if LIB_FOUNDATION_LIBRARY
+
++ (NSStringEncoding)stringEncodingForEncodingNamed:(NSString *)_encoding {
+  NSString *s  = [_encoding lowercaseString];
+  unsigned len = [s length];
+  
+  if (s == nil)
+    return 0;
+
+  switch(len) {
+  case 4:
+    if ([s isEqualToString:@"utf8"])
+      return NSUTF8StringEncoding;
+    break;
+    
+  case 5:
+    if ([s isEqualToString:@"utf-8"])
+      return NSUTF8StringEncoding;
+    if ([s isEqualToString:@"ascii"])
+      return NSASCIIStringEncoding;
+    break;
+    
+  case 6:
+    if ([s isEqualToString:@"latin1"])
+      return NSISOLatin1StringEncoding;
+    if ([s isEqualToString:@"latin9"])
+      return NSISOLatin9StringEncoding;
+    break;
+
+  case 10:
+    if ([s isEqualToString:@"iso-8859-1"]) 
+      return NSISOLatin1StringEncoding;
+    break;
+    
+  case 11:
+    if ([s isEqualToString:@"iso-8859-15"]) 
+      return NSISOLatin9StringEncoding;
+    break;
+  }
+  
+  NSLog(@"%s: could not derive NSStringEncoding from name: '%@'", _encoding);
+  return 0;
+}
+
+#endif
+
+
 #ifdef __linux__
 static NSString *unicharEncoding = @"UCS-2LE";
 #else
index 8313fdc6aca550d4502c951133ab9b4d02706f7b..11d8811637f2b308d0c7f17048b92a36bd209484 100644 (file)
 + (NSString *)stringWithData:(NSData *)_da usingEncodingNamed:(NSString *)_enc;
 - (NSData *)dataUsingEncodingNamed:(NSString *)_encoding;
 
-// TODO: fix this, do not use a define, implement a selector on all platforms!
-#if NeXT_Foundation_LIBRARY || COCOA_Foundation_LIBRARY
 + (NSStringEncoding)stringEncodingForEncodingNamed:(NSString *)encoding;
-#endif
 
 @end
 
index 6e00eb25acf936750548597944849fdcfcee5b4b..ae5eadc44e8835069e94c0e764810e62e2b8c7c1 100644 (file)
@@ -1,6 +1,6 @@
 # version
 
-SUBMINOR_VERSION:=193
+SUBMINOR_VERSION:=194
 
 # v4.3.115 requires libFoundation v1.0.59
 # v4.2.72  requires libEOControl  v4.2.39