Artifact
8a0d7c72704f06cc4df73edd885cc0ec30c369c9:
Ticket change
[8a0d7c7270]
- Ticket
[d17d6e5b17] Handle file names containing brackets, interrogation mark or asterisk status still Open with 1 other change
by
anonymous
2012-11-20 15:18:47.
D 2012-11-20T15:18:47.799
J +comment \n\n<hr\s/><i>anonymous\sadded\son\s2012-11-20\s15:18:47\sUTC:</i><br\s/>\nchar\s*fossil_unicode_to_utf8(void\s*zUnicode){\r\n#ifdef\s_WIN32\r\n\s\sint\snByte\s=\s0;\r\n\s\schar\s*zUtf;\r\n\s\sWCHAR\s*wUnicode\s=\szUnicode;\r\n/*\r\nThis\smy\shave\sproblem\swhen\szUnicode\sis\sreadonly.\r\nAnd\sit's\swill\smodify\szUnicode\swhen\ssometimes\swe\sdid\snot\swant\sto\smodify\sit.\r\n*/\r\n\s\swhile(\s*wUnicode\s!=\s0\s){\r\n\s\s\s\sif\s(\s(*wUnicode\s>\s0xF000)\s&&\s(*wUnicode\s<=\s0xF07F)\s){\r\n\s\s\s\s\s\s*wUnicode\s&=\s0x7F;\r\n\s\s\s\s}\r\n\s\s\s\s++wUnicode;\r\n\s\s}\r\n\s\snByte\s=\sWideCharToMultiByte(CP_UTF8,\s0,\szUnicode,\s-1,\s0,\s0,\s0,\s0);\r\n\s\szUtf\s=\ssqlite3_malloc(\snByte\s);\r\n\s\sif(\szUtf==0\s){\r\n\s\s\s\sreturn\s0;\r\n\s\s}\r\n\s\sWideCharToMultiByte(CP_UTF8,\s0,\szUnicode,\s-1,\szUtf,\snByte,\s0,\s0);\r\n\s\sreturn\szUtf;\r\n#else\r\n\s\sreturn\s(char\s*)zUnicode;\s\s/*\sNo-op\son\sunix\s*/\r\n#endif\r\n}\r\n\r\n\r\nvoid\s*fossil_utf8_to_unicode(const\schar\s*zUtf8){\r\n#ifdef\s_WIN32\r\n/*\snWord\sshould\sbe\smeaningful\sthan\snByte\shere*/\r\n\s\sint\snByte\s=\sMultiByteToWideChar(CP_UTF8,\s0,\szUtf8,\s-1,\s0,\s0);\r\n\s\swchar_t\s*zUnicode\s=\ssqlite3_malloc(\snByte\s*\s2\s);\r\n\s\swchar_t\s*wUnicode;\r\n\s\sif(\szUnicode==0\s){\r\n\s\s\s\sreturn\s0;\r\n\s\s}\r\n\s\sMultiByteToWideChar(CP_UTF8,\s0,\szUtf8,\s-1,\szUnicode,\snByte);\r\n\s\swUnicode\s=\szUnicode;\r\n\s\swhile(\s--nByte\s>\s0){\r\n\s\s\s\sif\s(\s(*wUnicode\s<\s32)\s||\swcschr(L"\\"*<>?|",\s*wUnicode)\s){\r\n\s\s\s\s\s\s*wUnicode\s|=\s0xF000;\r\n\s\s\s\s}\r\n\s\s\s\s++wUnicode;\r\n\s\s}\r\n\r\n\s\sreturn\szUnicode;\r\n#else\r\n\s\sreturn\s(void\s*)zUtf8;\s\s/*\sNo-op\son\sunix\s*/\r\n#endif\r\n}
K d17d6e5b174bd6f8bbe8be6f851de3d721190af8
U anonymous
Z e7bbf62dfb171402e8b98bcc081795cc