123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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)
|