diff --git a/Makefile b/Makefile index 0c71f8a..bf82d03 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,7 @@ CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 ASFLAGS := -g $(ARCH) LDFLAGS = -specs=3dsx.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map) -LIBS := -lcitro3d -lctru -lm -lz +LIBS := -lcitro3d -lctrud -lm -lz #--------------------------------------------------------------------------------- # list of directories containing libraries, this must be the top level containing diff --git a/source/fs.c b/source/fs.c index 69d6340..a3838e9 100644 --- a/source/fs.c +++ b/source/fs.c @@ -108,13 +108,12 @@ u64 file_to_buf(FS_Path path, FS_Archive archive, char** buf) u32 zip_file_to_buf(char *file_name, u16 *zip_path, char **buf) { - fflush(stdout); ssize_t len = strulen(zip_path, 0x106); u8 *path = calloc(sizeof(u8), len * 4); - utf16_to_utf8(path, zip_path, len); + utf16_to_utf8(path, zip_path, len * 4); - unzFile zip_handle = unzOpen(path); // Can unzOpen really handle utf8? + unzFile zip_handle = unzOpen((char*)path); if (zip_handle == NULL) return 0; u32 file_size = 0; diff --git a/source/main.c b/source/main.c index e1095fe..d9d895a 100644 --- a/source/main.c +++ b/source/main.c @@ -46,7 +46,7 @@ int main(void) hidScanInput(); u32 kDown = hidKeysDown(); if (kDown & KEY_A) - { + { for (int i = 0; i < theme_count; i++) { printu(themes_list[i]->name); diff --git a/source/themes.c b/source/themes.c index 9443000..8088c7a 100644 --- a/source/themes.c +++ b/source/themes.c @@ -23,8 +23,8 @@ void parse_smdh(theme *entry, u16 *path) if (!size) { - printf("Failed on path: "); - printu(path); + // printf("Failed on path: "); + // printu(path); return; } diff --git a/source/unicode.c b/source/unicode.c index ab5904d..6bbdbff 100644 --- a/source/unicode.c +++ b/source/unicode.c @@ -26,7 +26,7 @@ void printu(u16 *input) ssize_t in_len = strulen(input, 0x106); ssize_t buf_len = in_len + 1; // Plus 1 for proper null termination wchar_t *buf = calloc(buf_len, sizeof(wchar_t)); - for (u16 i = 0; i < buf_len; i++) buf[i] = input[i]; + utf16_to_utf32(buf, input, buf_len); printf("%ls\n", buf); free(buf); }