@@ -24,34 +24,27 @@
24 24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include <sqlite3.h>
25 25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef _WIN32
26 26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# include <windows.h>
27 27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
28 28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef _WIN32
29 30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
30 31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Translate MBCS to UTF8. Return a pointer to the translated text.
31 32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Call fossil_mbcs_free() to deallocate any memory used to store the
32 33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** returned pointer when done.
33 34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
34 35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *fossil_mbcs_to_utf8(const char *zMbcs){
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef _WIN32
36 36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
extern char *sqlite3_win32_mbcs_to_utf8(const char*);
37 37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return sqlite3_win32_mbcs_to_utf8(zMbcs);
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return (char*)zMbcs; /* No-op on unix */
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
41 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
42 39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
43 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
44 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** After translating from UTF8 to MBCS, invoke this routine to deallocate
45 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** any memory used to hold the translation
46 43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
47 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void fossil_mbcs_free(char *zOld){
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef _WIN32
49 45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(zOld);
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* No-op on unix */
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
53 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
54 47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
55 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
56 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Translate Unicode text into UTF8.
57 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return a pointer to the translated text.
@@ -66,11 +59,11 @@
66 59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
67 60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
68 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WideCharToMultiByte(CP_UTF8, 0, zUnicode, -1, zUtf, nByte, 0, 0);
69 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return zUtf;
70 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return (char *)zUnicode; /* No-op on unix */
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return (char *)zUnicode; /* TODO: implement for unix */
72 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
73 66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
74 67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
75 68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
76 69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Translate UTF8 to unicode for use in system calls. Return a pointer to the
@@ -85,11 +78,11 @@
85 78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
86 79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
87 80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, zUnicode, nByte);
88 81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return zUnicode;
89 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return (void *)zUtf8; /* No-op on unix */
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return (void *)zUtf8; /* TODO: implement for unix */
91 84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
92 85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
93 86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94 87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
95 88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Deallocate any memory that was previously allocated by
@@ -97,13 +90,14 @@
97 90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
98 91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void fossil_unicode_free(void *pOld){
99 92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef _WIN32
100 93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(pOld);
101 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* No-op on unix */
95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* TODO: implement for unix */
103 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
104 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* _WIN32 */
105 99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
106 100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(__APPLE__) && !defined(WITHOUT_ICONV)
107 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# include <iconv.h>
108 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
109 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -149,16 +143,38 @@
149 143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return zOut;
150 144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
151 145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (char *)zFilename; /* No-op on non-mac unix */
152 146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
153 147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Translate UTF8 to unicode for use in filename translations.
151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return a pointer to the translated text.. Call fossil_filename_free()
152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to deallocate any memory used to store the returned pointer when done.
153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *fossil_utf8_to_filename(const char *zUtf8){
156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef _WIN32
157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nByte = MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, 0, 0);
158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wchar_t *zUnicode = sqlite3_malloc( nByte * 2 );
159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zUnicode==0 ){
160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, zUnicode, nByte);
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return zUnicode;
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #elif defined(__APPLE__) && !defined(WITHOUT_ICONV)
165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return fossil_strdup(zUtf8);
166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return (void *)zUtf8; /* No-op on unix */
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
154 170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
155 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
156 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Deallocate any memory that was previously allocated by
157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** fossil_filename_to_utf8().
173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** fossil_filename_to_utf8() or fossil_utf8_to_filename().
158 174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void fossil_filename_free(char *pOld){
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void fossil_filename_free(void *pOld){
160 176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(_WIN32)
161 177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(pOld);
162 178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#elif defined(__APPLE__) && !defined(WITHOUT_ICONV)
163 179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(pOld);
164 180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
165 181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!