Revision: 23889
          http://sourceforge.net/p/bibdesk/svn/23889
Author:   hofman
Date:     2019-06-22 14:26:40 +0000 (Sat, 22 Jun 2019)
Log Message:
-----------
don't trim white space and newlines in arxiv title and abstract, remove correct 
number of characters

Modified Paths:
--------------
    trunk/bibdesk/BDSKArxivParser.m
    trunk/bibdesk/CFString_BDSKExtensions.h
    trunk/bibdesk/CFString_BDSKExtensions.m
    trunk/bibdesk/DOMNode_BDSKExtensions.m
    trunk/bibdesk/NSString_BDSKExtensions.h
    trunk/bibdesk/NSString_BDSKExtensions.m

Modified: trunk/bibdesk/BDSKArxivParser.m
===================================================================
--- trunk/bibdesk/BDSKArxivParser.m     2019-06-22 06:30:27 UTC (rev 23888)
+++ trunk/bibdesk/BDSKArxivParser.m     2019-06-22 14:26:40 UTC (rev 23889)
@@ -235,7 +235,7 @@
         if (node) {
             if ((string = [node stringValuePreservingBreaks])) {
                 if ([string hasPrefix:@"Title:"])
-                    string = [string substringFromIndex:7];
+                    string = [string substringFromIndex:6];
                 while ([string hasPrefix:@" "])
                     string = [string substringFromIndex:1];
                 [pubFields setValue:string forKey:BDSKTitleString];

Modified: trunk/bibdesk/CFString_BDSKExtensions.h
===================================================================
--- trunk/bibdesk/CFString_BDSKExtensions.h     2019-06-22 06:30:27 UTC (rev 
23888)
+++ trunk/bibdesk/CFString_BDSKExtensions.h     2019-06-22 14:26:40 UTC (rev 
23889)
@@ -39,6 +39,7 @@
 
 CFArrayRef BDStringCreateComponentsBySeparatingByAnd(CFAllocatorRef allocator, 
CFStringRef string);
 // supposed to be used only for ASCII-only character sets
+extern CFStringRef BDStringCreateByCollapsingCharactersInSet(CFAllocatorRef 
allocator, CFStringRef string, CFCharacterSetRef charSet);
 extern CFStringRef 
BDStringCreateByCollapsingAndTrimmingCharactersInSet(CFAllocatorRef allocator, 
CFStringRef string, CFCharacterSetRef charSet);
 extern CFStringRef 
BDStringCreateByNormalizingWhitespaceAndNewlines(CFAllocatorRef allocator, 
CFStringRef string);
 extern CFArrayRef 
BDStringCreateComponentsSeparatedByCharacterSetTrimWhitespace(CFAllocatorRef 
allocator, CFStringRef string, CFCharacterSetRef charSet, Boolean trim);

Modified: trunk/bibdesk/CFString_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/CFString_BDSKExtensions.m     2019-06-22 06:30:27 UTC (rev 
23888)
+++ trunk/bibdesk/CFString_BDSKExtensions.m     2019-06-22 14:26:40 UTC (rev 
23889)
@@ -143,7 +143,7 @@
 }
 
 static inline
-CFStringRef 
__BDStringCreateByCollapsingAndTrimmingCharactersInSet(CFAllocatorRef 
allocator, CFStringRef aString, CFCharacterSetRef charSet)
+CFStringRef 
__BDStringCreateByCollapsingAndTrimmingCharactersInSet(CFAllocatorRef 
allocator, CFStringRef aString, CFCharacterSetRef charSet, Boolean trim)
 {
     
     CFIndex length = CFStringGetLength(aString);
@@ -172,7 +172,7 @@
     
     NSCAssert1(buffer != NULL, @"failed to allocate memory for string of 
length %ld", (long)length);
     
-    BOOL isFirst = NO;
+    BOOL isFirst = !trim;
     NSInteger bufCnt = 0;
     for(cnt = 0; cnt < length; cnt++){
         ch = CFStringGetCharacterFromInlineBuffer(&inlineBuffer, cnt);
@@ -187,7 +187,7 @@
         }
     }
     
-    if(buffer[(bufCnt-1)] == ' ') // we've collapsed any trailing whitespace, 
so disregard it
+    if(trim && buffer[(bufCnt-1)] == ' ') // we've collapsed any trailing 
whitespace, so disregard it
         bufCnt--;
     
     retStr = CFStringCreateWithCharacters(allocator, buffer, bufCnt);
@@ -877,9 +877,11 @@
     CFRelease(mutableString);
     return hash;
 }
-    
-CFStringRef 
BDStringCreateByCollapsingAndTrimmingCharactersInSet(CFAllocatorRef allocator, 
CFStringRef string, CFCharacterSetRef charSet){ return 
__BDStringCreateByCollapsingAndTrimmingCharactersInSet(allocator, string, 
charSet); }
 
+CFStringRef BDStringCreateByCollapsingCharactersInSet(CFAllocatorRef 
allocator, CFStringRef string, CFCharacterSetRef charSet){ return 
__BDStringCreateByCollapsingAndTrimmingCharactersInSet(allocator, string, 
charSet, false); }
+
+CFStringRef 
BDStringCreateByCollapsingAndTrimmingCharactersInSet(CFAllocatorRef allocator, 
CFStringRef string, CFCharacterSetRef charSet){ return 
__BDStringCreateByCollapsingAndTrimmingCharactersInSet(allocator, string, 
charSet, true); }
+
 CFStringRef BDStringCreateByNormalizingWhitespaceAndNewlines(CFAllocatorRef 
allocator, CFStringRef string){ return 
__BDStringCreateByNormalizingWhitespaceAndNewlines(allocator, string); }
 
 // useful when you want the range of a single character without messing with 
character sets, or just to know if a character exists in a string (pass NULL 
for resultRange if you don't care where the result is located)

Modified: trunk/bibdesk/DOMNode_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/DOMNode_BDSKExtensions.m      2019-06-22 06:30:27 UTC (rev 
23888)
+++ trunk/bibdesk/DOMNode_BDSKExtensions.m      2019-06-22 14:26:40 UTC (rev 
23889)
@@ -91,7 +91,7 @@
     NSUInteger i, iMax = [children length];
     
     if (iMax == 0)
-        return [self stringValue];
+        return [[self textContent] stringByCollapsingWhitespaceAndNewlines] ?: 
@"";
     
     NSMutableString *string = [NSMutableString string];
     
@@ -103,11 +103,8 @@
             [string appendString:@"\n"];
         } else if (type == DOM_TEXT_NODE || [[node nodeName] 
isCaseInsensitiveEqual:@"script"] == NO) {
             NSString *s = [node stringValuePreservingBreaks];
-            if ([s length]) {
-                if ([string length] && [string lastCharacter] != '\n' && [s 
firstCharacter] != '\n')
-                    [string appendString:@" "];
+            if ([s length])
                 [string appendString:s];
-            }
         }
     }
     return string;

Modified: trunk/bibdesk/NSString_BDSKExtensions.h
===================================================================
--- trunk/bibdesk/NSString_BDSKExtensions.h     2019-06-22 06:30:27 UTC (rev 
23888)
+++ trunk/bibdesk/NSString_BDSKExtensions.h     2019-06-22 14:26:40 UTC (rev 
23889)
@@ -410,6 +410,7 @@
 */
 - (BOOL)containsWord:(NSString *)aWord;
 
+- (NSString *)stringByCollapsingCharactersInSet:(NSCharacterSet *)charSet;
 - (NSString *)stringByCollapsingAndTrimmingCharactersInSet:(NSCharacterSet 
*)charSet;
 
 - (BOOL)hasCaseInsensitivePrefix:(NSString *)prefix;
@@ -463,8 +464,10 @@
 - (NSString *)stringByRemovingSuffix:(NSString *)suffix;
 
 - (NSString *)stringByRemovingSurroundingWhitespace;
+- (NSString *)stringByCollapsingWhitespace;
 - (NSString *)stringByCollapsingWhitespaceAndRemovingSurroundingWhitespace;
 - (NSString *)stringByRemovingSurroundingWhitespaceAndNewlines;
+- (NSString *)stringByCollapsingWhitespaceAndNewlines;
 - (NSString 
*)stringByCollapsingWhitespaceAndNewlinesAndRemovingSurroundingWhitespaceAndNewlines;
 - (NSString *)fullyEncodeAsIURI;
 

Modified: trunk/bibdesk/NSString_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSString_BDSKExtensions.m     2019-06-22 06:30:27 UTC (rev 
23888)
+++ trunk/bibdesk/NSString_BDSKExtensions.m     2019-06-22 14:26:40 UTC (rev 
23889)
@@ -1127,6 +1127,11 @@
     return [self componentsSeparatedByCharactersInSet:[NSCharacterSet 
commaCharacterSet] trimWhitespace:YES];
 }
 
+- (NSString *)stringByCollapsingCharactersInSet:(NSCharacterSet *)charSet;
+{
+    return 
[(id)BDStringCreateByCollapsingCharactersInSet(CFAllocatorGetDefault(), 
(CFStringRef)self, (CFCharacterSetRef)charSet) autorelease];
+}
+
 - (NSString *)stringByCollapsingAndTrimmingCharactersInSet:(NSCharacterSet 
*)charSet;
 {
     return 
[(id)BDStringCreateByCollapsingAndTrimmingCharactersInSet(CFAllocatorGetDefault(),
 (CFStringRef)self, (CFCharacterSetRef)charSet) autorelease];
@@ -1343,10 +1348,18 @@
     return [self stringByTrimmingCharactersInSet:[NSCharacterSet 
whitespaceCharacterSet]];
 }
 
+- (NSString *)stringByCollapsingWhitespace {
+    return [self stringByCollapsingAndTrimmingCharactersInSet:[NSCharacterSet 
whitespaceCharacterSet]];
+}
+
 - (NSString *)stringByCollapsingWhitespaceAndRemovingSurroundingWhitespace {
     return [self stringByCollapsingAndTrimmingCharactersInSet:[NSCharacterSet 
whitespaceCharacterSet]];
 }
 
+- (NSString *)stringByCollapsingWhitespaceAndNewlines {
+    return [self stringByCollapsingCharactersInSet:[NSCharacterSet 
whitespaceAndNewlineCharacterSet]];
+}
+
 - (NSString 
*)stringByCollapsingWhitespaceAndNewlinesAndRemovingSurroundingWhitespaceAndNewlines
 {
     return [self stringByCollapsingAndTrimmingCharactersInSet:[NSCharacterSet 
whitespaceAndNewlineCharacterSet]];
 }

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