]> err.no Git - sope/commitdiff
always load .strings files as Latin-1
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 12 Oct 2004 14:37:26 +0000 (14:37 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 12 Oct 2004 14:37:26 +0000 (14:37 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@247 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/NGObjWeb/ChangeLog
sope-appserver/NGObjWeb/Version
sope-appserver/NGObjWeb/_WOStringTable.m

index 9b96516f9074e6387f35611d785ec2e30a8db91b..93e410a2673732028ad263efad47ae78435579d8 100644 (file)
@@ -1,3 +1,8 @@
+2004-10-12  Helge Hess  <helge.hess@skyrix.com>
+
+       * _WOStringTable.m: always open .strings files in ISO-Latin-1 encoding
+         (will be changed to UTF-8 later) (v4.3.63)
+
 2004-10-11  Helge Hess  <helge.hess@opengroupware.org>
 
        * SoObjects/SoObjCClass.m: fixed a bug in "Action" selector processing
index 5bc45e6da394f1eaeaa2dfb019b1ef3b0be782ee..a3c02e77dde68dc1a7755d5d672d27b0a621d45a 100644 (file)
@@ -1,6 +1,6 @@
 # version file
 
-SUBMINOR_VERSION:=62
+SUBMINOR_VERSION:=63
 
 # v4.3.42  requires libNGExtensions v4.3.116
 # v4.3.40  requires libNGExtensions v4.3.115
index a22203c876f1cb568413f9402ebb2c8d7693d2ce..59b14364dfb9e3092bc2e9d7d7c10a064ef24c44 100644 (file)
@@ -25,6 +25,8 @@
 
 @implementation _WOStringTable
 
+static NSStringEncoding stringFilesEncoding = NSISOLatin1StringEncoding;
+
 - (id)initWithPath:(NSString *)_path {
   if ((self = [super init])) {
     self->path = [_path copyWithZone:[self zone]];
@@ -54,6 +56,7 @@
 - (void)checkState {
   NSString     *tmp;
   NSDictionary *plist;
+  NSData       *sdata;
   
   if (self->data != nil)
     return;
   
   /* If file was not a dictionary, then it's a standard strings file */
   
-  if ((tmp = [NSString stringWithContentsOfFile:self->path]) == nil) {
+  if ((sdata = [[NSData alloc] initWithContentsOfFile:self->path]) == nil) {
+    [self debugWithFormat:@"ERROR: could not read strings file: %@", 
+         self->path];
+    self->data = nil;
+    return;
+  }
+  
+  tmp = [[NSString alloc] initWithData:sdata encoding:stringFilesEncoding];
+  [sdata release]; sdata = nil;
+  if (tmp == nil) {
+    [self logWithFormat:@"ERROR: file is not in required encoding (%d): %@",
+         stringFilesEncoding, self->path];
     self->data = nil;
     return;
   }
             __PRETTY_FUNCTION__,
             self->path);
     }
+    [tmp release]; tmp = nil;
     self->data = [plist copy];
   }
-  NS_HANDLER
+  NS_HANDLER {
+    [tmp release]; tmp = nil;
     [[self _handlePropertyListParseException:localException] raise];
+  }
   NS_ENDHANDLER;
 }