mirror of
https://github.com/reactos/reactos.git
synced 2025-07-24 15:23:39 +00:00
[CMAKE]
- Sync with trunk r51050. svn path=/branches/cmake-bringup/; revision=51154
This commit is contained in:
commit
785bea480a
469 changed files with 16304 additions and 9647 deletions
|
@ -17,10 +17,13 @@ int _tchdir(const _TCHAR* _path)
|
|||
}
|
||||
|
||||
/* Update the drive-specific current directory variable */
|
||||
if (GetCurrentDirectoryW(MAX_PATH, newdir) && newdir[1] == L':')
|
||||
if (GetCurrentDirectoryW(MAX_PATH, newdir) >= 2)
|
||||
{
|
||||
WCHAR envvar[4] = { L'=', towupper(newdir[0]), L':', L'\0' };
|
||||
SetEnvironmentVariableW(envvar, newdir);
|
||||
if (newdir[1] == L':')
|
||||
{
|
||||
WCHAR envvar[4] = { L'=', towupper(newdir[0]), L':', L'\0' };
|
||||
SetEnvironmentVariableW(envvar, newdir);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -20,9 +20,12 @@
|
|||
int _getdrive(void)
|
||||
{
|
||||
WCHAR buffer[MAX_PATH];
|
||||
if (GetCurrentDirectoryW( MAX_PATH, buffer ) &&
|
||||
buffer[0] >= 'A' && buffer[0] <= 'z' && buffer[1] == ':')
|
||||
return towupper(buffer[0]) - 'A' + 1;
|
||||
if (GetCurrentDirectoryW( MAX_PATH, buffer )>=2)
|
||||
{
|
||||
buffer[0]=towupper(buffer[0]);
|
||||
if (buffer[0] >= L'A' && buffer[0] <= L'Z' && buffer[1] == L':')
|
||||
return buffer[0] - L'A' + 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -587,6 +587,9 @@ streamout(FILE *stream, const TCHAR *format, va_list argptr)
|
|||
if (flags & FLAG_SPECIAL)
|
||||
{
|
||||
prefix = &digits[16];
|
||||
#ifdef _USER32_WSPRINTF
|
||||
fieldwidth += 2;
|
||||
#endif
|
||||
}
|
||||
|
||||
case _T('u'):
|
||||
|
|
|
@ -4,26 +4,35 @@
|
|||
#include <ndk/rtlfuncs.h>
|
||||
#include <string.h>
|
||||
|
||||
WCHAR NTAPI RtlAnsiCharToUnicodeChar(IN OUT PUCHAR *AnsiChar);
|
||||
#undef MB_CUR_MAX
|
||||
#define MB_CUR_MAX 2
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
int mbtowc (wchar_t *wchar, const char *mbchar, size_t count)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
ULONG Size;
|
||||
UCHAR mbarr[MB_CUR_MAX] = { 0 };
|
||||
PUCHAR mbs = mbarr;
|
||||
WCHAR wc;
|
||||
|
||||
if (mbchar == NULL)
|
||||
return 0;
|
||||
|
||||
if (wchar == NULL)
|
||||
return 0;
|
||||
|
||||
Status = RtlMultiByteToUnicodeN (wchar,
|
||||
sizeof(WCHAR),
|
||||
&Size,
|
||||
mbchar,
|
||||
count);
|
||||
if (!NT_SUCCESS(Status))
|
||||
memcpy(mbarr, mbchar, min(count, sizeof mbarr));
|
||||
|
||||
wc = RtlAnsiCharToUnicodeChar(&mbs);
|
||||
|
||||
if (wc == L' ' && mbarr[0] != ' ')
|
||||
return -1;
|
||||
|
||||
return (int)Size;
|
||||
*wchar = wc;
|
||||
|
||||
return mbs - mbarr;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue