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
c00b0b02
Commit
c00b0b02
authored
May 13, 2004
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove trailing spaces from the filename in RtlGetFullPathName_U.
parent
beaa084f
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
3 deletions
+11
-3
path.c
dlls/ntdll/path.c
+10
-3
path.c
dlls/ntdll/tests/path.c
+1
-0
No files found.
dlls/ntdll/path.c
View file @
c00b0b02
...
@@ -533,13 +533,18 @@ static const WCHAR *skip_unc_prefix( const WCHAR *ptr )
...
@@ -533,13 +533,18 @@ static const WCHAR *skip_unc_prefix( const WCHAR *ptr )
*/
*/
static
ULONG
get_full_path_helper
(
LPCWSTR
name
,
LPWSTR
buffer
,
ULONG
size
)
static
ULONG
get_full_path_helper
(
LPCWSTR
name
,
LPWSTR
buffer
,
ULONG
size
)
{
{
ULONG
reqsize
=
0
,
mark
=
0
,
dep
=
0
,
deplen
;
ULONG
reqsize
=
0
,
mark
=
0
,
dep
=
0
,
deplen
,
name_len
;
DOS_PATHNAME_TYPE
type
;
DOS_PATHNAME_TYPE
type
;
LPWSTR
ins_str
=
NULL
;
LPWSTR
ins_str
=
NULL
;
LPCWSTR
ptr
;
LPCWSTR
ptr
;
const
UNICODE_STRING
*
cd
;
const
UNICODE_STRING
*
cd
;
WCHAR
tmp
[
4
];
WCHAR
tmp
[
4
];
/* remove trailing spaces (yes, Windows really does that, don't ask) */
name_len
=
strlenW
(
name
);
while
(
name_len
&&
name
[
name_len
-
1
]
==
' '
)
name_len
--
;
if
(
!
name_len
)
return
0
;
RtlAcquirePebLock
();
RtlAcquirePebLock
();
if
(
NtCurrentTeb
()
->
Tib
.
SubSystemTib
)
/* FIXME: hack */
if
(
NtCurrentTeb
()
->
Tib
.
SubSystemTib
)
/* FIXME: hack */
...
@@ -674,7 +679,7 @@ static ULONG get_full_path_helper(LPCWSTR name, LPWSTR buffer, ULONG size)
...
@@ -674,7 +679,7 @@ static ULONG get_full_path_helper(LPCWSTR name, LPWSTR buffer, ULONG size)
}
}
/* enough space ? */
/* enough space ? */
deplen
=
strlenW
(
name
+
dep
)
*
sizeof
(
WCHAR
);
deplen
=
(
name_len
-
dep
)
*
sizeof
(
WCHAR
);
if
(
reqsize
+
deplen
+
sizeof
(
WCHAR
)
>
size
)
if
(
reqsize
+
deplen
+
sizeof
(
WCHAR
)
>
size
)
{
{
/* not enough space, return need size (including terminating '\0') */
/* not enough space, return need size (including terminating '\0') */
...
@@ -682,7 +687,8 @@ static ULONG get_full_path_helper(LPCWSTR name, LPWSTR buffer, ULONG size)
...
@@ -682,7 +687,8 @@ static ULONG get_full_path_helper(LPCWSTR name, LPWSTR buffer, ULONG size)
goto
done
;
goto
done
;
}
}
memmove
(
buffer
+
reqsize
/
sizeof
(
WCHAR
),
name
+
dep
,
deplen
+
sizeof
(
WCHAR
));
memmove
(
buffer
+
reqsize
/
sizeof
(
WCHAR
),
name
+
dep
,
deplen
);
buffer
[(
reqsize
+
deplen
)
/
sizeof
(
WCHAR
)]
=
0
;
if
(
reqsize
)
memcpy
(
buffer
,
ins_str
,
reqsize
);
if
(
reqsize
)
memcpy
(
buffer
,
ins_str
,
reqsize
);
reqsize
+=
deplen
;
reqsize
+=
deplen
;
...
@@ -737,6 +743,7 @@ DWORD WINAPI RtlGetFullPathName_U(const WCHAR* name, ULONG size, WCHAR* buffer,
...
@@ -737,6 +743,7 @@ DWORD WINAPI RtlGetFullPathName_U(const WCHAR* name, ULONG size, WCHAR* buffer,
}
}
reqsize
=
get_full_path_helper
(
name
,
buffer
,
size
);
reqsize
=
get_full_path_helper
(
name
,
buffer
,
size
);
if
(
!
reqsize
)
return
0
;
if
(
reqsize
>
size
)
if
(
reqsize
>
size
)
{
{
LPWSTR
tmp
=
RtlAllocateHeap
(
GetProcessHeap
(),
0
,
reqsize
);
LPWSTR
tmp
=
RtlAllocateHeap
(
GetProcessHeap
(),
0
,
reqsize
);
...
...
dlls/ntdll/tests/path.c
View file @
c00b0b02
...
@@ -239,6 +239,7 @@ static void test_RtlGetFullPathName_U()
...
@@ -239,6 +239,7 @@ static void test_RtlGetFullPathName_U()
static
const
struct
test
tests
[]
=
static
const
struct
test
tests
[]
=
{
{
{
"c:/test"
,
"c:
\\
test"
,
"test"
},
{
"c:/test"
,
"c:
\\
test"
,
"test"
},
{
"c:/test "
,
"c:
\\
test"
,
"test"
},
{
"c:/TEST"
,
"c:
\\
test"
,
"test"
},
{
"c:/TEST"
,
"c:
\\
test"
,
"test"
},
{
"c:/test/file"
,
"c:
\\
test
\\
file"
,
"file"
},
{
"c:/test/file"
,
"c:
\\
test
\\
file"
,
"file"
},
{
"c:/test/././file"
,
"c:
\\
test
\\
file"
,
"file"
},
{
"c:/test/././file"
,
"c:
\\
test
\\
file"
,
"file"
},
...
...
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