@@ -104,10 +104,14 @@
104 104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
105 105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Translate text from the filename character set into UTF-8.
106 106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return a pointer to the translated text.
107 107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Call fossil_filename_free() to deallocate any memory used to store the
108 108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** returned pointer when done.
109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This function must not convert '\' to '/' on windows/cygwin, as it is
111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** used in places where we are not sure it's really filenames we are handling,
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** e.g. fossil_getenv() or handling the argv arguments from main().
109 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
110 114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *fossil_filename_to_utf8(const void *zFilename){
111 115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(_WIN32)
112 116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nByte = WideCharToMultiByte(CP_UTF8, 0, zFilename, -1, 0, 0, 0, 0);
113 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zUtf = sqlite3_malloc( nByte );
@@ -154,14 +158,21 @@
154 158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
155 159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *fossil_utf8_to_filename(const char *zUtf8){
156 160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef _WIN32
157 161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nByte = MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, 0, 0);
158 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wchar_t *zUnicode = sqlite3_malloc( nByte * 2 );
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wchar_t *wUnicode = zUnicode;
159 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zUnicode==0 ){
160 165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
161 166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
162 167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, zUnicode, nByte);
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( *wUnicode != '\0' ){
169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( *wUnicode == '/' ){
170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *wUnicode = '\\';
171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ++wUnicode;
173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
163 174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return zUnicode;
164 175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#elif defined(__APPLE__) && !defined(WITHOUT_ICONV)
165 176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return fossil_strdup(zUtf8);
166 177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
167 178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (void *)zUtf8; /* No-op on unix */
168 179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!