Revision: 29475
http://sourceforge.net/p/bibdesk/svn/29475
Author: hofman
Date: 2025-08-26 14:46:30 +0000 (Tue, 26 Aug 2025)
Log Message:
-----------
remove fragment from url string for saving and getting favicon in database
Modified Paths:
--------------
trunk/bibdesk/BDSKWebIconDatabase.m
trunk/bibdesk/BDSKWebView.m
Modified: trunk/bibdesk/BDSKWebIconDatabase.m
===================================================================
--- trunk/bibdesk/BDSKWebIconDatabase.m 2025-08-25 16:30:57 UTC (rev 29474)
+++ trunk/bibdesk/BDSKWebIconDatabase.m 2025-08-26 14:46:30 UTC (rev 29475)
@@ -51,6 +51,15 @@
#define VERSION 1
#define ICONS_FILENAME @"Icons.plist"
+static inline NSString *URLStringByRemovingFragment(NSString *URLString) {
+ if (URLString == nil)
+ return URLString;
+ NSUInteger fragmentLocation = [URLString rangeOfString:@"#"
options:NSBackwardsSearch].location;
+ if (fragmentLocation != NSNotFound)
+ return [URLString substringToIndex:fragmentLocation];
+ return URLString;
+}
+
@interface BDSKWebIconDatabase ()
- (NSURL *)webIconDatabaseURL;
- (void)handleApplicationWillTerminate:(NSNotification *)notification;
@@ -83,6 +92,7 @@
}
- (NSImage *)iconForURLString:(NSString *)pageURLString {
+ pageURLString = URLStringByRemovingFragment(pageURLString);
if ([NSString isEmptyString:pageURLString])
return nil;
NSImage *icon = [recentIcons objectForKey:pageURLString];
@@ -115,6 +125,7 @@
}
- (NSImage *)recentIconForURLString:(NSString *)aURLString {
+ aURLString = URLStringByRemovingFragment(aURLString);
if ([NSString isEmptyString:aURLString])
return nil;
NSImage *icon = [recentIcons objectForKey:aURLString];
@@ -125,6 +136,8 @@
}
- (void)setIcon:(NSImage *)icon withData:(NSData *)data
fromURLString:(NSString *)iconURLString forURLString:(NSString *)pageURLString
originalURLString:(NSString *)originalURLString {
+ pageURLString = URLStringByRemovingFragment(pageURLString);
+ originalURLString = URLStringByRemovingFragment(originalURLString);
if ([NSString isEmptyString:pageURLString])
return;
if (recentIcons == nil)
Modified: trunk/bibdesk/BDSKWebView.m
===================================================================
--- trunk/bibdesk/BDSKWebView.m 2025-08-25 16:30:57 UTC (rev 29474)
+++ trunk/bibdesk/BDSKWebView.m 2025-08-26 14:46:30 UTC (rev 29475)
@@ -291,8 +291,14 @@
// different pages from the same site can have the same favicon
icon = faviconFromOrigin ? nil : [[BDSKWebIconDatabase sharedDatabase]
recentIconForURLString:[faviconURL absoluteString]];
urlString = [self mainFrameURL];
+ NSUInteger fragmentLoc = [urlString rangeOfString:@"#"
options:NSBackwardsSearch].location;
+ if (urlString && fragmentLoc != NSNotFound)
+ urlString = [urlString substringToIndex:fragmentLoc];
NSString *origUrlString = [[[[[self mainFrame] dataSource] initialRequest]
URL] absoluteString];
- if ([origUrlString isEqualToString:urlString] || [([origUrlString
hasPrefix:@"/"] ? [origUrlString substringToIndex:[origUrlString length] - 1] :
[origUrlString stringByAppendingString:@"/"]) isEqualToString:urlString])
+ fragmentLoc = [origUrlString rangeOfString:@"#"
options:NSBackwardsSearch].location;
+ if (origUrlString && fragmentLoc != NSNotFound)
+ origUrlString = [origUrlString substringToIndex:fragmentLoc];
+ if ([origUrlString isEqualToString:urlString] || [([origUrlString
hasSuffix:@"/"] ? [origUrlString substringToIndex:[origUrlString length] - 1] :
[origUrlString stringByAppendingString:@"/"]) isEqualToString:urlString])
origUrlString = nil;
if (icon) {
[[BDSKWebIconDatabase sharedDatabase] setIcon:icon withData:nil
fromURLString:[faviconURL absoluteString] forURLString:urlString
originalURLString:origUrlString];
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