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
32f636f6
Commit
32f636f6
authored
Nov 05, 2012
by
Daniel Lehman
Committed by
Alexandre Julliard
Nov 07, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
shell32: Initialize fAnyOperationsAborted in SHFileOperation.
parent
4d323d17
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
9 deletions
+44
-9
shlfileop.c
dlls/shell32/shlfileop.c
+1
-0
shlfileop.c
dlls/shell32/tests/shlfileop.c
+43
-9
No files found.
dlls/shell32/shlfileop.c
View file @
32f636f6
...
...
@@ -1541,6 +1541,7 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
ZeroMemory
(
&
op
,
sizeof
(
op
));
op
.
req
=
lpFileOp
;
op
.
bManyItems
=
(
flFrom
.
dwNumFiles
>
1
);
lpFileOp
->
fAnyOperationsAborted
=
FALSE
;
switch
(
lpFileOp
->
wFunc
)
{
...
...
dlls/shell32/tests/shlfileop.c
View file @
32f636f6
...
...
@@ -995,7 +995,11 @@ static void test_copy(void)
shfo
.
fFlags
|=
FOF_NOERRORUI
;
set_curr_dir_path
(
from
,
"test1.txt
\0
test2.txt
\0
"
);
set_curr_dir_path
(
to
,
"test3.txt
\0
"
);
shfo
.
fAnyOperationsAborted
=
0xdeadbeef
;
retval
=
SHFileOperation
(
&
shfo
);
ok
(
shfo
.
fAnyOperationsAborted
!=
0xdeadbeef
||
broken
(
shfo
.
fAnyOperationsAborted
==
0xdeadbeef
),
/* NT4 */
"Expected TRUE/FALSE fAnyOperationsAborted not 0xdeadbeef
\n
"
);
if
(
retval
==
DE_FLDDESTISFILE
||
/* Vista and W2K8 */
retval
==
DE_INVALIDFILES
)
/* Win7 */
{
...
...
@@ -1012,8 +1016,11 @@ static void test_copy(void)
/* try to copy many files to nonexistent directory */
DeleteFile
(
to
);
shfo
.
fFlags
&=
~
FOF_NOERRORUI
;
shfo
.
fAnyOperationsAborted
=
FALSE
;
shfo
.
fAnyOperationsAborted
=
0xdeadbeef
;
retval
=
SHFileOperation
(
&
shfo
);
ok
(
!
shfo
.
fAnyOperationsAborted
||
broken
(
shfo
.
fAnyOperationsAborted
==
0xdeadbeef
),
/* NT4 */
"Didn't expect aborted operations
\n
"
);
ok
(
retval
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %d
\n
"
,
retval
);
ok
(
DeleteFile
(
"test3.txt
\\
test1.txt"
),
"Expected test3.txt
\\
test1.txt to exist
\n
"
);
ok
(
DeleteFile
(
"test3.txt
\\
test2.txt"
),
"Expected test3.txt
\\
test1.txt to exist
\n
"
);
...
...
@@ -1024,11 +1031,16 @@ static void test_copy(void)
shfo
.
pFrom
=
"test1.txt
\0
test2.txt
\0
test3.txt
\0
"
;
shfo
.
pTo
=
"testdir2
\\
a.txt
\0
testdir2
\\
b.txt
\0
testdir2
\\
c.txt
\0
testdir2
\\
d.txt
\0
"
;
shfo
.
fFlags
|=
FOF_NOERRORUI
|
FOF_MULTIDESTFILES
;
shfo
.
fAnyOperationsAborted
=
0xdeadbeef
;
retval
=
SHFileOperation
(
&
shfo
);
ok
(
shfo
.
fAnyOperationsAborted
!=
0xdeadbeef
||
broken
(
shfo
.
fAnyOperationsAborted
==
0xdeadbeef
),
/* NT4 */
"Expected TRUE/FALSE fAnyOperationsAborted not 0xdeadbeef
\n
"
);
if
(
dir_exists
(
"testdir2
\\
a.txt"
))
{
/* Vista and W2K8 (broken or new behavior ?) */
ok
(
retval
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %d
\n
"
,
retval
);
ok
(
!
shfo
.
fAnyOperationsAborted
,
"Didn't expect aborted operations
\n
"
);
ok
(
DeleteFile
(
"testdir2
\\
a.txt
\\
test1.txt"
),
"Expected testdir2
\\
a.txt
\\
test1.txt to exist
\n
"
);
RemoveDirectory
(
"testdir2
\\
a.txt"
);
ok
(
DeleteFile
(
"testdir2
\\
b.txt
\\
test2.txt"
),
"Expected testdir2
\\
b.txt
\\
test2.txt to exist
\n
"
);
...
...
@@ -1049,11 +1061,15 @@ static void test_copy(void)
/* send in FOF_MULTIDESTFILES with too many destination files */
shfo
.
pFrom
=
"test1.txt
\0
test2.txt
\0
test3.txt
\0
"
;
shfo
.
pTo
=
"e.txt
\0
f.txt
\0
"
;
shfo
.
fAnyOperationsAborted
=
FALSE
;
shfo
.
fAnyOperationsAborted
=
0xdeadbeef
;
retval
=
SHFileOperation
(
&
shfo
);
ok
(
shfo
.
fAnyOperationsAborted
!=
0xdeadbeef
||
broken
(
shfo
.
fAnyOperationsAborted
==
0xdeadbeef
),
/* NT4 */
"Expected TRUE/FALSE fAnyOperationsAborted not 0xdeadbeef
\n
"
);
if
(
dir_exists
(
"e.txt"
))
{
/* Vista and W2K8 (broken or new behavior ?) */
ok
(
!
shfo
.
fAnyOperationsAborted
,
"Didn't expect aborted operations
\n
"
);
ok
(
retval
==
DE_SAMEFILE
,
"Expected DE_SAMEFILE, got %d
\n
"
,
retval
);
ok
(
DeleteFile
(
"e.txt
\\
test1.txt"
),
"Expected e.txt
\\
test1.txt to exist
\n
"
);
RemoveDirectory
(
"e.txt"
);
...
...
@@ -1072,8 +1088,11 @@ static void test_copy(void)
/* use FOF_MULTIDESTFILES with files and a source directory */
shfo
.
pFrom
=
"test1.txt
\0
test2.txt
\0
test4.txt
\0
"
;
shfo
.
pTo
=
"testdir2
\\
a.txt
\0
testdir2
\\
b.txt
\0
testdir2
\\
c.txt
\0
"
;
shfo
.
fAnyOperationsAborted
=
FALSE
;
shfo
.
fAnyOperationsAborted
=
0xdeadbeef
;
retval
=
SHFileOperation
(
&
shfo
);
ok
(
!
shfo
.
fAnyOperationsAborted
||
broken
(
shfo
.
fAnyOperationsAborted
==
0xdeadbeef
),
/* NT4 */
"Didn't expect aborted operations
\n
"
);
ok
(
retval
==
ERROR_SUCCESS
||
broken
(
retval
==
0x100a1
),
/* WinMe */
"Expected ERROR_SUCCESS, got %d
\n
"
,
retval
);
...
...
@@ -1085,13 +1104,17 @@ static void test_copy(void)
/* try many dest files without FOF_MULTIDESTFILES flag */
shfo
.
pFrom
=
"test1.txt
\0
test2.txt
\0
test3.txt
\0
"
;
shfo
.
pTo
=
"a.txt
\0
b.txt
\0
c.txt
\0
"
;
shfo
.
fAnyOperationsAborted
=
FALSE
;
shfo
.
fAnyOperationsAborted
=
0xdeadbeef
;
shfo
.
fFlags
&=
~
FOF_MULTIDESTFILES
;
retval
=
SHFileOperation
(
&
shfo
);
ok
(
shfo
.
fAnyOperationsAborted
!=
0xdeadbeef
||
broken
(
shfo
.
fAnyOperationsAborted
==
0xdeadbeef
),
/* NT4 */
"Expected TRUE/FALSE fAnyOperationsAborted not 0xdeadbeef
\n
"
);
if
(
dir_exists
(
"a.txt"
))
{
/* Vista and W2K8 (broken or new behavior ?) */
ok
(
retval
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %d
\n
"
,
retval
);
ok
(
!
shfo
.
fAnyOperationsAborted
,
"Didn't expect aborted operations
\n
"
);
ok
(
DeleteFile
(
"a.txt
\\
test1.txt"
),
"Expected a.txt
\\
test1.txt to exist
\n
"
);
ok
(
DeleteFile
(
"a.txt
\\
test2.txt"
),
"Expected a.txt
\\
test2.txt to exist
\n
"
);
ok
(
DeleteFile
(
"a.txt
\\
test3.txt"
),
"Expected a.txt
\\
test3.txt to exist
\n
"
);
...
...
@@ -1099,7 +1122,11 @@ static void test_copy(void)
}
else
{
expect_retval
(
ERROR_CANCELLED
,
DE_OPCANCELLED
/* Win9x, NT4 */
);
ok
(
shfo
.
fAnyOperationsAborted
||
broken
(
!
shfo
.
fAnyOperationsAborted
),
/* NT4 */
"Expected aborted operations
\n
"
);
ok
(
!
file_exists
(
"a.txt"
),
"Expected a.txt to not exist
\n
"
);
}
...
...
@@ -1157,8 +1184,11 @@ static void test_copy(void)
init_shfo_tests
();
shfo
.
pFrom
=
"test1.txt
\0
"
;
shfo
.
pTo
=
"b.txt
\0
c.txt
\0
"
;
shfo
.
fAnyOperationsAborted
=
FALSE
;
shfo
.
fAnyOperationsAborted
=
0xdeadbeef
;
retval
=
SHFileOperation
(
&
shfo
);
ok
(
!
shfo
.
fAnyOperationsAborted
||
broken
(
shfo
.
fAnyOperationsAborted
==
0xdeadbeef
),
/* NT4 */
"Didn't expect aborted operations
\n
"
);
if
(
retval
==
DE_OPCANCELLED
)
{
/* NT4 fails and doesn't copy any files */
...
...
@@ -1177,11 +1207,13 @@ static void test_copy(void)
/* copy two file to three others, all fail */
shfo
.
pFrom
=
"test1.txt
\0
test2.txt
\0
"
;
shfo
.
pTo
=
"b.txt
\0
c.txt
\0
d.txt
\0
"
;
shfo
.
fAnyOperationsAborted
=
0xdeadbeef
;
retval
=
SHFileOperation
(
&
shfo
);
if
(
dir_exists
(
"b.txt"
))
{
/* Vista and W2K8 (broken or new behavior ?) */
ok
(
retval
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %d
\n
"
,
retval
);
ok
(
!
shfo
.
fAnyOperationsAborted
,
"Didn't expect aborted operations
\n
"
);
ok
(
DeleteFile
(
"b.txt
\\
test1.txt"
),
"Expected b.txt
\\
test1.txt to exist
\n
"
);
RemoveDirectory
(
"b.txt"
);
ok
(
DeleteFile
(
"c.txt
\\
test2.txt"
),
"Expected c.txt
\\
test2.txt to exist
\n
"
);
...
...
@@ -1191,7 +1223,7 @@ static void test_copy(void)
{
expect_retval
(
ERROR_CANCELLED
,
DE_OPCANCELLED
/* Win9x, NT4 */
);
ok
(
shfo
.
fAnyOperationsAborted
||
broken
(
!
shfo
.
fAnyOperationsAborted
),
/* NT4 */
broken
(
shfo
.
fAnyOperationsAborted
==
0xdeadbeef
),
/* NT4 */
"Expected aborted operations
\n
"
);
ok
(
!
DeleteFile
(
"b.txt"
),
"Expected b.txt to not exist
\n
"
);
}
...
...
@@ -1199,12 +1231,13 @@ static void test_copy(void)
/* copy one file and one directory to three others */
shfo
.
pFrom
=
"test1.txt
\0
test4.txt
\0
"
;
shfo
.
pTo
=
"b.txt
\0
c.txt
\0
d.txt
\0
"
;
shfo
.
fAnyOperationsAborted
=
FALSE
;
shfo
.
fAnyOperationsAborted
=
0xdeadbeef
;
retval
=
SHFileOperation
(
&
shfo
);
if
(
dir_exists
(
"b.txt"
))
{
/* Vista and W2K8 (broken or new behavior ?) */
ok
(
retval
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %d
\n
"
,
retval
);
ok
(
!
shfo
.
fAnyOperationsAborted
,
"Didn't expect aborted operations
\n
"
);
ok
(
DeleteFile
(
"b.txt
\\
test1.txt"
),
"Expected b.txt
\\
test1.txt to exist
\n
"
);
RemoveDirectory
(
"b.txt"
);
ok
(
RemoveDirectory
(
"c.txt
\\
test4.txt"
),
"Expected c.txt
\\
test4.txt to exist
\n
"
);
...
...
@@ -1214,7 +1247,7 @@ static void test_copy(void)
{
expect_retval
(
ERROR_CANCELLED
,
DE_OPCANCELLED
/* Win9x, NT4 */
);
ok
(
shfo
.
fAnyOperationsAborted
||
broken
(
!
shfo
.
fAnyOperationsAborted
),
/* NT4 */
broken
(
shfo
.
fAnyOperationsAborted
==
0xdeadbeef
),
/* NT4 */
"Expected aborted operations
\n
"
);
ok
(
!
DeleteFile
(
"b.txt"
),
"Expected b.txt to not exist
\n
"
);
ok
(
!
DeleteFile
(
"c.txt"
),
"Expected c.txt to not exist
\n
"
);
...
...
@@ -1383,10 +1416,11 @@ static void test_copy(void)
shfo
.
fFlags
=
FOF_NOCONFIRMATION
;
shfo
.
pFrom
=
"test1.txt
\0
"
;
shfo
.
pTo
=
"test2.txt
\0
"
;
shfo
.
fAnyOperationsAborted
=
FALSE
;
shfo
.
fAnyOperationsAborted
=
0xdeadbeef
;
/* without FOF_NOCONFIRMATION the confirmation is Yes/No */
retval
=
SHFileOperation
(
&
shfo
);
ok
(
retval
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %d
\n
"
,
retval
);
ok
(
!
shfo
.
fAnyOperationsAborted
,
"Didn't expect aborted operations
\n
"
);
ok
(
file_has_content
(
"test2.txt"
,
"test1.txt
\n
"
),
"The file was not copied
\n
"
);
shfo
.
pFrom
=
"test3.txt
\0
test1.txt
\0
"
;
...
...
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