55 lines
1.6 KiB
Diff
55 lines
1.6 KiB
Diff
From 01c42149cbdc194644a2f138598029938e0dd447 Mon Sep 17 00:00:00 2001
|
|
From: Gabe Goodhart <ghart@us.ibm.com>
|
|
Date: Thu, 19 Sep 2024 17:09:57 -0600
|
|
Subject: [PATCH] clip unicode
|
|
|
|
---
|
|
examples/llava/clip.cpp | 23 +++++++++++++++++++++++
|
|
1 file changed, 23 insertions(+)
|
|
|
|
diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp
|
|
index b8941c74..3a735f17 100644
|
|
--- a/examples/llava/clip.cpp
|
|
+++ b/examples/llava/clip.cpp
|
|
@@ -40,6 +40,14 @@
|
|
#include <cinttypes>
|
|
#include <limits>
|
|
|
|
+#if defined(_WIN32)
|
|
+#define WIN32_LEAN_AND_MEAN
|
|
+#ifndef NOMINMAX
|
|
+ #define NOMINMAX
|
|
+#endif
|
|
+#include <windows.h>
|
|
+#endif
|
|
+
|
|
#define LOG_INF(...) do { fprintf(stdout, __VA_ARGS__); } while (0)
|
|
#define LOG_WRN(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
|
|
#define LOG_ERR(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
|
|
@@ -1227,7 +1235,22 @@ struct clip_ctx * clip_model_load(const char * fname, const int verbosity = 1) {
|
|
return nullptr;
|
|
}
|
|
|
|
+#ifdef _WIN32
|
|
+ int wlen = MultiByteToWideChar(CP_UTF8, 0, fname, -1, NULL, 0);
|
|
+ if (!wlen) {
|
|
+ return NULL;
|
|
+ }
|
|
+ wchar_t * wbuf = (wchar_t *) malloc(wlen * sizeof(wchar_t));
|
|
+ wlen = MultiByteToWideChar(CP_UTF8, 0, fname, -1, wbuf, wlen);
|
|
+ if (!wlen) {
|
|
+ free(wbuf);
|
|
+ return NULL;
|
|
+ }
|
|
+ auto fin = std::ifstream(wbuf, std::ios::binary);
|
|
+ free(wbuf);
|
|
+#else
|
|
auto fin = std::ifstream(fname, std::ios::binary);
|
|
+#endif
|
|
if (!fin) {
|
|
LOG_ERR("cannot open model file for loading tensors\n");
|
|
clip_free(new_clip);
|
|
--
|
|
2.39.3 (Apple Git-146)
|
|
|