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
2e5cdf95
Commit
2e5cdf95
authored
Jun 16, 2003
by
Eric Pouech
Committed by
Alexandre Julliard
Jun 16, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented:
- RtlDoesFileExists_U as a stub - RtlDosSearchPath_U
parent
815118a0
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
78 additions
and
2 deletions
+78
-2
ntdll.spec
dlls/ntdll/ntdll.spec
+2
-2
path.c
dlls/ntdll/path.c
+74
-0
winternl.h
include/winternl.h
+2
-0
No files found.
dlls/ntdll/ntdll.spec
View file @
2e5cdf95
...
...
@@ -348,9 +348,9 @@
@ stub RtlDestroyProcessParameters
@ stub RtlDestroyQueryDebugBuffer
@ stdcall RtlDetermineDosPathNameType_U(wstr)
@ st
ub RtlDoesFileExists_U #
(wstr)
@ st
dcall RtlDoesFileExists_U
(wstr)
@ stdcall RtlDosPathNameToNtPathName_U(wstr ptr ptr ptr)
@ st
ub RtlDosSearchPath_U #
(wstr wstr wstr long ptr ptr)
@ st
dcall RtlDosSearchPath_U
(wstr wstr wstr long ptr ptr)
@ stdcall RtlDowncaseUnicodeChar(long)
@ stdcall RtlDowncaseUnicodeString(ptr ptr long)
@ stdcall RtlDumpResource(ptr)
...
...
dlls/ntdll/path.c
View file @
2e5cdf95
...
...
@@ -55,6 +55,18 @@ DOS_PATHNAME_TYPE WINAPI RtlDetermineDosPathNameType_U( PCWSTR path )
}
}
/******************************************************************
* RtlDoesFileExists_U
*
*
*/
BOOLEAN
WINAPI
RtlDoesFileExists_U
(
LPCWSTR
file_name
)
{
FIXME
(
"(%s): stub
\n
"
,
debugstr_w
(
file_name
));
return
TRUE
;
}
/***********************************************************************
* RtlIsDosDeviceName_U (NTDLL.@)
*
...
...
@@ -223,6 +235,68 @@ BOOLEAN WINAPI RtlDosPathNameToNtPathName_U(PWSTR dos_path,
}
/******************************************************************
* RtlDosSearchPath_U
*
* Searchs a file of name 'name' into a ';' separated list of paths
* (stored in paths)
* Doesn't seem to search elsewhere than the paths list
* Stores the result in buffer (file_part will point to the position
* of the file name in the buffer)
* FIXME:
* - how long shall the paths be ??? (MAX_PATH or larger with \\?\ constructs ???)
*/
ULONG
WINAPI
RtlDosSearchPath_U
(
LPCWSTR
paths
,
LPCWSTR
search
,
LPCWSTR
ext
,
ULONG
buffer_size
,
LPWSTR
buffer
,
LPWSTR
*
file_part
)
{
DOS_PATHNAME_TYPE
type
=
RtlDetermineDosPathNameType_U
(
search
);
ULONG
len
=
0
;
if
(
type
==
RELATIVE_PATH
)
{
ULONG
allocated
=
0
,
needed
,
filelen
;
WCHAR
*
name
=
NULL
;
filelen
=
1
/* for \ */
+
strlenW
(
search
)
+
1
/* \0 */
;
if
(
strchrW
(
search
,
'.'
)
!=
NULL
)
ext
=
NULL
;
if
(
ext
!=
NULL
)
filelen
+=
strlenW
(
ext
);
while
(
*
paths
)
{
LPCWSTR
ptr
;
for
(
needed
=
0
,
ptr
=
paths
;
*
ptr
!=
0
&&
*
ptr
++
!=
';'
;
needed
++
);
if
(
needed
+
filelen
>
allocated
)
{
name
=
(
WCHAR
*
)
RtlReAllocateHeap
(
ntdll_get_process_heap
(),
0
,
name
,
(
needed
+
filelen
)
*
sizeof
(
WCHAR
));
if
(
!
name
)
return
0
;
allocated
=
needed
+
filelen
;
}
memmove
(
name
,
paths
,
needed
*
sizeof
(
WCHAR
));
/* append '\\' if none is present */
if
(
needed
>
0
&&
name
[
needed
-
1
]
!=
'\\'
)
name
[
needed
++
]
=
'\\'
;
strcpyW
(
&
name
[
needed
],
search
);
if
(
ext
)
strcatW
(
&
name
[
needed
],
ext
);
if
(
RtlDoesFileExists_U
(
name
))
{
len
=
RtlGetFullPathName_U
(
name
,
buffer_size
,
buffer
,
file_part
);
break
;
}
paths
=
ptr
;
}
RtlFreeHeap
(
ntdll_get_process_heap
(),
0
,
name
);
}
else
if
(
RtlDoesFileExists_U
(
search
))
{
len
=
RtlGetFullPathName_U
(
search
,
buffer_size
,
buffer
,
file_part
);
}
return
len
;
}
/******************************************************************
* get_full_path_helper
*
* Helper for RtlGetFullPathName_U
...
...
include/winternl.h
View file @
2e5cdf95
...
...
@@ -1037,7 +1037,9 @@ DWORD WINAPI RtlDeleteSecurityObject(DWORD);
NTSTATUS
WINAPI
RtlDestroyEnvironment
(
PWSTR
);
HANDLE
WINAPI
RtlDestroyHeap
(
HANDLE
);
DOS_PATHNAME_TYPE
WINAPI
RtlDetermineDosPathNameType_U
(
PCWSTR
);
BOOLEAN
WINAPI
RtlDoesFileExists_U
(
LPCWSTR
);
BOOLEAN
WINAPI
RtlDosPathNameToNtPathName_U
(
LPWSTR
,
PUNICODE_STRING
,
PWSTR
*
,
CURDIR
*
);
ULONG
WINAPI
RtlDosSearchPath_U
(
LPCWSTR
,
LPCWSTR
,
LPCWSTR
,
ULONG
,
LPWSTR
,
LPWSTR
*
);
WCHAR
WINAPI
RtlDowncaseUnicodeChar
(
WCHAR
);
NTSTATUS
WINAPI
RtlDowncaseUnicodeString
(
UNICODE_STRING
*
,
const
UNICODE_STRING
*
,
BOOLEAN
);
void
WINAPI
RtlDumpResource
(
LPRTL_RWLOCK
);
...
...
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