Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
c90294ab
Commit
c90294ab
authored
Nov 19, 2020
by
Michael Stefaniuc
Committed by
Alexandre Julliard
Nov 20, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
itss: Use wide-char string literals.
Signed-off-by:
Michael Stefaniuc
<
mstefani@winehq.org
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
9cc4263d
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
29 additions
and
80 deletions
+29
-80
chm_lib.c
dlls/itss/chm_lib.c
+5
-28
moniker.c
dlls/itss/moniker.c
+2
-5
protocol.c
dlls/itss/protocol.c
+2
-6
storage.c
dlls/itss/storage.c
+1
-2
protocol.c
dlls/itss/tests/protocol.c
+19
-39
No files found.
dlls/itss/chm_lib.c
View file @
c90294ab
...
...
@@ -203,31 +203,6 @@ static BOOL _unmarshal_uuid(unsigned char **pData,
return
_unmarshal_uchar_array
(
pData
,
pDataLen
,
dest
,
16
);
}
/* names of sections essential to decompression */
static
const
WCHAR
_CHMU_RESET_TABLE
[]
=
{
':'
,
':'
,
'D'
,
'a'
,
't'
,
'a'
,
'S'
,
'p'
,
'a'
,
'c'
,
'e'
,
'/'
,
'S'
,
't'
,
'o'
,
'r'
,
'a'
,
'g'
,
'e'
,
'/'
,
'M'
,
'S'
,
'C'
,
'o'
,
'm'
,
'p'
,
'r'
,
'e'
,
's'
,
's'
,
'e'
,
'd'
,
'/'
,
'T'
,
'r'
,
'a'
,
'n'
,
's'
,
'f'
,
'o'
,
'r'
,
'm'
,
'/'
,
'{'
,
'7'
,
'F'
,
'C'
,
'2'
,
'8'
,
'9'
,
'4'
,
'0'
,
'-'
,
'9'
,
'D'
,
'3'
,
'1'
,
'-'
,
'1'
,
'1'
,
'D'
,
'0'
,
'-'
,
'9'
,
'B'
,
'2'
,
'7'
,
'-'
,
'0'
,
'0'
,
'A'
,
'0'
,
'C'
,
'9'
,
'1'
,
'E'
,
'9'
,
'C'
,
'7'
,
'C'
,
'}'
,
'/'
,
'I'
,
'n'
,
's'
,
't'
,
'a'
,
'n'
,
'c'
,
'e'
,
'D'
,
'a'
,
't'
,
'a'
,
'/'
,
'R'
,
'e'
,
's'
,
'e'
,
't'
,
'T'
,
'a'
,
'b'
,
'l'
,
'e'
,
0
};
static
const
WCHAR
_CHMU_LZXC_CONTROLDATA
[]
=
{
':'
,
':'
,
'D'
,
'a'
,
't'
,
'a'
,
'S'
,
'p'
,
'a'
,
'c'
,
'e'
,
'/'
,
'S'
,
't'
,
'o'
,
'r'
,
'a'
,
'g'
,
'e'
,
'/'
,
'M'
,
'S'
,
'C'
,
'o'
,
'm'
,
'p'
,
'r'
,
'e'
,
's'
,
's'
,
'e'
,
'd'
,
'/'
,
'C'
,
'o'
,
'n'
,
't'
,
'r'
,
'o'
,
'l'
,
'D'
,
'a'
,
't'
,
'a'
,
0
};
static
const
WCHAR
_CHMU_CONTENT
[]
=
{
':'
,
':'
,
'D'
,
'a'
,
't'
,
'a'
,
'S'
,
'p'
,
'a'
,
'c'
,
'e'
,
'/'
,
'S'
,
't'
,
'o'
,
'r'
,
'a'
,
'g'
,
'e'
,
'/'
,
'M'
,
'S'
,
'C'
,
'o'
,
'm'
,
'p'
,
'r'
,
'e'
,
's'
,
's'
,
'e'
,
'd'
,
'/'
,
'C'
,
'o'
,
'n'
,
't'
,
'e'
,
'n'
,
't'
,
0
};
/*
* structures local to this module
*/
...
...
@@ -766,15 +741,17 @@ struct chmFile *chm_openW(const WCHAR *filename)
/* prefetch most commonly needed unit infos */
if
(
CHM_RESOLVE_SUCCESS
!=
chm_resolve_object
(
newHandle
,
_CHMU_RESET_TABLE
,
L"::DataSpace/Storage/MSCompressed/Transform/"
"{7FC28940-9D31-11D0-9B27-00A0C91E9C7C}/"
"InstanceData/ResetTable"
,
&
newHandle
->
rt_unit
)
||
newHandle
->
rt_unit
.
space
==
CHM_COMPRESSED
||
CHM_RESOLVE_SUCCESS
!=
chm_resolve_object
(
newHandle
,
_CHMU_CONTENT
,
L"::DataSpace/Storage/MSCompressed/Content"
,
&
newHandle
->
cn_unit
)
||
newHandle
->
cn_unit
.
space
==
CHM_COMPRESSED
||
CHM_RESOLVE_SUCCESS
!=
chm_resolve_object
(
newHandle
,
_CHMU_LZXC_CONTROLDATA
,
L"::DataSpace/Storage/MSCompressed/ControlData"
,
&
uiLzxc
)
||
uiLzxc
.
space
==
CHM_COMPRESSED
)
{
...
...
dlls/itss/moniker.c
View file @
c90294ab
...
...
@@ -283,8 +283,6 @@ static HRESULT WINAPI ITS_IMonikerImpl_GetDisplayName(
LPOLESTR
*
ppszDisplayName
)
{
ITS_IMonikerImpl
*
This
=
impl_from_IMoniker
(
iface
);
static
const
WCHAR
szFormat
[]
=
{
'm'
,
's'
,
'-'
,
'i'
,
't'
,
's'
,
':'
,
'%'
,
's'
,
':'
,
':'
,
'%'
,
's'
,
0
};
DWORD
len
;
LPWSTR
str
;
...
...
@@ -292,7 +290,7 @@ static HRESULT WINAPI ITS_IMonikerImpl_GetDisplayName(
len
=
lstrlenW
(
This
->
szFile
)
+
lstrlenW
(
This
->
szHtml
);
str
=
CoTaskMemAlloc
(
len
*
sizeof
(
WCHAR
)
);
swprintf
(
str
,
len
,
szFormat
,
This
->
szFile
,
This
->
szHtml
);
swprintf
(
str
,
len
,
L"ms-its:%s::%s"
,
This
->
szFile
,
This
->
szHtml
);
*
ppszDisplayName
=
str
;
...
...
@@ -431,8 +429,7 @@ static HRESULT WINAPI ITS_IParseDisplayNameImpl_ParseDisplayName(
ULONG
*
pchEaten
,
IMoniker
**
ppmkOut
)
{
static
const
WCHAR
szPrefix
[]
=
{
'@'
,
'M'
,
'S'
,
'I'
,
'T'
,
'S'
,
't'
,
'o'
,
'r'
,
'e'
,
':'
,
0
};
static
const
WCHAR
szPrefix
[]
=
L"@MSITStore:"
;
const
DWORD
prefix_len
=
ARRAY_SIZE
(
szPrefix
)
-
1
;
DWORD
n
;
...
...
dlls/itss/protocol.c
View file @
c90294ab
...
...
@@ -231,8 +231,6 @@ static HRESULT WINAPI ITSProtocol_Start(IInternetProtocol *iface, LPCWSTR szUrl,
int
res
;
HRESULT
hres
;
static
const
WCHAR
separator
[]
=
{
':'
,
':'
,
0
};
TRACE
(
"(%p)->(%s %p %p %08x %lx)
\n
"
,
This
,
debugstr_w
(
szUrl
),
pOIProtSink
,
pOIBindInfo
,
grfPI
,
dwReserved
);
...
...
@@ -260,7 +258,7 @@ static HRESULT WINAPI ITSProtocol_Start(IInternetProtocol *iface, LPCWSTR szUrl,
return
hres
;
}
p
=
wcsstr
(
file_name
,
separator
);
p
=
wcsstr
(
file_name
,
L"::"
);
if
(
!
p
)
{
WARN
(
"invalid url
\n
"
);
HeapFree
(
GetProcessHeap
(),
0
,
file_name
);
...
...
@@ -480,13 +478,11 @@ static HRESULT WINAPI ITSProtocolInfo_CombineUrl(IInternetProtocolInfo *iface,
LPCWSTR
base_end
,
ptr
;
DWORD
rel_len
;
static
const
WCHAR
separator
[]
=
{
':'
,
':'
,
0
};
TRACE
(
"(%p)->(%s %s %08x %p %d %p %d)
\n
"
,
This
,
debugstr_w
(
pwzBaseUrl
),
debugstr_w
(
pwzRelativeUrl
),
dwCombineFlags
,
pwzResult
,
cchResult
,
pcchResult
,
dwReserved
);
base_end
=
wcsstr
(
pwzBaseUrl
,
separator
);
base_end
=
wcsstr
(
pwzBaseUrl
,
L"::"
);
if
(
!
base_end
)
return
0x80041001
;
base_end
+=
2
;
...
...
dlls/itss/storage.c
View file @
c90294ab
...
...
@@ -639,7 +639,6 @@ HRESULT ITSS_StgOpenStorage(
IStorage
**
ppstgOpen
)
{
struct
chmFile
*
chmfile
;
static
const
WCHAR
szRoot
[]
=
{
'/'
,
0
};
TRACE
(
"%s
\n
"
,
debugstr_w
(
pwcsName
)
);
...
...
@@ -647,7 +646,7 @@ HRESULT ITSS_StgOpenStorage(
if
(
!
chmfile
)
return
E_FAIL
;
return
ITSS_create_chm_storage
(
chmfile
,
szRoot
,
ppstgOpen
);
return
ITSS_create_chm_storage
(
chmfile
,
L"/"
,
ppstgOpen
);
}
/************************************************************************/
...
...
dlls/itss/tests/protocol.c
View file @
c90294ab
...
...
@@ -66,36 +66,24 @@ static HRESULT expect_hrResult;
static
IInternetProtocol
*
read_protocol
=
NULL
;
static
DWORD
bindf
;
static
const
WCHAR
blank_url1
[]
=
{
'i'
,
't'
,
's'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
blank_url2
[]
=
{
'm'
,
'S'
,
'-'
,
'i'
,
'T'
,
's'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
blank_url3
[]
=
{
'm'
,
'k'
,
':'
,
'@'
,
'M'
,
'S'
,
'I'
,
'T'
,
'S'
,
't'
,
'o'
,
'r'
,
'e'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
blank_url4
[]
=
{
'i'
,
't'
,
's'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
blank_url5
[]
=
{
'i'
,
't'
,
's'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'\\'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
blank_url6
[]
=
{
'i'
,
't'
,
's'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'%'
,
'6'
,
'2'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
blank_url7
[]
=
{
'm'
,
'k'
,
':'
,
'@'
,
'M'
,
'S'
,
'I'
,
'T'
,
'S'
,
't'
,
'o'
,
'r'
,
'e'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'\\'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
blank_url8
[]
=
{
'm'
,
'k'
,
':'
,
'@'
,
'M'
,
'S'
,
'I'
,
'T'
,
'S'
,
't'
,
'o'
,
'r'
,
'e'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
'/'
,
0
};
static
const
WCHAR
blank_url9
[]
=
{
'i'
,
't'
,
's'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'd'
,
'i'
,
'r'
,
'/'
,
'.'
,
'.'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
blank_url1
[]
=
L"its:test.chm::/blank.html"
;
static
const
WCHAR
blank_url2
[]
=
L"mS-iTs:test.chm::/blank.html"
;
static
const
WCHAR
blank_url3
[]
=
L"mk:@MSITStore:test.chm::/blank.html"
;
static
const
WCHAR
blank_url4
[]
=
L"its:test.chm::blank.html"
;
static
const
WCHAR
blank_url5
[]
=
L"its:test.chm::
\\
blank.html"
;
static
const
WCHAR
blank_url6
[]
=
L"its:test.chm::/%62lank.html"
;
static
const
WCHAR
blank_url7
[]
=
L"mk:@MSITStore:test.chm::
\\
blank.html"
;
static
const
WCHAR
blank_url8
[]
=
L"mk:@MSITStore:test.chm::/blank.html/"
;
static
const
WCHAR
blank_url9
[]
=
L"its:test.chm::/dir/../blank.html"
;
static
enum
{
ITS_PROTOCOL
,
MK_PROTOCOL
}
test_protocol
;
static
const
WCHAR
cache_file1
[]
=
{
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
cache_file2
[]
=
{
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'\\'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
cache_file3
[]
=
{
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
'/'
,
0
};
static
const
WCHAR
cache_file1
[]
=
L"test.chm::/blank.html"
;
static
const
WCHAR
cache_file2
[]
=
L"test.chm::
\\
blank.html"
;
static
const
WCHAR
cache_file3
[]
=
L"test.chm::/blank.html/"
;
static
const
WCHAR
*
cache_file
=
cache_file1
;
static
HRESULT
WINAPI
ProtocolSink_QueryInterface
(
IInternetProtocolSink
*
iface
,
REFIID
riid
,
void
**
ppv
)
...
...
@@ -126,9 +114,6 @@ static HRESULT WINAPI ProtocolSink_Switch(IInternetProtocolSink *iface, PROTOCOL
static
HRESULT
WINAPI
ProtocolSink_ReportProgress
(
IInternetProtocolSink
*
iface
,
ULONG
ulStatusCode
,
LPCWSTR
szStatusText
)
{
static
const
WCHAR
blank_html
[]
=
{
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
text_html
[]
=
{
't'
,
'e'
,
'x'
,
't'
,
'/'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
switch
(
ulStatusCode
)
{
case
BINDSTATUS_BEGINDOWNLOADDATA
:
CHECK_EXPECT
(
ReportProgress_BEGINDOWNLOADDATA
);
...
...
@@ -137,13 +122,13 @@ static HRESULT WINAPI ProtocolSink_ReportProgress(IInternetProtocolSink *iface,
case
BINDSTATUS_SENDINGREQUEST
:
CHECK_EXPECT
(
ReportProgress_SENDINGREQUEST
);
if
(
test_protocol
==
ITS_PROTOCOL
)
ok
(
!
lstrcmpW
(
szStatusText
,
blank_html
),
"unexpected szStatusText
\n
"
);
ok
(
!
lstrcmpW
(
szStatusText
,
L"blank.html"
),
"unexpected szStatusText
\n
"
);
else
ok
(
szStatusText
==
NULL
,
"szStatusText != NULL
\n
"
);
break
;
case
BINDSTATUS_MIMETYPEAVAILABLE
:
CHECK_EXPECT
(
ReportProgress_MIMETYPEAVAILABLE
);
ok
(
!
lstrcmpW
(
szStatusText
,
text_html
),
"unexpected szStatusText
\n
"
);
ok
(
!
lstrcmpW
(
szStatusText
,
L"text/html"
),
"unexpected szStatusText
\n
"
);
break
;
case
BINDSTATUS_CACHEFILENAMEAVAILABLE
:
CHECK_EXPECT
(
ReportProgress_CACHEFILENAMEAVAILABLE
);
...
...
@@ -523,16 +508,11 @@ static void test_its_protocol(void)
ULONG
ref
;
HRESULT
hres
;
static
const
WCHAR
wrong_url1
[]
=
{
'i'
,
't'
,
's'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
wrong_url2
[]
=
{
'i'
,
't'
,
's'
,
':'
,
't'
,
'e'
,
's'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'b'
,
'/'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
wrong_url3
[]
=
{
'i'
,
't'
,
's'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
wrong_url4
[]
=
{
'm'
,
'k'
,
':'
,
'@'
,
'M'
,
'S'
,
'I'
,
'T'
,
'S'
,
't'
,
'o'
,
'r'
,
':'
,
't'
,
'e'
,
's'
,
't'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
wrong_url5
[]
=
{
'f'
,
'i'
,
'l'
,
'e'
,
':'
,
't'
,
'e'
,
's'
,
'.'
,
'c'
,
'h'
,
'm'
,
':'
,
':'
,
'/'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
wrong_url1
[]
=
L"its:test.chm::/blan.html"
;
static
const
WCHAR
wrong_url2
[]
=
L"its:tes.chm::b/lank.html"
;
static
const
WCHAR
wrong_url3
[]
=
L"its:test.chm/blank.html"
;
static
const
WCHAR
wrong_url4
[]
=
L"mk:@MSITStor:test.chm::/blank.html"
;
static
const
WCHAR
wrong_url5
[]
=
L"file:tes.chm::/blank.html"
;
test_protocol
=
ITS_PROTOCOL
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment