Cygwin: get_nt_native_path: allow to append suffix
POSIX message queues will be moved into NTFS streams. Extend get_nt_native_path to provide a filename suffix which is not subject to special character transposition, to allow specifying a colon. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
4ea7c12a20
commit
15c96f2b26
|
@ -502,8 +502,10 @@ path_conv::set_nt_native_path (PUNICODE_STRING new_path)
|
|||
uni_path.Buffer = wide_path;
|
||||
}
|
||||
|
||||
/* If suffix is not NULL, append the suffix string verbatim.
|
||||
This is used by fhandler_mqueue::mq_open to append an NTFS stream suffix. */
|
||||
PUNICODE_STRING
|
||||
path_conv::get_nt_native_path ()
|
||||
path_conv::get_nt_native_path (PUNICODE_STRING suffix)
|
||||
{
|
||||
PUNICODE_STRING res;
|
||||
if (wide_path)
|
||||
|
@ -514,9 +516,13 @@ path_conv::get_nt_native_path ()
|
|||
{
|
||||
uni_path.Length = 0;
|
||||
uni_path.MaximumLength = (strlen (path) + 10) * sizeof (WCHAR);
|
||||
if (suffix)
|
||||
uni_path.MaximumLength += suffix->Length;
|
||||
wide_path = (PWCHAR) cmalloc_abort (HEAP_STR, uni_path.MaximumLength);
|
||||
uni_path.Buffer = wide_path;
|
||||
::get_nt_native_path (path, uni_path, has_dos_filenames_only ());
|
||||
if (suffix)
|
||||
RtlAppendUnicodeStringToString (&uni_path, suffix);
|
||||
res = &uni_path;
|
||||
}
|
||||
return res;
|
||||
|
|
|
@ -282,7 +282,7 @@ class path_conv
|
|||
~path_conv ();
|
||||
inline const char *get_win32 () const { return path; }
|
||||
void set_nt_native_path (PUNICODE_STRING);
|
||||
PUNICODE_STRING get_nt_native_path ();
|
||||
PUNICODE_STRING get_nt_native_path (PUNICODE_STRING = NULL);
|
||||
inline POBJECT_ATTRIBUTES get_object_attr (OBJECT_ATTRIBUTES &attr,
|
||||
SECURITY_ATTRIBUTES &sa)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue