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