Revision: 28554
          http://sourceforge.net/p/bibdesk/svn/28554
Author:   hofman
Date:     2024-01-05 19:26:02 +0000 (Fri, 05 Jan 2024)
Log Message:
-----------
use NSSTring category method to get string encoding from encoding name

Modified Paths:
--------------
    trunk/bibdesk/BDSKAsynchronousWebParser.m
    trunk/bibdesk/BDSKDBLPGroupServer.m
    trunk/bibdesk/BDSKDOIParser.m
    trunk/bibdesk/BDSKMODSParser.m
    trunk/bibdesk/BDSKTextImportController.m
    trunk/bibdesk/BDSKWebGroup.m
    trunk/bibdesk/NSFileManager_BDSKExtensions.m

Modified: trunk/bibdesk/BDSKAsynchronousWebParser.m
===================================================================
--- trunk/bibdesk/BDSKAsynchronousWebParser.m   2024-01-05 19:05:26 UTC (rev 
28553)
+++ trunk/bibdesk/BDSKAsynchronousWebParser.m   2024-01-05 19:26:02 UTC (rev 
28554)
@@ -216,10 +216,8 @@
     NSString *string = nil;
     NSData *data = [self data];
     NSString *encodingName = [[download response] textEncodingName];
-    NSStringEncoding encoding = kCFStringEncodingInvalidId;
+    NSStringEncoding encoding = [NSString 
encodingForIANACharSetName:encodingName];
     
-    if (nil != encodingName)
-        encoding = 
CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((__bridge
 CFStringRef)encodingName));
     if (encoding != kCFStringEncodingInvalidId)
         string = [[NSString alloc] initWithData:data encoding:encoding];
     if (nil == string && encoding != NSUTF8StringEncoding)

Modified: trunk/bibdesk/BDSKDBLPGroupServer.m
===================================================================
--- trunk/bibdesk/BDSKDBLPGroupServer.m 2024-01-05 19:05:26 UTC (rev 28553)
+++ trunk/bibdesk/BDSKDBLPGroupServer.m 2024-01-05 19:26:02 UTC (rev 28554)
@@ -363,12 +363,9 @@
         if (i != NSNotFound) {
             isBibTeX = YES;
             NSString *encodingName = [response textEncodingName];
-            CFStringEncoding cfEncoding = kCFStringEncodingInvalidId;
-            NSStringEncoding nsEncoding = NSUTF8StringEncoding;
-            if (encodingName != nil)
-                cfEncoding = 
CFStringConvertIANACharSetNameToEncoding((__bridge CFStringRef)encodingName);
-            if (cfEncoding != kCFStringEncodingInvalidId)
-                nsEncoding = 
CFStringConvertEncodingToNSStringEncoding(cfEncoding);
+            NSStringEncoding nsEncoding = [NSString 
encodingForIANACharSetName:encodingName];
+            if (nsEncoding == kCFStringEncodingInvalidId)
+                nsEncoding = NSUTF8StringEncoding;
             NSString *btString = [[[NSString alloc] initWithData:data 
encoding:nsEncoding] autorelease];
             pubs = [BDSKBibTeXParser itemsFromString:btString owner:group 
error:NULL];
             [bibtexFetches replaceObjectAtIndex:i withObject:pubs];

Modified: trunk/bibdesk/BDSKDOIParser.m
===================================================================
--- trunk/bibdesk/BDSKDOIParser.m       2024-01-05 19:05:26 UTC (rev 28553)
+++ trunk/bibdesk/BDSKDOIParser.m       2024-01-05 19:26:02 UTC (rev 28554)
@@ -42,6 +42,7 @@
 #import "NSError_BDSKExtensions.h"
 #import "BibItem.h"
 #import "BDSKDownloader.h"
+#import "NSString_BDSKExtensions.h"
 #import <AGRegex/AGRegex.h>
 
 @implementation BDSKDOIParser
@@ -82,9 +83,7 @@
     BibItem *item = nil;
     if (data) {
         NSString *bibtexString = nil;
-        NSStringEncoding encoding = kCFStringEncodingInvalidId;
-        if (encodingName)
-            encoding = 
CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((__bridge
 CFStringRef)encodingName));
+        NSStringEncoding encoding = [NSString 
encodingForIANACharSetName:encodingName];
         if (encoding == kCFStringEncodingInvalidId)
             encoding = NSUTF8StringEncoding;
         bibtexString = [[[[NSString alloc] initWithData:data 
encoding:encoding] autorelease] stringByRemovingSurroundingWhitespace];

Modified: trunk/bibdesk/BDSKMODSParser.m
===================================================================
--- trunk/bibdesk/BDSKMODSParser.m      2024-01-05 19:05:26 UTC (rev 28553)
+++ trunk/bibdesk/BDSKMODSParser.m      2024-01-05 19:26:02 UTC (rev 28554)
@@ -38,6 +38,7 @@
 
 #import "BDSKMODSParser.h"
 #import "BDSKMARCParser.h"
+#import "NSString_BDSKExtensions.h"
 
 @interface NSString (BDSKMODSParserExtensions)
 - (BOOL)isMODSString;
@@ -73,14 +74,9 @@
     
     NSData *xmlData = [marcDoc XMLData];
     NSString *encodingName = [marcDoc characterEncoding];
-    NSStringEncoding encoding = 0;
-    if (encodingName) {
-        CFStringEncoding cfEnc = 
CFStringConvertIANACharSetNameToEncoding((__bridge CFStringRef)encodingName);
-        if (kCFStringEncodingInvalidId == cfEnc)
-            encoding = NSUTF8StringEncoding;
-        else
-            encoding = CFStringConvertEncodingToNSStringEncoding(cfEnc);
-    }
+    NSStringEncoding encoding = [NSString 
encodingForIANACharSetName:encodingName];
+    if (encoding == kCFStringEncodingInvalidId)
+        encoding = NSUTF8StringEncoding;
     
     NSString *xmlString = [[NSString alloc] initWithData:xmlData 
encoding:encoding];
     NSArray *parsedItems = [BDSKMARCParser itemsFromMARCXMLString:xmlString 
error:outError];

Modified: trunk/bibdesk/BDSKTextImportController.m
===================================================================
--- trunk/bibdesk/BDSKTextImportController.m    2024-01-05 19:05:26 UTC (rev 
28553)
+++ trunk/bibdesk/BDSKTextImportController.m    2024-01-05 19:26:02 UTC (rev 
28554)
@@ -68,6 +68,7 @@
 #import "NSAttributedString_BDSKExtensions.h"
 #import "NSColor_BDSKExtensions.h"
 #import "NSTableView_BDSKExtensions.h"
+#import "NSString_BDSKExtensions.h"
 
 #define BDSKTextImportControllerFrameAutosaveName @"BDSKTextImportController 
Frame Autosave Name"
 
@@ -1350,13 +1351,9 @@
         
         if(string == nil) {
             NSString *encodingName = [dataSource textEncodingName];
-            CFStringEncoding cfEncoding = kCFStringEncodingInvalidId;
-            NSStringEncoding nsEncoding = NSUTF8StringEncoding;
-            
-            if (encodingName != nil)
-                cfEncoding = 
CFStringConvertIANACharSetNameToEncoding((CFStringRef)encodingName);
-            if (cfEncoding != kCFStringEncodingInvalidId)
-                nsEncoding = 
CFStringConvertEncodingToNSStringEncoding(cfEncoding);
+            NSStringEncoding nsEncoding = [NSString 
encodingForIANACharSetName:encodingName];
+            if (nsEncoding == kCFStringEncodingInvalidId)
+                nsEncoding = NSUTF8StringEncoding;
             string = [[[NSString alloc] initWithData:[dataSource data] 
encoding:nsEncoding] autorelease];
         }
         

Modified: trunk/bibdesk/BDSKWebGroup.m
===================================================================
--- trunk/bibdesk/BDSKWebGroup.m        2024-01-05 19:05:26 UTC (rev 28553)
+++ trunk/bibdesk/BDSKWebGroup.m        2024-01-05 19:26:02 UTC (rev 28554)
@@ -268,9 +268,7 @@
             if(string == nil) {
                 NSData *data = [dataSource data];
                 NSString *encodingName = [dataSource textEncodingName];
-                NSStringEncoding encoding = NSUTF8StringEncoding;
-                if (nil != encodingName)
-                    encoding = 
CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((__bridge
 CFStringRef)encodingName));
+                NSStringEncoding encoding = encodingName ? [NSString 
encodingForIANACharSetName:encodingName] : NSUTF8StringEncoding;
                 if (encoding != kCFStringEncodingInvalidId)
                     string = [[NSString alloc] initWithData:data 
encoding:encoding];
                 if (nil == string && encoding != NSUTF8StringEncoding)

Modified: trunk/bibdesk/NSFileManager_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSFileManager_BDSKExtensions.m        2024-01-05 19:05:26 UTC 
(rev 28553)
+++ trunk/bibdesk/NSFileManager_BDSKExtensions.m        2024-01-05 19:26:02 UTC 
(rev 28554)
@@ -419,13 +419,12 @@
         array = [encodingString componentsSeparatedByString:@";"];
     
     // currently only two elements, but may become arbitrarily long in future
-    if ([array count] >= 2) {
+    if ([array count] > 1) {
         CFStringEncoding cfEncoding = [[array objectAtIndex:1] integerValue];
         nsEncoding = CFStringConvertEncodingToNSStringEncoding(cfEncoding);
     }
     else if ([array count] > 0) {
-        CFStringEncoding cfEncoding = 
CFStringConvertIANACharSetNameToEncoding((__bridge CFStringRef)[array 
objectAtIndex:0]);
-        nsEncoding = CFStringConvertEncodingToNSStringEncoding(cfEncoding);
+        nsEncoding = [NSString encodingForIANACharSetName:[array firstObject]];
     }
     else if (NULL != error && nil != encodingString /* we read something from 
EA, but couldn't understand it */) {
         *error = [NSError localErrorWithCode:kBDSKStringEncodingError 
localizedDescription:NSLocalizedString(@"Unable to interpret 
com.apple.TextEncoding", @"")];

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to