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.
0000: 44 20 32 30 31 32 2d 31 31 2d 32 30 54 31 35 3a D 2012-11-20T15:
0010: 31 38 3a 34 37 2e 37 39 39 0a 4a 20 2b 63 6f 6d 18:47.799.J +com
0020: 6d 65 6e 74 20 5c 6e 5c 6e 3c 68 72 5c 73 2f 3e ment \n\n<hr\s/>
0030: 3c 69 3e 61 6e 6f 6e 79 6d 6f 75 73 5c 73 61 64 <i>anonymous\sad
0040: 64 65 64 5c 73 6f 6e 5c 73 32 30 31 32 2d 31 31 ded\son\s2012-11
0050: 2d 32 30 5c 73 31 35 3a 31 38 3a 34 37 5c 73 55 -20\s15:18:47\sU
0060: 54 43 3a 3c 2f 69 3e 3c 62 72 5c 73 2f 3e 5c 6e TC:</i><br\s/>\n
0070: 63 68 61 72 5c 73 2a 66 6f 73 73 69 6c 5f 75 6e char\s*fossil_un
0080: 69 63 6f 64 65 5f 74 6f 5f 75 74 66 38 28 76 6f icode_to_utf8(vo
0090: 69 64 5c 73 2a 7a 55 6e 69 63 6f 64 65 29 7b 5c id\s*zUnicode){\
00a0: 72 5c 6e 23 69 66 64 65 66 5c 73 5f 57 49 4e 33 r\n#ifdef\s_WIN3
00b0: 32 5c 72 5c 6e 5c 73 5c 73 69 6e 74 5c 73 6e 42 2\r\n\s\sint\snB
00c0: 79 74 65 5c 73 3d 5c 73 30 3b 5c 72 5c 6e 5c 73 yte\s=\s0;\r\n\s
00d0: 5c 73 63 68 61 72 5c 73 2a 7a 55 74 66 3b 5c 72 \schar\s*zUtf;\r
00e0: 5c 6e 5c 73 5c 73 57 43 48 41 52 5c 73 2a 77 55 \n\s\sWCHAR\s*wU
00f0: 6e 69 63 6f 64 65 5c 73 3d 5c 73 7a 55 6e 69 63 nicode\s=\szUnic
0100: 6f 64 65 3b 5c 72 5c 6e 2f 2a 5c 72 5c 6e 54 68 ode;\r\n/*\r\nTh
0110: 69 73 5c 73 6d 79 5c 73 68 61 76 65 5c 73 70 72 is\smy\shave\spr
0120: 6f 62 6c 65 6d 5c 73 77 68 65 6e 5c 73 7a 55 6e oblem\swhen\szUn
0130: 69 63 6f 64 65 5c 73 69 73 5c 73 72 65 61 64 6f icode\sis\sreado
0140: 6e 6c 79 2e 5c 72 5c 6e 41 6e 64 5c 73 69 74 27 nly.\r\nAnd\sit'
0150: 73 5c 73 77 69 6c 6c 5c 73 6d 6f 64 69 66 79 5c s\swill\smodify\
0160: 73 7a 55 6e 69 63 6f 64 65 5c 73 77 68 65 6e 5c szUnicode\swhen\
0170: 73 73 6f 6d 65 74 69 6d 65 73 5c 73 77 65 5c 73 ssometimes\swe\s
0180: 64 69 64 5c 73 6e 6f 74 5c 73 77 61 6e 74 5c 73 did\snot\swant\s
0190: 74 6f 5c 73 6d 6f 64 69 66 79 5c 73 69 74 2e 5c to\smodify\sit.\
01a0: 72 5c 6e 2a 2f 5c 72 5c 6e 5c 73 5c 73 77 68 69 r\n*/\r\n\s\swhi
01b0: 6c 65 28 5c 73 2a 77 55 6e 69 63 6f 64 65 5c 73 le(\s*wUnicode\s
01c0: 21 3d 5c 73 30 5c 73 29 7b 5c 72 5c 6e 5c 73 5c !=\s0\s){\r\n\s\
01d0: 73 5c 73 5c 73 69 66 5c 73 28 5c 73 28 2a 77 55 s\s\sif\s(\s(*wU
01e0: 6e 69 63 6f 64 65 5c 73 3e 5c 73 30 78 46 30 30 nicode\s>\s0xF00
01f0: 30 29 5c 73 26 26 5c 73 28 2a 77 55 6e 69 63 6f 0)\s&&\s(*wUnico
0200: 64 65 5c 73 3c 3d 5c 73 30 78 46 30 37 46 29 5c de\s<=\s0xF07F)\
0210: 73 29 7b 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 5c s){\r\n\s\s\s\s\
0220: 73 5c 73 2a 77 55 6e 69 63 6f 64 65 5c 73 26 3d s\s*wUnicode\s&=
0230: 5c 73 30 78 37 46 3b 5c 72 5c 6e 5c 73 5c 73 5c \s0x7F;\r\n\s\s\
0240: 73 5c 73 7d 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 s\s}\r\n\s\s\s\s
0250: 2b 2b 77 55 6e 69 63 6f 64 65 3b 5c 72 5c 6e 5c ++wUnicode;\r\n\
0260: 73 5c 73 7d 5c 72 5c 6e 5c 73 5c 73 6e 42 79 74 s\s}\r\n\s\snByt
0270: 65 5c 73 3d 5c 73 57 69 64 65 43 68 61 72 54 6f e\s=\sWideCharTo
0280: 4d 75 6c 74 69 42 79 74 65 28 43 50 5f 55 54 46 MultiByte(CP_UTF
0290: 38 2c 5c 73 30 2c 5c 73 7a 55 6e 69 63 6f 64 65 8,\s0,\szUnicode
02a0: 2c 5c 73 2d 31 2c 5c 73 30 2c 5c 73 30 2c 5c 73 ,\s-1,\s0,\s0,\s
02b0: 30 2c 5c 73 30 29 3b 5c 72 5c 6e 5c 73 5c 73 7a 0,\s0);\r\n\s\sz
02c0: 55 74 66 5c 73 3d 5c 73 73 71 6c 69 74 65 33 5f Utf\s=\ssqlite3_
02d0: 6d 61 6c 6c 6f 63 28 5c 73 6e 42 79 74 65 5c 73 malloc(\snByte\s
02e0: 29 3b 5c 72 5c 6e 5c 73 5c 73 69 66 28 5c 73 7a );\r\n\s\sif(\sz
02f0: 55 74 66 3d 3d 30 5c 73 29 7b 5c 72 5c 6e 5c 73 Utf==0\s){\r\n\s
0300: 5c 73 5c 73 5c 73 72 65 74 75 72 6e 5c 73 30 3b \s\s\sreturn\s0;
0310: 5c 72 5c 6e 5c 73 5c 73 7d 5c 72 5c 6e 5c 73 5c \r\n\s\s}\r\n\s\
0320: 73 57 69 64 65 43 68 61 72 54 6f 4d 75 6c 74 69 sWideCharToMulti
0330: 42 79 74 65 28 43 50 5f 55 54 46 38 2c 5c 73 30 Byte(CP_UTF8,\s0
0340: 2c 5c 73 7a 55 6e 69 63 6f 64 65 2c 5c 73 2d 31 ,\szUnicode,\s-1
0350: 2c 5c 73 7a 55 74 66 2c 5c 73 6e 42 79 74 65 2c ,\szUtf,\snByte,
0360: 5c 73 30 2c 5c 73 30 29 3b 5c 72 5c 6e 5c 73 5c \s0,\s0);\r\n\s\
0370: 73 72 65 74 75 72 6e 5c 73 7a 55 74 66 3b 5c 72 sreturn\szUtf;\r
0380: 5c 6e 23 65 6c 73 65 5c 72 5c 6e 5c 73 5c 73 72 \n#else\r\n\s\sr
0390: 65 74 75 72 6e 5c 73 28 63 68 61 72 5c 73 2a 29 eturn\s(char\s*)
03a0: 7a 55 6e 69 63 6f 64 65 3b 5c 73 5c 73 2f 2a 5c zUnicode;\s\s/*\
03b0: 73 4e 6f 2d 6f 70 5c 73 6f 6e 5c 73 75 6e 69 78 sNo-op\son\sunix
03c0: 5c 73 2a 2f 5c 72 5c 6e 23 65 6e 64 69 66 5c 72 \s*/\r\n#endif\r
03d0: 5c 6e 7d 5c 72 5c 6e 5c 72 5c 6e 5c 72 5c 6e 76 \n}\r\n\r\n\r\nv
03e0: 6f 69 64 5c 73 2a 66 6f 73 73 69 6c 5f 75 74 66 oid\s*fossil_utf
03f0: 38 5f 74 6f 5f 75 6e 69 63 6f 64 65 28 63 6f 6e 8_to_unicode(con
0400: 73 74 5c 73 63 68 61 72 5c 73 2a 7a 55 74 66 38 st\schar\s*zUtf8
0410: 29 7b 5c 72 5c 6e 23 69 66 64 65 66 5c 73 5f 57 ){\r\n#ifdef\s_W
0420: 49 4e 33 32 5c 72 5c 6e 2f 2a 5c 73 6e 57 6f 72 IN32\r\n/*\snWor
0430: 64 5c 73 73 68 6f 75 6c 64 5c 73 62 65 5c 73 6d d\sshould\sbe\sm
0440: 65 61 6e 69 6e 67 66 75 6c 5c 73 74 68 61 6e 5c eaningful\sthan\
0450: 73 6e 42 79 74 65 5c 73 68 65 72 65 2a 2f 5c 72 snByte\shere*/\r
0460: 5c 6e 5c 73 5c 73 69 6e 74 5c 73 6e 42 79 74 65 \n\s\sint\snByte
0470: 5c 73 3d 5c 73 4d 75 6c 74 69 42 79 74 65 54 6f \s=\sMultiByteTo
0480: 57 69 64 65 43 68 61 72 28 43 50 5f 55 54 46 38 WideChar(CP_UTF8
0490: 2c 5c 73 30 2c 5c 73 7a 55 74 66 38 2c 5c 73 2d ,\s0,\szUtf8,\s-
04a0: 31 2c 5c 73 30 2c 5c 73 30 29 3b 5c 72 5c 6e 5c 1,\s0,\s0);\r\n\
04b0: 73 5c 73 77 63 68 61 72 5f 74 5c 73 2a 7a 55 6e s\swchar_t\s*zUn
04c0: 69 63 6f 64 65 5c 73 3d 5c 73 73 71 6c 69 74 65 icode\s=\ssqlite
04d0: 33 5f 6d 61 6c 6c 6f 63 28 5c 73 6e 42 79 74 65 3_malloc(\snByte
04e0: 5c 73 2a 5c 73 32 5c 73 29 3b 5c 72 5c 6e 5c 73 \s*\s2\s);\r\n\s
04f0: 5c 73 77 63 68 61 72 5f 74 5c 73 2a 77 55 6e 69 \swchar_t\s*wUni
0500: 63 6f 64 65 3b 5c 72 5c 6e 5c 73 5c 73 69 66 28 code;\r\n\s\sif(
0510: 5c 73 7a 55 6e 69 63 6f 64 65 3d 3d 30 5c 73 29 \szUnicode==0\s)
0520: 7b 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 72 65 74 {\r\n\s\s\s\sret
0530: 75 72 6e 5c 73 30 3b 5c 72 5c 6e 5c 73 5c 73 7d urn\s0;\r\n\s\s}
0540: 5c 72 5c 6e 5c 73 5c 73 4d 75 6c 74 69 42 79 74 \r\n\s\sMultiByt
0550: 65 54 6f 57 69 64 65 43 68 61 72 28 43 50 5f 55 eToWideChar(CP_U
0560: 54 46 38 2c 5c 73 30 2c 5c 73 7a 55 74 66 38 2c TF8,\s0,\szUtf8,
0570: 5c 73 2d 31 2c 5c 73 7a 55 6e 69 63 6f 64 65 2c \s-1,\szUnicode,
0580: 5c 73 6e 42 79 74 65 29 3b 5c 72 5c 6e 5c 73 5c \snByte);\r\n\s\
0590: 73 77 55 6e 69 63 6f 64 65 5c 73 3d 5c 73 7a 55 swUnicode\s=\szU
05a0: 6e 69 63 6f 64 65 3b 5c 72 5c 6e 5c 73 5c 73 77 nicode;\r\n\s\sw
05b0: 68 69 6c 65 28 5c 73 2d 2d 6e 42 79 74 65 5c 73 hile(\s--nByte\s
05c0: 3e 5c 73 30 29 7b 5c 72 5c 6e 5c 73 5c 73 5c 73 >\s0){\r\n\s\s\s
05d0: 5c 73 69 66 5c 73 28 5c 73 28 2a 77 55 6e 69 63 \sif\s(\s(*wUnic
05e0: 6f 64 65 5c 73 3c 5c 73 33 32 29 5c 73 7c 7c 5c ode\s<\s32)\s||\
05f0: 73 77 63 73 63 68 72 28 4c 22 5c 5c 22 2a 3c 3e swcschr(L"\\"*<>
0600: 3f 7c 22 2c 5c 73 2a 77 55 6e 69 63 6f 64 65 29 ?|",\s*wUnicode)
0610: 5c 73 29 7b 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 \s){\r\n\s\s\s\s
0620: 5c 73 5c 73 2a 77 55 6e 69 63 6f 64 65 5c 73 7c \s\s*wUnicode\s|
0630: 3d 5c 73 30 78 46 30 30 30 3b 5c 72 5c 6e 5c 73 =\s0xF000;\r\n\s
0640: 5c 73 5c 73 5c 73 7d 5c 72 5c 6e 5c 73 5c 73 5c \s\s\s}\r\n\s\s\
0650: 73 5c 73 2b 2b 77 55 6e 69 63 6f 64 65 3b 5c 72 s\s++wUnicode;\r
0660: 5c 6e 5c 73 5c 73 7d 5c 72 5c 6e 5c 72 5c 6e 5c \n\s\s}\r\n\r\n\
0670: 73 5c 73 72 65 74 75 72 6e 5c 73 7a 55 6e 69 63 s\sreturn\szUnic
0680: 6f 64 65 3b 5c 72 5c 6e 23 65 6c 73 65 5c 72 5c ode;\r\n#else\r\
0690: 6e 5c 73 5c 73 72 65 74 75 72 6e 5c 73 28 76 6f n\s\sreturn\s(vo
06a0: 69 64 5c 73 2a 29 7a 55 74 66 38 3b 5c 73 5c 73 id\s*)zUtf8;\s\s
06b0: 2f 2a 5c 73 4e 6f 2d 6f 70 5c 73 6f 6e 5c 73 75 /*\sNo-op\son\su
06c0: 6e 69 78 5c 73 2a 2f 5c 72 5c 6e 23 65 6e 64 69 nix\s*/\r\n#endi
06d0: 66 5c 72 5c 6e 7d 0a 4b 20 64 31 37 64 36 65 35 f\r\n}.K d17d6e5
06e0: 62 31 37 34 62 64 36 66 38 62 62 65 38 62 65 36 b174bd6f8bbe8be6
06f0: 66 38 35 31 64 65 33 64 37 32 31 31 39 30 61 66 f851de3d721190af
0700: 38 0a 55 20 61 6e 6f 6e 79 6d 6f 75 73 0a 5a 20 8.U anonymous.Z
0710: 65 37 62 62 66 36 32 64 66 62 31 37 31 34 30 32 e7bbf62dfb171402
0720: 65 38 62 39 38 62 63 63 30 38 31 37 39 35 63 63 e8b98bcc081795cc
0730: 0a .