From dce400435e78d83c4f87f1eeb00ce841cd8fe169 Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Sat, 30 Jan 2021 19:37:10 -0800 Subject: [PATCH] Fix #89 by encoding paths correctly I hope --- Plugins/ArchiveSource/ArchiveSource/ArchiveContainer.m | 2 +- Plugins/HighlyComplete/HighlyComplete/HCDecoder.mm | 2 +- Plugins/vgmstream/vgmstream/VGMInterface.m | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Plugins/ArchiveSource/ArchiveSource/ArchiveContainer.m b/Plugins/ArchiveSource/ArchiveSource/ArchiveContainer.m index 45226928f..e6132af9c 100644 --- a/Plugins/ArchiveSource/ArchiveSource/ArchiveContainer.m +++ b/Plugins/ArchiveSource/ArchiveSource/ArchiveContainer.m @@ -62,7 +62,7 @@ static NSString * g_make_unpack_path(NSString * archive, NSString * file, NSStri while ( !fex_done(fex) ) { NSString *name = [NSString stringWithUTF8String:fex_name(fex)]; if ([[NSClassFromString(@"AudioPlayer") fileTypes] containsObject:[[name pathExtension] lowercaseString]]) - [files addObject:[NSURL URLWithString:[g_make_unpack_path([url path], name, @"fex") stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLPathAllowedCharacterSet]]]; + [files addObject:[NSURL URLWithDataRepresentation:[g_make_unpack_path([url path], name, @"fex") dataUsingEncoding:NSUTF8StringEncoding] relativeToURL:nil]]; fex_next(fex); } diff --git a/Plugins/HighlyComplete/HighlyComplete/HCDecoder.mm b/Plugins/HighlyComplete/HighlyComplete/HCDecoder.mm index dc2d4d0de..13cce72d3 100644 --- a/Plugins/HighlyComplete/HighlyComplete/HCDecoder.mm +++ b/Plugins/HighlyComplete/HighlyComplete/HCDecoder.mm @@ -112,7 +112,7 @@ void * source_fopen(const char * path) if ( ![[psf_file_container instance] try_hint:[NSString stringWithUTF8String:path] source:&source] ) { NSString * urlString = [NSString stringWithUTF8String:path]; - NSURL * url = [NSURL URLWithString:[urlString stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLPathAllowedCharacterSet]]; + NSURL * url = [NSURL URLWithDataRepresentation:[urlString dataUsingEncoding:NSUTF8StringEncoding] relativeToURL:nil]; id audioSourceClass = NSClassFromString(@"AudioSource"); source = [audioSourceClass audioSourceForURL:url]; diff --git a/Plugins/vgmstream/vgmstream/VGMInterface.m b/Plugins/vgmstream/vgmstream/VGMInterface.m index 62cd6dbd4..08688b72b 100644 --- a/Plugins/vgmstream/vgmstream/VGMInterface.m +++ b/Plugins/vgmstream/vgmstream/VGMInterface.m @@ -82,7 +82,7 @@ static STREAMFILE *cogsf_create(id file, const char *path) { STREAMFILE *cogsf_create_from_path(const char *path) { NSString * urlString = [NSString stringWithUTF8String:path]; - NSURL * url = [NSURL URLWithString:[urlString stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLPathAllowedCharacterSet]]; + NSURL * url = [NSURL URLWithDataRepresentation:[urlString dataUsingEncoding:NSUTF8StringEncoding] relativeToURL:nil]; return cogsf_create_from_url(url); }