* Sync up to trunk head (r65183).

svn path=/branches/shell-experiments/; revision=65184
This commit is contained in:
Amine Khaldi 2014-11-02 16:12:38 +00:00
parent 6f1b132494
commit c472e29a70
81 changed files with 3606 additions and 520 deletions

View file

@ -130,7 +130,12 @@ DisplayUser(LPWSTR lpUserName)
{ {
PUSER_MODALS_INFO_0 pUserModals = NULL; PUSER_MODALS_INFO_0 pUserModals = NULL;
PUSER_INFO_4 pUserInfo = NULL; PUSER_INFO_4 pUserInfo = NULL;
PLOCALGROUP_USERS_INFO_0 pLocalGroupInfo = NULL;
PGROUP_USERS_INFO_0 pGroupInfo = NULL;
DWORD dwLocalGroupRead, dwLocalGroupTotal;
DWORD dwGroupRead, dwGroupTotal;
DWORD dwLastSet; DWORD dwLastSet;
DWORD i;
NET_API_STATUS Status; NET_API_STATUS Status;
/* Modify the user */ /* Modify the user */
@ -147,6 +152,27 @@ DisplayUser(LPWSTR lpUserName)
if (Status != NERR_Success) if (Status != NERR_Success)
goto done; goto done;
Status = NetUserGetLocalGroups(NULL,
lpUserName,
0,
0,
(LPBYTE*)&pLocalGroupInfo,
MAX_PREFERRED_LENGTH,
&dwLocalGroupRead,
&dwLocalGroupTotal);
if (Status != NERR_Success)
goto done;
Status = NetUserGetGroups(NULL,
lpUserName,
0,
(LPBYTE*)&pGroupInfo,
MAX_PREFERRED_LENGTH,
&dwGroupRead,
&dwGroupTotal);
if (Status != NERR_Success)
goto done;
PrintToConsole(L"User name %s\n", pUserInfo->usri4_name); PrintToConsole(L"User name %s\n", pUserInfo->usri4_name);
PrintToConsole(L"Full name %s\n", pUserInfo->usri4_full_name); PrintToConsole(L"Full name %s\n", pUserInfo->usri4_full_name);
PrintToConsole(L"Comment %s\n", pUserInfo->usri4_comment); PrintToConsole(L"Comment %s\n", pUserInfo->usri4_comment);
@ -161,7 +187,7 @@ DisplayUser(LPWSTR lpUserName)
PrintToConsole(L"\n"); PrintToConsole(L"\n");
PrintToConsole(L"Password expires "); PrintToConsole(L"Password last set ");
dwLastSet = GetTimeInSeconds() - pUserInfo->usri4_password_age; dwLastSet = GetTimeInSeconds() - pUserInfo->usri4_password_age;
PrintDateTime(dwLastSet); PrintDateTime(dwLastSet);
@ -178,7 +204,7 @@ DisplayUser(LPWSTR lpUserName)
PrintToConsole(L"User may change password %s\n", (pUserInfo->usri4_flags & UF_PASSWD_CANT_CHANGE) ? L"No" : L"Yes"); PrintToConsole(L"User may change password %s\n", (pUserInfo->usri4_flags & UF_PASSWD_CANT_CHANGE) ? L"No" : L"Yes");
PrintToConsole(L"\n"); PrintToConsole(L"\n");
PrintToConsole(L"Workstation allowed %s\n", pUserInfo->usri4_workstations); PrintToConsole(L"Workstations allowed %s\n", (pUserInfo->usri4_workstations == NULL || wcslen(pUserInfo->usri4_workstations) == 0) ? L"All" : pUserInfo->usri4_workstations);
PrintToConsole(L"Logon script %s\n", pUserInfo->usri4_script_path); PrintToConsole(L"Logon script %s\n", pUserInfo->usri4_script_path);
PrintToConsole(L"User profile %s\n", pUserInfo->usri4_profile); PrintToConsole(L"User profile %s\n", pUserInfo->usri4_profile);
PrintToConsole(L"Home directory %s\n", pUserInfo->usri4_home_dir); PrintToConsole(L"Home directory %s\n", pUserInfo->usri4_home_dir);
@ -188,12 +214,49 @@ DisplayUser(LPWSTR lpUserName)
else else
PrintDateTime(pUserInfo->usri4_last_logon); PrintDateTime(pUserInfo->usri4_last_logon);
PrintToConsole(L"\n"); PrintToConsole(L"\n");
PrintToConsole(L"Logon hours allowed \n"); PrintToConsole(L"Logon hours allowed ");
if (pUserInfo->usri4_logon_hours == NULL)
PrintToConsole(L"All\n");
PrintToConsole(L"\n"); PrintToConsole(L"\n");
PrintToConsole(L"Local group memberships \n");
PrintToConsole(L"Global group memberships \n"); PrintToConsole(L"\n");
PrintToConsole(L"Local group memberships ");
if (dwLocalGroupTotal != 0 && pLocalGroupInfo != NULL)
{
for (i = 0; i < dwLocalGroupTotal; i++)
{
if (i != 0)
PrintToConsole(L" ");
PrintToConsole(L"*%s\n", pLocalGroupInfo[i].lgrui0_name);
}
}
else
{
PrintToConsole(L"\n");
}
PrintToConsole(L"Global group memberships ");
if (dwGroupTotal != 0 && pGroupInfo != NULL)
{
for (i = 0; i < dwGroupTotal; i++)
{
if (i != 0)
PrintToConsole(L" ");
PrintToConsole(L"*%s\n", pGroupInfo[i].grui0_name);
}
}
else
{
PrintToConsole(L"\n");
}
done: done:
if (pGroupInfo != NULL)
NetApiBufferFree(pGroupInfo);
if (pLocalGroupInfo != NULL)
NetApiBufferFree(pLocalGroupInfo);
if (pUserModals != NULL) if (pUserModals != NULL)
NetApiBufferFree(pUserModals); NetApiBufferFree(pUserModals);
@ -221,6 +284,8 @@ cmdUser(
PUSER_INFO_4 pUserInfo = NULL; PUSER_INFO_4 pUserInfo = NULL;
USER_INFO_4 UserInfo; USER_INFO_4 UserInfo;
LPWSTR p; LPWSTR p;
LPWSTR endptr;
DWORD value;
NET_API_STATUS Status; NET_API_STATUS Status;
if (argc == 2) if (argc == 2)
@ -288,7 +353,12 @@ cmdUser(
lpUserName, lpUserName,
4, 4,
(LPBYTE*)&pUserInfo); (LPBYTE*)&pUserInfo);
printf("Status: %lu\n", Status); if (Status != NERR_Success)
{
printf("Status: %lu\n", Status);
result = 1;
goto done;
}
} }
else if (bAdd && !bDelete) else if (bAdd && !bDelete)
{ {
@ -309,11 +379,11 @@ cmdUser(
p = &argv[i][8]; p = &argv[i][8];
if (_wcsicmp(p, L"yes") == 0) if (_wcsicmp(p, L"yes") == 0)
{ {
pUserInfo->usri4_flags &= ~UF_ACCOUNTDISABLE;
} }
else if (_wcsicmp(p, L"no") == 0) else if (_wcsicmp(p, L"no") == 0)
{ {
pUserInfo->usri4_flags |= UF_ACCOUNTDISABLE;
} }
else else
{ {
@ -328,6 +398,18 @@ cmdUser(
} }
else if (_wcsnicmp(argv[j], L"/countrycode:", 13) == 0) else if (_wcsnicmp(argv[j], L"/countrycode:", 13) == 0)
{ {
p = &argv[i][13];
value = wcstoul(p, &endptr, 10);
if (*endptr != 0)
{
PrintToConsole(L"You entered an invalid value for the /COUNTRYCODE option.\n");
result = 1;
goto done;
}
/* FIXME: verify the country code */
pUserInfo->usri4_country_code = value;
} }
else if (_wcsnicmp(argv[j], L"/expires:", 9) == 0) else if (_wcsnicmp(argv[j], L"/expires:", 9) == 0)
{ {
@ -342,9 +424,39 @@ cmdUser(
} }
else if (_wcsnicmp(argv[j], L"/passwordchg:", 13) == 0) else if (_wcsnicmp(argv[j], L"/passwordchg:", 13) == 0)
{ {
p = &argv[i][13];
if (_wcsicmp(p, L"yes") == 0)
{
pUserInfo->usri4_flags &= ~UF_PASSWD_CANT_CHANGE;
}
else if (_wcsicmp(p, L"no") == 0)
{
pUserInfo->usri4_flags |= UF_PASSWD_CANT_CHANGE;
}
else
{
PrintToConsole(L"You entered an invalid value for the /PASSWORDCHG option.\n");
result = 1;
goto done;
}
} }
else if (_wcsnicmp(argv[j], L"/passwordreq:", 13) == 0) else if (_wcsnicmp(argv[j], L"/passwordreq:", 13) == 0)
{ {
p = &argv[i][13];
if (_wcsicmp(p, L"yes") == 0)
{
pUserInfo->usri4_flags &= ~UF_PASSWD_NOTREQD;
}
else if (_wcsicmp(p, L"no") == 0)
{
pUserInfo->usri4_flags |= UF_PASSWD_NOTREQD;
}
else
{
PrintToConsole(L"You entered an invalid value for the /PASSWORDREQ option.\n");
result = 1;
goto done;
}
} }
else if (_wcsnicmp(argv[j], L"/profilepath:", 13) == 0) else if (_wcsnicmp(argv[j], L"/profilepath:", 13) == 0)
{ {

View file

@ -545,11 +545,14 @@ MainWndOnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
HIWORD(lParam) - GetWindowHeight(hToolBar) - GetWindowHeight(hStatusBar), HIWORD(lParam) - GetWindowHeight(hToolBar) - GetWindowHeight(hStatusBar),
SWP_NOZORDER|SWP_NOACTIVATE); SWP_NOZORDER|SWP_NOACTIVATE);
while (NewPos < SPLIT_WIDTH + GetWindowHeight(hToolBar)) if(wParam != SIZE_MINIMIZED)
{ {
RichPos--; while (NewPos < SPLIT_WIDTH + GetWindowHeight(hToolBar))
NewPos = HIWORD(lParam) - (RichPos + {
SPLIT_WIDTH + GetWindowHeight(hStatusBar)); RichPos--;
NewPos = HIWORD(lParam) - (RichPos +
SPLIT_WIDTH + GetWindowHeight(hStatusBar));
}
} }
SetHSplitterPos(NewPos); SetHSplitterPos(NewPos);

View file

@ -118,6 +118,14 @@ ElfCreateEventLogHandle(PLOGHANDLE *LogHandle,
if (lpLogHandle->LogFile == NULL) if (lpLogHandle->LogFile == NULL)
{ {
lpLogHandle->LogFile = LogfListItemByName(L"Application"); lpLogHandle->LogFile = LogfListItemByName(L"Application");
if (lpLogHandle->LogFile == NULL)
{
DPRINT1("Application log is missing!\n");
Status = STATUS_UNSUCCESSFUL;
goto Done;
}
lpLogHandle->CurrentRecord = LogfGetOldestRecord(lpLogHandle->LogFile); lpLogHandle->CurrentRecord = LogfGetOldestRecord(lpLogHandle->LogFile);
} }
} }

View file

@ -1683,7 +1683,7 @@ PNP_CreateDevInst(
dwInstanceNumber++; dwInstanceNumber++;
} }
while (ret == CR_ALREADY_SUCH_DEVINST); while (ret == CR_ALREADY_SUCH_DEVINST);
if (ret == CR_SUCCESS) if (ret == CR_SUCCESS)
{ {
/* pszDeviceID is an out parameter too for generated IDs */ /* pszDeviceID is an out parameter too for generated IDs */
@ -3106,7 +3106,10 @@ cleanup:
if(ProcessInfo.hThread) if(ProcessInfo.hThread)
CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hThread);
DPRINT1("Success? %d\n", DeviceInstalled); if (!DeviceInstalled)
{
DPRINT1("InstallDevice failed for DeviceInstance '%ws'\n", DeviceInstance);
}
return DeviceInstalled; return DeviceInstalled;
} }

View file

@ -2757,7 +2757,7 @@ FormatPartitionPage(PINPUT_RECORD Ir)
#if 0 #if 0
else if (wcscmp(FileSystemList->Selected->FileSystem, L"EXT2") == 0) else if (wcscmp(FileSystemList->Selected->FileSystem, L"EXT2") == 0)
{ {
PartEntry->PartInfo[PartNum].PartitionType = PARTITION_EXT2; PartEntry->PartitionType = PARTITION_EXT2;
DiskEntry->LayoutBuffer->PartitionEntry[PartEntry->PartitionIndex].PartitionType = PartEntry->PartitionType; DiskEntry->LayoutBuffer->PartitionEntry[PartEntry->PartitionIndex].PartitionType = PartEntry->PartitionType;
} }
#endif #endif

View file

@ -47,7 +47,7 @@ DumpPartitionTable(
for (i = 0; i < DiskEntry->LayoutBuffer->PartitionCount; i++) for (i = 0; i < DiskEntry->LayoutBuffer->PartitionCount; i++)
{ {
PartitionInfo = &DiskEntry->LayoutBuffer->PartitionEntry[i]; PartitionInfo = &DiskEntry->LayoutBuffer->PartitionEntry[i];
DbgPrint("%lu: %12I64u %12I64u %10lu %2lu %2x %c %c\n", DPRINT("\n%lu: %12I64u %12I64u %10lu %2lu %2x %c %c\n",
i, i,
PartitionInfo->StartingOffset.QuadPart, PartitionInfo->StartingOffset.QuadPart,
PartitionInfo->PartitionLength.QuadPart, PartitionInfo->PartitionLength.QuadPart,
@ -638,7 +638,7 @@ ScanForUnpartitionedDiskSpace(
PPARTENTRY NewPartEntry; PPARTENTRY NewPartEntry;
PLIST_ENTRY Entry; PLIST_ENTRY Entry;
DPRINT1("ScanForUnpartitionedDiskSpace()\n"); DPRINT("ScanForUnpartitionedDiskSpace()\n");
if (IsListEmpty(&DiskEntry->PrimaryPartListHead)) if (IsListEmpty(&DiskEntry->PrimaryPartListHead))
{ {
@ -741,9 +741,9 @@ DPRINT1("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart);
NewPartEntry->StartSector.QuadPart = LastStartSector + LastSectorCount; NewPartEntry->StartSector.QuadPart = LastStartSector + LastSectorCount;
NewPartEntry->SectorCount.QuadPart = Align(NewPartEntry->StartSector.QuadPart + LastUnusedSectorCount, DiskEntry->SectorAlignment) - NewPartEntry->SectorCount.QuadPart = Align(NewPartEntry->StartSector.QuadPart + LastUnusedSectorCount, DiskEntry->SectorAlignment) -
NewPartEntry->StartSector.QuadPart; NewPartEntry->StartSector.QuadPart;
DPRINT1("First Sector: %I64u\n", NewPartEntry->StartSector.QuadPart); DPRINT("First Sector: %I64u\n", NewPartEntry->StartSector.QuadPart);
DPRINT1("Last Sector: %I64u\n", NewPartEntry->StartSector.QuadPart + NewPartEntry->SectorCount.QuadPart - 1); DPRINT("Last Sector: %I64u\n", NewPartEntry->StartSector.QuadPart + NewPartEntry->SectorCount.QuadPart - 1);
DPRINT1("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart); DPRINT("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart);
NewPartEntry->FormatState = Unformatted; NewPartEntry->FormatState = Unformatted;
@ -819,9 +819,9 @@ DPRINT1("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart);
NewPartEntry->StartSector.QuadPart = LastStartSector + LastSectorCount; NewPartEntry->StartSector.QuadPart = LastStartSector + LastSectorCount;
NewPartEntry->SectorCount.QuadPart = Align(NewPartEntry->StartSector.QuadPart + LastUnusedSectorCount, DiskEntry->SectorAlignment) - NewPartEntry->SectorCount.QuadPart = Align(NewPartEntry->StartSector.QuadPart + LastUnusedSectorCount, DiskEntry->SectorAlignment) -
NewPartEntry->StartSector.QuadPart; NewPartEntry->StartSector.QuadPart;
DPRINT1("First Sector: %I64u\n", NewPartEntry->StartSector.QuadPart); DPRINT("First Sector: %I64u\n", NewPartEntry->StartSector.QuadPart);
DPRINT1("Last Sector: %I64u\n", NewPartEntry->StartSector.QuadPart + NewPartEntry->SectorCount.QuadPart - 1); DPRINT("Last Sector: %I64u\n", NewPartEntry->StartSector.QuadPart + NewPartEntry->SectorCount.QuadPart - 1);
DPRINT1("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart); DPRINT("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart);
NewPartEntry->FormatState = Unformatted; NewPartEntry->FormatState = Unformatted;
@ -859,9 +859,9 @@ DPRINT1("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart);
NewPartEntry->StartSector.QuadPart = LastStartSector + LastSectorCount; NewPartEntry->StartSector.QuadPart = LastStartSector + LastSectorCount;
NewPartEntry->SectorCount.QuadPart = Align(NewPartEntry->StartSector.QuadPart + LastUnusedSectorCount, DiskEntry->SectorAlignment) - NewPartEntry->SectorCount.QuadPart = Align(NewPartEntry->StartSector.QuadPart + LastUnusedSectorCount, DiskEntry->SectorAlignment) -
NewPartEntry->StartSector.QuadPart; NewPartEntry->StartSector.QuadPart;
DPRINT1("First Sector: %I64u\n", NewPartEntry->StartSector.QuadPart); DPRINT("First Sector: %I64u\n", NewPartEntry->StartSector.QuadPart);
DPRINT1("Last Sector: %I64u\n", NewPartEntry->StartSector.QuadPart + NewPartEntry->SectorCount.QuadPart - 1); DPRINT("Last Sector: %I64u\n", NewPartEntry->StartSector.QuadPart + NewPartEntry->SectorCount.QuadPart - 1);
DPRINT1("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart); DPRINT("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart);
NewPartEntry->FormatState = Unformatted; NewPartEntry->FormatState = Unformatted;
@ -872,7 +872,7 @@ DPRINT1("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart);
} }
} }
DPRINT1("ScanForUnpartitionedDiskSpace() done\n"); DPRINT("ScanForUnpartitionedDiskSpace() done\n");
} }
@ -1132,8 +1132,8 @@ AddDiskToList(
DiskEntry->SectorAlignment = DiskGeometry.SectorsPerTrack; DiskEntry->SectorAlignment = DiskGeometry.SectorsPerTrack;
DPRINT1("SectorCount %I64u\n", DiskEntry->SectorCount); DPRINT("SectorCount %I64u\n", DiskEntry->SectorCount);
DPRINT1("SectorAlignment %lu\n", DiskEntry->SectorAlignment); DPRINT("SectorAlignment %lu\n", DiskEntry->SectorAlignment);
DiskEntry->DiskNumber = DiskNumber; DiskEntry->DiskNumber = DiskNumber;
DiskEntry->Port = ScsiAddress.PortNumber; DiskEntry->Port = ScsiAddress.PortNumber;
@ -1145,7 +1145,7 @@ AddDiskToList(
InsertAscendingList(&List->DiskListHead, DiskEntry, DISKENTRY, ListEntry, DiskNumber); InsertAscendingList(&List->DiskListHead, DiskEntry, DISKENTRY, ListEntry, DiskNumber);
/* /*
* Allocate a buffer for 26 logical drives (2 entries each == 52) * Allocate a buffer for 26 logical drives (2 entries each == 52)
* plus the main partiton table (4 entries). Total 56 entries. * plus the main partiton table (4 entries). Total 56 entries.
*/ */
LayoutBufferSize = sizeof(DRIVE_LAYOUT_INFORMATION) + LayoutBufferSize = sizeof(DRIVE_LAYOUT_INFORMATION) +
@ -1180,7 +1180,7 @@ AddDiskToList(
{ {
if ((DiskEntry->LayoutBuffer->PartitionEntry[0].StartingOffset.QuadPart / DiskEntry->BytesPerSector) % DiskEntry->SectorsPerTrack == 0) if ((DiskEntry->LayoutBuffer->PartitionEntry[0].StartingOffset.QuadPart / DiskEntry->BytesPerSector) % DiskEntry->SectorsPerTrack == 0)
{ {
DPRINT1("Use %lu Sector alignment!\n", DiskEntry->SectorsPerTrack); DPRINT("Use %lu Sector alignment!\n", DiskEntry->SectorsPerTrack);
} }
else if (DiskEntry->LayoutBuffer->PartitionEntry[0].StartingOffset.QuadPart % 1048756 == 0) else if (DiskEntry->LayoutBuffer->PartitionEntry[0].StartingOffset.QuadPart % 1048756 == 0)
{ {

View file

@ -116,6 +116,7 @@ IntAddConsoleAlias(LPCVOID Source,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
AddConsoleAliasW(LPCWSTR lpSource, AddConsoleAliasW(LPCWSTR lpSource,
LPCWSTR lpTarget, LPCWSTR lpTarget,
LPCWSTR lpExeName) LPCWSTR lpExeName)
@ -140,6 +141,7 @@ AddConsoleAliasW(LPCWSTR lpSource,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
AddConsoleAliasA(LPCSTR lpSource, AddConsoleAliasA(LPCSTR lpSource,
LPCSTR lpTarget, LPCSTR lpTarget,
LPCSTR lpExeName) LPCSTR lpExeName)
@ -254,6 +256,7 @@ IntGetConsoleAlias(LPVOID Source,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleAliasW(LPWSTR lpSource, GetConsoleAliasW(LPWSTR lpSource,
LPWSTR lpTargetBuffer, LPWSTR lpTargetBuffer,
DWORD TargetBufferLength, DWORD TargetBufferLength,
@ -276,6 +279,7 @@ GetConsoleAliasW(LPWSTR lpSource,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleAliasA(LPSTR lpSource, GetConsoleAliasA(LPSTR lpSource,
LPSTR lpTargetBuffer, LPSTR lpTargetBuffer,
DWORD TargetBufferLength, DWORD TargetBufferLength,
@ -368,6 +372,7 @@ IntGetConsoleAliases(LPVOID AliasBuffer,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleAliasesW(LPWSTR AliasBuffer, GetConsoleAliasesW(LPWSTR AliasBuffer,
DWORD AliasBufferLength, DWORD AliasBufferLength,
LPWSTR ExeName) LPWSTR ExeName)
@ -387,6 +392,7 @@ GetConsoleAliasesW(LPWSTR AliasBuffer,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleAliasesA(LPSTR AliasBuffer, GetConsoleAliasesA(LPSTR AliasBuffer,
DWORD AliasBufferLength, DWORD AliasBufferLength,
LPSTR ExeName) LPSTR ExeName)
@ -456,6 +462,7 @@ IntGetConsoleAliasesLength(LPVOID lpExeName, BOOLEAN bUnicode)
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleAliasesLengthW(LPWSTR lpExeName) GetConsoleAliasesLengthW(LPWSTR lpExeName)
{ {
return IntGetConsoleAliasesLength(lpExeName, TRUE); return IntGetConsoleAliasesLength(lpExeName, TRUE);
@ -467,6 +474,7 @@ GetConsoleAliasesLengthW(LPWSTR lpExeName)
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleAliasesLengthA(LPSTR lpExeName) GetConsoleAliasesLengthA(LPSTR lpExeName)
{ {
return IntGetConsoleAliasesLength(lpExeName, FALSE); return IntGetConsoleAliasesLength(lpExeName, FALSE);
@ -523,6 +531,7 @@ IntGetConsoleAliasExes(PVOID lpExeNameBuffer,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleAliasExesW(LPWSTR lpExeNameBuffer, GetConsoleAliasExesW(LPWSTR lpExeNameBuffer,
DWORD ExeNameBufferLength) DWORD ExeNameBufferLength)
{ {
@ -536,6 +545,7 @@ GetConsoleAliasExesW(LPWSTR lpExeNameBuffer,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleAliasExesA(LPSTR lpExeNameBuffer, GetConsoleAliasExesA(LPSTR lpExeNameBuffer,
DWORD ExeNameBufferLength) DWORD ExeNameBufferLength)
{ {
@ -572,6 +582,7 @@ IntGetConsoleAliasExesLength(BOOLEAN bUnicode)
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleAliasExesLengthW(VOID) GetConsoleAliasExesLengthW(VOID)
{ {
DPRINT1("GetConsoleAliasExesLengthW called\n"); DPRINT1("GetConsoleAliasExesLengthW called\n");
@ -584,6 +595,7 @@ GetConsoleAliasExesLengthW(VOID)
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleAliasExesLengthA(VOID) GetConsoleAliasExesLengthA(VOID)
{ {
DPRINT1("GetConsoleAliasExesLengthA called\n"); DPRINT1("GetConsoleAliasExesLengthA called\n");

View file

@ -392,6 +392,7 @@ IntCheckForConsoleFileName(IN LPCWSTR pszName,
*/ */
HMENU HMENU
WINAPI WINAPI
DECLSPEC_HOTPATCH
ConsoleMenuControl(HANDLE hConsoleOutput, ConsoleMenuControl(HANDLE hConsoleOutput,
DWORD dwCmdIdLow, DWORD dwCmdIdLow,
DWORD dwCmdIdHigh) DWORD dwCmdIdHigh)
@ -419,6 +420,7 @@ ConsoleMenuControl(HANDLE hConsoleOutput,
*/ */
HANDLE HANDLE
WINAPI WINAPI
DECLSPEC_HOTPATCH
DuplicateConsoleHandle(HANDLE hConsole, DuplicateConsoleHandle(HANDLE hConsole,
DWORD dwDesiredAccess, DWORD dwDesiredAccess,
BOOL bInheritHandle, BOOL bInheritHandle,
@ -571,6 +573,7 @@ GetConsoleFontInfo(HANDLE hConsoleOutput,
*/ */
COORD COORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleFontSize(HANDLE hConsoleOutput, GetConsoleFontSize(HANDLE hConsoleOutput,
DWORD nFont) DWORD nFont)
{ {
@ -652,6 +655,7 @@ GetCurrentConsoleFont(HANDLE hConsoleOutput,
*/ */
ULONG ULONG
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetNumberOfConsoleFonts(VOID) GetNumberOfConsoleFonts(VOID)
{ {
DPRINT1("GetNumberOfConsoleFonts() UNIMPLEMENTED!\n"); DPRINT1("GetNumberOfConsoleFonts() UNIMPLEMENTED!\n");
@ -757,6 +761,7 @@ OpenConsoleW(LPCWSTR wsName,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleCursor(HANDLE hConsoleOutput, SetConsoleCursor(HANDLE hConsoleOutput,
HCURSOR hCursor) HCURSOR hCursor)
{ {
@ -822,6 +827,7 @@ SetConsoleDisplayMode(HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleFont(HANDLE hConsoleOutput, SetConsoleFont(HANDLE hConsoleOutput,
DWORD nFont) DWORD nFont)
{ {
@ -869,6 +875,7 @@ SetConsoleHardwareState(HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleKeyShortcuts(DWORD Unknown0, SetConsoleKeyShortcuts(DWORD Unknown0,
DWORD Unknown1, DWORD Unknown1,
DWORD Unknown2, DWORD Unknown2,
@ -901,6 +908,7 @@ SetConsoleMaximumWindowSize(HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleMenuClose(BOOL bEnable) SetConsoleMenuClose(BOOL bEnable)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -930,6 +938,7 @@ SetConsoleMenuClose(BOOL bEnable)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsolePalette(HANDLE hConsoleOutput, SetConsolePalette(HANDLE hConsoleOutput,
HPALETTE hPalette, HPALETTE hPalette,
UINT dwUsage) UINT dwUsage)
@ -961,6 +970,7 @@ SetConsolePalette(HANDLE hConsoleOutput,
*/ */
INT INT
WINAPI WINAPI
DECLSPEC_HOTPATCH
ShowConsoleCursor(HANDLE hConsoleOutput, ShowConsoleCursor(HANDLE hConsoleOutput,
BOOL bShow) BOOL bShow)
{ {
@ -997,6 +1007,7 @@ ShowConsoleCursor(HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
VerifyConsoleIoHandle(HANDLE hIoHandle) VerifyConsoleIoHandle(HANDLE hIoHandle)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -1028,6 +1039,7 @@ VerifyConsoleIoHandle(HANDLE hIoHandle)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
CloseConsoleHandle(HANDLE hHandle) CloseConsoleHandle(HANDLE hHandle)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -1055,6 +1067,7 @@ CloseConsoleHandle(HANDLE hHandle)
*/ */
HANDLE HANDLE
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetStdHandle(DWORD nStdHandle) GetStdHandle(DWORD nStdHandle)
/* /*
* FUNCTION: Get a handle for the standard input, standard output * FUNCTION: Get a handle for the standard input, standard output
@ -1097,6 +1110,7 @@ GetStdHandle(DWORD nStdHandle)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetStdHandle(DWORD nStdHandle, SetStdHandle(DWORD nStdHandle,
HANDLE hHandle) HANDLE hHandle)
/* /*
@ -1249,6 +1263,7 @@ Quit:
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
AllocConsole(VOID) AllocConsole(VOID)
{ {
BOOL Success; BOOL Success;
@ -1331,6 +1346,7 @@ Quit:
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
FreeConsole(VOID) FreeConsole(VOID)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -1419,6 +1435,7 @@ GetConsoleScreenBufferInfo(HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleCursorPosition(HANDLE hConsoleOutput, SetConsoleCursorPosition(HANDLE hConsoleOutput,
COORD dwCursorPosition) COORD dwCursorPosition)
{ {
@ -1484,6 +1501,7 @@ GetConsoleMode(HANDLE hConsoleHandle,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleMode(HANDLE hConsoleHandle, SetConsoleMode(HANDLE hConsoleHandle,
DWORD dwMode) DWORD dwMode)
{ {
@ -1550,6 +1568,7 @@ GetNumberOfConsoleInputEvents(HANDLE hConsoleInput,
*/ */
COORD COORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetLargestConsoleWindowSize(HANDLE hConsoleOutput) GetLargestConsoleWindowSize(HANDLE hConsoleOutput)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -1675,6 +1694,7 @@ GetNumberOfConsoleMouseButtons(LPDWORD lpNumberOfMouseButtons)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput) SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -1702,6 +1722,7 @@ SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
FlushConsoleInputBuffer(HANDLE hConsoleInput) FlushConsoleInputBuffer(HANDLE hConsoleInput)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -1729,6 +1750,7 @@ FlushConsoleInputBuffer(HANDLE hConsoleInput)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleScreenBufferSize(HANDLE hConsoleOutput, SetConsoleScreenBufferSize(HANDLE hConsoleOutput,
COORD dwSize) COORD dwSize)
{ {
@ -1802,6 +1824,7 @@ IntScrollConsoleScreenBuffer(HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ScrollConsoleScreenBufferA(HANDLE hConsoleOutput, ScrollConsoleScreenBufferA(HANDLE hConsoleOutput,
CONST SMALL_RECT* lpScrollRectangle, CONST SMALL_RECT* lpScrollRectangle,
CONST SMALL_RECT* lpClipRectangle, CONST SMALL_RECT* lpClipRectangle,
@ -1822,6 +1845,7 @@ ScrollConsoleScreenBufferA(HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ScrollConsoleScreenBufferW(HANDLE hConsoleOutput, ScrollConsoleScreenBufferW(HANDLE hConsoleOutput,
CONST SMALL_RECT *lpScrollRectangle, CONST SMALL_RECT *lpScrollRectangle,
CONST SMALL_RECT *lpClipRectangle, CONST SMALL_RECT *lpClipRectangle,
@ -1879,6 +1903,7 @@ SetConsoleWindowInfo(HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleTextAttribute(HANDLE hConsoleOutput, SetConsoleTextAttribute(HANDLE hConsoleOutput,
WORD wAttributes) WORD wAttributes)
{ {
@ -1979,6 +2004,7 @@ RemoveConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine, SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine,
BOOL Add) BOOL Add)
{ {
@ -2004,6 +2030,7 @@ SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
GenerateConsoleCtrlEvent(DWORD dwCtrlEvent, GenerateConsoleCtrlEvent(DWORD dwCtrlEvent,
DWORD dwProcessGroupId) DWORD dwProcessGroupId)
{ {
@ -2093,6 +2120,7 @@ IntGetConsoleTitle(LPVOID lpConsoleTitle, DWORD dwNumChars, BOOLEAN bUnicode)
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleTitleW(LPWSTR lpConsoleTitle, GetConsoleTitleW(LPWSTR lpConsoleTitle,
DWORD nSize) DWORD nSize)
{ {
@ -2105,6 +2133,7 @@ GetConsoleTitleW(LPWSTR lpConsoleTitle,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleTitleA(LPSTR lpConsoleTitle, GetConsoleTitleA(LPSTR lpConsoleTitle,
DWORD nSize) DWORD nSize)
{ {
@ -2159,6 +2188,7 @@ IntSetConsoleTitle(CONST VOID *lpConsoleTitle, BOOLEAN bUnicode)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleTitleW(LPCWSTR lpConsoleTitle) SetConsoleTitleW(LPCWSTR lpConsoleTitle)
{ {
return IntSetConsoleTitle(lpConsoleTitle, TRUE); return IntSetConsoleTitle(lpConsoleTitle, TRUE);
@ -2170,6 +2200,7 @@ SetConsoleTitleW(LPCWSTR lpConsoleTitle)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleTitleA(LPCSTR lpConsoleTitle) SetConsoleTitleA(LPCSTR lpConsoleTitle)
{ {
return IntSetConsoleTitle(lpConsoleTitle, FALSE); return IntSetConsoleTitle(lpConsoleTitle, FALSE);
@ -2258,6 +2289,7 @@ CreateConsoleScreenBuffer(DWORD dwDesiredAccess,
*/ */
UINT UINT
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleCP(VOID) GetConsoleCP(VOID)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -2286,6 +2318,7 @@ GetConsoleCP(VOID)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleCP(UINT wCodePageID) SetConsoleCP(UINT wCodePageID)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -2316,6 +2349,7 @@ SetConsoleCP(UINT wCodePageID)
*/ */
UINT UINT
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleOutputCP(VOID) GetConsoleOutputCP(VOID)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -2344,6 +2378,7 @@ GetConsoleOutputCP(VOID)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleOutputCP(UINT wCodePageID) SetConsoleOutputCP(UINT wCodePageID)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -2594,6 +2629,7 @@ Quit:
*/ */
HWND HWND
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleWindow(VOID) GetConsoleWindow(VOID)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -2620,6 +2656,7 @@ GetConsoleWindow(VOID)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleIcon(HICON hIcon) SetConsoleIcon(HICON hIcon)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;
@ -2652,6 +2689,7 @@ SetConsoleIcon(HICON hIcon)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleInputExeNameW(IN LPWSTR lpExeName) SetConsoleInputExeNameW(IN LPWSTR lpExeName)
{ {
DWORD ExeLength; DWORD ExeLength;
@ -2691,6 +2729,7 @@ SetConsoleInputExeNameW(IN LPWSTR lpExeName)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleInputExeNameA(IN LPSTR lpExeName) SetConsoleInputExeNameA(IN LPSTR lpExeName)
{ {
NTSTATUS Status; NTSTATUS Status;
@ -2766,6 +2805,7 @@ SetConsoleInputExeNameA(IN LPSTR lpExeName)
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleInputExeNameW(IN DWORD nBufferLength, GetConsoleInputExeNameW(IN DWORD nBufferLength,
OUT LPWSTR lpExeName) OUT LPWSTR lpExeName)
{ {
@ -2804,6 +2844,7 @@ GetConsoleInputExeNameW(IN DWORD nBufferLength,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleInputExeNameA(IN DWORD nBufferLength, GetConsoleInputExeNameA(IN DWORD nBufferLength,
OUT LPSTR lpExeName) OUT LPSTR lpExeName)
{ {
@ -2850,6 +2891,7 @@ GetConsoleCharType(HANDLE hConsole, COORD Coord, PDWORD Type)
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleCursorMode(HANDLE hConsole, PBOOL pUnknown1, PBOOL pUnknown2) GetConsoleCursorMode(HANDLE hConsole, PBOOL pUnknown1, PBOOL pUnknown2)
{ {
STUB; STUB;
@ -2858,6 +2900,7 @@ GetConsoleCursorMode(HANDLE hConsole, PBOOL pUnknown1, PBOOL pUnknown2)
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleCursorMode(HANDLE hConsole, BOOL Unknown1, BOOL Unknown2) SetConsoleCursorMode(HANDLE hConsole, BOOL Unknown1, BOOL Unknown2)
{ {
STUB; STUB;
@ -2866,6 +2909,7 @@ SetConsoleCursorMode(HANDLE hConsole, BOOL Unknown1, BOOL Unknown2)
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleNlsMode(HANDLE hConsole, LPDWORD lpMode) GetConsoleNlsMode(HANDLE hConsole, LPDWORD lpMode)
{ {
STUB; STUB;
@ -2874,6 +2918,7 @@ GetConsoleNlsMode(HANDLE hConsole, LPDWORD lpMode)
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleNlsMode(HANDLE hConsole, DWORD dwMode) SetConsoleNlsMode(HANDLE hConsole, DWORD dwMode)
{ {
STUB; STUB;
@ -2882,6 +2927,7 @@ SetConsoleNlsMode(HANDLE hConsole, DWORD dwMode)
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleLocalEUDC(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4) SetConsoleLocalEUDC(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4)
{ {
STUB; STUB;
@ -2890,6 +2936,7 @@ SetConsoleLocalEUDC(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknow
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
RegisterConsoleIME(HWND hWnd, LPDWORD ThreadId) RegisterConsoleIME(HWND hWnd, LPDWORD ThreadId)
{ {
STUB; STUB;
@ -2898,6 +2945,7 @@ RegisterConsoleIME(HWND hWnd, LPDWORD ThreadId)
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
RegisterConsoleOS2(BOOL bUnknown) RegisterConsoleOS2(BOOL bUnknown)
{ {
STUB; STUB;
@ -2906,6 +2954,7 @@ RegisterConsoleOS2(BOOL bUnknown)
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleOS2OemFormat(BOOL bUnknown) SetConsoleOS2OemFormat(BOOL bUnknown)
{ {
STUB; STUB;
@ -2914,6 +2963,7 @@ SetConsoleOS2OemFormat(BOOL bUnknown)
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
UnregisterConsoleIME(VOID) UnregisterConsoleIME(VOID)
{ {
STUB; STUB;
@ -2921,6 +2971,7 @@ UnregisterConsoleIME(VOID)
} }
static
BOOL BOOL
IntGetConsoleKeyboardLayoutName(OUT PVOID pszLayoutName, IntGetConsoleKeyboardLayoutName(OUT PVOID pszLayoutName,
IN BOOL bAnsi) IN BOOL bAnsi)
@ -2969,6 +3020,7 @@ IntGetConsoleKeyboardLayoutName(OUT PVOID pszLayoutName,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleKeyboardLayoutNameA(OUT LPSTR pszLayoutName) GetConsoleKeyboardLayoutNameA(OUT LPSTR pszLayoutName)
{ {
return IntGetConsoleKeyboardLayoutName(pszLayoutName, TRUE); return IntGetConsoleKeyboardLayoutName(pszLayoutName, TRUE);
@ -2979,6 +3031,7 @@ GetConsoleKeyboardLayoutNameA(OUT LPSTR pszLayoutName)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleKeyboardLayoutNameW(OUT LPWSTR pszLayoutName) GetConsoleKeyboardLayoutNameW(OUT LPWSTR pszLayoutName)
{ {
return IntGetConsoleKeyboardLayoutName(pszLayoutName, FALSE); return IntGetConsoleKeyboardLayoutName(pszLayoutName, FALSE);

View file

@ -246,6 +246,7 @@ IntSetConsoleNumberOfCommands(DWORD dwNumCommands,
*/ */
VOID VOID
WINAPI WINAPI
DECLSPEC_HOTPATCH
ExpungeConsoleCommandHistoryW(LPCWSTR lpExeName) ExpungeConsoleCommandHistoryW(LPCWSTR lpExeName)
{ {
IntExpungeConsoleCommandHistory(lpExeName, TRUE); IntExpungeConsoleCommandHistory(lpExeName, TRUE);
@ -257,6 +258,7 @@ ExpungeConsoleCommandHistoryW(LPCWSTR lpExeName)
*/ */
VOID VOID
WINAPI WINAPI
DECLSPEC_HOTPATCH
ExpungeConsoleCommandHistoryA(LPCSTR lpExeName) ExpungeConsoleCommandHistoryA(LPCSTR lpExeName)
{ {
IntExpungeConsoleCommandHistory(lpExeName, FALSE); IntExpungeConsoleCommandHistory(lpExeName, FALSE);
@ -268,6 +270,7 @@ ExpungeConsoleCommandHistoryA(LPCSTR lpExeName)
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleCommandHistoryW(LPWSTR lpHistory, GetConsoleCommandHistoryW(LPWSTR lpHistory,
DWORD cbHistory, DWORD cbHistory,
LPCWSTR lpExeName) LPCWSTR lpExeName)
@ -281,6 +284,7 @@ GetConsoleCommandHistoryW(LPWSTR lpHistory,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleCommandHistoryA(LPSTR lpHistory, GetConsoleCommandHistoryA(LPSTR lpHistory,
DWORD cbHistory, DWORD cbHistory,
LPCSTR lpExeName) LPCSTR lpExeName)
@ -294,6 +298,7 @@ GetConsoleCommandHistoryA(LPSTR lpHistory,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleCommandHistoryLengthW(LPCWSTR lpExeName) GetConsoleCommandHistoryLengthW(LPCWSTR lpExeName)
{ {
return IntGetConsoleCommandHistoryLength(lpExeName, TRUE); return IntGetConsoleCommandHistoryLength(lpExeName, TRUE);
@ -305,6 +310,7 @@ GetConsoleCommandHistoryLengthW(LPCWSTR lpExeName)
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleCommandHistoryLengthA(LPCSTR lpExeName) GetConsoleCommandHistoryLengthA(LPCSTR lpExeName)
{ {
return IntGetConsoleCommandHistoryLength(lpExeName, FALSE); return IntGetConsoleCommandHistoryLength(lpExeName, FALSE);
@ -316,6 +322,7 @@ GetConsoleCommandHistoryLengthA(LPCSTR lpExeName)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleNumberOfCommandsW(DWORD dwNumCommands, SetConsoleNumberOfCommandsW(DWORD dwNumCommands,
LPCWSTR lpExeName) LPCWSTR lpExeName)
{ {
@ -328,6 +335,7 @@ SetConsoleNumberOfCommandsW(DWORD dwNumCommands,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleNumberOfCommandsA(DWORD dwNumCommands, SetConsoleNumberOfCommandsA(DWORD dwNumCommands,
LPCSTR lpExeName) LPCSTR lpExeName)
{ {
@ -340,6 +348,7 @@ SetConsoleNumberOfCommandsA(DWORD dwNumCommands,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleCommandHistoryMode(IN DWORD dwMode) SetConsoleCommandHistoryMode(IN DWORD dwMode)
{ {
CONSOLE_API_MESSAGE ApiMessage; CONSOLE_API_MESSAGE ApiMessage;

View file

@ -1172,6 +1172,7 @@ IntFillConsoleOutputCode(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleW(IN HANDLE hConsoleInput, ReadConsoleW(IN HANDLE hConsoleInput,
OUT LPVOID lpBuffer, OUT LPVOID lpBuffer,
IN DWORD nNumberOfCharsToRead, IN DWORD nNumberOfCharsToRead,
@ -1192,6 +1193,7 @@ ReadConsoleW(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleA(IN HANDLE hConsoleInput, ReadConsoleA(IN HANDLE hConsoleInput,
OUT LPVOID lpBuffer, OUT LPVOID lpBuffer,
IN DWORD nNumberOfCharsToRead, IN DWORD nNumberOfCharsToRead,
@ -1212,6 +1214,7 @@ ReadConsoleA(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
PeekConsoleInputW(IN HANDLE hConsoleInput, PeekConsoleInputW(IN HANDLE hConsoleInput,
OUT PINPUT_RECORD lpBuffer, OUT PINPUT_RECORD lpBuffer,
IN DWORD nLength, IN DWORD nLength,
@ -1231,6 +1234,7 @@ PeekConsoleInputW(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
PeekConsoleInputA(IN HANDLE hConsoleInput, PeekConsoleInputA(IN HANDLE hConsoleInput,
OUT PINPUT_RECORD lpBuffer, OUT PINPUT_RECORD lpBuffer,
IN DWORD nLength, IN DWORD nLength,
@ -1250,6 +1254,7 @@ PeekConsoleInputA(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleInputW(IN HANDLE hConsoleInput, ReadConsoleInputW(IN HANDLE hConsoleInput,
OUT PINPUT_RECORD lpBuffer, OUT PINPUT_RECORD lpBuffer,
IN DWORD nLength, IN DWORD nLength,
@ -1269,6 +1274,7 @@ ReadConsoleInputW(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleInputA(IN HANDLE hConsoleInput, ReadConsoleInputA(IN HANDLE hConsoleInput,
OUT PINPUT_RECORD lpBuffer, OUT PINPUT_RECORD lpBuffer,
IN DWORD nLength, IN DWORD nLength,
@ -1288,6 +1294,7 @@ ReadConsoleInputA(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleInputExW(IN HANDLE hConsoleInput, ReadConsoleInputExW(IN HANDLE hConsoleInput,
OUT PINPUT_RECORD lpBuffer, OUT PINPUT_RECORD lpBuffer,
IN DWORD nLength, IN DWORD nLength,
@ -1308,6 +1315,7 @@ ReadConsoleInputExW(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleInputExA(IN HANDLE hConsoleInput, ReadConsoleInputExA(IN HANDLE hConsoleInput,
OUT PINPUT_RECORD lpBuffer, OUT PINPUT_RECORD lpBuffer,
IN DWORD nLength, IN DWORD nLength,
@ -1328,6 +1336,7 @@ ReadConsoleInputExA(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleOutputW(IN HANDLE hConsoleOutput, ReadConsoleOutputW(IN HANDLE hConsoleOutput,
OUT PCHAR_INFO lpBuffer, OUT PCHAR_INFO lpBuffer,
IN COORD dwBufferSize, IN COORD dwBufferSize,
@ -1348,6 +1357,7 @@ ReadConsoleOutputW(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleOutputA(IN HANDLE hConsoleOutput, ReadConsoleOutputA(IN HANDLE hConsoleOutput,
OUT PCHAR_INFO lpBuffer, OUT PCHAR_INFO lpBuffer,
IN COORD dwBufferSize, IN COORD dwBufferSize,
@ -1368,6 +1378,7 @@ ReadConsoleOutputA(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleOutputCharacterW(IN HANDLE hConsoleOutput, ReadConsoleOutputCharacterW(IN HANDLE hConsoleOutput,
OUT LPWSTR lpCharacter, OUT LPWSTR lpCharacter,
IN DWORD nLength, IN DWORD nLength,
@ -1388,6 +1399,7 @@ ReadConsoleOutputCharacterW(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleOutputCharacterA(IN HANDLE hConsoleOutput, ReadConsoleOutputCharacterA(IN HANDLE hConsoleOutput,
OUT LPSTR lpCharacter, OUT LPSTR lpCharacter,
IN DWORD nLength, IN DWORD nLength,
@ -1408,6 +1420,7 @@ ReadConsoleOutputCharacterA(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
ReadConsoleOutputAttribute(IN HANDLE hConsoleOutput, ReadConsoleOutputAttribute(IN HANDLE hConsoleOutput,
OUT LPWORD lpAttribute, OUT LPWORD lpAttribute,
IN DWORD nLength, IN DWORD nLength,
@ -1432,6 +1445,7 @@ ReadConsoleOutputAttribute(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleW(IN HANDLE hConsoleOutput, WriteConsoleW(IN HANDLE hConsoleOutput,
IN CONST VOID *lpBuffer, IN CONST VOID *lpBuffer,
IN DWORD nNumberOfCharsToWrite, IN DWORD nNumberOfCharsToWrite,
@ -1452,6 +1466,7 @@ WriteConsoleW(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleA(IN HANDLE hConsoleOutput, WriteConsoleA(IN HANDLE hConsoleOutput,
IN CONST VOID *lpBuffer, IN CONST VOID *lpBuffer,
IN DWORD nNumberOfCharsToWrite, IN DWORD nNumberOfCharsToWrite,
@ -1472,6 +1487,7 @@ WriteConsoleA(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleInputW(IN HANDLE hConsoleInput, WriteConsoleInputW(IN HANDLE hConsoleInput,
IN CONST INPUT_RECORD *lpBuffer, IN CONST INPUT_RECORD *lpBuffer,
IN DWORD nLength, IN DWORD nLength,
@ -1491,6 +1507,7 @@ WriteConsoleInputW(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleInputA(IN HANDLE hConsoleInput, WriteConsoleInputA(IN HANDLE hConsoleInput,
IN CONST INPUT_RECORD *lpBuffer, IN CONST INPUT_RECORD *lpBuffer,
IN DWORD nLength, IN DWORD nLength,
@ -1510,6 +1527,7 @@ WriteConsoleInputA(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleInputVDMW(IN HANDLE hConsoleInput, WriteConsoleInputVDMW(IN HANDLE hConsoleInput,
IN CONST INPUT_RECORD *lpBuffer, IN CONST INPUT_RECORD *lpBuffer,
IN DWORD nLength, IN DWORD nLength,
@ -1529,6 +1547,7 @@ WriteConsoleInputVDMW(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleInputVDMA(IN HANDLE hConsoleInput, WriteConsoleInputVDMA(IN HANDLE hConsoleInput,
IN CONST INPUT_RECORD *lpBuffer, IN CONST INPUT_RECORD *lpBuffer,
IN DWORD nLength, IN DWORD nLength,
@ -1548,6 +1567,7 @@ WriteConsoleInputVDMA(IN HANDLE hConsoleInput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleOutputW(IN HANDLE hConsoleOutput, WriteConsoleOutputW(IN HANDLE hConsoleOutput,
IN CONST CHAR_INFO *lpBuffer, IN CONST CHAR_INFO *lpBuffer,
IN COORD dwBufferSize, IN COORD dwBufferSize,
@ -1568,6 +1588,7 @@ WriteConsoleOutputW(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleOutputA(IN HANDLE hConsoleOutput, WriteConsoleOutputA(IN HANDLE hConsoleOutput,
IN CONST CHAR_INFO *lpBuffer, IN CONST CHAR_INFO *lpBuffer,
IN COORD dwBufferSize, IN COORD dwBufferSize,
@ -1588,6 +1609,7 @@ WriteConsoleOutputA(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleOutputCharacterW(IN HANDLE hConsoleOutput, WriteConsoleOutputCharacterW(IN HANDLE hConsoleOutput,
IN LPCWSTR lpCharacter, IN LPCWSTR lpCharacter,
IN DWORD nLength, IN DWORD nLength,
@ -1608,6 +1630,7 @@ WriteConsoleOutputCharacterW(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleOutputCharacterA(IN HANDLE hConsoleOutput, WriteConsoleOutputCharacterA(IN HANDLE hConsoleOutput,
IN LPCSTR lpCharacter, IN LPCSTR lpCharacter,
IN DWORD nLength, IN DWORD nLength,
@ -1628,6 +1651,7 @@ WriteConsoleOutputCharacterA(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
WriteConsoleOutputAttribute(IN HANDLE hConsoleOutput, WriteConsoleOutputAttribute(IN HANDLE hConsoleOutput,
IN CONST WORD *lpAttribute, IN CONST WORD *lpAttribute,
IN DWORD nLength, IN DWORD nLength,
@ -1648,6 +1672,7 @@ WriteConsoleOutputAttribute(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
FillConsoleOutputCharacterW(IN HANDLE hConsoleOutput, FillConsoleOutputCharacterW(IN HANDLE hConsoleOutput,
IN WCHAR cCharacter, IN WCHAR cCharacter,
IN DWORD nLength, IN DWORD nLength,
@ -1670,6 +1695,7 @@ FillConsoleOutputCharacterW(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
FillConsoleOutputCharacterA(IN HANDLE hConsoleOutput, FillConsoleOutputCharacterA(IN HANDLE hConsoleOutput,
IN CHAR cCharacter, IN CHAR cCharacter,
IN DWORD nLength, IN DWORD nLength,
@ -1692,6 +1718,7 @@ FillConsoleOutputCharacterA(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
FillConsoleOutputAttribute(IN HANDLE hConsoleOutput, FillConsoleOutputAttribute(IN HANDLE hConsoleOutput,
IN WORD wAttribute, IN WORD wAttribute,
IN DWORD nLength, IN DWORD nLength,

View file

@ -23,6 +23,7 @@
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo) GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
{ {
NTSTATUS Status; NTSTATUS Status;
@ -58,6 +59,7 @@ GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleHistoryInfo(IN PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo) SetConsoleHistoryInfo(IN PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
{ {
NTSTATUS Status; NTSTATUS Status;
@ -93,6 +95,7 @@ SetConsoleHistoryInfo(IN PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleOriginalTitleW(OUT LPWSTR lpConsoleTitle, GetConsoleOriginalTitleW(OUT LPWSTR lpConsoleTitle,
IN DWORD nSize) IN DWORD nSize)
{ {
@ -107,6 +110,7 @@ GetConsoleOriginalTitleW(OUT LPWSTR lpConsoleTitle,
*/ */
DWORD DWORD
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleOriginalTitleA(OUT LPSTR lpConsoleTitle, GetConsoleOriginalTitleA(OUT LPSTR lpConsoleTitle,
IN DWORD nSize) IN DWORD nSize)
{ {
@ -121,6 +125,7 @@ GetConsoleOriginalTitleA(OUT LPSTR lpConsoleTitle,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetConsoleScreenBufferInfoEx(IN HANDLE hConsoleOutput, GetConsoleScreenBufferInfoEx(IN HANDLE hConsoleOutput,
OUT PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx) OUT PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx)
{ {
@ -135,6 +140,7 @@ GetConsoleScreenBufferInfoEx(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
SetConsoleScreenBufferInfoEx(IN HANDLE hConsoleOutput, SetConsoleScreenBufferInfoEx(IN HANDLE hConsoleOutput,
IN PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx) IN PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx)
{ {
@ -149,6 +155,7 @@ SetConsoleScreenBufferInfoEx(IN HANDLE hConsoleOutput,
*/ */
BOOL BOOL
WINAPI WINAPI
DECLSPEC_HOTPATCH
GetCurrentConsoleFontEx(IN HANDLE hConsoleOutput, GetCurrentConsoleFontEx(IN HANDLE hConsoleOutput,
IN BOOL bMaximumWindow, IN BOOL bMaximumWindow,
OUT PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx) OUT PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx)

View file

@ -131,7 +131,7 @@ VerifyVersionInfoW(IN LPOSVERSIONINFOEXW lpVersionInformation,
return FALSE; return FALSE;
case STATUS_REVISION_MISMATCH: case STATUS_REVISION_MISMATCH:
DPRINT1("ReactOS returning version mismatch. Investigate!\n"); DPRINT1("VerifyVersionInfo -- Version mismatch\n");
SetLastError(ERROR_OLD_WIN_VERSION); SetLastError(ERROR_OLD_WIN_VERSION);
return FALSE; return FALSE;

View file

@ -9,6 +9,9 @@
#include "winnls/locale_rc.rc" #include "winnls/locale_rc.rc"
/* FIXME */
#define NLSRC_OFFSET 5000
/* UTF-8 */ /* UTF-8 */
#pragma code_page(65001) #pragma code_page(65001)
#ifdef LANGUAGE_CS_CZ #ifdef LANGUAGE_CS_CZ

View file

@ -158,4 +158,271 @@ BEGIN
52936 "52936 (HZ-GB2312 zjednodušená čínština)" 52936 "52936 (HZ-GB2312 zjednodušená čínština)"
54936 "54936 (GB18030 zjednodušená čínština)" 54936 "54936 (GB18030 zjednodušená čínština)"
/* Locations */
2+NLSRC_OFFSET "Antigua and Barbuda"
3+NLSRC_OFFSET "Afghanistan"
4+NLSRC_OFFSET "Algeria"
5+NLSRC_OFFSET "Azerbaijan"
6+NLSRC_OFFSET "Albania"
7+NLSRC_OFFSET "Armenia"
8+NLSRC_OFFSET "Andorra"
9+NLSRC_OFFSET "Angola"
10+NLSRC_OFFSET "American Samoa"
11+NLSRC_OFFSET "Argentina"
12+NLSRC_OFFSET "Australia"
14+NLSRC_OFFSET "Austria"
17+NLSRC_OFFSET "Bahrain"
18+NLSRC_OFFSET "Barbados"
19+NLSRC_OFFSET "Botswana"
20+NLSRC_OFFSET "Bermuda"
21+NLSRC_OFFSET "Belgium"
22+NLSRC_OFFSET "Bahamas, The"
23+NLSRC_OFFSET "Bangladesh"
24+NLSRC_OFFSET "Belize"
25+NLSRC_OFFSET "Bosnia and Herzegovina"
26+NLSRC_OFFSET "Bolivia"
27+NLSRC_OFFSET "Myanmar"
28+NLSRC_OFFSET "Benin"
29+NLSRC_OFFSET "Belarus"
30+NLSRC_OFFSET "Solomon Islands"
32+NLSRC_OFFSET "Brazil"
34+NLSRC_OFFSET "Bhutan"
35+NLSRC_OFFSET "Bulgaria"
38+NLSRC_OFFSET "Burundi"
39+NLSRC_OFFSET "Canada"
40+NLSRC_OFFSET "Cambodia"
41+NLSRC_OFFSET "Chad"
42+NLSRC_OFFSET "Sri Lanka"
43+NLSRC_OFFSET "Congo"
44+NLSRC_OFFSET "Congo (DRC)"
45+NLSRC_OFFSET "China"
46+NLSRC_OFFSET "Chile"
49+NLSRC_OFFSET "Cameroon"
50+NLSRC_OFFSET "Comoros"
51+NLSRC_OFFSET "Colombia"
54+NLSRC_OFFSET "Costa Rica"
55+NLSRC_OFFSET "Central African Republic"
56+NLSRC_OFFSET "Cuba"
57+NLSRC_OFFSET "Cape Verde"
59+NLSRC_OFFSET "Cyprus"
61+NLSRC_OFFSET "Denmark"
62+NLSRC_OFFSET "Djibouti"
63+NLSRC_OFFSET "Dominica"
65+NLSRC_OFFSET "Dominican Republic"
66+NLSRC_OFFSET "Ecuador"
67+NLSRC_OFFSET "Egypt"
68+NLSRC_OFFSET "Ireland"
69+NLSRC_OFFSET "Equatorial Guinea"
70+NLSRC_OFFSET "Estonia"
71+NLSRC_OFFSET "Eritrea"
72+NLSRC_OFFSET "El Salvador"
73+NLSRC_OFFSET "Ethiopia"
75+NLSRC_OFFSET "Czech Republic"
77+NLSRC_OFFSET "Finland"
78+NLSRC_OFFSET "Fiji Islands"
80+NLSRC_OFFSET "Micronesia"
81+NLSRC_OFFSET "Faroe Islands"
84+NLSRC_OFFSET "France"
86+NLSRC_OFFSET "Gambia, The"
87+NLSRC_OFFSET "Gabon"
88+NLSRC_OFFSET "Georgia"
89+NLSRC_OFFSET "Ghana"
90+NLSRC_OFFSET "Gibraltar"
91+NLSRC_OFFSET "Grenada"
93+NLSRC_OFFSET "Greenland"
94+NLSRC_OFFSET "Germany"
98+NLSRC_OFFSET "Greece"
99+NLSRC_OFFSET "Guatemala"
100+NLSRC_OFFSET "Guinea"
101+NLSRC_OFFSET "Guyana"
103+NLSRC_OFFSET "Haiti"
104+NLSRC_OFFSET "Hong Kong S.A.R."
106+NLSRC_OFFSET "Honduras"
108+NLSRC_OFFSET "Croatia"
109+NLSRC_OFFSET "Hungary"
110+NLSRC_OFFSET "Iceland"
111+NLSRC_OFFSET "Indonesia"
113+NLSRC_OFFSET "India"
114+NLSRC_OFFSET "British Indian Ocean Territory"
116+NLSRC_OFFSET "Iran"
117+NLSRC_OFFSET "Israel"
118+NLSRC_OFFSET "Italy"
119+NLSRC_OFFSET "Côte d'Ivoire"
121+NLSRC_OFFSET "Iraq"
122+NLSRC_OFFSET "Japan"
124+NLSRC_OFFSET "Jamaica"
125+NLSRC_OFFSET "Jan Mayen"
126+NLSRC_OFFSET "Jordan"
127+NLSRC_OFFSET "Johnston Atoll"
129+NLSRC_OFFSET "Kenya"
130+NLSRC_OFFSET "Kyrgyzstan"
131+NLSRC_OFFSET "North Korea"
133+NLSRC_OFFSET "Kiribati"
134+NLSRC_OFFSET "Korea"
136+NLSRC_OFFSET "Kuwait"
137+NLSRC_OFFSET "Kazakhstan"
138+NLSRC_OFFSET "Laos"
139+NLSRC_OFFSET "Lebanon"
140+NLSRC_OFFSET "Latvia"
141+NLSRC_OFFSET "Lithuania"
142+NLSRC_OFFSET "Liberia"
143+NLSRC_OFFSET "Slovakia"
145+NLSRC_OFFSET "Liechtenstein"
146+NLSRC_OFFSET "Lesotho"
147+NLSRC_OFFSET "Luxembourg"
148+NLSRC_OFFSET "Libya"
149+NLSRC_OFFSET "Madagascar"
151+NLSRC_OFFSET "Macao S.A.R."
152+NLSRC_OFFSET "Moldova"
154+NLSRC_OFFSET "Mongolia"
156+NLSRC_OFFSET "Malawi"
157+NLSRC_OFFSET "Mali"
158+NLSRC_OFFSET "Monaco"
159+NLSRC_OFFSET "Morocco"
160+NLSRC_OFFSET "Mauritius"
162+NLSRC_OFFSET "Mauritania"
163+NLSRC_OFFSET "Malta"
164+NLSRC_OFFSET "Oman"
165+NLSRC_OFFSET "Maldives"
166+NLSRC_OFFSET "Mexico"
167+NLSRC_OFFSET "Malaysia"
168+NLSRC_OFFSET "Mozambique"
173+NLSRC_OFFSET "Niger"
174+NLSRC_OFFSET "Vanuatu"
175+NLSRC_OFFSET "Nigeria"
176+NLSRC_OFFSET "Netherlands"
177+NLSRC_OFFSET "Norway"
178+NLSRC_OFFSET "Nepal"
180+NLSRC_OFFSET "Nauru"
181+NLSRC_OFFSET "Suriname"
182+NLSRC_OFFSET "Nicaragua"
183+NLSRC_OFFSET "New Zealand"
184+NLSRC_OFFSET "Palestinian Authority"
185+NLSRC_OFFSET "Paraguay"
187+NLSRC_OFFSET "Peru"
190+NLSRC_OFFSET "Pakistan"
191+NLSRC_OFFSET "Poland"
192+NLSRC_OFFSET "Panama"
193+NLSRC_OFFSET "Portugal"
194+NLSRC_OFFSET "Papua New Guinea"
195+NLSRC_OFFSET "Palau"
196+NLSRC_OFFSET "Guinea-Bissau"
197+NLSRC_OFFSET "Qatar"
198+NLSRC_OFFSET "Reunion"
199+NLSRC_OFFSET "Marshall Islands"
200+NLSRC_OFFSET "Romania"
201+NLSRC_OFFSET "Philippines"
202+NLSRC_OFFSET "Puerto Rico"
203+NLSRC_OFFSET "Russia"
204+NLSRC_OFFSET "Rwanda"
205+NLSRC_OFFSET "Saudi Arabia"
206+NLSRC_OFFSET "St. Pierre and Miquelon"
207+NLSRC_OFFSET "St. Kitts and Nevis"
208+NLSRC_OFFSET "Seychelles"
209+NLSRC_OFFSET "South Africa"
210+NLSRC_OFFSET "Senegal"
212+NLSRC_OFFSET "Slovenia"
213+NLSRC_OFFSET "Sierra Leone"
214+NLSRC_OFFSET "San Marino"
215+NLSRC_OFFSET "Singapore"
216+NLSRC_OFFSET "Somalia"
217+NLSRC_OFFSET "Spain"
218+NLSRC_OFFSET "St. Lucia"
219+NLSRC_OFFSET "Sudan"
220+NLSRC_OFFSET "Svalbard"
221+NLSRC_OFFSET "Sweden"
222+NLSRC_OFFSET "Syria"
223+NLSRC_OFFSET "Switzerland"
224+NLSRC_OFFSET "United Arab Emirates"
225+NLSRC_OFFSET "Trinidad and Tobago"
227+NLSRC_OFFSET "Thailand"
228+NLSRC_OFFSET "Tajikistan"
231+NLSRC_OFFSET "Tonga"
232+NLSRC_OFFSET "Togo"
233+NLSRC_OFFSET "São Tomé and Príncipe"
234+NLSRC_OFFSET "Tunisia"
235+NLSRC_OFFSET "Turkey"
236+NLSRC_OFFSET "Tuvalu"
237+NLSRC_OFFSET "Taiwan"
238+NLSRC_OFFSET "Turkmenistan"
239+NLSRC_OFFSET "Tanzania"
240+NLSRC_OFFSET "Uganda"
241+NLSRC_OFFSET "Ukraine"
242+NLSRC_OFFSET "United Kingdom"
244+NLSRC_OFFSET "United States"
245+NLSRC_OFFSET "Burkina Faso"
246+NLSRC_OFFSET "Uruguay"
247+NLSRC_OFFSET "Uzbekistan"
248+NLSRC_OFFSET "St. Vincent and the Grenadines"
249+NLSRC_OFFSET "Bolivarian Republic of Venezuela"
251+NLSRC_OFFSET "Vietnam"
252+NLSRC_OFFSET "Virgin Islands"
253+NLSRC_OFFSET "Vatican City"
254+NLSRC_OFFSET "Namibia"
257+NLSRC_OFFSET "Western Sahara (disputed)"
258+NLSRC_OFFSET "Wake Island"
259+NLSRC_OFFSET "Samoa"
260+NLSRC_OFFSET "Swaziland"
261+NLSRC_OFFSET "Yemen"
263+NLSRC_OFFSET "Zambia"
264+NLSRC_OFFSET "Zimbabwe"
269+NLSRC_OFFSET "Serbia and Montenegro (Former)"
270+NLSRC_OFFSET "Montenegro"
271+NLSRC_OFFSET "Serbia"
273+NLSRC_OFFSET "Curaçao"
276+NLSRC_OFFSET "South Sudan"
300+NLSRC_OFFSET "Anguilla"
301+NLSRC_OFFSET "Antarctica"
302+NLSRC_OFFSET "Aruba"
303+NLSRC_OFFSET "Ascension Island"
304+NLSRC_OFFSET "Ashmore and Cartier Islands"
305+NLSRC_OFFSET "Baker Island"
306+NLSRC_OFFSET "Bouvet Island"
307+NLSRC_OFFSET "Cayman Islands"
308+NLSRC_OFFSET "Channel Islands"
309+NLSRC_OFFSET "Christmas Island"
310+NLSRC_OFFSET "Clipperton Island"
311+NLSRC_OFFSET "Cocos (Keeling) Islands"
312+NLSRC_OFFSET "Cook Islands"
313+NLSRC_OFFSET "Coral Sea Islands"
314+NLSRC_OFFSET "Diego Garcia"
315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)"
317+NLSRC_OFFSET "French Guiana"
318+NLSRC_OFFSET "French Polynesia"
319+NLSRC_OFFSET "French Southern and Antarctic Lands"
321+NLSRC_OFFSET "Guadeloupe"
322+NLSRC_OFFSET "Guam"
323+NLSRC_OFFSET "Guantanamo Bay"
324+NLSRC_OFFSET "Guernsey"
325+NLSRC_OFFSET "Heard Island and McDonald Islands"
326+NLSRC_OFFSET "Howland Island"
327+NLSRC_OFFSET "Jarvis Island"
328+NLSRC_OFFSET "Jersey"
329+NLSRC_OFFSET "Kingman Reef"
330+NLSRC_OFFSET "Martinique"
331+NLSRC_OFFSET "Mayotte"
332+NLSRC_OFFSET "Montserrat"
333+NLSRC_OFFSET "Netherlands Antilles (Former)"
334+NLSRC_OFFSET "New Caledonia"
335+NLSRC_OFFSET "Niue"
336+NLSRC_OFFSET "Norfolk Island"
337+NLSRC_OFFSET "Northern Mariana Islands"
338+NLSRC_OFFSET "Palmyra Atoll"
339+NLSRC_OFFSET "Pitcairn Islands"
340+NLSRC_OFFSET "Rota Island"
341+NLSRC_OFFSET "Saipan"
342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands"
343+NLSRC_OFFSET "St. Helena"
346+NLSRC_OFFSET "Tinian Island"
347+NLSRC_OFFSET "Tokelau"
348+NLSRC_OFFSET "Tristan da Cunha"
349+NLSRC_OFFSET "Turks and Caicos Islands"
351+NLSRC_OFFSET "Virgin Islands, British"
352+NLSRC_OFFSET "Wallis and Futuna"
15126+NLSRC_OFFSET "Man, Isle of"
19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of"
21242+NLSRC_OFFSET "Midway Islands"
30967+NLSRC_OFFSET "Sint Maarten (Dutch part)"
31706+NLSRC_OFFSET "Saint Martin (French part)"
END END

View file

@ -158,4 +158,271 @@ BEGIN
52936 "52936 (Chinesisch vereinfacht (HZ))" 52936 "52936 (Chinesisch vereinfacht (HZ))"
54936 "54936 (Chinesisch vereinfacht (GB18030))" 54936 "54936 (Chinesisch vereinfacht (GB18030))"
/* Locations */
2+NLSRC_OFFSET "Antigua and Barbuda"
3+NLSRC_OFFSET "Afghanistan"
4+NLSRC_OFFSET "Algeria"
5+NLSRC_OFFSET "Azerbaijan"
6+NLSRC_OFFSET "Albania"
7+NLSRC_OFFSET "Armenia"
8+NLSRC_OFFSET "Andorra"
9+NLSRC_OFFSET "Angola"
10+NLSRC_OFFSET "American Samoa"
11+NLSRC_OFFSET "Argentina"
12+NLSRC_OFFSET "Australia"
14+NLSRC_OFFSET "Austria"
17+NLSRC_OFFSET "Bahrain"
18+NLSRC_OFFSET "Barbados"
19+NLSRC_OFFSET "Botswana"
20+NLSRC_OFFSET "Bermuda"
21+NLSRC_OFFSET "Belgium"
22+NLSRC_OFFSET "Bahamas, The"
23+NLSRC_OFFSET "Bangladesh"
24+NLSRC_OFFSET "Belize"
25+NLSRC_OFFSET "Bosnia and Herzegovina"
26+NLSRC_OFFSET "Bolivia"
27+NLSRC_OFFSET "Myanmar"
28+NLSRC_OFFSET "Benin"
29+NLSRC_OFFSET "Belarus"
30+NLSRC_OFFSET "Solomon Islands"
32+NLSRC_OFFSET "Brazil"
34+NLSRC_OFFSET "Bhutan"
35+NLSRC_OFFSET "Bulgaria"
38+NLSRC_OFFSET "Burundi"
39+NLSRC_OFFSET "Canada"
40+NLSRC_OFFSET "Cambodia"
41+NLSRC_OFFSET "Chad"
42+NLSRC_OFFSET "Sri Lanka"
43+NLSRC_OFFSET "Congo"
44+NLSRC_OFFSET "Congo (DRC)"
45+NLSRC_OFFSET "China"
46+NLSRC_OFFSET "Chile"
49+NLSRC_OFFSET "Cameroon"
50+NLSRC_OFFSET "Comoros"
51+NLSRC_OFFSET "Colombia"
54+NLSRC_OFFSET "Costa Rica"
55+NLSRC_OFFSET "Central African Republic"
56+NLSRC_OFFSET "Cuba"
57+NLSRC_OFFSET "Cape Verde"
59+NLSRC_OFFSET "Cyprus"
61+NLSRC_OFFSET "Denmark"
62+NLSRC_OFFSET "Djibouti"
63+NLSRC_OFFSET "Dominica"
65+NLSRC_OFFSET "Dominican Republic"
66+NLSRC_OFFSET "Ecuador"
67+NLSRC_OFFSET "Egypt"
68+NLSRC_OFFSET "Ireland"
69+NLSRC_OFFSET "Equatorial Guinea"
70+NLSRC_OFFSET "Estonia"
71+NLSRC_OFFSET "Eritrea"
72+NLSRC_OFFSET "El Salvador"
73+NLSRC_OFFSET "Ethiopia"
75+NLSRC_OFFSET "Czech Republic"
77+NLSRC_OFFSET "Finland"
78+NLSRC_OFFSET "Fiji Islands"
80+NLSRC_OFFSET "Micronesia"
81+NLSRC_OFFSET "Faroe Islands"
84+NLSRC_OFFSET "France"
86+NLSRC_OFFSET "Gambia, The"
87+NLSRC_OFFSET "Gabon"
88+NLSRC_OFFSET "Georgia"
89+NLSRC_OFFSET "Ghana"
90+NLSRC_OFFSET "Gibraltar"
91+NLSRC_OFFSET "Grenada"
93+NLSRC_OFFSET "Greenland"
94+NLSRC_OFFSET "Germany"
98+NLSRC_OFFSET "Greece"
99+NLSRC_OFFSET "Guatemala"
100+NLSRC_OFFSET "Guinea"
101+NLSRC_OFFSET "Guyana"
103+NLSRC_OFFSET "Haiti"
104+NLSRC_OFFSET "Hong Kong S.A.R."
106+NLSRC_OFFSET "Honduras"
108+NLSRC_OFFSET "Croatia"
109+NLSRC_OFFSET "Hungary"
110+NLSRC_OFFSET "Iceland"
111+NLSRC_OFFSET "Indonesia"
113+NLSRC_OFFSET "India"
114+NLSRC_OFFSET "British Indian Ocean Territory"
116+NLSRC_OFFSET "Iran"
117+NLSRC_OFFSET "Israel"
118+NLSRC_OFFSET "Italy"
119+NLSRC_OFFSET "Côte d'Ivoire"
121+NLSRC_OFFSET "Iraq"
122+NLSRC_OFFSET "Japan"
124+NLSRC_OFFSET "Jamaica"
125+NLSRC_OFFSET "Jan Mayen"
126+NLSRC_OFFSET "Jordan"
127+NLSRC_OFFSET "Johnston Atoll"
129+NLSRC_OFFSET "Kenya"
130+NLSRC_OFFSET "Kyrgyzstan"
131+NLSRC_OFFSET "North Korea"
133+NLSRC_OFFSET "Kiribati"
134+NLSRC_OFFSET "Korea"
136+NLSRC_OFFSET "Kuwait"
137+NLSRC_OFFSET "Kazakhstan"
138+NLSRC_OFFSET "Laos"
139+NLSRC_OFFSET "Lebanon"
140+NLSRC_OFFSET "Latvia"
141+NLSRC_OFFSET "Lithuania"
142+NLSRC_OFFSET "Liberia"
143+NLSRC_OFFSET "Slovakia"
145+NLSRC_OFFSET "Liechtenstein"
146+NLSRC_OFFSET "Lesotho"
147+NLSRC_OFFSET "Luxembourg"
148+NLSRC_OFFSET "Libya"
149+NLSRC_OFFSET "Madagascar"
151+NLSRC_OFFSET "Macao S.A.R."
152+NLSRC_OFFSET "Moldova"
154+NLSRC_OFFSET "Mongolia"
156+NLSRC_OFFSET "Malawi"
157+NLSRC_OFFSET "Mali"
158+NLSRC_OFFSET "Monaco"
159+NLSRC_OFFSET "Morocco"
160+NLSRC_OFFSET "Mauritius"
162+NLSRC_OFFSET "Mauritania"
163+NLSRC_OFFSET "Malta"
164+NLSRC_OFFSET "Oman"
165+NLSRC_OFFSET "Maldives"
166+NLSRC_OFFSET "Mexico"
167+NLSRC_OFFSET "Malaysia"
168+NLSRC_OFFSET "Mozambique"
173+NLSRC_OFFSET "Niger"
174+NLSRC_OFFSET "Vanuatu"
175+NLSRC_OFFSET "Nigeria"
176+NLSRC_OFFSET "Netherlands"
177+NLSRC_OFFSET "Norway"
178+NLSRC_OFFSET "Nepal"
180+NLSRC_OFFSET "Nauru"
181+NLSRC_OFFSET "Suriname"
182+NLSRC_OFFSET "Nicaragua"
183+NLSRC_OFFSET "New Zealand"
184+NLSRC_OFFSET "Palestinian Authority"
185+NLSRC_OFFSET "Paraguay"
187+NLSRC_OFFSET "Peru"
190+NLSRC_OFFSET "Pakistan"
191+NLSRC_OFFSET "Poland"
192+NLSRC_OFFSET "Panama"
193+NLSRC_OFFSET "Portugal"
194+NLSRC_OFFSET "Papua New Guinea"
195+NLSRC_OFFSET "Palau"
196+NLSRC_OFFSET "Guinea-Bissau"
197+NLSRC_OFFSET "Qatar"
198+NLSRC_OFFSET "Reunion"
199+NLSRC_OFFSET "Marshall Islands"
200+NLSRC_OFFSET "Romania"
201+NLSRC_OFFSET "Philippines"
202+NLSRC_OFFSET "Puerto Rico"
203+NLSRC_OFFSET "Russia"
204+NLSRC_OFFSET "Rwanda"
205+NLSRC_OFFSET "Saudi Arabia"
206+NLSRC_OFFSET "St. Pierre and Miquelon"
207+NLSRC_OFFSET "St. Kitts and Nevis"
208+NLSRC_OFFSET "Seychelles"
209+NLSRC_OFFSET "South Africa"
210+NLSRC_OFFSET "Senegal"
212+NLSRC_OFFSET "Slovenia"
213+NLSRC_OFFSET "Sierra Leone"
214+NLSRC_OFFSET "San Marino"
215+NLSRC_OFFSET "Singapore"
216+NLSRC_OFFSET "Somalia"
217+NLSRC_OFFSET "Spain"
218+NLSRC_OFFSET "St. Lucia"
219+NLSRC_OFFSET "Sudan"
220+NLSRC_OFFSET "Svalbard"
221+NLSRC_OFFSET "Sweden"
222+NLSRC_OFFSET "Syria"
223+NLSRC_OFFSET "Switzerland"
224+NLSRC_OFFSET "United Arab Emirates"
225+NLSRC_OFFSET "Trinidad and Tobago"
227+NLSRC_OFFSET "Thailand"
228+NLSRC_OFFSET "Tajikistan"
231+NLSRC_OFFSET "Tonga"
232+NLSRC_OFFSET "Togo"
233+NLSRC_OFFSET "São Tomé and Príncipe"
234+NLSRC_OFFSET "Tunisia"
235+NLSRC_OFFSET "Turkey"
236+NLSRC_OFFSET "Tuvalu"
237+NLSRC_OFFSET "Taiwan"
238+NLSRC_OFFSET "Turkmenistan"
239+NLSRC_OFFSET "Tanzania"
240+NLSRC_OFFSET "Uganda"
241+NLSRC_OFFSET "Ukraine"
242+NLSRC_OFFSET "United Kingdom"
244+NLSRC_OFFSET "United States"
245+NLSRC_OFFSET "Burkina Faso"
246+NLSRC_OFFSET "Uruguay"
247+NLSRC_OFFSET "Uzbekistan"
248+NLSRC_OFFSET "St. Vincent and the Grenadines"
249+NLSRC_OFFSET "Bolivarian Republic of Venezuela"
251+NLSRC_OFFSET "Vietnam"
252+NLSRC_OFFSET "Virgin Islands"
253+NLSRC_OFFSET "Vatican City"
254+NLSRC_OFFSET "Namibia"
257+NLSRC_OFFSET "Western Sahara (disputed)"
258+NLSRC_OFFSET "Wake Island"
259+NLSRC_OFFSET "Samoa"
260+NLSRC_OFFSET "Swaziland"
261+NLSRC_OFFSET "Yemen"
263+NLSRC_OFFSET "Zambia"
264+NLSRC_OFFSET "Zimbabwe"
269+NLSRC_OFFSET "Serbia and Montenegro (Former)"
270+NLSRC_OFFSET "Montenegro"
271+NLSRC_OFFSET "Serbia"
273+NLSRC_OFFSET "Curaçao"
276+NLSRC_OFFSET "South Sudan"
300+NLSRC_OFFSET "Anguilla"
301+NLSRC_OFFSET "Antarctica"
302+NLSRC_OFFSET "Aruba"
303+NLSRC_OFFSET "Ascension Island"
304+NLSRC_OFFSET "Ashmore and Cartier Islands"
305+NLSRC_OFFSET "Baker Island"
306+NLSRC_OFFSET "Bouvet Island"
307+NLSRC_OFFSET "Cayman Islands"
308+NLSRC_OFFSET "Channel Islands"
309+NLSRC_OFFSET "Christmas Island"
310+NLSRC_OFFSET "Clipperton Island"
311+NLSRC_OFFSET "Cocos (Keeling) Islands"
312+NLSRC_OFFSET "Cook Islands"
313+NLSRC_OFFSET "Coral Sea Islands"
314+NLSRC_OFFSET "Diego Garcia"
315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)"
317+NLSRC_OFFSET "French Guiana"
318+NLSRC_OFFSET "French Polynesia"
319+NLSRC_OFFSET "French Southern and Antarctic Lands"
321+NLSRC_OFFSET "Guadeloupe"
322+NLSRC_OFFSET "Guam"
323+NLSRC_OFFSET "Guantanamo Bay"
324+NLSRC_OFFSET "Guernsey"
325+NLSRC_OFFSET "Heard Island and McDonald Islands"
326+NLSRC_OFFSET "Howland Island"
327+NLSRC_OFFSET "Jarvis Island"
328+NLSRC_OFFSET "Jersey"
329+NLSRC_OFFSET "Kingman Reef"
330+NLSRC_OFFSET "Martinique"
331+NLSRC_OFFSET "Mayotte"
332+NLSRC_OFFSET "Montserrat"
333+NLSRC_OFFSET "Netherlands Antilles (Former)"
334+NLSRC_OFFSET "New Caledonia"
335+NLSRC_OFFSET "Niue"
336+NLSRC_OFFSET "Norfolk Island"
337+NLSRC_OFFSET "Northern Mariana Islands"
338+NLSRC_OFFSET "Palmyra Atoll"
339+NLSRC_OFFSET "Pitcairn Islands"
340+NLSRC_OFFSET "Rota Island"
341+NLSRC_OFFSET "Saipan"
342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands"
343+NLSRC_OFFSET "St. Helena"
346+NLSRC_OFFSET "Tinian Island"
347+NLSRC_OFFSET "Tokelau"
348+NLSRC_OFFSET "Tristan da Cunha"
349+NLSRC_OFFSET "Turks and Caicos Islands"
351+NLSRC_OFFSET "Virgin Islands, British"
352+NLSRC_OFFSET "Wallis and Futuna"
15126+NLSRC_OFFSET "Man, Isle of"
19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of"
21242+NLSRC_OFFSET "Midway Islands"
30967+NLSRC_OFFSET "Sint Maarten (Dutch part)"
31706+NLSRC_OFFSET "Saint Martin (French part)"
END END

View file

@ -158,4 +158,271 @@ BEGIN
52936 "52936 (HZ-GB2312 Simplified Chinese)" 52936 "52936 (HZ-GB2312 Simplified Chinese)"
54936 "54936 (GB18030 Simplified Chinese)" 54936 "54936 (GB18030 Simplified Chinese)"
/* Locations */
2+NLSRC_OFFSET "Antigua and Barbuda"
3+NLSRC_OFFSET "Afghanistan"
4+NLSRC_OFFSET "Algeria"
5+NLSRC_OFFSET "Azerbaijan"
6+NLSRC_OFFSET "Albania"
7+NLSRC_OFFSET "Armenia"
8+NLSRC_OFFSET "Andorra"
9+NLSRC_OFFSET "Angola"
10+NLSRC_OFFSET "American Samoa"
11+NLSRC_OFFSET "Argentina"
12+NLSRC_OFFSET "Australia"
14+NLSRC_OFFSET "Austria"
17+NLSRC_OFFSET "Bahrain"
18+NLSRC_OFFSET "Barbados"
19+NLSRC_OFFSET "Botswana"
20+NLSRC_OFFSET "Bermuda"
21+NLSRC_OFFSET "Belgium"
22+NLSRC_OFFSET "Bahamas, The"
23+NLSRC_OFFSET "Bangladesh"
24+NLSRC_OFFSET "Belize"
25+NLSRC_OFFSET "Bosnia and Herzegovina"
26+NLSRC_OFFSET "Bolivia"
27+NLSRC_OFFSET "Myanmar"
28+NLSRC_OFFSET "Benin"
29+NLSRC_OFFSET "Belarus"
30+NLSRC_OFFSET "Solomon Islands"
32+NLSRC_OFFSET "Brazil"
34+NLSRC_OFFSET "Bhutan"
35+NLSRC_OFFSET "Bulgaria"
38+NLSRC_OFFSET "Burundi"
39+NLSRC_OFFSET "Canada"
40+NLSRC_OFFSET "Cambodia"
41+NLSRC_OFFSET "Chad"
42+NLSRC_OFFSET "Sri Lanka"
43+NLSRC_OFFSET "Congo"
44+NLSRC_OFFSET "Congo (DRC)"
45+NLSRC_OFFSET "China"
46+NLSRC_OFFSET "Chile"
49+NLSRC_OFFSET "Cameroon"
50+NLSRC_OFFSET "Comoros"
51+NLSRC_OFFSET "Colombia"
54+NLSRC_OFFSET "Costa Rica"
55+NLSRC_OFFSET "Central African Republic"
56+NLSRC_OFFSET "Cuba"
57+NLSRC_OFFSET "Cape Verde"
59+NLSRC_OFFSET "Cyprus"
61+NLSRC_OFFSET "Denmark"
62+NLSRC_OFFSET "Djibouti"
63+NLSRC_OFFSET "Dominica"
65+NLSRC_OFFSET "Dominican Republic"
66+NLSRC_OFFSET "Ecuador"
67+NLSRC_OFFSET "Egypt"
68+NLSRC_OFFSET "Ireland"
69+NLSRC_OFFSET "Equatorial Guinea"
70+NLSRC_OFFSET "Estonia"
71+NLSRC_OFFSET "Eritrea"
72+NLSRC_OFFSET "El Salvador"
73+NLSRC_OFFSET "Ethiopia"
75+NLSRC_OFFSET "Czech Republic"
77+NLSRC_OFFSET "Finland"
78+NLSRC_OFFSET "Fiji Islands"
80+NLSRC_OFFSET "Micronesia"
81+NLSRC_OFFSET "Faroe Islands"
84+NLSRC_OFFSET "France"
86+NLSRC_OFFSET "Gambia, The"
87+NLSRC_OFFSET "Gabon"
88+NLSRC_OFFSET "Georgia"
89+NLSRC_OFFSET "Ghana"
90+NLSRC_OFFSET "Gibraltar"
91+NLSRC_OFFSET "Grenada"
93+NLSRC_OFFSET "Greenland"
94+NLSRC_OFFSET "Germany"
98+NLSRC_OFFSET "Greece"
99+NLSRC_OFFSET "Guatemala"
100+NLSRC_OFFSET "Guinea"
101+NLSRC_OFFSET "Guyana"
103+NLSRC_OFFSET "Haiti"
104+NLSRC_OFFSET "Hong Kong S.A.R."
106+NLSRC_OFFSET "Honduras"
108+NLSRC_OFFSET "Croatia"
109+NLSRC_OFFSET "Hungary"
110+NLSRC_OFFSET "Iceland"
111+NLSRC_OFFSET "Indonesia"
113+NLSRC_OFFSET "India"
114+NLSRC_OFFSET "British Indian Ocean Territory"
116+NLSRC_OFFSET "Iran"
117+NLSRC_OFFSET "Israel"
118+NLSRC_OFFSET "Italy"
119+NLSRC_OFFSET "Côte d'Ivoire"
121+NLSRC_OFFSET "Iraq"
122+NLSRC_OFFSET "Japan"
124+NLSRC_OFFSET "Jamaica"
125+NLSRC_OFFSET "Jan Mayen"
126+NLSRC_OFFSET "Jordan"
127+NLSRC_OFFSET "Johnston Atoll"
129+NLSRC_OFFSET "Kenya"
130+NLSRC_OFFSET "Kyrgyzstan"
131+NLSRC_OFFSET "North Korea"
133+NLSRC_OFFSET "Kiribati"
134+NLSRC_OFFSET "Korea"
136+NLSRC_OFFSET "Kuwait"
137+NLSRC_OFFSET "Kazakhstan"
138+NLSRC_OFFSET "Laos"
139+NLSRC_OFFSET "Lebanon"
140+NLSRC_OFFSET "Latvia"
141+NLSRC_OFFSET "Lithuania"
142+NLSRC_OFFSET "Liberia"
143+NLSRC_OFFSET "Slovakia"
145+NLSRC_OFFSET "Liechtenstein"
146+NLSRC_OFFSET "Lesotho"
147+NLSRC_OFFSET "Luxembourg"
148+NLSRC_OFFSET "Libya"
149+NLSRC_OFFSET "Madagascar"
151+NLSRC_OFFSET "Macao S.A.R."
152+NLSRC_OFFSET "Moldova"
154+NLSRC_OFFSET "Mongolia"
156+NLSRC_OFFSET "Malawi"
157+NLSRC_OFFSET "Mali"
158+NLSRC_OFFSET "Monaco"
159+NLSRC_OFFSET "Morocco"
160+NLSRC_OFFSET "Mauritius"
162+NLSRC_OFFSET "Mauritania"
163+NLSRC_OFFSET "Malta"
164+NLSRC_OFFSET "Oman"
165+NLSRC_OFFSET "Maldives"
166+NLSRC_OFFSET "Mexico"
167+NLSRC_OFFSET "Malaysia"
168+NLSRC_OFFSET "Mozambique"
173+NLSRC_OFFSET "Niger"
174+NLSRC_OFFSET "Vanuatu"
175+NLSRC_OFFSET "Nigeria"
176+NLSRC_OFFSET "Netherlands"
177+NLSRC_OFFSET "Norway"
178+NLSRC_OFFSET "Nepal"
180+NLSRC_OFFSET "Nauru"
181+NLSRC_OFFSET "Suriname"
182+NLSRC_OFFSET "Nicaragua"
183+NLSRC_OFFSET "New Zealand"
184+NLSRC_OFFSET "Palestinian Authority"
185+NLSRC_OFFSET "Paraguay"
187+NLSRC_OFFSET "Peru"
190+NLSRC_OFFSET "Pakistan"
191+NLSRC_OFFSET "Poland"
192+NLSRC_OFFSET "Panama"
193+NLSRC_OFFSET "Portugal"
194+NLSRC_OFFSET "Papua New Guinea"
195+NLSRC_OFFSET "Palau"
196+NLSRC_OFFSET "Guinea-Bissau"
197+NLSRC_OFFSET "Qatar"
198+NLSRC_OFFSET "Reunion"
199+NLSRC_OFFSET "Marshall Islands"
200+NLSRC_OFFSET "Romania"
201+NLSRC_OFFSET "Philippines"
202+NLSRC_OFFSET "Puerto Rico"
203+NLSRC_OFFSET "Russia"
204+NLSRC_OFFSET "Rwanda"
205+NLSRC_OFFSET "Saudi Arabia"
206+NLSRC_OFFSET "St. Pierre and Miquelon"
207+NLSRC_OFFSET "St. Kitts and Nevis"
208+NLSRC_OFFSET "Seychelles"
209+NLSRC_OFFSET "South Africa"
210+NLSRC_OFFSET "Senegal"
212+NLSRC_OFFSET "Slovenia"
213+NLSRC_OFFSET "Sierra Leone"
214+NLSRC_OFFSET "San Marino"
215+NLSRC_OFFSET "Singapore"
216+NLSRC_OFFSET "Somalia"
217+NLSRC_OFFSET "Spain"
218+NLSRC_OFFSET "St. Lucia"
219+NLSRC_OFFSET "Sudan"
220+NLSRC_OFFSET "Svalbard"
221+NLSRC_OFFSET "Sweden"
222+NLSRC_OFFSET "Syria"
223+NLSRC_OFFSET "Switzerland"
224+NLSRC_OFFSET "United Arab Emirates"
225+NLSRC_OFFSET "Trinidad and Tobago"
227+NLSRC_OFFSET "Thailand"
228+NLSRC_OFFSET "Tajikistan"
231+NLSRC_OFFSET "Tonga"
232+NLSRC_OFFSET "Togo"
233+NLSRC_OFFSET "São Tomé and Príncipe"
234+NLSRC_OFFSET "Tunisia"
235+NLSRC_OFFSET "Turkey"
236+NLSRC_OFFSET "Tuvalu"
237+NLSRC_OFFSET "Taiwan"
238+NLSRC_OFFSET "Turkmenistan"
239+NLSRC_OFFSET "Tanzania"
240+NLSRC_OFFSET "Uganda"
241+NLSRC_OFFSET "Ukraine"
242+NLSRC_OFFSET "United Kingdom"
244+NLSRC_OFFSET "United States"
245+NLSRC_OFFSET "Burkina Faso"
246+NLSRC_OFFSET "Uruguay"
247+NLSRC_OFFSET "Uzbekistan"
248+NLSRC_OFFSET "St. Vincent and the Grenadines"
249+NLSRC_OFFSET "Bolivarian Republic of Venezuela"
251+NLSRC_OFFSET "Vietnam"
252+NLSRC_OFFSET "Virgin Islands"
253+NLSRC_OFFSET "Vatican City"
254+NLSRC_OFFSET "Namibia"
257+NLSRC_OFFSET "Western Sahara (disputed)"
258+NLSRC_OFFSET "Wake Island"
259+NLSRC_OFFSET "Samoa"
260+NLSRC_OFFSET "Swaziland"
261+NLSRC_OFFSET "Yemen"
263+NLSRC_OFFSET "Zambia"
264+NLSRC_OFFSET "Zimbabwe"
269+NLSRC_OFFSET "Serbia and Montenegro (Former)"
270+NLSRC_OFFSET "Montenegro"
271+NLSRC_OFFSET "Serbia"
273+NLSRC_OFFSET "Curaçao"
276+NLSRC_OFFSET "South Sudan"
300+NLSRC_OFFSET "Anguilla"
301+NLSRC_OFFSET "Antarctica"
302+NLSRC_OFFSET "Aruba"
303+NLSRC_OFFSET "Ascension Island"
304+NLSRC_OFFSET "Ashmore and Cartier Islands"
305+NLSRC_OFFSET "Baker Island"
306+NLSRC_OFFSET "Bouvet Island"
307+NLSRC_OFFSET "Cayman Islands"
308+NLSRC_OFFSET "Channel Islands"
309+NLSRC_OFFSET "Christmas Island"
310+NLSRC_OFFSET "Clipperton Island"
311+NLSRC_OFFSET "Cocos (Keeling) Islands"
312+NLSRC_OFFSET "Cook Islands"
313+NLSRC_OFFSET "Coral Sea Islands"
314+NLSRC_OFFSET "Diego Garcia"
315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)"
317+NLSRC_OFFSET "French Guiana"
318+NLSRC_OFFSET "French Polynesia"
319+NLSRC_OFFSET "French Southern and Antarctic Lands"
321+NLSRC_OFFSET "Guadeloupe"
322+NLSRC_OFFSET "Guam"
323+NLSRC_OFFSET "Guantanamo Bay"
324+NLSRC_OFFSET "Guernsey"
325+NLSRC_OFFSET "Heard Island and McDonald Islands"
326+NLSRC_OFFSET "Howland Island"
327+NLSRC_OFFSET "Jarvis Island"
328+NLSRC_OFFSET "Jersey"
329+NLSRC_OFFSET "Kingman Reef"
330+NLSRC_OFFSET "Martinique"
331+NLSRC_OFFSET "Mayotte"
332+NLSRC_OFFSET "Montserrat"
333+NLSRC_OFFSET "Netherlands Antilles (Former)"
334+NLSRC_OFFSET "New Caledonia"
335+NLSRC_OFFSET "Niue"
336+NLSRC_OFFSET "Norfolk Island"
337+NLSRC_OFFSET "Northern Mariana Islands"
338+NLSRC_OFFSET "Palmyra Atoll"
339+NLSRC_OFFSET "Pitcairn Islands"
340+NLSRC_OFFSET "Rota Island"
341+NLSRC_OFFSET "Saipan"
342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands"
343+NLSRC_OFFSET "St. Helena"
346+NLSRC_OFFSET "Tinian Island"
347+NLSRC_OFFSET "Tokelau"
348+NLSRC_OFFSET "Tristan da Cunha"
349+NLSRC_OFFSET "Turks and Caicos Islands"
351+NLSRC_OFFSET "Virgin Islands, British"
352+NLSRC_OFFSET "Wallis and Futuna"
15126+NLSRC_OFFSET "Man, Isle of"
19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of"
21242+NLSRC_OFFSET "Midway Islands"
30967+NLSRC_OFFSET "Sint Maarten (Dutch part)"
31706+NLSRC_OFFSET "Saint Martin (French part)"
END END

View file

@ -158,4 +158,271 @@ BEGIN
52936 "52936 (HZ-GB2312 Chino simplificado)" 52936 "52936 (HZ-GB2312 Chino simplificado)"
54936 "54936 (GB18030 Chino simplificado)" 54936 "54936 (GB18030 Chino simplificado)"
/* Locations */
2+NLSRC_OFFSET "Antigua and Barbuda"
3+NLSRC_OFFSET "Afghanistan"
4+NLSRC_OFFSET "Algeria"
5+NLSRC_OFFSET "Azerbaijan"
6+NLSRC_OFFSET "Albania"
7+NLSRC_OFFSET "Armenia"
8+NLSRC_OFFSET "Andorra"
9+NLSRC_OFFSET "Angola"
10+NLSRC_OFFSET "American Samoa"
11+NLSRC_OFFSET "Argentina"
12+NLSRC_OFFSET "Australia"
14+NLSRC_OFFSET "Austria"
17+NLSRC_OFFSET "Bahrain"
18+NLSRC_OFFSET "Barbados"
19+NLSRC_OFFSET "Botswana"
20+NLSRC_OFFSET "Bermuda"
21+NLSRC_OFFSET "Belgium"
22+NLSRC_OFFSET "Bahamas, The"
23+NLSRC_OFFSET "Bangladesh"
24+NLSRC_OFFSET "Belize"
25+NLSRC_OFFSET "Bosnia and Herzegovina"
26+NLSRC_OFFSET "Bolivia"
27+NLSRC_OFFSET "Myanmar"
28+NLSRC_OFFSET "Benin"
29+NLSRC_OFFSET "Belarus"
30+NLSRC_OFFSET "Solomon Islands"
32+NLSRC_OFFSET "Brazil"
34+NLSRC_OFFSET "Bhutan"
35+NLSRC_OFFSET "Bulgaria"
38+NLSRC_OFFSET "Burundi"
39+NLSRC_OFFSET "Canada"
40+NLSRC_OFFSET "Cambodia"
41+NLSRC_OFFSET "Chad"
42+NLSRC_OFFSET "Sri Lanka"
43+NLSRC_OFFSET "Congo"
44+NLSRC_OFFSET "Congo (DRC)"
45+NLSRC_OFFSET "China"
46+NLSRC_OFFSET "Chile"
49+NLSRC_OFFSET "Cameroon"
50+NLSRC_OFFSET "Comoros"
51+NLSRC_OFFSET "Colombia"
54+NLSRC_OFFSET "Costa Rica"
55+NLSRC_OFFSET "Central African Republic"
56+NLSRC_OFFSET "Cuba"
57+NLSRC_OFFSET "Cape Verde"
59+NLSRC_OFFSET "Cyprus"
61+NLSRC_OFFSET "Denmark"
62+NLSRC_OFFSET "Djibouti"
63+NLSRC_OFFSET "Dominica"
65+NLSRC_OFFSET "Dominican Republic"
66+NLSRC_OFFSET "Ecuador"
67+NLSRC_OFFSET "Egypt"
68+NLSRC_OFFSET "Ireland"
69+NLSRC_OFFSET "Equatorial Guinea"
70+NLSRC_OFFSET "Estonia"
71+NLSRC_OFFSET "Eritrea"
72+NLSRC_OFFSET "El Salvador"
73+NLSRC_OFFSET "Ethiopia"
75+NLSRC_OFFSET "Czech Republic"
77+NLSRC_OFFSET "Finland"
78+NLSRC_OFFSET "Fiji Islands"
80+NLSRC_OFFSET "Micronesia"
81+NLSRC_OFFSET "Faroe Islands"
84+NLSRC_OFFSET "France"
86+NLSRC_OFFSET "Gambia, The"
87+NLSRC_OFFSET "Gabon"
88+NLSRC_OFFSET "Georgia"
89+NLSRC_OFFSET "Ghana"
90+NLSRC_OFFSET "Gibraltar"
91+NLSRC_OFFSET "Grenada"
93+NLSRC_OFFSET "Greenland"
94+NLSRC_OFFSET "Germany"
98+NLSRC_OFFSET "Greece"
99+NLSRC_OFFSET "Guatemala"
100+NLSRC_OFFSET "Guinea"
101+NLSRC_OFFSET "Guyana"
103+NLSRC_OFFSET "Haiti"
104+NLSRC_OFFSET "Hong Kong S.A.R."
106+NLSRC_OFFSET "Honduras"
108+NLSRC_OFFSET "Croatia"
109+NLSRC_OFFSET "Hungary"
110+NLSRC_OFFSET "Iceland"
111+NLSRC_OFFSET "Indonesia"
113+NLSRC_OFFSET "India"
114+NLSRC_OFFSET "British Indian Ocean Territory"
116+NLSRC_OFFSET "Iran"
117+NLSRC_OFFSET "Israel"
118+NLSRC_OFFSET "Italy"
119+NLSRC_OFFSET "Côte d'Ivoire"
121+NLSRC_OFFSET "Iraq"
122+NLSRC_OFFSET "Japan"
124+NLSRC_OFFSET "Jamaica"
125+NLSRC_OFFSET "Jan Mayen"
126+NLSRC_OFFSET "Jordan"
127+NLSRC_OFFSET "Johnston Atoll"
129+NLSRC_OFFSET "Kenya"
130+NLSRC_OFFSET "Kyrgyzstan"
131+NLSRC_OFFSET "North Korea"
133+NLSRC_OFFSET "Kiribati"
134+NLSRC_OFFSET "Korea"
136+NLSRC_OFFSET "Kuwait"
137+NLSRC_OFFSET "Kazakhstan"
138+NLSRC_OFFSET "Laos"
139+NLSRC_OFFSET "Lebanon"
140+NLSRC_OFFSET "Latvia"
141+NLSRC_OFFSET "Lithuania"
142+NLSRC_OFFSET "Liberia"
143+NLSRC_OFFSET "Slovakia"
145+NLSRC_OFFSET "Liechtenstein"
146+NLSRC_OFFSET "Lesotho"
147+NLSRC_OFFSET "Luxembourg"
148+NLSRC_OFFSET "Libya"
149+NLSRC_OFFSET "Madagascar"
151+NLSRC_OFFSET "Macao S.A.R."
152+NLSRC_OFFSET "Moldova"
154+NLSRC_OFFSET "Mongolia"
156+NLSRC_OFFSET "Malawi"
157+NLSRC_OFFSET "Mali"
158+NLSRC_OFFSET "Monaco"
159+NLSRC_OFFSET "Morocco"
160+NLSRC_OFFSET "Mauritius"
162+NLSRC_OFFSET "Mauritania"
163+NLSRC_OFFSET "Malta"
164+NLSRC_OFFSET "Oman"
165+NLSRC_OFFSET "Maldives"
166+NLSRC_OFFSET "Mexico"
167+NLSRC_OFFSET "Malaysia"
168+NLSRC_OFFSET "Mozambique"
173+NLSRC_OFFSET "Niger"
174+NLSRC_OFFSET "Vanuatu"
175+NLSRC_OFFSET "Nigeria"
176+NLSRC_OFFSET "Netherlands"
177+NLSRC_OFFSET "Norway"
178+NLSRC_OFFSET "Nepal"
180+NLSRC_OFFSET "Nauru"
181+NLSRC_OFFSET "Suriname"
182+NLSRC_OFFSET "Nicaragua"
183+NLSRC_OFFSET "New Zealand"
184+NLSRC_OFFSET "Palestinian Authority"
185+NLSRC_OFFSET "Paraguay"
187+NLSRC_OFFSET "Peru"
190+NLSRC_OFFSET "Pakistan"
191+NLSRC_OFFSET "Poland"
192+NLSRC_OFFSET "Panama"
193+NLSRC_OFFSET "Portugal"
194+NLSRC_OFFSET "Papua New Guinea"
195+NLSRC_OFFSET "Palau"
196+NLSRC_OFFSET "Guinea-Bissau"
197+NLSRC_OFFSET "Qatar"
198+NLSRC_OFFSET "Reunion"
199+NLSRC_OFFSET "Marshall Islands"
200+NLSRC_OFFSET "Romania"
201+NLSRC_OFFSET "Philippines"
202+NLSRC_OFFSET "Puerto Rico"
203+NLSRC_OFFSET "Russia"
204+NLSRC_OFFSET "Rwanda"
205+NLSRC_OFFSET "Saudi Arabia"
206+NLSRC_OFFSET "St. Pierre and Miquelon"
207+NLSRC_OFFSET "St. Kitts and Nevis"
208+NLSRC_OFFSET "Seychelles"
209+NLSRC_OFFSET "South Africa"
210+NLSRC_OFFSET "Senegal"
212+NLSRC_OFFSET "Slovenia"
213+NLSRC_OFFSET "Sierra Leone"
214+NLSRC_OFFSET "San Marino"
215+NLSRC_OFFSET "Singapore"
216+NLSRC_OFFSET "Somalia"
217+NLSRC_OFFSET "Spain"
218+NLSRC_OFFSET "St. Lucia"
219+NLSRC_OFFSET "Sudan"
220+NLSRC_OFFSET "Svalbard"
221+NLSRC_OFFSET "Sweden"
222+NLSRC_OFFSET "Syria"
223+NLSRC_OFFSET "Switzerland"
224+NLSRC_OFFSET "United Arab Emirates"
225+NLSRC_OFFSET "Trinidad and Tobago"
227+NLSRC_OFFSET "Thailand"
228+NLSRC_OFFSET "Tajikistan"
231+NLSRC_OFFSET "Tonga"
232+NLSRC_OFFSET "Togo"
233+NLSRC_OFFSET "São Tomé and Príncipe"
234+NLSRC_OFFSET "Tunisia"
235+NLSRC_OFFSET "Turkey"
236+NLSRC_OFFSET "Tuvalu"
237+NLSRC_OFFSET "Taiwan"
238+NLSRC_OFFSET "Turkmenistan"
239+NLSRC_OFFSET "Tanzania"
240+NLSRC_OFFSET "Uganda"
241+NLSRC_OFFSET "Ukraine"
242+NLSRC_OFFSET "United Kingdom"
244+NLSRC_OFFSET "United States"
245+NLSRC_OFFSET "Burkina Faso"
246+NLSRC_OFFSET "Uruguay"
247+NLSRC_OFFSET "Uzbekistan"
248+NLSRC_OFFSET "St. Vincent and the Grenadines"
249+NLSRC_OFFSET "Bolivarian Republic of Venezuela"
251+NLSRC_OFFSET "Vietnam"
252+NLSRC_OFFSET "Virgin Islands"
253+NLSRC_OFFSET "Vatican City"
254+NLSRC_OFFSET "Namibia"
257+NLSRC_OFFSET "Western Sahara (disputed)"
258+NLSRC_OFFSET "Wake Island"
259+NLSRC_OFFSET "Samoa"
260+NLSRC_OFFSET "Swaziland"
261+NLSRC_OFFSET "Yemen"
263+NLSRC_OFFSET "Zambia"
264+NLSRC_OFFSET "Zimbabwe"
269+NLSRC_OFFSET "Serbia and Montenegro (Former)"
270+NLSRC_OFFSET "Montenegro"
271+NLSRC_OFFSET "Serbia"
273+NLSRC_OFFSET "Curaçao"
276+NLSRC_OFFSET "South Sudan"
300+NLSRC_OFFSET "Anguilla"
301+NLSRC_OFFSET "Antarctica"
302+NLSRC_OFFSET "Aruba"
303+NLSRC_OFFSET "Ascension Island"
304+NLSRC_OFFSET "Ashmore and Cartier Islands"
305+NLSRC_OFFSET "Baker Island"
306+NLSRC_OFFSET "Bouvet Island"
307+NLSRC_OFFSET "Cayman Islands"
308+NLSRC_OFFSET "Channel Islands"
309+NLSRC_OFFSET "Christmas Island"
310+NLSRC_OFFSET "Clipperton Island"
311+NLSRC_OFFSET "Cocos (Keeling) Islands"
312+NLSRC_OFFSET "Cook Islands"
313+NLSRC_OFFSET "Coral Sea Islands"
314+NLSRC_OFFSET "Diego Garcia"
315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)"
317+NLSRC_OFFSET "French Guiana"
318+NLSRC_OFFSET "French Polynesia"
319+NLSRC_OFFSET "French Southern and Antarctic Lands"
321+NLSRC_OFFSET "Guadeloupe"
322+NLSRC_OFFSET "Guam"
323+NLSRC_OFFSET "Guantanamo Bay"
324+NLSRC_OFFSET "Guernsey"
325+NLSRC_OFFSET "Heard Island and McDonald Islands"
326+NLSRC_OFFSET "Howland Island"
327+NLSRC_OFFSET "Jarvis Island"
328+NLSRC_OFFSET "Jersey"
329+NLSRC_OFFSET "Kingman Reef"
330+NLSRC_OFFSET "Martinique"
331+NLSRC_OFFSET "Mayotte"
332+NLSRC_OFFSET "Montserrat"
333+NLSRC_OFFSET "Netherlands Antilles (Former)"
334+NLSRC_OFFSET "New Caledonia"
335+NLSRC_OFFSET "Niue"
336+NLSRC_OFFSET "Norfolk Island"
337+NLSRC_OFFSET "Northern Mariana Islands"
338+NLSRC_OFFSET "Palmyra Atoll"
339+NLSRC_OFFSET "Pitcairn Islands"
340+NLSRC_OFFSET "Rota Island"
341+NLSRC_OFFSET "Saipan"
342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands"
343+NLSRC_OFFSET "St. Helena"
346+NLSRC_OFFSET "Tinian Island"
347+NLSRC_OFFSET "Tokelau"
348+NLSRC_OFFSET "Tristan da Cunha"
349+NLSRC_OFFSET "Turks and Caicos Islands"
351+NLSRC_OFFSET "Virgin Islands, British"
352+NLSRC_OFFSET "Wallis and Futuna"
15126+NLSRC_OFFSET "Man, Isle of"
19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of"
21242+NLSRC_OFFSET "Midway Islands"
30967+NLSRC_OFFSET "Sint Maarten (Dutch part)"
31706+NLSRC_OFFSET "Saint Martin (French part)"
END END

View file

@ -158,4 +158,271 @@ BEGIN
52936 "52936 (HZ-GB2312 Simplified Chinese)" 52936 "52936 (HZ-GB2312 Simplified Chinese)"
54936 "54936 (GB18030 Simplified Chinese)" 54936 "54936 (GB18030 Simplified Chinese)"
/* Locations */
2+NLSRC_OFFSET "Antigua and Barbuda"
3+NLSRC_OFFSET "Afghanistan"
4+NLSRC_OFFSET "Algeria"
5+NLSRC_OFFSET "Azerbaijan"
6+NLSRC_OFFSET "Albania"
7+NLSRC_OFFSET "Armenia"
8+NLSRC_OFFSET "Andorra"
9+NLSRC_OFFSET "Angola"
10+NLSRC_OFFSET "American Samoa"
11+NLSRC_OFFSET "Argentina"
12+NLSRC_OFFSET "Australia"
14+NLSRC_OFFSET "Austria"
17+NLSRC_OFFSET "Bahrain"
18+NLSRC_OFFSET "Barbados"
19+NLSRC_OFFSET "Botswana"
20+NLSRC_OFFSET "Bermuda"
21+NLSRC_OFFSET "Belgium"
22+NLSRC_OFFSET "Bahamas, The"
23+NLSRC_OFFSET "Bangladesh"
24+NLSRC_OFFSET "Belize"
25+NLSRC_OFFSET "Bosnia and Herzegovina"
26+NLSRC_OFFSET "Bolivia"
27+NLSRC_OFFSET "Myanmar"
28+NLSRC_OFFSET "Benin"
29+NLSRC_OFFSET "Belarus"
30+NLSRC_OFFSET "Solomon Islands"
32+NLSRC_OFFSET "Brazil"
34+NLSRC_OFFSET "Bhutan"
35+NLSRC_OFFSET "Bulgaria"
38+NLSRC_OFFSET "Burundi"
39+NLSRC_OFFSET "Canada"
40+NLSRC_OFFSET "Cambodia"
41+NLSRC_OFFSET "Chad"
42+NLSRC_OFFSET "Sri Lanka"
43+NLSRC_OFFSET "Congo"
44+NLSRC_OFFSET "Congo (DRC)"
45+NLSRC_OFFSET "China"
46+NLSRC_OFFSET "Chile"
49+NLSRC_OFFSET "Cameroon"
50+NLSRC_OFFSET "Comoros"
51+NLSRC_OFFSET "Colombia"
54+NLSRC_OFFSET "Costa Rica"
55+NLSRC_OFFSET "Central African Republic"
56+NLSRC_OFFSET "Cuba"
57+NLSRC_OFFSET "Cape Verde"
59+NLSRC_OFFSET "Cyprus"
61+NLSRC_OFFSET "Denmark"
62+NLSRC_OFFSET "Djibouti"
63+NLSRC_OFFSET "Dominica"
65+NLSRC_OFFSET "Dominican Republic"
66+NLSRC_OFFSET "Ecuador"
67+NLSRC_OFFSET "Egypt"
68+NLSRC_OFFSET "Ireland"
69+NLSRC_OFFSET "Equatorial Guinea"
70+NLSRC_OFFSET "Estonia"
71+NLSRC_OFFSET "Eritrea"
72+NLSRC_OFFSET "El Salvador"
73+NLSRC_OFFSET "Ethiopia"
75+NLSRC_OFFSET "Czech Republic"
77+NLSRC_OFFSET "Finland"
78+NLSRC_OFFSET "Fiji Islands"
80+NLSRC_OFFSET "Micronesia"
81+NLSRC_OFFSET "Faroe Islands"
84+NLSRC_OFFSET "France"
86+NLSRC_OFFSET "Gambia, The"
87+NLSRC_OFFSET "Gabon"
88+NLSRC_OFFSET "Georgia"
89+NLSRC_OFFSET "Ghana"
90+NLSRC_OFFSET "Gibraltar"
91+NLSRC_OFFSET "Grenada"
93+NLSRC_OFFSET "Greenland"
94+NLSRC_OFFSET "Germany"
98+NLSRC_OFFSET "Greece"
99+NLSRC_OFFSET "Guatemala"
100+NLSRC_OFFSET "Guinea"
101+NLSRC_OFFSET "Guyana"
103+NLSRC_OFFSET "Haiti"
104+NLSRC_OFFSET "Hong Kong S.A.R."
106+NLSRC_OFFSET "Honduras"
108+NLSRC_OFFSET "Croatia"
109+NLSRC_OFFSET "Hungary"
110+NLSRC_OFFSET "Iceland"
111+NLSRC_OFFSET "Indonesia"
113+NLSRC_OFFSET "India"
114+NLSRC_OFFSET "British Indian Ocean Territory"
116+NLSRC_OFFSET "Iran"
117+NLSRC_OFFSET "Israel"
118+NLSRC_OFFSET "Italy"
119+NLSRC_OFFSET "Côte d'Ivoire"
121+NLSRC_OFFSET "Iraq"
122+NLSRC_OFFSET "Japan"
124+NLSRC_OFFSET "Jamaica"
125+NLSRC_OFFSET "Jan Mayen"
126+NLSRC_OFFSET "Jordan"
127+NLSRC_OFFSET "Johnston Atoll"
129+NLSRC_OFFSET "Kenya"
130+NLSRC_OFFSET "Kyrgyzstan"
131+NLSRC_OFFSET "North Korea"
133+NLSRC_OFFSET "Kiribati"
134+NLSRC_OFFSET "Korea"
136+NLSRC_OFFSET "Kuwait"
137+NLSRC_OFFSET "Kazakhstan"
138+NLSRC_OFFSET "Laos"
139+NLSRC_OFFSET "Lebanon"
140+NLSRC_OFFSET "Latvia"
141+NLSRC_OFFSET "Lithuania"
142+NLSRC_OFFSET "Liberia"
143+NLSRC_OFFSET "Slovakia"
145+NLSRC_OFFSET "Liechtenstein"
146+NLSRC_OFFSET "Lesotho"
147+NLSRC_OFFSET "Luxembourg"
148+NLSRC_OFFSET "Libya"
149+NLSRC_OFFSET "Madagascar"
151+NLSRC_OFFSET "Macao S.A.R."
152+NLSRC_OFFSET "Moldova"
154+NLSRC_OFFSET "Mongolia"
156+NLSRC_OFFSET "Malawi"
157+NLSRC_OFFSET "Mali"
158+NLSRC_OFFSET "Monaco"
159+NLSRC_OFFSET "Morocco"
160+NLSRC_OFFSET "Mauritius"
162+NLSRC_OFFSET "Mauritania"
163+NLSRC_OFFSET "Malta"
164+NLSRC_OFFSET "Oman"
165+NLSRC_OFFSET "Maldives"
166+NLSRC_OFFSET "Mexico"
167+NLSRC_OFFSET "Malaysia"
168+NLSRC_OFFSET "Mozambique"
173+NLSRC_OFFSET "Niger"
174+NLSRC_OFFSET "Vanuatu"
175+NLSRC_OFFSET "Nigeria"
176+NLSRC_OFFSET "Netherlands"
177+NLSRC_OFFSET "Norway"
178+NLSRC_OFFSET "Nepal"
180+NLSRC_OFFSET "Nauru"
181+NLSRC_OFFSET "Suriname"
182+NLSRC_OFFSET "Nicaragua"
183+NLSRC_OFFSET "New Zealand"
184+NLSRC_OFFSET "Palestinian Authority"
185+NLSRC_OFFSET "Paraguay"
187+NLSRC_OFFSET "Peru"
190+NLSRC_OFFSET "Pakistan"
191+NLSRC_OFFSET "Poland"
192+NLSRC_OFFSET "Panama"
193+NLSRC_OFFSET "Portugal"
194+NLSRC_OFFSET "Papua New Guinea"
195+NLSRC_OFFSET "Palau"
196+NLSRC_OFFSET "Guinea-Bissau"
197+NLSRC_OFFSET "Qatar"
198+NLSRC_OFFSET "Reunion"
199+NLSRC_OFFSET "Marshall Islands"
200+NLSRC_OFFSET "Romania"
201+NLSRC_OFFSET "Philippines"
202+NLSRC_OFFSET "Puerto Rico"
203+NLSRC_OFFSET "Russia"
204+NLSRC_OFFSET "Rwanda"
205+NLSRC_OFFSET "Saudi Arabia"
206+NLSRC_OFFSET "St. Pierre and Miquelon"
207+NLSRC_OFFSET "St. Kitts and Nevis"
208+NLSRC_OFFSET "Seychelles"
209+NLSRC_OFFSET "South Africa"
210+NLSRC_OFFSET "Senegal"
212+NLSRC_OFFSET "Slovenia"
213+NLSRC_OFFSET "Sierra Leone"
214+NLSRC_OFFSET "San Marino"
215+NLSRC_OFFSET "Singapore"
216+NLSRC_OFFSET "Somalia"
217+NLSRC_OFFSET "Spain"
218+NLSRC_OFFSET "St. Lucia"
219+NLSRC_OFFSET "Sudan"
220+NLSRC_OFFSET "Svalbard"
221+NLSRC_OFFSET "Sweden"
222+NLSRC_OFFSET "Syria"
223+NLSRC_OFFSET "Switzerland"
224+NLSRC_OFFSET "United Arab Emirates"
225+NLSRC_OFFSET "Trinidad and Tobago"
227+NLSRC_OFFSET "Thailand"
228+NLSRC_OFFSET "Tajikistan"
231+NLSRC_OFFSET "Tonga"
232+NLSRC_OFFSET "Togo"
233+NLSRC_OFFSET "São Tomé and Príncipe"
234+NLSRC_OFFSET "Tunisia"
235+NLSRC_OFFSET "Turkey"
236+NLSRC_OFFSET "Tuvalu"
237+NLSRC_OFFSET "Taiwan"
238+NLSRC_OFFSET "Turkmenistan"
239+NLSRC_OFFSET "Tanzania"
240+NLSRC_OFFSET "Uganda"
241+NLSRC_OFFSET "Ukraine"
242+NLSRC_OFFSET "United Kingdom"
244+NLSRC_OFFSET "United States"
245+NLSRC_OFFSET "Burkina Faso"
246+NLSRC_OFFSET "Uruguay"
247+NLSRC_OFFSET "Uzbekistan"
248+NLSRC_OFFSET "St. Vincent and the Grenadines"
249+NLSRC_OFFSET "Bolivarian Republic of Venezuela"
251+NLSRC_OFFSET "Vietnam"
252+NLSRC_OFFSET "Virgin Islands"
253+NLSRC_OFFSET "Vatican City"
254+NLSRC_OFFSET "Namibia"
257+NLSRC_OFFSET "Western Sahara (disputed)"
258+NLSRC_OFFSET "Wake Island"
259+NLSRC_OFFSET "Samoa"
260+NLSRC_OFFSET "Swaziland"
261+NLSRC_OFFSET "Yemen"
263+NLSRC_OFFSET "Zambia"
264+NLSRC_OFFSET "Zimbabwe"
269+NLSRC_OFFSET "Serbia and Montenegro (Former)"
270+NLSRC_OFFSET "Montenegro"
271+NLSRC_OFFSET "Serbia"
273+NLSRC_OFFSET "Curaçao"
276+NLSRC_OFFSET "South Sudan"
300+NLSRC_OFFSET "Anguilla"
301+NLSRC_OFFSET "Antarctica"
302+NLSRC_OFFSET "Aruba"
303+NLSRC_OFFSET "Ascension Island"
304+NLSRC_OFFSET "Ashmore and Cartier Islands"
305+NLSRC_OFFSET "Baker Island"
306+NLSRC_OFFSET "Bouvet Island"
307+NLSRC_OFFSET "Cayman Islands"
308+NLSRC_OFFSET "Channel Islands"
309+NLSRC_OFFSET "Christmas Island"
310+NLSRC_OFFSET "Clipperton Island"
311+NLSRC_OFFSET "Cocos (Keeling) Islands"
312+NLSRC_OFFSET "Cook Islands"
313+NLSRC_OFFSET "Coral Sea Islands"
314+NLSRC_OFFSET "Diego Garcia"
315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)"
317+NLSRC_OFFSET "French Guiana"
318+NLSRC_OFFSET "French Polynesia"
319+NLSRC_OFFSET "French Southern and Antarctic Lands"
321+NLSRC_OFFSET "Guadeloupe"
322+NLSRC_OFFSET "Guam"
323+NLSRC_OFFSET "Guantanamo Bay"
324+NLSRC_OFFSET "Guernsey"
325+NLSRC_OFFSET "Heard Island and McDonald Islands"
326+NLSRC_OFFSET "Howland Island"
327+NLSRC_OFFSET "Jarvis Island"
328+NLSRC_OFFSET "Jersey"
329+NLSRC_OFFSET "Kingman Reef"
330+NLSRC_OFFSET "Martinique"
331+NLSRC_OFFSET "Mayotte"
332+NLSRC_OFFSET "Montserrat"
333+NLSRC_OFFSET "Netherlands Antilles (Former)"
334+NLSRC_OFFSET "New Caledonia"
335+NLSRC_OFFSET "Niue"
336+NLSRC_OFFSET "Norfolk Island"
337+NLSRC_OFFSET "Northern Mariana Islands"
338+NLSRC_OFFSET "Palmyra Atoll"
339+NLSRC_OFFSET "Pitcairn Islands"
340+NLSRC_OFFSET "Rota Island"
341+NLSRC_OFFSET "Saipan"
342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands"
343+NLSRC_OFFSET "St. Helena"
346+NLSRC_OFFSET "Tinian Island"
347+NLSRC_OFFSET "Tokelau"
348+NLSRC_OFFSET "Tristan da Cunha"
349+NLSRC_OFFSET "Turks and Caicos Islands"
351+NLSRC_OFFSET "Virgin Islands, British"
352+NLSRC_OFFSET "Wallis and Futuna"
15126+NLSRC_OFFSET "Man, Isle of"
19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of"
21242+NLSRC_OFFSET "Midway Islands"
30967+NLSRC_OFFSET "Sint Maarten (Dutch part)"
31706+NLSRC_OFFSET "Saint Martin (French part)"
END END

View file

@ -160,4 +160,271 @@ BEGIN
52936 "52936 (HZ-GB2312 chinezesc simplificat)" 52936 "52936 (HZ-GB2312 chinezesc simplificat)"
54936 "54936 (GB18030 chinezesc simplificat)" 54936 "54936 (GB18030 chinezesc simplificat)"
/* Locations */
2+NLSRC_OFFSET "Antigua and Barbuda"
3+NLSRC_OFFSET "Afghanistan"
4+NLSRC_OFFSET "Algeria"
5+NLSRC_OFFSET "Azerbaijan"
6+NLSRC_OFFSET "Albania"
7+NLSRC_OFFSET "Armenia"
8+NLSRC_OFFSET "Andorra"
9+NLSRC_OFFSET "Angola"
10+NLSRC_OFFSET "American Samoa"
11+NLSRC_OFFSET "Argentina"
12+NLSRC_OFFSET "Australia"
14+NLSRC_OFFSET "Austria"
17+NLSRC_OFFSET "Bahrain"
18+NLSRC_OFFSET "Barbados"
19+NLSRC_OFFSET "Botswana"
20+NLSRC_OFFSET "Bermuda"
21+NLSRC_OFFSET "Belgium"
22+NLSRC_OFFSET "Bahamas, The"
23+NLSRC_OFFSET "Bangladesh"
24+NLSRC_OFFSET "Belize"
25+NLSRC_OFFSET "Bosnia and Herzegovina"
26+NLSRC_OFFSET "Bolivia"
27+NLSRC_OFFSET "Myanmar"
28+NLSRC_OFFSET "Benin"
29+NLSRC_OFFSET "Belarus"
30+NLSRC_OFFSET "Solomon Islands"
32+NLSRC_OFFSET "Brazil"
34+NLSRC_OFFSET "Bhutan"
35+NLSRC_OFFSET "Bulgaria"
38+NLSRC_OFFSET "Burundi"
39+NLSRC_OFFSET "Canada"
40+NLSRC_OFFSET "Cambodia"
41+NLSRC_OFFSET "Chad"
42+NLSRC_OFFSET "Sri Lanka"
43+NLSRC_OFFSET "Congo"
44+NLSRC_OFFSET "Congo (DRC)"
45+NLSRC_OFFSET "China"
46+NLSRC_OFFSET "Chile"
49+NLSRC_OFFSET "Cameroon"
50+NLSRC_OFFSET "Comoros"
51+NLSRC_OFFSET "Colombia"
54+NLSRC_OFFSET "Costa Rica"
55+NLSRC_OFFSET "Central African Republic"
56+NLSRC_OFFSET "Cuba"
57+NLSRC_OFFSET "Cape Verde"
59+NLSRC_OFFSET "Cyprus"
61+NLSRC_OFFSET "Denmark"
62+NLSRC_OFFSET "Djibouti"
63+NLSRC_OFFSET "Dominica"
65+NLSRC_OFFSET "Dominican Republic"
66+NLSRC_OFFSET "Ecuador"
67+NLSRC_OFFSET "Egypt"
68+NLSRC_OFFSET "Ireland"
69+NLSRC_OFFSET "Equatorial Guinea"
70+NLSRC_OFFSET "Estonia"
71+NLSRC_OFFSET "Eritrea"
72+NLSRC_OFFSET "El Salvador"
73+NLSRC_OFFSET "Ethiopia"
75+NLSRC_OFFSET "Czech Republic"
77+NLSRC_OFFSET "Finland"
78+NLSRC_OFFSET "Fiji Islands"
80+NLSRC_OFFSET "Micronesia"
81+NLSRC_OFFSET "Faroe Islands"
84+NLSRC_OFFSET "France"
86+NLSRC_OFFSET "Gambia, The"
87+NLSRC_OFFSET "Gabon"
88+NLSRC_OFFSET "Georgia"
89+NLSRC_OFFSET "Ghana"
90+NLSRC_OFFSET "Gibraltar"
91+NLSRC_OFFSET "Grenada"
93+NLSRC_OFFSET "Greenland"
94+NLSRC_OFFSET "Germany"
98+NLSRC_OFFSET "Greece"
99+NLSRC_OFFSET "Guatemala"
100+NLSRC_OFFSET "Guinea"
101+NLSRC_OFFSET "Guyana"
103+NLSRC_OFFSET "Haiti"
104+NLSRC_OFFSET "Hong Kong S.A.R."
106+NLSRC_OFFSET "Honduras"
108+NLSRC_OFFSET "Croatia"
109+NLSRC_OFFSET "Hungary"
110+NLSRC_OFFSET "Iceland"
111+NLSRC_OFFSET "Indonesia"
113+NLSRC_OFFSET "India"
114+NLSRC_OFFSET "British Indian Ocean Territory"
116+NLSRC_OFFSET "Iran"
117+NLSRC_OFFSET "Israel"
118+NLSRC_OFFSET "Italy"
119+NLSRC_OFFSET "Côte d'Ivoire"
121+NLSRC_OFFSET "Iraq"
122+NLSRC_OFFSET "Japan"
124+NLSRC_OFFSET "Jamaica"
125+NLSRC_OFFSET "Jan Mayen"
126+NLSRC_OFFSET "Jordan"
127+NLSRC_OFFSET "Johnston Atoll"
129+NLSRC_OFFSET "Kenya"
130+NLSRC_OFFSET "Kyrgyzstan"
131+NLSRC_OFFSET "North Korea"
133+NLSRC_OFFSET "Kiribati"
134+NLSRC_OFFSET "Korea"
136+NLSRC_OFFSET "Kuwait"
137+NLSRC_OFFSET "Kazakhstan"
138+NLSRC_OFFSET "Laos"
139+NLSRC_OFFSET "Lebanon"
140+NLSRC_OFFSET "Latvia"
141+NLSRC_OFFSET "Lithuania"
142+NLSRC_OFFSET "Liberia"
143+NLSRC_OFFSET "Slovakia"
145+NLSRC_OFFSET "Liechtenstein"
146+NLSRC_OFFSET "Lesotho"
147+NLSRC_OFFSET "Luxembourg"
148+NLSRC_OFFSET "Libya"
149+NLSRC_OFFSET "Madagascar"
151+NLSRC_OFFSET "Macao S.A.R."
152+NLSRC_OFFSET "Moldova"
154+NLSRC_OFFSET "Mongolia"
156+NLSRC_OFFSET "Malawi"
157+NLSRC_OFFSET "Mali"
158+NLSRC_OFFSET "Monaco"
159+NLSRC_OFFSET "Morocco"
160+NLSRC_OFFSET "Mauritius"
162+NLSRC_OFFSET "Mauritania"
163+NLSRC_OFFSET "Malta"
164+NLSRC_OFFSET "Oman"
165+NLSRC_OFFSET "Maldives"
166+NLSRC_OFFSET "Mexico"
167+NLSRC_OFFSET "Malaysia"
168+NLSRC_OFFSET "Mozambique"
173+NLSRC_OFFSET "Niger"
174+NLSRC_OFFSET "Vanuatu"
175+NLSRC_OFFSET "Nigeria"
176+NLSRC_OFFSET "Netherlands"
177+NLSRC_OFFSET "Norway"
178+NLSRC_OFFSET "Nepal"
180+NLSRC_OFFSET "Nauru"
181+NLSRC_OFFSET "Suriname"
182+NLSRC_OFFSET "Nicaragua"
183+NLSRC_OFFSET "New Zealand"
184+NLSRC_OFFSET "Palestinian Authority"
185+NLSRC_OFFSET "Paraguay"
187+NLSRC_OFFSET "Peru"
190+NLSRC_OFFSET "Pakistan"
191+NLSRC_OFFSET "Poland"
192+NLSRC_OFFSET "Panama"
193+NLSRC_OFFSET "Portugal"
194+NLSRC_OFFSET "Papua New Guinea"
195+NLSRC_OFFSET "Palau"
196+NLSRC_OFFSET "Guinea-Bissau"
197+NLSRC_OFFSET "Qatar"
198+NLSRC_OFFSET "Reunion"
199+NLSRC_OFFSET "Marshall Islands"
200+NLSRC_OFFSET "Romania"
201+NLSRC_OFFSET "Philippines"
202+NLSRC_OFFSET "Puerto Rico"
203+NLSRC_OFFSET "Russia"
204+NLSRC_OFFSET "Rwanda"
205+NLSRC_OFFSET "Saudi Arabia"
206+NLSRC_OFFSET "St. Pierre and Miquelon"
207+NLSRC_OFFSET "St. Kitts and Nevis"
208+NLSRC_OFFSET "Seychelles"
209+NLSRC_OFFSET "South Africa"
210+NLSRC_OFFSET "Senegal"
212+NLSRC_OFFSET "Slovenia"
213+NLSRC_OFFSET "Sierra Leone"
214+NLSRC_OFFSET "San Marino"
215+NLSRC_OFFSET "Singapore"
216+NLSRC_OFFSET "Somalia"
217+NLSRC_OFFSET "Spain"
218+NLSRC_OFFSET "St. Lucia"
219+NLSRC_OFFSET "Sudan"
220+NLSRC_OFFSET "Svalbard"
221+NLSRC_OFFSET "Sweden"
222+NLSRC_OFFSET "Syria"
223+NLSRC_OFFSET "Switzerland"
224+NLSRC_OFFSET "United Arab Emirates"
225+NLSRC_OFFSET "Trinidad and Tobago"
227+NLSRC_OFFSET "Thailand"
228+NLSRC_OFFSET "Tajikistan"
231+NLSRC_OFFSET "Tonga"
232+NLSRC_OFFSET "Togo"
233+NLSRC_OFFSET "São Tomé and Príncipe"
234+NLSRC_OFFSET "Tunisia"
235+NLSRC_OFFSET "Turkey"
236+NLSRC_OFFSET "Tuvalu"
237+NLSRC_OFFSET "Taiwan"
238+NLSRC_OFFSET "Turkmenistan"
239+NLSRC_OFFSET "Tanzania"
240+NLSRC_OFFSET "Uganda"
241+NLSRC_OFFSET "Ukraine"
242+NLSRC_OFFSET "United Kingdom"
244+NLSRC_OFFSET "United States"
245+NLSRC_OFFSET "Burkina Faso"
246+NLSRC_OFFSET "Uruguay"
247+NLSRC_OFFSET "Uzbekistan"
248+NLSRC_OFFSET "St. Vincent and the Grenadines"
249+NLSRC_OFFSET "Bolivarian Republic of Venezuela"
251+NLSRC_OFFSET "Vietnam"
252+NLSRC_OFFSET "Virgin Islands"
253+NLSRC_OFFSET "Vatican City"
254+NLSRC_OFFSET "Namibia"
257+NLSRC_OFFSET "Western Sahara (disputed)"
258+NLSRC_OFFSET "Wake Island"
259+NLSRC_OFFSET "Samoa"
260+NLSRC_OFFSET "Swaziland"
261+NLSRC_OFFSET "Yemen"
263+NLSRC_OFFSET "Zambia"
264+NLSRC_OFFSET "Zimbabwe"
269+NLSRC_OFFSET "Serbia and Montenegro (Former)"
270+NLSRC_OFFSET "Montenegro"
271+NLSRC_OFFSET "Serbia"
273+NLSRC_OFFSET "Curaçao"
276+NLSRC_OFFSET "South Sudan"
300+NLSRC_OFFSET "Anguilla"
301+NLSRC_OFFSET "Antarctica"
302+NLSRC_OFFSET "Aruba"
303+NLSRC_OFFSET "Ascension Island"
304+NLSRC_OFFSET "Ashmore and Cartier Islands"
305+NLSRC_OFFSET "Baker Island"
306+NLSRC_OFFSET "Bouvet Island"
307+NLSRC_OFFSET "Cayman Islands"
308+NLSRC_OFFSET "Channel Islands"
309+NLSRC_OFFSET "Christmas Island"
310+NLSRC_OFFSET "Clipperton Island"
311+NLSRC_OFFSET "Cocos (Keeling) Islands"
312+NLSRC_OFFSET "Cook Islands"
313+NLSRC_OFFSET "Coral Sea Islands"
314+NLSRC_OFFSET "Diego Garcia"
315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)"
317+NLSRC_OFFSET "French Guiana"
318+NLSRC_OFFSET "French Polynesia"
319+NLSRC_OFFSET "French Southern and Antarctic Lands"
321+NLSRC_OFFSET "Guadeloupe"
322+NLSRC_OFFSET "Guam"
323+NLSRC_OFFSET "Guantanamo Bay"
324+NLSRC_OFFSET "Guernsey"
325+NLSRC_OFFSET "Heard Island and McDonald Islands"
326+NLSRC_OFFSET "Howland Island"
327+NLSRC_OFFSET "Jarvis Island"
328+NLSRC_OFFSET "Jersey"
329+NLSRC_OFFSET "Kingman Reef"
330+NLSRC_OFFSET "Martinique"
331+NLSRC_OFFSET "Mayotte"
332+NLSRC_OFFSET "Montserrat"
333+NLSRC_OFFSET "Netherlands Antilles (Former)"
334+NLSRC_OFFSET "New Caledonia"
335+NLSRC_OFFSET "Niue"
336+NLSRC_OFFSET "Norfolk Island"
337+NLSRC_OFFSET "Northern Mariana Islands"
338+NLSRC_OFFSET "Palmyra Atoll"
339+NLSRC_OFFSET "Pitcairn Islands"
340+NLSRC_OFFSET "Rota Island"
341+NLSRC_OFFSET "Saipan"
342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands"
343+NLSRC_OFFSET "St. Helena"
346+NLSRC_OFFSET "Tinian Island"
347+NLSRC_OFFSET "Tokelau"
348+NLSRC_OFFSET "Tristan da Cunha"
349+NLSRC_OFFSET "Turks and Caicos Islands"
351+NLSRC_OFFSET "Virgin Islands, British"
352+NLSRC_OFFSET "Wallis and Futuna"
15126+NLSRC_OFFSET "Man, Isle of"
19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of"
21242+NLSRC_OFFSET "Midway Islands"
30967+NLSRC_OFFSET "Sint Maarten (Dutch part)"
31706+NLSRC_OFFSET "Saint Martin (French part)"
END END

View file

@ -158,4 +158,271 @@ BEGIN
52936 "52936 (HZ-GB2312 китайская упрощенная)" 52936 "52936 (HZ-GB2312 китайская упрощенная)"
54936 "54936 (GB18030 китайская упрощенная)" 54936 "54936 (GB18030 китайская упрощенная)"
/* Locations */
2+NLSRC_OFFSET "Antigua and Barbuda"
3+NLSRC_OFFSET "Afghanistan"
4+NLSRC_OFFSET "Algeria"
5+NLSRC_OFFSET "Azerbaijan"
6+NLSRC_OFFSET "Albania"
7+NLSRC_OFFSET "Armenia"
8+NLSRC_OFFSET "Andorra"
9+NLSRC_OFFSET "Angola"
10+NLSRC_OFFSET "American Samoa"
11+NLSRC_OFFSET "Argentina"
12+NLSRC_OFFSET "Australia"
14+NLSRC_OFFSET "Austria"
17+NLSRC_OFFSET "Bahrain"
18+NLSRC_OFFSET "Barbados"
19+NLSRC_OFFSET "Botswana"
20+NLSRC_OFFSET "Bermuda"
21+NLSRC_OFFSET "Belgium"
22+NLSRC_OFFSET "Bahamas, The"
23+NLSRC_OFFSET "Bangladesh"
24+NLSRC_OFFSET "Belize"
25+NLSRC_OFFSET "Bosnia and Herzegovina"
26+NLSRC_OFFSET "Bolivia"
27+NLSRC_OFFSET "Myanmar"
28+NLSRC_OFFSET "Benin"
29+NLSRC_OFFSET "Belarus"
30+NLSRC_OFFSET "Solomon Islands"
32+NLSRC_OFFSET "Brazil"
34+NLSRC_OFFSET "Bhutan"
35+NLSRC_OFFSET "Bulgaria"
38+NLSRC_OFFSET "Burundi"
39+NLSRC_OFFSET "Canada"
40+NLSRC_OFFSET "Cambodia"
41+NLSRC_OFFSET "Chad"
42+NLSRC_OFFSET "Sri Lanka"
43+NLSRC_OFFSET "Congo"
44+NLSRC_OFFSET "Congo (DRC)"
45+NLSRC_OFFSET "China"
46+NLSRC_OFFSET "Chile"
49+NLSRC_OFFSET "Cameroon"
50+NLSRC_OFFSET "Comoros"
51+NLSRC_OFFSET "Colombia"
54+NLSRC_OFFSET "Costa Rica"
55+NLSRC_OFFSET "Central African Republic"
56+NLSRC_OFFSET "Cuba"
57+NLSRC_OFFSET "Cape Verde"
59+NLSRC_OFFSET "Cyprus"
61+NLSRC_OFFSET "Denmark"
62+NLSRC_OFFSET "Djibouti"
63+NLSRC_OFFSET "Dominica"
65+NLSRC_OFFSET "Dominican Republic"
66+NLSRC_OFFSET "Ecuador"
67+NLSRC_OFFSET "Egypt"
68+NLSRC_OFFSET "Ireland"
69+NLSRC_OFFSET "Equatorial Guinea"
70+NLSRC_OFFSET "Estonia"
71+NLSRC_OFFSET "Eritrea"
72+NLSRC_OFFSET "El Salvador"
73+NLSRC_OFFSET "Ethiopia"
75+NLSRC_OFFSET "Czech Republic"
77+NLSRC_OFFSET "Finland"
78+NLSRC_OFFSET "Fiji Islands"
80+NLSRC_OFFSET "Micronesia"
81+NLSRC_OFFSET "Faroe Islands"
84+NLSRC_OFFSET "France"
86+NLSRC_OFFSET "Gambia, The"
87+NLSRC_OFFSET "Gabon"
88+NLSRC_OFFSET "Georgia"
89+NLSRC_OFFSET "Ghana"
90+NLSRC_OFFSET "Gibraltar"
91+NLSRC_OFFSET "Grenada"
93+NLSRC_OFFSET "Greenland"
94+NLSRC_OFFSET "Germany"
98+NLSRC_OFFSET "Greece"
99+NLSRC_OFFSET "Guatemala"
100+NLSRC_OFFSET "Guinea"
101+NLSRC_OFFSET "Guyana"
103+NLSRC_OFFSET "Haiti"
104+NLSRC_OFFSET "Hong Kong S.A.R."
106+NLSRC_OFFSET "Honduras"
108+NLSRC_OFFSET "Croatia"
109+NLSRC_OFFSET "Hungary"
110+NLSRC_OFFSET "Iceland"
111+NLSRC_OFFSET "Indonesia"
113+NLSRC_OFFSET "India"
114+NLSRC_OFFSET "British Indian Ocean Territory"
116+NLSRC_OFFSET "Iran"
117+NLSRC_OFFSET "Israel"
118+NLSRC_OFFSET "Italy"
119+NLSRC_OFFSET "Côte d'Ivoire"
121+NLSRC_OFFSET "Iraq"
122+NLSRC_OFFSET "Japan"
124+NLSRC_OFFSET "Jamaica"
125+NLSRC_OFFSET "Jan Mayen"
126+NLSRC_OFFSET "Jordan"
127+NLSRC_OFFSET "Johnston Atoll"
129+NLSRC_OFFSET "Kenya"
130+NLSRC_OFFSET "Kyrgyzstan"
131+NLSRC_OFFSET "North Korea"
133+NLSRC_OFFSET "Kiribati"
134+NLSRC_OFFSET "Korea"
136+NLSRC_OFFSET "Kuwait"
137+NLSRC_OFFSET "Kazakhstan"
138+NLSRC_OFFSET "Laos"
139+NLSRC_OFFSET "Lebanon"
140+NLSRC_OFFSET "Latvia"
141+NLSRC_OFFSET "Lithuania"
142+NLSRC_OFFSET "Liberia"
143+NLSRC_OFFSET "Slovakia"
145+NLSRC_OFFSET "Liechtenstein"
146+NLSRC_OFFSET "Lesotho"
147+NLSRC_OFFSET "Luxembourg"
148+NLSRC_OFFSET "Libya"
149+NLSRC_OFFSET "Madagascar"
151+NLSRC_OFFSET "Macao S.A.R."
152+NLSRC_OFFSET "Moldova"
154+NLSRC_OFFSET "Mongolia"
156+NLSRC_OFFSET "Malawi"
157+NLSRC_OFFSET "Mali"
158+NLSRC_OFFSET "Monaco"
159+NLSRC_OFFSET "Morocco"
160+NLSRC_OFFSET "Mauritius"
162+NLSRC_OFFSET "Mauritania"
163+NLSRC_OFFSET "Malta"
164+NLSRC_OFFSET "Oman"
165+NLSRC_OFFSET "Maldives"
166+NLSRC_OFFSET "Mexico"
167+NLSRC_OFFSET "Malaysia"
168+NLSRC_OFFSET "Mozambique"
173+NLSRC_OFFSET "Niger"
174+NLSRC_OFFSET "Vanuatu"
175+NLSRC_OFFSET "Nigeria"
176+NLSRC_OFFSET "Netherlands"
177+NLSRC_OFFSET "Norway"
178+NLSRC_OFFSET "Nepal"
180+NLSRC_OFFSET "Nauru"
181+NLSRC_OFFSET "Suriname"
182+NLSRC_OFFSET "Nicaragua"
183+NLSRC_OFFSET "New Zealand"
184+NLSRC_OFFSET "Palestinian Authority"
185+NLSRC_OFFSET "Paraguay"
187+NLSRC_OFFSET "Peru"
190+NLSRC_OFFSET "Pakistan"
191+NLSRC_OFFSET "Poland"
192+NLSRC_OFFSET "Panama"
193+NLSRC_OFFSET "Portugal"
194+NLSRC_OFFSET "Papua New Guinea"
195+NLSRC_OFFSET "Palau"
196+NLSRC_OFFSET "Guinea-Bissau"
197+NLSRC_OFFSET "Qatar"
198+NLSRC_OFFSET "Reunion"
199+NLSRC_OFFSET "Marshall Islands"
200+NLSRC_OFFSET "Romania"
201+NLSRC_OFFSET "Philippines"
202+NLSRC_OFFSET "Puerto Rico"
203+NLSRC_OFFSET "Russia"
204+NLSRC_OFFSET "Rwanda"
205+NLSRC_OFFSET "Saudi Arabia"
206+NLSRC_OFFSET "St. Pierre and Miquelon"
207+NLSRC_OFFSET "St. Kitts and Nevis"
208+NLSRC_OFFSET "Seychelles"
209+NLSRC_OFFSET "South Africa"
210+NLSRC_OFFSET "Senegal"
212+NLSRC_OFFSET "Slovenia"
213+NLSRC_OFFSET "Sierra Leone"
214+NLSRC_OFFSET "San Marino"
215+NLSRC_OFFSET "Singapore"
216+NLSRC_OFFSET "Somalia"
217+NLSRC_OFFSET "Spain"
218+NLSRC_OFFSET "St. Lucia"
219+NLSRC_OFFSET "Sudan"
220+NLSRC_OFFSET "Svalbard"
221+NLSRC_OFFSET "Sweden"
222+NLSRC_OFFSET "Syria"
223+NLSRC_OFFSET "Switzerland"
224+NLSRC_OFFSET "United Arab Emirates"
225+NLSRC_OFFSET "Trinidad and Tobago"
227+NLSRC_OFFSET "Thailand"
228+NLSRC_OFFSET "Tajikistan"
231+NLSRC_OFFSET "Tonga"
232+NLSRC_OFFSET "Togo"
233+NLSRC_OFFSET "São Tomé and Príncipe"
234+NLSRC_OFFSET "Tunisia"
235+NLSRC_OFFSET "Turkey"
236+NLSRC_OFFSET "Tuvalu"
237+NLSRC_OFFSET "Taiwan"
238+NLSRC_OFFSET "Turkmenistan"
239+NLSRC_OFFSET "Tanzania"
240+NLSRC_OFFSET "Uganda"
241+NLSRC_OFFSET "Ukraine"
242+NLSRC_OFFSET "United Kingdom"
244+NLSRC_OFFSET "United States"
245+NLSRC_OFFSET "Burkina Faso"
246+NLSRC_OFFSET "Uruguay"
247+NLSRC_OFFSET "Uzbekistan"
248+NLSRC_OFFSET "St. Vincent and the Grenadines"
249+NLSRC_OFFSET "Bolivarian Republic of Venezuela"
251+NLSRC_OFFSET "Vietnam"
252+NLSRC_OFFSET "Virgin Islands"
253+NLSRC_OFFSET "Vatican City"
254+NLSRC_OFFSET "Namibia"
257+NLSRC_OFFSET "Western Sahara (disputed)"
258+NLSRC_OFFSET "Wake Island"
259+NLSRC_OFFSET "Samoa"
260+NLSRC_OFFSET "Swaziland"
261+NLSRC_OFFSET "Yemen"
263+NLSRC_OFFSET "Zambia"
264+NLSRC_OFFSET "Zimbabwe"
269+NLSRC_OFFSET "Serbia and Montenegro (Former)"
270+NLSRC_OFFSET "Montenegro"
271+NLSRC_OFFSET "Serbia"
273+NLSRC_OFFSET "Curaçao"
276+NLSRC_OFFSET "South Sudan"
300+NLSRC_OFFSET "Anguilla"
301+NLSRC_OFFSET "Antarctica"
302+NLSRC_OFFSET "Aruba"
303+NLSRC_OFFSET "Ascension Island"
304+NLSRC_OFFSET "Ashmore and Cartier Islands"
305+NLSRC_OFFSET "Baker Island"
306+NLSRC_OFFSET "Bouvet Island"
307+NLSRC_OFFSET "Cayman Islands"
308+NLSRC_OFFSET "Channel Islands"
309+NLSRC_OFFSET "Christmas Island"
310+NLSRC_OFFSET "Clipperton Island"
311+NLSRC_OFFSET "Cocos (Keeling) Islands"
312+NLSRC_OFFSET "Cook Islands"
313+NLSRC_OFFSET "Coral Sea Islands"
314+NLSRC_OFFSET "Diego Garcia"
315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)"
317+NLSRC_OFFSET "French Guiana"
318+NLSRC_OFFSET "French Polynesia"
319+NLSRC_OFFSET "French Southern and Antarctic Lands"
321+NLSRC_OFFSET "Guadeloupe"
322+NLSRC_OFFSET "Guam"
323+NLSRC_OFFSET "Guantanamo Bay"
324+NLSRC_OFFSET "Guernsey"
325+NLSRC_OFFSET "Heard Island and McDonald Islands"
326+NLSRC_OFFSET "Howland Island"
327+NLSRC_OFFSET "Jarvis Island"
328+NLSRC_OFFSET "Jersey"
329+NLSRC_OFFSET "Kingman Reef"
330+NLSRC_OFFSET "Martinique"
331+NLSRC_OFFSET "Mayotte"
332+NLSRC_OFFSET "Montserrat"
333+NLSRC_OFFSET "Netherlands Antilles (Former)"
334+NLSRC_OFFSET "New Caledonia"
335+NLSRC_OFFSET "Niue"
336+NLSRC_OFFSET "Norfolk Island"
337+NLSRC_OFFSET "Northern Mariana Islands"
338+NLSRC_OFFSET "Palmyra Atoll"
339+NLSRC_OFFSET "Pitcairn Islands"
340+NLSRC_OFFSET "Rota Island"
341+NLSRC_OFFSET "Saipan"
342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands"
343+NLSRC_OFFSET "St. Helena"
346+NLSRC_OFFSET "Tinian Island"
347+NLSRC_OFFSET "Tokelau"
348+NLSRC_OFFSET "Tristan da Cunha"
349+NLSRC_OFFSET "Turks and Caicos Islands"
351+NLSRC_OFFSET "Virgin Islands, British"
352+NLSRC_OFFSET "Wallis and Futuna"
15126+NLSRC_OFFSET "Man, Isle of"
19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of"
21242+NLSRC_OFFSET "Midway Islands"
30967+NLSRC_OFFSET "Sint Maarten (Dutch part)"
31706+NLSRC_OFFSET "Saint Martin (French part)"
END END

View file

@ -158,4 +158,271 @@ BEGIN
52936 "52936 (HZ-GB2312 Kineze Thjeshtuar)" 52936 "52936 (HZ-GB2312 Kineze Thjeshtuar)"
54936 "54936 (GB18030 Kineze Thjeshtesuar)" 54936 "54936 (GB18030 Kineze Thjeshtesuar)"
/* Locations */
2+NLSRC_OFFSET "Antigua and Barbuda"
3+NLSRC_OFFSET "Afghanistan"
4+NLSRC_OFFSET "Algeria"
5+NLSRC_OFFSET "Azerbaijan"
6+NLSRC_OFFSET "Albania"
7+NLSRC_OFFSET "Armenia"
8+NLSRC_OFFSET "Andorra"
9+NLSRC_OFFSET "Angola"
10+NLSRC_OFFSET "American Samoa"
11+NLSRC_OFFSET "Argentina"
12+NLSRC_OFFSET "Australia"
14+NLSRC_OFFSET "Austria"
17+NLSRC_OFFSET "Bahrain"
18+NLSRC_OFFSET "Barbados"
19+NLSRC_OFFSET "Botswana"
20+NLSRC_OFFSET "Bermuda"
21+NLSRC_OFFSET "Belgium"
22+NLSRC_OFFSET "Bahamas, The"
23+NLSRC_OFFSET "Bangladesh"
24+NLSRC_OFFSET "Belize"
25+NLSRC_OFFSET "Bosnia and Herzegovina"
26+NLSRC_OFFSET "Bolivia"
27+NLSRC_OFFSET "Myanmar"
28+NLSRC_OFFSET "Benin"
29+NLSRC_OFFSET "Belarus"
30+NLSRC_OFFSET "Solomon Islands"
32+NLSRC_OFFSET "Brazil"
34+NLSRC_OFFSET "Bhutan"
35+NLSRC_OFFSET "Bulgaria"
38+NLSRC_OFFSET "Burundi"
39+NLSRC_OFFSET "Canada"
40+NLSRC_OFFSET "Cambodia"
41+NLSRC_OFFSET "Chad"
42+NLSRC_OFFSET "Sri Lanka"
43+NLSRC_OFFSET "Congo"
44+NLSRC_OFFSET "Congo (DRC)"
45+NLSRC_OFFSET "China"
46+NLSRC_OFFSET "Chile"
49+NLSRC_OFFSET "Cameroon"
50+NLSRC_OFFSET "Comoros"
51+NLSRC_OFFSET "Colombia"
54+NLSRC_OFFSET "Costa Rica"
55+NLSRC_OFFSET "Central African Republic"
56+NLSRC_OFFSET "Cuba"
57+NLSRC_OFFSET "Cape Verde"
59+NLSRC_OFFSET "Cyprus"
61+NLSRC_OFFSET "Denmark"
62+NLSRC_OFFSET "Djibouti"
63+NLSRC_OFFSET "Dominica"
65+NLSRC_OFFSET "Dominican Republic"
66+NLSRC_OFFSET "Ecuador"
67+NLSRC_OFFSET "Egypt"
68+NLSRC_OFFSET "Ireland"
69+NLSRC_OFFSET "Equatorial Guinea"
70+NLSRC_OFFSET "Estonia"
71+NLSRC_OFFSET "Eritrea"
72+NLSRC_OFFSET "El Salvador"
73+NLSRC_OFFSET "Ethiopia"
75+NLSRC_OFFSET "Czech Republic"
77+NLSRC_OFFSET "Finland"
78+NLSRC_OFFSET "Fiji Islands"
80+NLSRC_OFFSET "Micronesia"
81+NLSRC_OFFSET "Faroe Islands"
84+NLSRC_OFFSET "France"
86+NLSRC_OFFSET "Gambia, The"
87+NLSRC_OFFSET "Gabon"
88+NLSRC_OFFSET "Georgia"
89+NLSRC_OFFSET "Ghana"
90+NLSRC_OFFSET "Gibraltar"
91+NLSRC_OFFSET "Grenada"
93+NLSRC_OFFSET "Greenland"
94+NLSRC_OFFSET "Germany"
98+NLSRC_OFFSET "Greece"
99+NLSRC_OFFSET "Guatemala"
100+NLSRC_OFFSET "Guinea"
101+NLSRC_OFFSET "Guyana"
103+NLSRC_OFFSET "Haiti"
104+NLSRC_OFFSET "Hong Kong S.A.R."
106+NLSRC_OFFSET "Honduras"
108+NLSRC_OFFSET "Croatia"
109+NLSRC_OFFSET "Hungary"
110+NLSRC_OFFSET "Iceland"
111+NLSRC_OFFSET "Indonesia"
113+NLSRC_OFFSET "India"
114+NLSRC_OFFSET "British Indian Ocean Territory"
116+NLSRC_OFFSET "Iran"
117+NLSRC_OFFSET "Israel"
118+NLSRC_OFFSET "Italy"
119+NLSRC_OFFSET "Côte d'Ivoire"
121+NLSRC_OFFSET "Iraq"
122+NLSRC_OFFSET "Japan"
124+NLSRC_OFFSET "Jamaica"
125+NLSRC_OFFSET "Jan Mayen"
126+NLSRC_OFFSET "Jordan"
127+NLSRC_OFFSET "Johnston Atoll"
129+NLSRC_OFFSET "Kenya"
130+NLSRC_OFFSET "Kyrgyzstan"
131+NLSRC_OFFSET "North Korea"
133+NLSRC_OFFSET "Kiribati"
134+NLSRC_OFFSET "Korea"
136+NLSRC_OFFSET "Kuwait"
137+NLSRC_OFFSET "Kazakhstan"
138+NLSRC_OFFSET "Laos"
139+NLSRC_OFFSET "Lebanon"
140+NLSRC_OFFSET "Latvia"
141+NLSRC_OFFSET "Lithuania"
142+NLSRC_OFFSET "Liberia"
143+NLSRC_OFFSET "Slovakia"
145+NLSRC_OFFSET "Liechtenstein"
146+NLSRC_OFFSET "Lesotho"
147+NLSRC_OFFSET "Luxembourg"
148+NLSRC_OFFSET "Libya"
149+NLSRC_OFFSET "Madagascar"
151+NLSRC_OFFSET "Macao S.A.R."
152+NLSRC_OFFSET "Moldova"
154+NLSRC_OFFSET "Mongolia"
156+NLSRC_OFFSET "Malawi"
157+NLSRC_OFFSET "Mali"
158+NLSRC_OFFSET "Monaco"
159+NLSRC_OFFSET "Morocco"
160+NLSRC_OFFSET "Mauritius"
162+NLSRC_OFFSET "Mauritania"
163+NLSRC_OFFSET "Malta"
164+NLSRC_OFFSET "Oman"
165+NLSRC_OFFSET "Maldives"
166+NLSRC_OFFSET "Mexico"
167+NLSRC_OFFSET "Malaysia"
168+NLSRC_OFFSET "Mozambique"
173+NLSRC_OFFSET "Niger"
174+NLSRC_OFFSET "Vanuatu"
175+NLSRC_OFFSET "Nigeria"
176+NLSRC_OFFSET "Netherlands"
177+NLSRC_OFFSET "Norway"
178+NLSRC_OFFSET "Nepal"
180+NLSRC_OFFSET "Nauru"
181+NLSRC_OFFSET "Suriname"
182+NLSRC_OFFSET "Nicaragua"
183+NLSRC_OFFSET "New Zealand"
184+NLSRC_OFFSET "Palestinian Authority"
185+NLSRC_OFFSET "Paraguay"
187+NLSRC_OFFSET "Peru"
190+NLSRC_OFFSET "Pakistan"
191+NLSRC_OFFSET "Poland"
192+NLSRC_OFFSET "Panama"
193+NLSRC_OFFSET "Portugal"
194+NLSRC_OFFSET "Papua New Guinea"
195+NLSRC_OFFSET "Palau"
196+NLSRC_OFFSET "Guinea-Bissau"
197+NLSRC_OFFSET "Qatar"
198+NLSRC_OFFSET "Reunion"
199+NLSRC_OFFSET "Marshall Islands"
200+NLSRC_OFFSET "Romania"
201+NLSRC_OFFSET "Philippines"
202+NLSRC_OFFSET "Puerto Rico"
203+NLSRC_OFFSET "Russia"
204+NLSRC_OFFSET "Rwanda"
205+NLSRC_OFFSET "Saudi Arabia"
206+NLSRC_OFFSET "St. Pierre and Miquelon"
207+NLSRC_OFFSET "St. Kitts and Nevis"
208+NLSRC_OFFSET "Seychelles"
209+NLSRC_OFFSET "South Africa"
210+NLSRC_OFFSET "Senegal"
212+NLSRC_OFFSET "Slovenia"
213+NLSRC_OFFSET "Sierra Leone"
214+NLSRC_OFFSET "San Marino"
215+NLSRC_OFFSET "Singapore"
216+NLSRC_OFFSET "Somalia"
217+NLSRC_OFFSET "Spain"
218+NLSRC_OFFSET "St. Lucia"
219+NLSRC_OFFSET "Sudan"
220+NLSRC_OFFSET "Svalbard"
221+NLSRC_OFFSET "Sweden"
222+NLSRC_OFFSET "Syria"
223+NLSRC_OFFSET "Switzerland"
224+NLSRC_OFFSET "United Arab Emirates"
225+NLSRC_OFFSET "Trinidad and Tobago"
227+NLSRC_OFFSET "Thailand"
228+NLSRC_OFFSET "Tajikistan"
231+NLSRC_OFFSET "Tonga"
232+NLSRC_OFFSET "Togo"
233+NLSRC_OFFSET "São Tomé and Príncipe"
234+NLSRC_OFFSET "Tunisia"
235+NLSRC_OFFSET "Turkey"
236+NLSRC_OFFSET "Tuvalu"
237+NLSRC_OFFSET "Taiwan"
238+NLSRC_OFFSET "Turkmenistan"
239+NLSRC_OFFSET "Tanzania"
240+NLSRC_OFFSET "Uganda"
241+NLSRC_OFFSET "Ukraine"
242+NLSRC_OFFSET "United Kingdom"
244+NLSRC_OFFSET "United States"
245+NLSRC_OFFSET "Burkina Faso"
246+NLSRC_OFFSET "Uruguay"
247+NLSRC_OFFSET "Uzbekistan"
248+NLSRC_OFFSET "St. Vincent and the Grenadines"
249+NLSRC_OFFSET "Bolivarian Republic of Venezuela"
251+NLSRC_OFFSET "Vietnam"
252+NLSRC_OFFSET "Virgin Islands"
253+NLSRC_OFFSET "Vatican City"
254+NLSRC_OFFSET "Namibia"
257+NLSRC_OFFSET "Western Sahara (disputed)"
258+NLSRC_OFFSET "Wake Island"
259+NLSRC_OFFSET "Samoa"
260+NLSRC_OFFSET "Swaziland"
261+NLSRC_OFFSET "Yemen"
263+NLSRC_OFFSET "Zambia"
264+NLSRC_OFFSET "Zimbabwe"
269+NLSRC_OFFSET "Serbia and Montenegro (Former)"
270+NLSRC_OFFSET "Montenegro"
271+NLSRC_OFFSET "Serbia"
273+NLSRC_OFFSET "Curaçao"
276+NLSRC_OFFSET "South Sudan"
300+NLSRC_OFFSET "Anguilla"
301+NLSRC_OFFSET "Antarctica"
302+NLSRC_OFFSET "Aruba"
303+NLSRC_OFFSET "Ascension Island"
304+NLSRC_OFFSET "Ashmore and Cartier Islands"
305+NLSRC_OFFSET "Baker Island"
306+NLSRC_OFFSET "Bouvet Island"
307+NLSRC_OFFSET "Cayman Islands"
308+NLSRC_OFFSET "Channel Islands"
309+NLSRC_OFFSET "Christmas Island"
310+NLSRC_OFFSET "Clipperton Island"
311+NLSRC_OFFSET "Cocos (Keeling) Islands"
312+NLSRC_OFFSET "Cook Islands"
313+NLSRC_OFFSET "Coral Sea Islands"
314+NLSRC_OFFSET "Diego Garcia"
315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)"
317+NLSRC_OFFSET "French Guiana"
318+NLSRC_OFFSET "French Polynesia"
319+NLSRC_OFFSET "French Southern and Antarctic Lands"
321+NLSRC_OFFSET "Guadeloupe"
322+NLSRC_OFFSET "Guam"
323+NLSRC_OFFSET "Guantanamo Bay"
324+NLSRC_OFFSET "Guernsey"
325+NLSRC_OFFSET "Heard Island and McDonald Islands"
326+NLSRC_OFFSET "Howland Island"
327+NLSRC_OFFSET "Jarvis Island"
328+NLSRC_OFFSET "Jersey"
329+NLSRC_OFFSET "Kingman Reef"
330+NLSRC_OFFSET "Martinique"
331+NLSRC_OFFSET "Mayotte"
332+NLSRC_OFFSET "Montserrat"
333+NLSRC_OFFSET "Netherlands Antilles (Former)"
334+NLSRC_OFFSET "New Caledonia"
335+NLSRC_OFFSET "Niue"
336+NLSRC_OFFSET "Norfolk Island"
337+NLSRC_OFFSET "Northern Mariana Islands"
338+NLSRC_OFFSET "Palmyra Atoll"
339+NLSRC_OFFSET "Pitcairn Islands"
340+NLSRC_OFFSET "Rota Island"
341+NLSRC_OFFSET "Saipan"
342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands"
343+NLSRC_OFFSET "St. Helena"
346+NLSRC_OFFSET "Tinian Island"
347+NLSRC_OFFSET "Tokelau"
348+NLSRC_OFFSET "Tristan da Cunha"
349+NLSRC_OFFSET "Turks and Caicos Islands"
351+NLSRC_OFFSET "Virgin Islands, British"
352+NLSRC_OFFSET "Wallis and Futuna"
15126+NLSRC_OFFSET "Man, Isle of"
19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of"
21242+NLSRC_OFFSET "Midway Islands"
30967+NLSRC_OFFSET "Sint Maarten (Dutch part)"
31706+NLSRC_OFFSET "Saint Martin (French part)"
END END

View file

@ -159,4 +159,271 @@ BEGIN
52936 "52936 (HZ-GB2312 Bayağılaştırılmış Çince)" 52936 "52936 (HZ-GB2312 Bayağılaştırılmış Çince)"
54936 "54936 (GB18030 Bayağılaştırılmış Çince)" 54936 "54936 (GB18030 Bayağılaştırılmış Çince)"
/* Locations */
2+NLSRC_OFFSET "Antigua and Barbuda"
3+NLSRC_OFFSET "Afghanistan"
4+NLSRC_OFFSET "Algeria"
5+NLSRC_OFFSET "Azerbaijan"
6+NLSRC_OFFSET "Albania"
7+NLSRC_OFFSET "Armenia"
8+NLSRC_OFFSET "Andorra"
9+NLSRC_OFFSET "Angola"
10+NLSRC_OFFSET "American Samoa"
11+NLSRC_OFFSET "Argentina"
12+NLSRC_OFFSET "Australia"
14+NLSRC_OFFSET "Austria"
17+NLSRC_OFFSET "Bahrain"
18+NLSRC_OFFSET "Barbados"
19+NLSRC_OFFSET "Botswana"
20+NLSRC_OFFSET "Bermuda"
21+NLSRC_OFFSET "Belgium"
22+NLSRC_OFFSET "Bahamas, The"
23+NLSRC_OFFSET "Bangladesh"
24+NLSRC_OFFSET "Belize"
25+NLSRC_OFFSET "Bosnia and Herzegovina"
26+NLSRC_OFFSET "Bolivia"
27+NLSRC_OFFSET "Myanmar"
28+NLSRC_OFFSET "Benin"
29+NLSRC_OFFSET "Belarus"
30+NLSRC_OFFSET "Solomon Islands"
32+NLSRC_OFFSET "Brazil"
34+NLSRC_OFFSET "Bhutan"
35+NLSRC_OFFSET "Bulgaria"
38+NLSRC_OFFSET "Burundi"
39+NLSRC_OFFSET "Canada"
40+NLSRC_OFFSET "Cambodia"
41+NLSRC_OFFSET "Chad"
42+NLSRC_OFFSET "Sri Lanka"
43+NLSRC_OFFSET "Congo"
44+NLSRC_OFFSET "Congo (DRC)"
45+NLSRC_OFFSET "China"
46+NLSRC_OFFSET "Chile"
49+NLSRC_OFFSET "Cameroon"
50+NLSRC_OFFSET "Comoros"
51+NLSRC_OFFSET "Colombia"
54+NLSRC_OFFSET "Costa Rica"
55+NLSRC_OFFSET "Central African Republic"
56+NLSRC_OFFSET "Cuba"
57+NLSRC_OFFSET "Cape Verde"
59+NLSRC_OFFSET "Cyprus"
61+NLSRC_OFFSET "Denmark"
62+NLSRC_OFFSET "Djibouti"
63+NLSRC_OFFSET "Dominica"
65+NLSRC_OFFSET "Dominican Republic"
66+NLSRC_OFFSET "Ecuador"
67+NLSRC_OFFSET "Egypt"
68+NLSRC_OFFSET "Ireland"
69+NLSRC_OFFSET "Equatorial Guinea"
70+NLSRC_OFFSET "Estonia"
71+NLSRC_OFFSET "Eritrea"
72+NLSRC_OFFSET "El Salvador"
73+NLSRC_OFFSET "Ethiopia"
75+NLSRC_OFFSET "Czech Republic"
77+NLSRC_OFFSET "Finland"
78+NLSRC_OFFSET "Fiji Islands"
80+NLSRC_OFFSET "Micronesia"
81+NLSRC_OFFSET "Faroe Islands"
84+NLSRC_OFFSET "France"
86+NLSRC_OFFSET "Gambia, The"
87+NLSRC_OFFSET "Gabon"
88+NLSRC_OFFSET "Georgia"
89+NLSRC_OFFSET "Ghana"
90+NLSRC_OFFSET "Gibraltar"
91+NLSRC_OFFSET "Grenada"
93+NLSRC_OFFSET "Greenland"
94+NLSRC_OFFSET "Germany"
98+NLSRC_OFFSET "Greece"
99+NLSRC_OFFSET "Guatemala"
100+NLSRC_OFFSET "Guinea"
101+NLSRC_OFFSET "Guyana"
103+NLSRC_OFFSET "Haiti"
104+NLSRC_OFFSET "Hong Kong S.A.R."
106+NLSRC_OFFSET "Honduras"
108+NLSRC_OFFSET "Croatia"
109+NLSRC_OFFSET "Hungary"
110+NLSRC_OFFSET "Iceland"
111+NLSRC_OFFSET "Indonesia"
113+NLSRC_OFFSET "India"
114+NLSRC_OFFSET "British Indian Ocean Territory"
116+NLSRC_OFFSET "Iran"
117+NLSRC_OFFSET "Israel"
118+NLSRC_OFFSET "Italy"
119+NLSRC_OFFSET "Côte d'Ivoire"
121+NLSRC_OFFSET "Iraq"
122+NLSRC_OFFSET "Japan"
124+NLSRC_OFFSET "Jamaica"
125+NLSRC_OFFSET "Jan Mayen"
126+NLSRC_OFFSET "Jordan"
127+NLSRC_OFFSET "Johnston Atoll"
129+NLSRC_OFFSET "Kenya"
130+NLSRC_OFFSET "Kyrgyzstan"
131+NLSRC_OFFSET "North Korea"
133+NLSRC_OFFSET "Kiribati"
134+NLSRC_OFFSET "Korea"
136+NLSRC_OFFSET "Kuwait"
137+NLSRC_OFFSET "Kazakhstan"
138+NLSRC_OFFSET "Laos"
139+NLSRC_OFFSET "Lebanon"
140+NLSRC_OFFSET "Latvia"
141+NLSRC_OFFSET "Lithuania"
142+NLSRC_OFFSET "Liberia"
143+NLSRC_OFFSET "Slovakia"
145+NLSRC_OFFSET "Liechtenstein"
146+NLSRC_OFFSET "Lesotho"
147+NLSRC_OFFSET "Luxembourg"
148+NLSRC_OFFSET "Libya"
149+NLSRC_OFFSET "Madagascar"
151+NLSRC_OFFSET "Macao S.A.R."
152+NLSRC_OFFSET "Moldova"
154+NLSRC_OFFSET "Mongolia"
156+NLSRC_OFFSET "Malawi"
157+NLSRC_OFFSET "Mali"
158+NLSRC_OFFSET "Monaco"
159+NLSRC_OFFSET "Morocco"
160+NLSRC_OFFSET "Mauritius"
162+NLSRC_OFFSET "Mauritania"
163+NLSRC_OFFSET "Malta"
164+NLSRC_OFFSET "Oman"
165+NLSRC_OFFSET "Maldives"
166+NLSRC_OFFSET "Mexico"
167+NLSRC_OFFSET "Malaysia"
168+NLSRC_OFFSET "Mozambique"
173+NLSRC_OFFSET "Niger"
174+NLSRC_OFFSET "Vanuatu"
175+NLSRC_OFFSET "Nigeria"
176+NLSRC_OFFSET "Netherlands"
177+NLSRC_OFFSET "Norway"
178+NLSRC_OFFSET "Nepal"
180+NLSRC_OFFSET "Nauru"
181+NLSRC_OFFSET "Suriname"
182+NLSRC_OFFSET "Nicaragua"
183+NLSRC_OFFSET "New Zealand"
184+NLSRC_OFFSET "Palestinian Authority"
185+NLSRC_OFFSET "Paraguay"
187+NLSRC_OFFSET "Peru"
190+NLSRC_OFFSET "Pakistan"
191+NLSRC_OFFSET "Poland"
192+NLSRC_OFFSET "Panama"
193+NLSRC_OFFSET "Portugal"
194+NLSRC_OFFSET "Papua New Guinea"
195+NLSRC_OFFSET "Palau"
196+NLSRC_OFFSET "Guinea-Bissau"
197+NLSRC_OFFSET "Qatar"
198+NLSRC_OFFSET "Reunion"
199+NLSRC_OFFSET "Marshall Islands"
200+NLSRC_OFFSET "Romania"
201+NLSRC_OFFSET "Philippines"
202+NLSRC_OFFSET "Puerto Rico"
203+NLSRC_OFFSET "Russia"
204+NLSRC_OFFSET "Rwanda"
205+NLSRC_OFFSET "Saudi Arabia"
206+NLSRC_OFFSET "St. Pierre and Miquelon"
207+NLSRC_OFFSET "St. Kitts and Nevis"
208+NLSRC_OFFSET "Seychelles"
209+NLSRC_OFFSET "South Africa"
210+NLSRC_OFFSET "Senegal"
212+NLSRC_OFFSET "Slovenia"
213+NLSRC_OFFSET "Sierra Leone"
214+NLSRC_OFFSET "San Marino"
215+NLSRC_OFFSET "Singapore"
216+NLSRC_OFFSET "Somalia"
217+NLSRC_OFFSET "Spain"
218+NLSRC_OFFSET "St. Lucia"
219+NLSRC_OFFSET "Sudan"
220+NLSRC_OFFSET "Svalbard"
221+NLSRC_OFFSET "Sweden"
222+NLSRC_OFFSET "Syria"
223+NLSRC_OFFSET "Switzerland"
224+NLSRC_OFFSET "United Arab Emirates"
225+NLSRC_OFFSET "Trinidad and Tobago"
227+NLSRC_OFFSET "Thailand"
228+NLSRC_OFFSET "Tajikistan"
231+NLSRC_OFFSET "Tonga"
232+NLSRC_OFFSET "Togo"
233+NLSRC_OFFSET "São Tomé and Príncipe"
234+NLSRC_OFFSET "Tunisia"
235+NLSRC_OFFSET "Turkey"
236+NLSRC_OFFSET "Tuvalu"
237+NLSRC_OFFSET "Taiwan"
238+NLSRC_OFFSET "Turkmenistan"
239+NLSRC_OFFSET "Tanzania"
240+NLSRC_OFFSET "Uganda"
241+NLSRC_OFFSET "Ukraine"
242+NLSRC_OFFSET "United Kingdom"
244+NLSRC_OFFSET "United States"
245+NLSRC_OFFSET "Burkina Faso"
246+NLSRC_OFFSET "Uruguay"
247+NLSRC_OFFSET "Uzbekistan"
248+NLSRC_OFFSET "St. Vincent and the Grenadines"
249+NLSRC_OFFSET "Bolivarian Republic of Venezuela"
251+NLSRC_OFFSET "Vietnam"
252+NLSRC_OFFSET "Virgin Islands"
253+NLSRC_OFFSET "Vatican City"
254+NLSRC_OFFSET "Namibia"
257+NLSRC_OFFSET "Western Sahara (disputed)"
258+NLSRC_OFFSET "Wake Island"
259+NLSRC_OFFSET "Samoa"
260+NLSRC_OFFSET "Swaziland"
261+NLSRC_OFFSET "Yemen"
263+NLSRC_OFFSET "Zambia"
264+NLSRC_OFFSET "Zimbabwe"
269+NLSRC_OFFSET "Serbia and Montenegro (Former)"
270+NLSRC_OFFSET "Montenegro"
271+NLSRC_OFFSET "Serbia"
273+NLSRC_OFFSET "Curaçao"
276+NLSRC_OFFSET "South Sudan"
300+NLSRC_OFFSET "Anguilla"
301+NLSRC_OFFSET "Antarctica"
302+NLSRC_OFFSET "Aruba"
303+NLSRC_OFFSET "Ascension Island"
304+NLSRC_OFFSET "Ashmore and Cartier Islands"
305+NLSRC_OFFSET "Baker Island"
306+NLSRC_OFFSET "Bouvet Island"
307+NLSRC_OFFSET "Cayman Islands"
308+NLSRC_OFFSET "Channel Islands"
309+NLSRC_OFFSET "Christmas Island"
310+NLSRC_OFFSET "Clipperton Island"
311+NLSRC_OFFSET "Cocos (Keeling) Islands"
312+NLSRC_OFFSET "Cook Islands"
313+NLSRC_OFFSET "Coral Sea Islands"
314+NLSRC_OFFSET "Diego Garcia"
315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)"
317+NLSRC_OFFSET "French Guiana"
318+NLSRC_OFFSET "French Polynesia"
319+NLSRC_OFFSET "French Southern and Antarctic Lands"
321+NLSRC_OFFSET "Guadeloupe"
322+NLSRC_OFFSET "Guam"
323+NLSRC_OFFSET "Guantanamo Bay"
324+NLSRC_OFFSET "Guernsey"
325+NLSRC_OFFSET "Heard Island and McDonald Islands"
326+NLSRC_OFFSET "Howland Island"
327+NLSRC_OFFSET "Jarvis Island"
328+NLSRC_OFFSET "Jersey"
329+NLSRC_OFFSET "Kingman Reef"
330+NLSRC_OFFSET "Martinique"
331+NLSRC_OFFSET "Mayotte"
332+NLSRC_OFFSET "Montserrat"
333+NLSRC_OFFSET "Netherlands Antilles (Former)"
334+NLSRC_OFFSET "New Caledonia"
335+NLSRC_OFFSET "Niue"
336+NLSRC_OFFSET "Norfolk Island"
337+NLSRC_OFFSET "Northern Mariana Islands"
338+NLSRC_OFFSET "Palmyra Atoll"
339+NLSRC_OFFSET "Pitcairn Islands"
340+NLSRC_OFFSET "Rota Island"
341+NLSRC_OFFSET "Saipan"
342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands"
343+NLSRC_OFFSET "St. Helena"
346+NLSRC_OFFSET "Tinian Island"
347+NLSRC_OFFSET "Tokelau"
348+NLSRC_OFFSET "Tristan da Cunha"
349+NLSRC_OFFSET "Turks and Caicos Islands"
351+NLSRC_OFFSET "Virgin Islands, British"
352+NLSRC_OFFSET "Wallis and Futuna"
15126+NLSRC_OFFSET "Man, Isle of"
19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of"
21242+NLSRC_OFFSET "Midway Islands"
30967+NLSRC_OFFSET "Sint Maarten (Dutch part)"
31706+NLSRC_OFFSET "Saint Martin (French part)"
END END

View file

@ -158,4 +158,271 @@ BEGIN
52936 "52936 (HZ-GB2312 Китайська спрощена)" 52936 "52936 (HZ-GB2312 Китайська спрощена)"
54936 "54936 (GB18030 Китайська спрощена)" 54936 "54936 (GB18030 Китайська спрощена)"
/* Locations */
2+NLSRC_OFFSET "Antigua and Barbuda"
3+NLSRC_OFFSET "Afghanistan"
4+NLSRC_OFFSET "Algeria"
5+NLSRC_OFFSET "Azerbaijan"
6+NLSRC_OFFSET "Albania"
7+NLSRC_OFFSET "Armenia"
8+NLSRC_OFFSET "Andorra"
9+NLSRC_OFFSET "Angola"
10+NLSRC_OFFSET "American Samoa"
11+NLSRC_OFFSET "Argentina"
12+NLSRC_OFFSET "Australia"
14+NLSRC_OFFSET "Austria"
17+NLSRC_OFFSET "Bahrain"
18+NLSRC_OFFSET "Barbados"
19+NLSRC_OFFSET "Botswana"
20+NLSRC_OFFSET "Bermuda"
21+NLSRC_OFFSET "Belgium"
22+NLSRC_OFFSET "Bahamas, The"
23+NLSRC_OFFSET "Bangladesh"
24+NLSRC_OFFSET "Belize"
25+NLSRC_OFFSET "Bosnia and Herzegovina"
26+NLSRC_OFFSET "Bolivia"
27+NLSRC_OFFSET "Myanmar"
28+NLSRC_OFFSET "Benin"
29+NLSRC_OFFSET "Belarus"
30+NLSRC_OFFSET "Solomon Islands"
32+NLSRC_OFFSET "Brazil"
34+NLSRC_OFFSET "Bhutan"
35+NLSRC_OFFSET "Bulgaria"
38+NLSRC_OFFSET "Burundi"
39+NLSRC_OFFSET "Canada"
40+NLSRC_OFFSET "Cambodia"
41+NLSRC_OFFSET "Chad"
42+NLSRC_OFFSET "Sri Lanka"
43+NLSRC_OFFSET "Congo"
44+NLSRC_OFFSET "Congo (DRC)"
45+NLSRC_OFFSET "China"
46+NLSRC_OFFSET "Chile"
49+NLSRC_OFFSET "Cameroon"
50+NLSRC_OFFSET "Comoros"
51+NLSRC_OFFSET "Colombia"
54+NLSRC_OFFSET "Costa Rica"
55+NLSRC_OFFSET "Central African Republic"
56+NLSRC_OFFSET "Cuba"
57+NLSRC_OFFSET "Cape Verde"
59+NLSRC_OFFSET "Cyprus"
61+NLSRC_OFFSET "Denmark"
62+NLSRC_OFFSET "Djibouti"
63+NLSRC_OFFSET "Dominica"
65+NLSRC_OFFSET "Dominican Republic"
66+NLSRC_OFFSET "Ecuador"
67+NLSRC_OFFSET "Egypt"
68+NLSRC_OFFSET "Ireland"
69+NLSRC_OFFSET "Equatorial Guinea"
70+NLSRC_OFFSET "Estonia"
71+NLSRC_OFFSET "Eritrea"
72+NLSRC_OFFSET "El Salvador"
73+NLSRC_OFFSET "Ethiopia"
75+NLSRC_OFFSET "Czech Republic"
77+NLSRC_OFFSET "Finland"
78+NLSRC_OFFSET "Fiji Islands"
80+NLSRC_OFFSET "Micronesia"
81+NLSRC_OFFSET "Faroe Islands"
84+NLSRC_OFFSET "France"
86+NLSRC_OFFSET "Gambia, The"
87+NLSRC_OFFSET "Gabon"
88+NLSRC_OFFSET "Georgia"
89+NLSRC_OFFSET "Ghana"
90+NLSRC_OFFSET "Gibraltar"
91+NLSRC_OFFSET "Grenada"
93+NLSRC_OFFSET "Greenland"
94+NLSRC_OFFSET "Germany"
98+NLSRC_OFFSET "Greece"
99+NLSRC_OFFSET "Guatemala"
100+NLSRC_OFFSET "Guinea"
101+NLSRC_OFFSET "Guyana"
103+NLSRC_OFFSET "Haiti"
104+NLSRC_OFFSET "Hong Kong S.A.R."
106+NLSRC_OFFSET "Honduras"
108+NLSRC_OFFSET "Croatia"
109+NLSRC_OFFSET "Hungary"
110+NLSRC_OFFSET "Iceland"
111+NLSRC_OFFSET "Indonesia"
113+NLSRC_OFFSET "India"
114+NLSRC_OFFSET "British Indian Ocean Territory"
116+NLSRC_OFFSET "Iran"
117+NLSRC_OFFSET "Israel"
118+NLSRC_OFFSET "Italy"
119+NLSRC_OFFSET "Côte d'Ivoire"
121+NLSRC_OFFSET "Iraq"
122+NLSRC_OFFSET "Japan"
124+NLSRC_OFFSET "Jamaica"
125+NLSRC_OFFSET "Jan Mayen"
126+NLSRC_OFFSET "Jordan"
127+NLSRC_OFFSET "Johnston Atoll"
129+NLSRC_OFFSET "Kenya"
130+NLSRC_OFFSET "Kyrgyzstan"
131+NLSRC_OFFSET "North Korea"
133+NLSRC_OFFSET "Kiribati"
134+NLSRC_OFFSET "Korea"
136+NLSRC_OFFSET "Kuwait"
137+NLSRC_OFFSET "Kazakhstan"
138+NLSRC_OFFSET "Laos"
139+NLSRC_OFFSET "Lebanon"
140+NLSRC_OFFSET "Latvia"
141+NLSRC_OFFSET "Lithuania"
142+NLSRC_OFFSET "Liberia"
143+NLSRC_OFFSET "Slovakia"
145+NLSRC_OFFSET "Liechtenstein"
146+NLSRC_OFFSET "Lesotho"
147+NLSRC_OFFSET "Luxembourg"
148+NLSRC_OFFSET "Libya"
149+NLSRC_OFFSET "Madagascar"
151+NLSRC_OFFSET "Macao S.A.R."
152+NLSRC_OFFSET "Moldova"
154+NLSRC_OFFSET "Mongolia"
156+NLSRC_OFFSET "Malawi"
157+NLSRC_OFFSET "Mali"
158+NLSRC_OFFSET "Monaco"
159+NLSRC_OFFSET "Morocco"
160+NLSRC_OFFSET "Mauritius"
162+NLSRC_OFFSET "Mauritania"
163+NLSRC_OFFSET "Malta"
164+NLSRC_OFFSET "Oman"
165+NLSRC_OFFSET "Maldives"
166+NLSRC_OFFSET "Mexico"
167+NLSRC_OFFSET "Malaysia"
168+NLSRC_OFFSET "Mozambique"
173+NLSRC_OFFSET "Niger"
174+NLSRC_OFFSET "Vanuatu"
175+NLSRC_OFFSET "Nigeria"
176+NLSRC_OFFSET "Netherlands"
177+NLSRC_OFFSET "Norway"
178+NLSRC_OFFSET "Nepal"
180+NLSRC_OFFSET "Nauru"
181+NLSRC_OFFSET "Suriname"
182+NLSRC_OFFSET "Nicaragua"
183+NLSRC_OFFSET "New Zealand"
184+NLSRC_OFFSET "Palestinian Authority"
185+NLSRC_OFFSET "Paraguay"
187+NLSRC_OFFSET "Peru"
190+NLSRC_OFFSET "Pakistan"
191+NLSRC_OFFSET "Poland"
192+NLSRC_OFFSET "Panama"
193+NLSRC_OFFSET "Portugal"
194+NLSRC_OFFSET "Papua New Guinea"
195+NLSRC_OFFSET "Palau"
196+NLSRC_OFFSET "Guinea-Bissau"
197+NLSRC_OFFSET "Qatar"
198+NLSRC_OFFSET "Reunion"
199+NLSRC_OFFSET "Marshall Islands"
200+NLSRC_OFFSET "Romania"
201+NLSRC_OFFSET "Philippines"
202+NLSRC_OFFSET "Puerto Rico"
203+NLSRC_OFFSET "Russia"
204+NLSRC_OFFSET "Rwanda"
205+NLSRC_OFFSET "Saudi Arabia"
206+NLSRC_OFFSET "St. Pierre and Miquelon"
207+NLSRC_OFFSET "St. Kitts and Nevis"
208+NLSRC_OFFSET "Seychelles"
209+NLSRC_OFFSET "South Africa"
210+NLSRC_OFFSET "Senegal"
212+NLSRC_OFFSET "Slovenia"
213+NLSRC_OFFSET "Sierra Leone"
214+NLSRC_OFFSET "San Marino"
215+NLSRC_OFFSET "Singapore"
216+NLSRC_OFFSET "Somalia"
217+NLSRC_OFFSET "Spain"
218+NLSRC_OFFSET "St. Lucia"
219+NLSRC_OFFSET "Sudan"
220+NLSRC_OFFSET "Svalbard"
221+NLSRC_OFFSET "Sweden"
222+NLSRC_OFFSET "Syria"
223+NLSRC_OFFSET "Switzerland"
224+NLSRC_OFFSET "United Arab Emirates"
225+NLSRC_OFFSET "Trinidad and Tobago"
227+NLSRC_OFFSET "Thailand"
228+NLSRC_OFFSET "Tajikistan"
231+NLSRC_OFFSET "Tonga"
232+NLSRC_OFFSET "Togo"
233+NLSRC_OFFSET "São Tomé and Príncipe"
234+NLSRC_OFFSET "Tunisia"
235+NLSRC_OFFSET "Turkey"
236+NLSRC_OFFSET "Tuvalu"
237+NLSRC_OFFSET "Taiwan"
238+NLSRC_OFFSET "Turkmenistan"
239+NLSRC_OFFSET "Tanzania"
240+NLSRC_OFFSET "Uganda"
241+NLSRC_OFFSET "Ukraine"
242+NLSRC_OFFSET "United Kingdom"
244+NLSRC_OFFSET "United States"
245+NLSRC_OFFSET "Burkina Faso"
246+NLSRC_OFFSET "Uruguay"
247+NLSRC_OFFSET "Uzbekistan"
248+NLSRC_OFFSET "St. Vincent and the Grenadines"
249+NLSRC_OFFSET "Bolivarian Republic of Venezuela"
251+NLSRC_OFFSET "Vietnam"
252+NLSRC_OFFSET "Virgin Islands"
253+NLSRC_OFFSET "Vatican City"
254+NLSRC_OFFSET "Namibia"
257+NLSRC_OFFSET "Western Sahara (disputed)"
258+NLSRC_OFFSET "Wake Island"
259+NLSRC_OFFSET "Samoa"
260+NLSRC_OFFSET "Swaziland"
261+NLSRC_OFFSET "Yemen"
263+NLSRC_OFFSET "Zambia"
264+NLSRC_OFFSET "Zimbabwe"
269+NLSRC_OFFSET "Serbia and Montenegro (Former)"
270+NLSRC_OFFSET "Montenegro"
271+NLSRC_OFFSET "Serbia"
273+NLSRC_OFFSET "Curaçao"
276+NLSRC_OFFSET "South Sudan"
300+NLSRC_OFFSET "Anguilla"
301+NLSRC_OFFSET "Antarctica"
302+NLSRC_OFFSET "Aruba"
303+NLSRC_OFFSET "Ascension Island"
304+NLSRC_OFFSET "Ashmore and Cartier Islands"
305+NLSRC_OFFSET "Baker Island"
306+NLSRC_OFFSET "Bouvet Island"
307+NLSRC_OFFSET "Cayman Islands"
308+NLSRC_OFFSET "Channel Islands"
309+NLSRC_OFFSET "Christmas Island"
310+NLSRC_OFFSET "Clipperton Island"
311+NLSRC_OFFSET "Cocos (Keeling) Islands"
312+NLSRC_OFFSET "Cook Islands"
313+NLSRC_OFFSET "Coral Sea Islands"
314+NLSRC_OFFSET "Diego Garcia"
315+NLSRC_OFFSET "Falkland Islands (Islas Malvinas)"
317+NLSRC_OFFSET "French Guiana"
318+NLSRC_OFFSET "French Polynesia"
319+NLSRC_OFFSET "French Southern and Antarctic Lands"
321+NLSRC_OFFSET "Guadeloupe"
322+NLSRC_OFFSET "Guam"
323+NLSRC_OFFSET "Guantanamo Bay"
324+NLSRC_OFFSET "Guernsey"
325+NLSRC_OFFSET "Heard Island and McDonald Islands"
326+NLSRC_OFFSET "Howland Island"
327+NLSRC_OFFSET "Jarvis Island"
328+NLSRC_OFFSET "Jersey"
329+NLSRC_OFFSET "Kingman Reef"
330+NLSRC_OFFSET "Martinique"
331+NLSRC_OFFSET "Mayotte"
332+NLSRC_OFFSET "Montserrat"
333+NLSRC_OFFSET "Netherlands Antilles (Former)"
334+NLSRC_OFFSET "New Caledonia"
335+NLSRC_OFFSET "Niue"
336+NLSRC_OFFSET "Norfolk Island"
337+NLSRC_OFFSET "Northern Mariana Islands"
338+NLSRC_OFFSET "Palmyra Atoll"
339+NLSRC_OFFSET "Pitcairn Islands"
340+NLSRC_OFFSET "Rota Island"
341+NLSRC_OFFSET "Saipan"
342+NLSRC_OFFSET "South Georgia and the South Sandwich Islands"
343+NLSRC_OFFSET "St. Helena"
346+NLSRC_OFFSET "Tinian Island"
347+NLSRC_OFFSET "Tokelau"
348+NLSRC_OFFSET "Tristan da Cunha"
349+NLSRC_OFFSET "Turks and Caicos Islands"
351+NLSRC_OFFSET "Virgin Islands, British"
352+NLSRC_OFFSET "Wallis and Futuna"
15126+NLSRC_OFFSET "Man, Isle of"
19618+NLSRC_OFFSET "Macedonia, Former Yugoslav Republic of"
21242+NLSRC_OFFSET "Midway Islands"
30967+NLSRC_OFFSET "Sint Maarten (Dutch part)"
31706+NLSRC_OFFSET "Saint Martin (French part)"
END END

View file

@ -33,6 +33,8 @@ DEBUG_CHANNEL(nls);
extern int wine_fold_string(int flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen); extern int wine_fold_string(int flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen);
extern int wine_get_sortkey(int flags, const WCHAR *src, int srclen, char *dst, int dstlen); extern int wine_get_sortkey(int flags, const WCHAR *src, int srclen, char *dst, int dstlen);
extern int wine_compare_string(int flags, const WCHAR *str1, int len1, const WCHAR *str2, int len2); extern int wine_compare_string(int flags, const WCHAR *str1, int len1, const WCHAR *str2, int len2);
extern DWORD GetLocalisedText(DWORD dwResId, WCHAR *lpszDest, DWORD dwDestSize);
#define NLSRC_OFFSET 5000 /* FIXME */
extern HMODULE kernel32_handle; extern HMODULE kernel32_handle;
@ -2992,77 +2994,33 @@ BOOL WINAPI EnumUILanguagesW(UILANGUAGE_ENUMPROCW pUILangEnumProc, DWORD dwFlags
static int static int
NLS_GetGeoFriendlyName(GEOID Location, LPWSTR szFriendlyName, int cchData) NLS_GetGeoFriendlyName(GEOID Location, LPWSTR szFriendlyName, int cchData)
{ {
HANDLE hKey; LPWSTR szBuffer;
WCHAR szPath[MAX_PATH];
UNICODE_STRING ValueName;
KEY_VALUE_PARTIAL_INFORMATION *info;
const int info_size = FIELD_OFFSET(KEY_VALUE_PARTIAL_INFORMATION, Data);
DWORD dwSize; DWORD dwSize;
NTSTATUS Status;
int Ret;
swprintf(szPath, L"\\REGISTRY\\Machine\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Telephony\\Country List\\%lu", Location); /* FIXME: move *.nls resources out of kernel32 into locale.nls */
Location += NLSRC_OFFSET;
hKey = NLS_RegOpenKey(0, szPath); if(cchData == 0)
if (!hKey) return GetLocalisedText(Location, NULL, 0);
dwSize = cchData * sizeof(WCHAR);
szBuffer = HeapAlloc(GetProcessHeap(), 0, dwSize);
if (!szBuffer)
{ {
WARN("NLS_RegOpenKey() failed\n");
return 0;
}
dwSize = info_size + cchData * sizeof(WCHAR);
if (!(info = HeapAlloc(GetProcessHeap(), 0, dwSize)))
{
NtClose(hKey);
SetLastError(ERROR_NOT_ENOUGH_MEMORY); SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return 0; return 0;
} }
RtlInitUnicodeString(&ValueName, L"Name"); if(GetLocalisedText(Location, szBuffer, dwSize))
Status = NtQueryValueKey(hKey, &ValueName, KeyValuePartialInformation,
(LPBYTE)info, dwSize, &dwSize);
if (!Status)
{ {
Ret = (dwSize - info_size) / sizeof(WCHAR); memcpy(szFriendlyName, szBuffer, dwSize);
HeapFree(GetProcessHeap(), 0, szBuffer);
if (!Ret || ((WCHAR *)info->Data)[Ret-1]) return strlenW(szFriendlyName) + 1;
{
if (Ret < cchData || !szFriendlyName) Ret++;
else
{
WARN("ERROR_INSUFFICIENT_BUFFER\n");
SetLastError(ERROR_INSUFFICIENT_BUFFER);
Ret = 0;
}
}
if (Ret && szFriendlyName)
{
memcpy(szFriendlyName, info->Data, (Ret-1) * sizeof(WCHAR));
szFriendlyName[Ret-1] = 0;
}
}
else if (Status == STATUS_BUFFER_OVERFLOW && !szFriendlyName)
{
Ret = (dwSize - info_size) / sizeof(WCHAR) + 1;
}
else if (Status == STATUS_OBJECT_NAME_NOT_FOUND)
{
Ret = -1;
}
else
{
SetLastError(RtlNtStatusToDosError(Status));
Ret = 0;
} }
NtClose(hKey); HeapFree(GetProcessHeap(), 0, szBuffer);
HeapFree(GetProcessHeap(), 0, info); return 0;
return Ret;
} }
static const struct geoinfo_t *get_geoinfo_dataptr(GEOID geoid) static const struct geoinfo_t *get_geoinfo_dataptr(GEOID geoid)

View file

@ -1679,8 +1679,8 @@ static INT WideCharToUtf7(LPCWSTR pszWide, INT cchWide, LPSTR pszUtf7, INT cchUt
return c; return c;
} }
static BOOL DWORD
GetLocalisedText(DWORD dwResId, WCHAR *lpszDest) GetLocalisedText(DWORD dwResId, WCHAR *lpszDest, DWORD dwDestSize)
{ {
HRSRC hrsrc; HRSRC hrsrc;
LCID lcid; LCID lcid;
@ -1704,6 +1704,16 @@ GetLocalisedText(DWORD dwResId, WCHAR *lpszDest)
(LPWSTR)RT_STRING, (LPWSTR)RT_STRING,
MAKEINTRESOURCEW((dwId >> 4) + 1), MAKEINTRESOURCEW((dwId >> 4) + 1),
langId); langId);
/* english fallback */
if(!hrsrc)
{
hrsrc = FindResourceExW(hCurrentModule,
(LPWSTR)RT_STRING,
MAKEINTRESOURCEW((dwId >> 4) + 1),
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
}
if (hrsrc) if (hrsrc)
{ {
HGLOBAL hmem = LoadResource(hCurrentModule, hrsrc); HGLOBAL hmem = LoadResource(hCurrentModule, hrsrc);
@ -1712,18 +1722,32 @@ GetLocalisedText(DWORD dwResId, WCHAR *lpszDest)
{ {
const WCHAR *p; const WCHAR *p;
unsigned int i; unsigned int i;
unsigned int len;
p = LockResource(hmem); p = LockResource(hmem);
for (i = 0; i < (dwId & 0x0f); i++) p += *p + 1; for (i = 0; i < (dwId & 0x0f); i++) p += *p + 1;
memcpy(lpszDest, p + 1, *p * sizeof(WCHAR)); if(dwDestSize == 0)
return *p + 1;
len = *p * sizeof(WCHAR);
if(len + sizeof(WCHAR) > dwDestSize)
{
SetLastError(ERROR_INSUFFICIENT_BUFFER);
return FALSE;
}
memcpy(lpszDest, p + 1, len);
lpszDest[*p] = '\0'; lpszDest[*p] = '\0';
return TRUE; return TRUE;
} }
} }
DPRINT1("Could not get codepage name. dwResId = %lu\n", dwResId); DPRINT1("Resource not found: dwResId = %lu\n", dwResId);
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE; return FALSE;
} }
@ -1799,7 +1823,7 @@ GetCPInfoExW(UINT CodePage,
{ {
lpCPInfoEx->CodePage = CP_UTF7; lpCPInfoEx->CodePage = CP_UTF7;
lpCPInfoEx->UnicodeDefaultChar = 0x3f; lpCPInfoEx->UnicodeDefaultChar = 0x3f;
return GetLocalisedText((DWORD)CodePage, lpCPInfoEx->CodePageName); return GetLocalisedText((DWORD)CodePage, lpCPInfoEx->CodePageName, sizeof(lpCPInfoEx->CodePageName)) != 0;
} }
break; break;
@ -1807,7 +1831,7 @@ GetCPInfoExW(UINT CodePage,
{ {
lpCPInfoEx->CodePage = CP_UTF8; lpCPInfoEx->CodePage = CP_UTF8;
lpCPInfoEx->UnicodeDefaultChar = 0x3f; lpCPInfoEx->UnicodeDefaultChar = 0x3f;
return GetLocalisedText((DWORD)CodePage, lpCPInfoEx->CodePageName); return GetLocalisedText((DWORD)CodePage, lpCPInfoEx->CodePageName, sizeof(lpCPInfoEx->CodePageName)) != 0;
} }
default: default:
@ -1824,7 +1848,7 @@ GetCPInfoExW(UINT CodePage,
lpCPInfoEx->CodePage = CodePageEntry->CodePageTable.CodePage; lpCPInfoEx->CodePage = CodePageEntry->CodePageTable.CodePage;
lpCPInfoEx->UnicodeDefaultChar = CodePageEntry->CodePageTable.UniDefaultChar; lpCPInfoEx->UnicodeDefaultChar = CodePageEntry->CodePageTable.UniDefaultChar;
return GetLocalisedText(CodePageEntry->CodePageTable.CodePage, lpCPInfoEx->CodePageName); return GetLocalisedText(CodePageEntry->CodePageTable.CodePage, lpCPInfoEx->CodePageName, sizeof(lpCPInfoEx->CodePageName)) != 0;
} }
break; break;
} }

View file

@ -30,6 +30,7 @@
#include <winsvc.h> #include <winsvc.h>
#include <userenv.h> #include <userenv.h>
#include <ndk/sefuncs.h> #include <ndk/sefuncs.h>
#include <strsafe.h>
HINSTANCE hDllInstance; HINSTANCE hDllInstance;
@ -778,15 +779,19 @@ CreateProfile(
pProfile->dwType = WLX_PROFILE_TYPE_V2_0; pProfile->dwType = WLX_PROFILE_TYPE_V2_0;
pProfile->pszProfile = ProfilePath; pProfile->pszProfile = ProfilePath;
lpEnvironment = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cbSize = sizeof(L"LOGONSERVER=\\\\") +
(wcslen(pgContext->Domain)+ 14 + 1) * sizeof(WCHAR)); wcslen(pgContext->Domain) * sizeof(WCHAR) +
sizeof(UNICODE_NULL);
lpEnvironment = HeapAlloc(GetProcessHeap(), 0, cbSize);
if (!lpEnvironment) if (!lpEnvironment)
{ {
WARN("HeapAlloc() failed\n"); WARN("HeapAlloc() failed\n");
goto cleanup; goto cleanup;
} }
wsprintfW(lpEnvironment, L"LOGONSERVER=\\\\%s", pgContext->Domain); StringCbPrintfW(lpEnvironment, cbSize, L"LOGONSERVER=\\\\%ls", pgContext->Domain);
ASSERT(wcslen(lpEnvironment) == cbSize / sizeof(WCHAR) - 2);
lpEnvironment[cbSize / sizeof(WCHAR) - 1] = UNICODE_NULL;
pProfile->pszEnvironment = lpEnvironment; pProfile->pszEnvironment = lpEnvironment;

View file

@ -280,7 +280,9 @@ PopulateCustomPathCombo(
TRACE("RegQueryValueEx() failed with error 0x%lx\n", rc); TRACE("RegQueryValueEx() failed with error 0x%lx\n", rc);
goto cleanup; goto cleanup;
} }
Buffer[dwPathLength] = Buffer[dwPathLength + 1] = '\0';
Buffer[dwPathLength / sizeof(WCHAR)] = UNICODE_NULL;
Buffer[dwPathLength / sizeof(WCHAR) + 1] = UNICODE_NULL;
/* Populate combo box */ /* Populate combo box */
for (Path = Buffer; *Path; Path += wcslen(Path) + 1) for (Path = Buffer; *Path; Path += wcslen(Path) + 1)
@ -305,7 +307,7 @@ SaveCustomPath(
LPWSTR Buffer = NULL; LPWSTR Buffer = NULL;
LPWSTR pBuffer; /* Pointer into Buffer */ LPWSTR pBuffer; /* Pointer into Buffer */
int ItemsCount, Length; int ItemsCount, Length;
DWORD i; int i;
DWORD TotalLength = 0; DWORD TotalLength = 0;
BOOL UseCustomPath = TRUE; BOOL UseCustomPath = TRUE;
HKEY hKey = NULL; HKEY hKey = NULL;

View file

@ -1334,6 +1334,14 @@ COpenWithMenu::Initialize(LPCITEMIDLIST pidlFolder,
pidlFolder2 = (LPCITEMIDLIST) ((LPBYTE)pida + pida->aoffset[0]); pidlFolder2 = (LPCITEMIDLIST) ((LPBYTE)pida + pida->aoffset[0]);
pidlChild = (LPCITEMIDLIST) ((LPBYTE)pida + pida->aoffset[1]); pidlChild = (LPCITEMIDLIST) ((LPBYTE)pida + pida->aoffset[1]);
if (!_ILIsValue(pidlChild))
{
TRACE("pidl is not a file\n");
GlobalUnlock(medium.hGlobal);
GlobalFree(medium.hGlobal);
return E_FAIL;
}
pidl = ILCombine(pidlFolder2, pidlChild); pidl = ILCombine(pidlFolder2, pidlChild);
GlobalUnlock(medium.hGlobal); GlobalUnlock(medium.hGlobal);
@ -1344,12 +1352,6 @@ COpenWithMenu::Initialize(LPCITEMIDLIST pidlFolder,
ERR("no mem\n"); ERR("no mem\n");
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
} }
if (!_ILIsValue(pidlChild))
{
TRACE("pidl is not a file\n");
SHFree((void*)pidl);
return E_FAIL;
}
if (!SHGetPathFromIDListW(pidl, m_wszPath)) if (!SHGetPathFromIDListW(pidl, m_wszPath))
{ {

View file

@ -1590,14 +1590,18 @@ static void move_to_dir(LPSHFILEOPSTRUCTW lpFileOp, const FILE_ENTRY *feFrom, co
} }
/* the FO_MOVE operation */ /* the FO_MOVE operation */
static HRESULT move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const FILE_LIST *flTo) static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const FILE_LIST *flTo)
{ {
DWORD i; DWORD i;
INT mismatched = 0;
const FILE_ENTRY *entryToMove; const FILE_ENTRY *entryToMove;
const FILE_ENTRY *fileDest; const FILE_ENTRY *fileDest;
if (!flFrom->dwNumFiles || !flTo->dwNumFiles) if (!flFrom->dwNumFiles)
return ERROR_CANCELLED; return ERROR_SUCCESS;
if (!flTo->dwNumFiles)
return ERROR_FILE_NOT_FOUND;
if (!(lpFileOp->fFlags & FOF_MULTIDESTFILES) && if (!(lpFileOp->fFlags & FOF_MULTIDESTFILES) &&
flTo->dwNumFiles > 1 && flFrom->dwNumFiles > 1) flTo->dwNumFiles > 1 && flFrom->dwNumFiles > 1)
@ -1615,29 +1619,44 @@ static HRESULT move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, c
if (!PathFileExistsW(flTo->feFiles[0].szDirectory)) if (!PathFileExistsW(flTo->feFiles[0].szDirectory))
return ERROR_CANCELLED; return ERROR_CANCELLED;
if ((lpFileOp->fFlags & FOF_MULTIDESTFILES) && if (lpFileOp->fFlags & FOF_MULTIDESTFILES)
flFrom->dwNumFiles != flTo->dwNumFiles) mismatched = flFrom->dwNumFiles - flTo->dwNumFiles;
{
return ERROR_CANCELLED;
}
fileDest = &flTo->feFiles[0]; fileDest = &flTo->feFiles[0];
for (i = 0; i < flFrom->dwNumFiles; i++) for (i = 0; i < flFrom->dwNumFiles; i++)
{ {
entryToMove = &flFrom->feFiles[i]; entryToMove = &flFrom->feFiles[i];
if (lpFileOp->fFlags & FOF_MULTIDESTFILES)
fileDest = &flTo->feFiles[i];
if (!PathFileExistsW(fileDest->szDirectory)) if (!PathFileExistsW(fileDest->szDirectory))
return ERROR_CANCELLED; return ERROR_CANCELLED;
if (lpFileOp->fFlags & FOF_MULTIDESTFILES)
{
if (i >= flTo->dwNumFiles)
break;
fileDest = &flTo->feFiles[i];
if (mismatched && !fileDest->bExists)
{
create_dest_dirs(flTo->feFiles[i].szFullPath);
flTo->feFiles[i].bExists = TRUE;
flTo->feFiles[i].attributes = FILE_ATTRIBUTE_DIRECTORY;
}
}
if (fileDest->bExists && IsAttribDir(fileDest->attributes)) if (fileDest->bExists && IsAttribDir(fileDest->attributes))
move_to_dir(lpFileOp, entryToMove, fileDest); move_to_dir(lpFileOp, entryToMove, fileDest);
else else
SHNotifyMoveFileW(entryToMove->szFullPath, fileDest->szFullPath, IsAttribDir(entryToMove->attributes)); SHNotifyMoveFileW(entryToMove->szFullPath, fileDest->szFullPath, IsAttribDir(entryToMove->attributes));
} }
if (mismatched > 0)
{
if (flFrom->bAnyDirectories)
return DE_DESTSAMETREE;
else
return DE_SAMEFILE;
}
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }

View file

@ -35,7 +35,7 @@ SetAccountDomain(LPCWSTR DomainName,
NTSTATUS Status; NTSTATUS Status;
DPRINT1("SYSSETUP: SetAccountDomain\n"); DPRINT("SYSSETUP: SetAccountDomain\n");
memset(&ObjectAttributes, 0, sizeof(LSA_OBJECT_ATTRIBUTES)); memset(&ObjectAttributes, 0, sizeof(LSA_OBJECT_ATTRIBUTES));
ObjectAttributes.Length = sizeof(LSA_OBJECT_ATTRIBUTES); ObjectAttributes.Length = sizeof(LSA_OBJECT_ATTRIBUTES);

View file

@ -24,7 +24,7 @@
/* /*
* Modified for ReactOS and latest ACPICA * Modified for ReactOS and latest ACPICA
* Copyright (C)2009 Samuel Serapion * Copyright (C)2009 Samuel Serapion
*/ */
#include <precomp.h> #include <precomp.h>
@ -219,11 +219,11 @@ acpi_bus_get_power (
} }
else { else {
/* /*
* Get the device's power state either directly (via _PSC) or * Get the device's power state either directly (via _PSC) or
* indirectly (via power resources). * indirectly (via power resources).
*/ */
if (device->power.flags.explicit_get) { if (device->power.flags.explicit_get) {
status = acpi_evaluate_integer(device->handle, "_PSC", status = acpi_evaluate_integer(device->handle, "_PSC",
NULL, &psc); NULL, &psc);
if (ACPI_FAILURE(status)) if (ACPI_FAILURE(status))
return_VALUE(AE_NOT_FOUND); return_VALUE(AE_NOT_FOUND);
@ -305,7 +305,7 @@ acpi_bus_set_power (
* On transitions to a high-powered state we first apply power (via * On transitions to a high-powered state we first apply power (via
* power resources) then evalute _PSx. Conversly for transitions to * power resources) then evalute _PSx. Conversly for transitions to
* a lower-powered state. * a lower-powered state.
*/ */
if (state < device->power.state) { if (state < device->power.state) {
if (device->power.flags.power_resources) { if (device->power.flags.power_resources) {
result = acpi_power_transition(device, state); result = acpi_power_transition(device, state);
@ -313,7 +313,7 @@ acpi_bus_set_power (
goto end; goto end;
} }
if (device->power.states[state].flags.explicit_set) { if (device->power.states[state].flags.explicit_set) {
status = AcpiEvaluateObject(device->handle, status = AcpiEvaluateObject(device->handle,
object_name, NULL, NULL); object_name, NULL, NULL);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
result = AE_NOT_FOUND; result = AE_NOT_FOUND;
@ -323,7 +323,7 @@ acpi_bus_set_power (
} }
else { else {
if (device->power.states[state].flags.explicit_set) { if (device->power.states[state].flags.explicit_set) {
status = AcpiEvaluateObject(device->handle, status = AcpiEvaluateObject(device->handle,
object_name, NULL, NULL); object_name, NULL, NULL);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
result = AE_NOT_FOUND; result = AE_NOT_FOUND;
@ -464,11 +464,11 @@ acpi_bus_generate_event_dpc(PKDPC Dpc,
struct acpi_device *device = SystemArgument1; struct acpi_device *device = SystemArgument1;
ULONG_PTR TypeData = (ULONG_PTR)SystemArgument2; ULONG_PTR TypeData = (ULONG_PTR)SystemArgument2;
KIRQL OldIrql; KIRQL OldIrql;
event = ExAllocatePoolWithTag(NonPagedPool,sizeof(struct acpi_bus_event), 'IPCA'); event = ExAllocatePoolWithTag(NonPagedPool,sizeof(struct acpi_bus_event), 'IPCA');
if (!event) if (!event)
return; return;
sprintf(event->device_class, "%s", device->pnp.device_class); sprintf(event->device_class, "%s", device->pnp.device_class);
sprintf(event->bus_id, "%s", device->pnp.bus_id); sprintf(event->bus_id, "%s", device->pnp.bus_id);
event->type = (TypeData & 0xFF000000) >> 24; event->type = (TypeData & 0xFF000000) >> 24;
@ -497,10 +497,10 @@ acpi_bus_generate_event (
/* drop event on the floor if no one's listening */ /* drop event on the floor if no one's listening */
if (!event_is_open) if (!event_is_open)
return_VALUE(0); return_VALUE(0);
/* Data shouldn't even get near 24 bits */ /* Data shouldn't even get near 24 bits */
ASSERT(!(data & 0xFF000000)); ASSERT(!(data & 0xFF000000));
TypeData = data; TypeData = data;
TypeData |= type << 24; TypeData |= type << 24;
@ -573,9 +573,9 @@ acpi_bus_receive_event (
*/ */
static int static int
acpi_bus_walk ( acpi_bus_walk (
struct acpi_device *start, struct acpi_device *start,
acpi_bus_walk_callback callback, acpi_bus_walk_callback callback,
int direction, int direction,
void *data) void *data)
{ {
int result = 0; int result = 0;
@ -707,7 +707,7 @@ acpi_bus_check_scope (ACPI_HANDLE handle)
* --------------- * ---------------
* Callback for all 'system-level' device notifications (values 0x00-0x7F). * Callback for all 'system-level' device notifications (values 0x00-0x7F).
*/ */
static void static void
acpi_bus_notify ( acpi_bus_notify (
ACPI_HANDLE handle, ACPI_HANDLE handle,
UINT32 type, UINT32 type,
@ -724,27 +724,27 @@ acpi_bus_notify (
switch (type) { switch (type) {
case ACPI_NOTIFY_BUS_CHECK: case ACPI_NOTIFY_BUS_CHECK:
DPRINT("Received BUS CHECK notification for device [%s]\n", DPRINT("Received BUS CHECK notification for device [%s]\n",
device->pnp.bus_id); device->pnp.bus_id);
acpi_bus_check_scope(handle); acpi_bus_check_scope(handle);
/* /*
* TBD: We'll need to outsource certain events to non-ACPI * TBD: We'll need to outsource certain events to non-ACPI
* drivers via the device manager (device.c). * drivers via the device manager (device.c).
*/ */
break; break;
case ACPI_NOTIFY_DEVICE_CHECK: case ACPI_NOTIFY_DEVICE_CHECK:
DPRINT("Received DEVICE CHECK notification for device [%s]\n", DPRINT("Received DEVICE CHECK notification for device [%s]\n",
device->pnp.bus_id); device->pnp.bus_id);
acpi_bus_check_device(handle); acpi_bus_check_device(handle);
/* /*
* TBD: We'll need to outsource certain events to non-ACPI * TBD: We'll need to outsource certain events to non-ACPI
* drivers via the device manager (device.c). * drivers via the device manager (device.c).
*/ */
break; break;
case ACPI_NOTIFY_DEVICE_WAKE: case ACPI_NOTIFY_DEVICE_WAKE:
DPRINT("Received DEVICE WAKE notification for device [%s]\n", DPRINT("Received DEVICE WAKE notification for device [%s]\n",
device->pnp.bus_id); device->pnp.bus_id);
acpi_bus_check_device(handle); acpi_bus_check_device(handle);
/* /*
@ -754,37 +754,37 @@ acpi_bus_notify (
break; break;
case ACPI_NOTIFY_EJECT_REQUEST: case ACPI_NOTIFY_EJECT_REQUEST:
DPRINT1("Received EJECT REQUEST notification for device [%s]\n", DPRINT1("Received EJECT REQUEST notification for device [%s]\n",
device->pnp.bus_id); device->pnp.bus_id);
/* TBD */ /* TBD */
break; break;
case ACPI_NOTIFY_DEVICE_CHECK_LIGHT: case ACPI_NOTIFY_DEVICE_CHECK_LIGHT:
DPRINT1("Received DEVICE CHECK LIGHT notification for device [%s]\n", DPRINT1("Received DEVICE CHECK LIGHT notification for device [%s]\n",
device->pnp.bus_id); device->pnp.bus_id);
/* TBD: Exactly what does 'light' mean? */ /* TBD: Exactly what does 'light' mean? */
break; break;
case ACPI_NOTIFY_FREQUENCY_MISMATCH: case ACPI_NOTIFY_FREQUENCY_MISMATCH:
DPRINT1("Received FREQUENCY MISMATCH notification for device [%s]\n", DPRINT1("Received FREQUENCY MISMATCH notification for device [%s]\n",
device->pnp.bus_id); device->pnp.bus_id);
/* TBD */ /* TBD */
break; break;
case ACPI_NOTIFY_BUS_MODE_MISMATCH: case ACPI_NOTIFY_BUS_MODE_MISMATCH:
DPRINT1("Received BUS MODE MISMATCH notification for device [%s]\n", DPRINT1("Received BUS MODE MISMATCH notification for device [%s]\n",
device->pnp.bus_id); device->pnp.bus_id);
/* TBD */ /* TBD */
break; break;
case ACPI_NOTIFY_POWER_FAULT: case ACPI_NOTIFY_POWER_FAULT:
DPRINT1("Received POWER FAULT notification for device [%s]\n", DPRINT1("Received POWER FAULT notification for device [%s]\n",
device->pnp.bus_id); device->pnp.bus_id);
/* TBD */ /* TBD */
break; break;
default: default:
DPRINT1("Received unknown/unsupported notification [%08x]\n", DPRINT1("Received unknown/unsupported notification [%08x]\n",
type); type);
break; break;
} }
@ -810,7 +810,7 @@ static FAST_MUTEX acpi_bus_drivers_lock;
/** /**
* acpi_bus_match * acpi_bus_match
* -------------- * --------------
* Checks the device's hardware (_HID) or compatible (_CID) ids to see if it * Checks the device's hardware (_HID) or compatible (_CID) ids to see if it
* matches the specified driver's criteria. * matches the specified driver's criteria.
@ -840,20 +840,20 @@ acpi_bus_match (
error = -2; error = -2;
Done: Done:
return error; return error;
} }
/** /**
* acpi_bus_driver_init * acpi_bus_driver_init
* -------------------- * --------------------
* Used to initialize a device via its device driver. Called whenever a * Used to initialize a device via its device driver. Called whenever a
* driver is bound to a device. Invokes the driver's add() and start() ops. * driver is bound to a device. Invokes the driver's add() and start() ops.
*/ */
static int static int
acpi_bus_driver_init ( acpi_bus_driver_init (
struct acpi_device *device, struct acpi_device *device,
struct acpi_driver *driver) struct acpi_driver *driver)
{ {
int result = 0; int result = 0;
@ -896,15 +896,15 @@ acpi_bus_driver_init (
/** /**
* acpi_bus_attach * acpi_bus_attach
* ------------- * -------------
* Callback for acpi_bus_walk() used to find devices that match a specific * Callback for acpi_bus_walk() used to find devices that match a specific
* driver's criteria and then attach the driver. * driver's criteria and then attach the driver.
*/ */
static int static int
acpi_bus_attach ( acpi_bus_attach (
struct acpi_device *device, struct acpi_device *device,
int level, int level,
void *data) void *data)
{ {
int result = 0; int result = 0;
@ -927,7 +927,7 @@ acpi_bus_attach (
DPRINT("Found driver [%s] for device [%s]\n", DPRINT("Found driver [%s] for device [%s]\n",
driver->name, device->pnp.bus_id); driver->name, device->pnp.bus_id);
result = acpi_bus_driver_init(device, driver); result = acpi_bus_driver_init(device, driver);
if (result) if (result)
return_VALUE(result); return_VALUE(result);
@ -941,15 +941,15 @@ acpi_bus_attach (
/** /**
* acpi_bus_unattach * acpi_bus_unattach
* ----------------- * -----------------
* Callback for acpi_bus_walk() used to find devices that match a specific * Callback for acpi_bus_walk() used to find devices that match a specific
* driver's criteria and unattach the driver. * driver's criteria and unattach the driver.
*/ */
static int static int
acpi_bus_unattach ( acpi_bus_unattach (
struct acpi_device *device, struct acpi_device *device,
int level, int level,
void *data) void *data)
{ {
int result = 0; int result = 0;
@ -980,7 +980,7 @@ acpi_bus_unattach (
/** /**
* acpi_bus_find_driver * acpi_bus_find_driver
* -------------------- * --------------------
* Parses the list of registered drivers looking for a driver applicable for * Parses the list of registered drivers looking for a driver applicable for
* the specified device. * the specified device.
@ -1019,8 +1019,8 @@ acpi_bus_find_driver (
/** /**
* acpi_bus_register_driver * acpi_bus_register_driver
* ------------------------ * ------------------------
* Registers a driver with the ACPI bus. Searches the namespace for all * Registers a driver with the ACPI bus. Searches the namespace for all
* devices that match the driver's criteria and binds. * devices that match the driver's criteria and binds.
*/ */
@ -1038,7 +1038,7 @@ acpi_bus_register_driver (
list_add_tail(&driver->node, &acpi_bus_drivers); list_add_tail(&driver->node, &acpi_bus_drivers);
up(&acpi_bus_drivers_lock); up(&acpi_bus_drivers_lock);
acpi_bus_walk(acpi_root, acpi_bus_attach, acpi_bus_walk(acpi_root, acpi_bus_attach,
WALK_DOWN, driver); WALK_DOWN, driver);
return_VALUE(driver->references); return_VALUE(driver->references);
@ -1046,7 +1046,7 @@ acpi_bus_register_driver (
/** /**
* acpi_bus_unregister_driver * acpi_bus_unregister_driver
* -------------------------- * --------------------------
* Unregisters a driver with the ACPI bus. Searches the namespace for all * Unregisters a driver with the ACPI bus. Searches the namespace for all
* devices that match the driver's criteria and unbinds. * devices that match the driver's criteria and unbinds.
@ -1075,7 +1075,7 @@ acpi_bus_unregister_driver (
Device Enumeration Device Enumeration
-------------------------------------------------------------------------- */ -------------------------------------------------------------------------- */
static int static int
acpi_bus_get_flags ( acpi_bus_get_flags (
struct acpi_device *device) struct acpi_device *device)
{ {
@ -1125,7 +1125,7 @@ acpi_bus_get_flags (
} }
int int
acpi_bus_add ( acpi_bus_add (
struct acpi_device **child, struct acpi_device **child,
struct acpi_device *parent, struct acpi_device *parent,
@ -1180,7 +1180,7 @@ acpi_bus_add (
buffer.Pointer = bus_id; buffer.Pointer = bus_id;
AcpiGetName(handle, ACPI_SINGLE_NAME, &buffer); AcpiGetName(handle, ACPI_SINGLE_NAME, &buffer);
/* Clean up trailing underscores (if any) */ /* Clean up trailing underscores (if any) */
for (i = 3; i > 1; i--) { for (i = 3; i > 1; i--) {
if (bus_id[i] == '_') if (bus_id[i] == '_')
@ -1194,7 +1194,7 @@ acpi_bus_add (
/* HACK: Skip HPET */ /* HACK: Skip HPET */
if (strstr(device->pnp.bus_id, "HPET")) if (strstr(device->pnp.bus_id, "HPET"))
{ {
DPRINT1("Using HPET hack\n"); DPRINT("Using HPET hack\n");
result = -1; result = -1;
goto end; goto end;
} }
@ -1314,7 +1314,7 @@ acpi_bus_add (
break; break;
} }
/* /*
* \_SB * \_SB
* ---- * ----
* Fix for the system root bus device -- the only root-level device. * Fix for the system root bus device -- the only root-level device.
@ -1411,7 +1411,7 @@ acpi_bus_add (
/* /*
* Bind _ADR-Based Devices * Bind _ADR-Based Devices
* ----------------------- * -----------------------
* If there's a a bus address (_ADR) then we utilize the parent's * If there's a a bus address (_ADR) then we utilize the parent's
* 'bind' function (if exists) to bind the ACPI- and natively- * 'bind' function (if exists) to bind the ACPI- and natively-
* enumerated device representations. * enumerated device representations.
*/ */
@ -1451,7 +1451,7 @@ end:
static int static int
acpi_bus_remove ( acpi_bus_remove (
struct acpi_device *device, struct acpi_device *device,
int type) int type)
{ {
@ -1490,7 +1490,7 @@ acpi_bus_scan (
parent = start; parent = start;
phandle = start->handle; phandle = start->handle;
/* /*
* Parse through the ACPI namespace, identify all 'devices', and * Parse through the ACPI namespace, identify all 'devices', and
* create a new 'struct acpi_device' for each. * create a new 'struct acpi_device' for each.
@ -1591,7 +1591,7 @@ acpi_bus_scan_fixed (
* power button is present. * power button is present.
*/ */
if (AcpiGbl_FADT.Flags & ACPI_FADT_POWER_BUTTON) if (AcpiGbl_FADT.Flags & ACPI_FADT_POWER_BUTTON)
result = acpi_bus_add(&device, acpi_root, result = acpi_bus_add(&device, acpi_root,
NULL, ACPI_BUS_TYPE_POWER_BUTTON); NULL, ACPI_BUS_TYPE_POWER_BUTTON);
else else
{ {
@ -1610,7 +1610,7 @@ acpi_bus_scan_fixed (
* the we have a control method button just like above. * the we have a control method button just like above.
*/ */
if (AcpiGbl_FADT.Flags & ACPI_FADT_SLEEP_BUTTON) if (AcpiGbl_FADT.Flags & ACPI_FADT_SLEEP_BUTTON)
result = acpi_bus_add(&device, acpi_root, result = acpi_bus_add(&device, acpi_root,
NULL, ACPI_BUS_TYPE_SLEEP_BUTTON); NULL, ACPI_BUS_TYPE_SLEEP_BUTTON);
else else
{ {
@ -1635,7 +1635,7 @@ acpi_bus_init (void)
int result = 0; int result = 0;
ACPI_STATUS status = AE_OK; ACPI_STATUS status = AE_OK;
DPRINT1("acpi_bus_init\n"); DPRINT("acpi_bus_init\n");
KeInitializeDpc(&event_dpc, acpi_bus_generate_event_dpc, NULL); KeInitializeDpc(&event_dpc, acpi_bus_generate_event_dpc, NULL);
@ -1682,7 +1682,7 @@ acpi_bus_init (void)
/* /*
* Create the root device in the bus's device tree * Create the root device in the bus's device tree
*/ */
result = acpi_bus_add(&acpi_root, NULL, ACPI_ROOT_OBJECT, result = acpi_bus_add(&acpi_root, NULL, ACPI_ROOT_OBJECT,
ACPI_BUS_TYPE_SYSTEM); ACPI_BUS_TYPE_SYSTEM);
if (result) if (result)
goto error2; goto error2;

View file

@ -270,23 +270,23 @@ ACPIDispatchDeviceControl(
*/ */
if (power_button) if (power_button)
{ {
DPRINT1("Fixed power button reported to power manager\n"); DPRINT("Fixed power button reported to power manager\n");
Caps |= SYS_BUTTON_POWER; Caps |= SYS_BUTTON_POWER;
} }
if (sleep_button) if (sleep_button)
{ {
DPRINT1("Fixed sleep button reported to power manager\n"); DPRINT("Fixed sleep button reported to power manager\n");
Caps |= SYS_BUTTON_SLEEP; Caps |= SYS_BUTTON_SLEEP;
} }
} }
else if (wcsstr(((PPDO_DEVICE_DATA)commonData)->HardwareIDs, L"PNP0C0C")) else if (wcsstr(((PPDO_DEVICE_DATA)commonData)->HardwareIDs, L"PNP0C0C"))
{ {
DPRINT1("Control method power button reported to power manager\n"); DPRINT("Control method power button reported to power manager\n");
Caps |= SYS_BUTTON_POWER; Caps |= SYS_BUTTON_POWER;
} }
else if (wcsstr(((PPDO_DEVICE_DATA)commonData)->HardwareIDs, L"PNP0C0E")) else if (wcsstr(((PPDO_DEVICE_DATA)commonData)->HardwareIDs, L"PNP0C0E"))
{ {
DPRINT1("Control method sleep reported to power manager\n"); DPRINT("Control method sleep reported to power manager\n");
Caps |= SYS_BUTTON_SLEEP; Caps |= SYS_BUTTON_SLEEP;
} }
else else

View file

@ -15,6 +15,12 @@
#define NDEBUG #define NDEBUG
#include <debug.h> #include <debug.h>
#if 0
#define DBGPRINT(...) DbgPrint(__VA_ARGS__)
#else
#define DBGPRINT(...)
#endif
/*** PRIVATE *****************************************************************/ /*** PRIVATE *****************************************************************/
static NTSTATUS static NTSTATUS
@ -1266,7 +1272,7 @@ PdoStartDevice(
if (RawPartialDesc->Type == CmResourceTypeInterrupt) if (RawPartialDesc->Type == CmResourceTypeInterrupt)
{ {
DPRINT1("Assigning IRQ %u to PCI device 0x%x on bus 0x%x\n", DPRINT("Assigning IRQ %u to PCI device 0x%x on bus 0x%x\n",
RawPartialDesc->u.Interrupt.Vector, RawPartialDesc->u.Interrupt.Vector,
DeviceExtension->PciDevice->SlotNumber.u.AsULONG, DeviceExtension->PciDevice->SlotNumber.u.AsULONG,
DeviceExtension->PciDevice->BusNumber); DeviceExtension->PciDevice->BusNumber);
@ -1284,30 +1290,30 @@ PdoStartDevice(
Command = 0; Command = 0;
DPRINT1("Enabling command flags for PCI device 0x%x on bus 0x%x: ", DBGPRINT("pci!PdoStartDevice: Enabling command flags for PCI device 0x%x on bus 0x%x: ",
DeviceExtension->PciDevice->SlotNumber.u.AsULONG, DeviceExtension->PciDevice->SlotNumber.u.AsULONG,
DeviceExtension->PciDevice->BusNumber); DeviceExtension->PciDevice->BusNumber);
if (DeviceExtension->PciDevice->EnableBusMaster) if (DeviceExtension->PciDevice->EnableBusMaster)
{ {
Command |= PCI_ENABLE_BUS_MASTER; Command |= PCI_ENABLE_BUS_MASTER;
DbgPrint("[Bus master] "); DBGPRINT("[Bus master] ");
} }
if (DeviceExtension->PciDevice->EnableMemorySpace) if (DeviceExtension->PciDevice->EnableMemorySpace)
{ {
Command |= PCI_ENABLE_MEMORY_SPACE; Command |= PCI_ENABLE_MEMORY_SPACE;
DbgPrint("[Memory space enable] "); DBGPRINT("[Memory space enable] ");
} }
if (DeviceExtension->PciDevice->EnableIoSpace) if (DeviceExtension->PciDevice->EnableIoSpace)
{ {
Command |= PCI_ENABLE_IO_SPACE; Command |= PCI_ENABLE_IO_SPACE;
DbgPrint("[I/O space enable] "); DBGPRINT("[I/O space enable] ");
} }
if (Command != 0) if (Command != 0)
{ {
DbgPrint("\n"); DBGPRINT("\n");
/* OR with the previous value */ /* OR with the previous value */
Command |= DeviceExtension->PciDevice->PciConfig.Command; Command |= DeviceExtension->PciDevice->PciConfig.Command;

View file

@ -41,8 +41,7 @@ VfatCloseFile(
if (pFcb->Flags & FCB_IS_VOLUME) if (pFcb->Flags & FCB_IS_VOLUME)
{ {
DPRINT1("Volume\n"); DPRINT("Volume\n");
pFcb->RefCount--;
FileObject->FsContext2 = NULL; FileObject->FsContext2 = NULL;
} }
else else

View file

@ -482,7 +482,7 @@ VfatCreateFile(
if (FileObject->FileName.Length == 0 && if (FileObject->FileName.Length == 0 &&
(FileObject->RelatedFileObject == NULL || FileObject->RelatedFileObject->FsContext2 != NULL)) (FileObject->RelatedFileObject == NULL || FileObject->RelatedFileObject->FsContext2 != NULL))
{ {
DPRINT1("Volume opening\n"); DPRINT("Volume opening\n");
if (RequestedDisposition != FILE_OPEN && if (RequestedDisposition != FILE_OPEN &&
RequestedDisposition != FILE_OPEN_IF) RequestedDisposition != FILE_OPEN_IF)

View file

@ -294,6 +294,7 @@ vfatGrabFCB(
{ {
ASSERT(ExIsResourceAcquiredExclusive(&pVCB->DirResource)); ASSERT(ExIsResourceAcquiredExclusive(&pVCB->DirResource));
ASSERT(pFCB != pVCB->VolumeFcb);
++pFCB->RefCount; ++pFCB->RefCount;
} }
@ -311,6 +312,7 @@ vfatReleaseFCB(
while (pFCB) while (pFCB)
{ {
ASSERT(pFCB != pVCB->VolumeFcb);
pFCB->RefCount--; pFCB->RefCount--;
if (pFCB->RefCount == 0) if (pFCB->RefCount == 0)
{ {

View file

@ -612,7 +612,7 @@ VfatMount(
FsRtlNotifyInitializeSync(&DeviceExt->NotifySync); FsRtlNotifyInitializeSync(&DeviceExt->NotifySync);
InitializeListHead(&DeviceExt->NotifyList); InitializeListHead(&DeviceExt->NotifyList);
DPRINT1("Mount success\n"); DPRINT("Mount success\n");
Status = STATUS_SUCCESS; Status = STATUS_SUCCESS;
@ -866,7 +866,7 @@ VfatLockOrUnlockVolume(
PFILE_OBJECT FileObject; PFILE_OBJECT FileObject;
PDEVICE_EXTENSION DeviceExt; PDEVICE_EXTENSION DeviceExt;
DPRINT1("VfatLockOrUnlockVolume(%p, %d)\n", IrpContext, Lock); DPRINT("VfatLockOrUnlockVolume(%p, %d)\n", IrpContext, Lock);
DeviceExt = IrpContext->DeviceExt; DeviceExt = IrpContext->DeviceExt;
FileObject = IrpContext->FileObject; FileObject = IrpContext->FileObject;
@ -909,18 +909,77 @@ VfatDismountVolume(
PVFAT_IRP_CONTEXT IrpContext) PVFAT_IRP_CONTEXT IrpContext)
{ {
PDEVICE_EXTENSION DeviceExt; PDEVICE_EXTENSION DeviceExt;
PLIST_ENTRY NextEntry;
PVFATFCB Fcb;
DPRINT1("VfatDismountVolume(%p)\n", IrpContext); DPRINT("VfatDismountVolume(%p)\n", IrpContext);
DeviceExt = IrpContext->DeviceExt; DeviceExt = IrpContext->DeviceExt;
/* We HAVE to be locked. Windows also allows dismount with no lock
* but we're here mainly for 1st stage, so KISS
*/
if (!(DeviceExt->Flags & VCB_VOLUME_LOCKED)) if (!(DeviceExt->Flags & VCB_VOLUME_LOCKED))
{ {
return STATUS_ACCESS_DENIED; return STATUS_ACCESS_DENIED;
} }
UNIMPLEMENTED; /* Race condition? */
return STATUS_NOT_IMPLEMENTED; if (DeviceExt->Flags & VCB_DISMOUNT_PENDING)
{
return STATUS_VOLUME_DISMOUNTED;
}
/* Notify we'll dismount. Pass that point there's no reason we fail */
FsRtlNotifyVolumeEvent(IrpContext->Stack->FileObject, FSRTL_VOLUME_DISMOUNT);
ExAcquireResourceExclusiveLite(&DeviceExt->FatResource, TRUE);
/* Browse all the available FCBs first, and force data writing to disk */
for (NextEntry = DeviceExt->FcbListHead.Flink;
NextEntry != &DeviceExt->FcbListHead;
NextEntry = NextEntry->Flink)
{
Fcb = CONTAINING_RECORD(NextEntry, VFATFCB, FcbListEntry);
ExAcquireResourceExclusiveLite(&Fcb->MainResource, TRUE);
ExAcquireResourceExclusiveLite(&Fcb->PagingIoResource, TRUE);
if (Fcb->FileObject)
{
if (Fcb->Flags & FCB_IS_DIRTY)
{
VfatUpdateEntry(Fcb);
}
CcPurgeCacheSection(Fcb->FileObject->SectionObjectPointer, NULL, 0, FALSE);
CcUninitializeCacheMap(Fcb->FileObject, &Fcb->RFCB.FileSize, NULL);
}
ExReleaseResourceLite(&Fcb->PagingIoResource);
ExReleaseResourceLite(&Fcb->MainResource);
}
/* Rebrowse the FCB in order to free them now */
while (!IsListEmpty(&DeviceExt->FcbListHead))
{
NextEntry = RemoveHeadList(&DeviceExt->FcbListHead);
Fcb = CONTAINING_RECORD(NextEntry, VFATFCB, FcbListEntry);
vfatDestroyFCB(Fcb);
}
/* Mark we're being dismounted */
DeviceExt->Flags |= VCB_DISMOUNT_PENDING;
IrpContext->DeviceObject->Vpb->Flags &= ~VPB_MOUNTED;
ExReleaseResourceLite(&DeviceExt->FatResource);
/* Release a few resources and quit, we're done */
ExDeleteResourceLite(&DeviceExt->DirResource);
ExDeleteResourceLite(&DeviceExt->FatResource);
ObDereferenceObject(DeviceExt->FATFileObject);
return STATUS_SUCCESS;
} }
/* /*

View file

@ -608,7 +608,7 @@ GetNtfsFileRecord(PDEVICE_EXTENSION DeviceExt,
return STATUS_INVALID_PARAMETER; return STATUS_INVALID_PARAMETER;
} }
if (Stack->Parameters.FileSystemControl.OutputBufferLength < sizeof(NTFS_FILE_RECORD_OUTPUT_BUFFER) || if (Stack->Parameters.FileSystemControl.OutputBufferLength < (FIELD_OFFSET(NTFS_FILE_RECORD_OUTPUT_BUFFER, FileRecordBuffer) + DeviceExt->NtfsInfo.BytesPerFileRecord) ||
Irp->AssociatedIrp.SystemBuffer == NULL) Irp->AssociatedIrp.SystemBuffer == NULL)
{ {
DPRINT1("Invalid output! %d %p\n", Stack->Parameters.FileSystemControl.OutputBufferLength, Irp->AssociatedIrp.SystemBuffer); DPRINT1("Invalid output! %d %p\n", Stack->Parameters.FileSystemControl.OutputBufferLength, Irp->AssociatedIrp.SystemBuffer);
@ -634,17 +634,10 @@ GetNtfsFileRecord(PDEVICE_EXTENSION DeviceExt,
return Status; return Status;
} }
if (Stack->Parameters.FileSystemControl.OutputBufferLength < (FIELD_OFFSET(NTFS_FILE_RECORD_OUTPUT_BUFFER, FileRecordBuffer) + FileRecord->BytesInUse))
{
DPRINT1("Buffer too small: %lu vs %lu\n", Stack->Parameters.FileSystemControl.OutputBufferLength, FileRecord->BytesInUse);
ExFreePoolWithTag(FileRecord, TAG_NTFS);
return STATUS_BUFFER_TOO_SMALL;
}
OutputBuffer = (PNTFS_FILE_RECORD_OUTPUT_BUFFER)Irp->AssociatedIrp.SystemBuffer; OutputBuffer = (PNTFS_FILE_RECORD_OUTPUT_BUFFER)Irp->AssociatedIrp.SystemBuffer;
OutputBuffer->FileReferenceNumber.QuadPart = MFTRecord; OutputBuffer->FileReferenceNumber.QuadPart = MFTRecord;
OutputBuffer->FileRecordLength = FileRecord->BytesInUse; OutputBuffer->FileRecordLength = DeviceExt->NtfsInfo.BytesPerFileRecord;
RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, FileRecord->BytesInUse); RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, DeviceExt->NtfsInfo.BytesPerFileRecord);
ExFreePoolWithTag(FileRecord, TAG_NTFS); ExFreePoolWithTag(FileRecord, TAG_NTFS);

View file

@ -160,7 +160,7 @@ MiniIsBusy(
{ {
Busy = TRUE; Busy = TRUE;
} }
else if (Type == NdisWorkItemResetRequested && else if (Type == NdisWorkItemResetRequested &&
Adapter->NdisMiniportBlock.ResetStatus == NDIS_STATUS_PENDING) Adapter->NdisMiniportBlock.ResetStatus == NDIS_STATUS_PENDING)
{ {
Busy = TRUE; Busy = TRUE;
@ -340,7 +340,7 @@ MiniIndicateReceivePacket(
&NdisBufferVA, &NdisBufferVA,
&FirstBufferLength, &FirstBufferLength,
&TotalBufferLength); &TotalBufferLength);
HeaderSize = NDIS_GET_PACKET_HEADER_SIZE(PacketArray[i]); HeaderSize = NDIS_GET_PACKET_HEADER_SIZE(PacketArray[i]);
LookAheadSize = TotalBufferLength - HeaderSize; LookAheadSize = TotalBufferLength - HeaderSize;
@ -352,12 +352,12 @@ MiniIndicateReceivePacket(
KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, OldIrql); KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, OldIrql);
return; return;
} }
CopyBufferChainToBuffer(LookAheadBuffer, CopyBufferChainToBuffer(LookAheadBuffer,
NdisBuffer, NdisBuffer,
HeaderSize, HeaderSize,
LookAheadSize); LookAheadSize);
NDIS_DbgPrint(MID_TRACE, ("Indicating packet to protocol's legacy Receive handler\n")); NDIS_DbgPrint(MID_TRACE, ("Indicating packet to protocol's legacy Receive handler\n"));
(*AdapterBinding->ProtocolBinding->Chars.ReceiveHandler)( (*AdapterBinding->ProtocolBinding->Chars.ReceiveHandler)(
AdapterBinding->NdisOpenBlock.ProtocolBindingContext, AdapterBinding->NdisOpenBlock.ProtocolBindingContext,
@ -367,7 +367,7 @@ MiniIndicateReceivePacket(
LookAheadBuffer, LookAheadBuffer,
LookAheadSize, LookAheadSize,
TotalBufferLength - HeaderSize); TotalBufferLength - HeaderSize);
ExFreePool(LookAheadBuffer); ExFreePool(LookAheadBuffer);
} }
} }
@ -506,7 +506,7 @@ MiniRequestComplete(
Adapter->NdisMiniportBlock.PendingRequest = NULL; Adapter->NdisMiniportBlock.PendingRequest = NULL;
KeReleaseSpinLockFromDpcLevel(&Adapter->NdisMiniportBlock.Lock); KeReleaseSpinLockFromDpcLevel(&Adapter->NdisMiniportBlock.Lock);
KeLowerIrql(OldIrql); KeLowerIrql(OldIrql);
MiniWorkItemComplete(Adapter, NdisWorkItemRequest); MiniWorkItemComplete(Adapter, NdisWorkItemRequest);
} }
@ -558,7 +558,7 @@ MiniSendComplete(
Status); Status);
KeLowerIrql(OldIrql); KeLowerIrql(OldIrql);
MiniWorkItemComplete(Adapter, NdisWorkItemSend); MiniWorkItemComplete(Adapter, NdisWorkItemSend);
} }
@ -702,7 +702,7 @@ MiniLocateDevice(
KeAcquireSpinLock(&AdapterListLock, &OldIrql); KeAcquireSpinLock(&AdapterListLock, &OldIrql);
{ {
CurrentEntry = AdapterListHead.Flink; CurrentEntry = AdapterListHead.Flink;
while (CurrentEntry != &AdapterListHead) while (CurrentEntry != &AdapterListHead)
{ {
Adapter = CONTAINING_RECORD(CurrentEntry, LOGICAL_ADAPTER, ListEntry); Adapter = CONTAINING_RECORD(CurrentEntry, LOGICAL_ADAPTER, ListEntry);
@ -902,7 +902,7 @@ MiniReset(
NdisMIndicateStatus(Adapter, NDIS_STATUS_RESET_END, NULL, 0); NdisMIndicateStatus(Adapter, NDIS_STATUS_RESET_END, NULL, 0);
NdisMIndicateStatusComplete(Adapter); NdisMIndicateStatusComplete(Adapter);
MiniWorkItemComplete(Adapter, NdisWorkItemResetRequested); MiniWorkItemComplete(Adapter, NdisWorkItemResetRequested);
} }
@ -2608,11 +2608,11 @@ NdisMRegisterMiniport(
case 0x00: case 0x00:
MinSize = sizeof(NDIS50_MINIPORT_CHARACTERISTICS); MinSize = sizeof(NDIS50_MINIPORT_CHARACTERISTICS);
break; break;
case 0x01: case 0x01:
MinSize = sizeof(NDIS51_MINIPORT_CHARACTERISTICS); MinSize = sizeof(NDIS51_MINIPORT_CHARACTERISTICS);
break; break;
default: default:
NDIS_DbgPrint(MIN_TRACE, ("Bad 5.x minor characteristics version.\n")); NDIS_DbgPrint(MIN_TRACE, ("Bad 5.x minor characteristics version.\n"));
return NDIS_STATUS_BAD_VERSION; return NDIS_STATUS_BAD_VERSION;
@ -2624,7 +2624,7 @@ NdisMRegisterMiniport(
return NDIS_STATUS_BAD_VERSION; return NDIS_STATUS_BAD_VERSION;
} }
NDIS_DbgPrint(MIN_TRACE, ("Initializing an NDIS %u.%u miniport\n", NDIS_DbgPrint(MID_TRACE, ("Initializing an NDIS %u.%u miniport\n",
MiniportCharacteristics->MajorNdisVersion, MiniportCharacteristics->MajorNdisVersion,
MiniportCharacteristics->MinorNdisVersion)); MiniportCharacteristics->MinorNdisVersion));
@ -2845,7 +2845,7 @@ NdisMSetAttributesEx(
if (AttributeFlags & NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER) if (AttributeFlags & NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER)
NDIS_DbgPrint(MIN_TRACE, ("Intermediate drivers not supported yet.\n")); NDIS_DbgPrint(MIN_TRACE, ("Intermediate drivers not supported yet.\n"));
NDIS_DbgPrint(MIN_TRACE, ("Miniport attribute flags: 0x%x\n", AttributeFlags)); NDIS_DbgPrint(MID_TRACE, ("Miniport attribute flags: 0x%x\n", AttributeFlags));
if (Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.AdapterShutdownHandler) if (Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.AdapterShutdownHandler)
{ {
@ -3141,7 +3141,7 @@ NdisMRegisterDevice(
NDIS_DbgPrint(MIN_TRACE, ("IoCreateDevice failed (%x)\n", Status)); NDIS_DbgPrint(MIN_TRACE, ("IoCreateDevice failed (%x)\n", Status));
return Status; return Status;
} }
Status = IoCreateSymbolicLink(SymbolicName, DeviceName); Status = IoCreateSymbolicLink(SymbolicName, DeviceName);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))

View file

@ -424,7 +424,7 @@ proSendPacketToMiniport(PLOGICAL_ADAPTER Adapter, PNDIS_PACKET Packet)
NdisStatus = NDIS_STATUS_PENDING; NdisStatus = NDIS_STATUS_PENDING;
} }
} }
if (NdisStatus != NDIS_STATUS_PENDING) { if (NdisStatus != NDIS_STATUS_PENDING) {
MiniWorkItemComplete(Adapter, NdisWorkItemSend); MiniWorkItemComplete(Adapter, NdisWorkItemSend);
} }
@ -451,7 +451,7 @@ proSendPacketToMiniport(PLOGICAL_ADAPTER Adapter, PNDIS_PACKET Packet)
NdisStatus = NDIS_STATUS_PENDING; NdisStatus = NDIS_STATUS_PENDING;
} }
} }
if (NdisStatus != NDIS_STATUS_PENDING) { if (NdisStatus != NDIS_STATUS_PENDING) {
MiniWorkItemComplete(Adapter, NdisWorkItemSend); MiniWorkItemComplete(Adapter, NdisWorkItemSend);
} }
@ -602,7 +602,7 @@ ProSendPackets(
else else
{ {
if(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_DESERIALIZE) if(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_DESERIALIZE)
{ {
for (i = 0; i < NumberOfPackets; i++) for (i = 0; i < NumberOfPackets; i++)
{ {
NdisStatus = (*Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.SendHandler)( NdisStatus = (*Adapter->NdisMiniportBlock.DriverHandle->MiniportCharacteristics.SendHandler)(
@ -978,14 +978,14 @@ ndisBindMiniportsToProtocol(OUT PNDIS_STATUS Status, IN PPROTOCOL_BINDING Protoc
if (!NT_SUCCESS(NtStatus)) if (!NT_SUCCESS(NtStatus))
{ {
NDIS_DbgPrint(MIN_TRACE, ("Performing global bind for protocol '%wZ'\n", &ProtocolCharacteristics->Name)); NDIS_DbgPrint(MID_TRACE, ("Performing global bind for protocol '%wZ'\n", &ProtocolCharacteristics->Name));
KeyInformation = NULL; KeyInformation = NULL;
CurrentEntry = AdapterListHead.Flink; CurrentEntry = AdapterListHead.Flink;
} }
else else
{ {
NDIS_DbgPrint(MIN_TRACE, ("Performing standard bind for protocol '%wZ'\n", &ProtocolCharacteristics->Name)); NDIS_DbgPrint(MID_TRACE, ("Performing standard bind for protocol '%wZ'\n", &ProtocolCharacteristics->Name));
DataPtr = (WCHAR*)KeyInformation->Data; DataPtr = (WCHAR*)KeyInformation->Data;
} }
@ -1028,7 +1028,7 @@ ndisBindMiniportsToProtocol(OUT PNDIS_STATUS Status, IN PPROTOCOL_BINDING Protoc
/* It wasn't in the global miniport list, so skip the bind entry */ /* It wasn't in the global miniport list, so skip the bind entry */
goto next; goto next;
} }
/* Make sure this device isn't already bound to this protocol */ /* Make sure this device isn't already bound to this protocol */
if (LocateAdapterBindingByName(Protocol, &DeviceName)) if (LocateAdapterBindingByName(Protocol, &DeviceName))
{ {
@ -1074,10 +1074,10 @@ ndisBindMiniportsToProtocol(OUT PNDIS_STATUS Status, IN PPROTOCOL_BINDING Protoc
if(BindHandler) if(BindHandler)
{ {
BindHandler(Status, BindContext, &DeviceName, &RegistryPath, 0); BindHandler(Status, BindContext, &DeviceName, &RegistryPath, 0);
NDIS_DbgPrint(MIN_TRACE, ("%wZ's BindAdapter handler returned 0x%x for %wZ\n", &ProtocolCharacteristics->Name, *Status, &DeviceName)); NDIS_DbgPrint(MID_TRACE, ("%wZ's BindAdapter handler returned 0x%x for %wZ\n", &ProtocolCharacteristics->Name, *Status, &DeviceName));
} }
else else
NDIS_DbgPrint(MIN_TRACE, ("No protocol bind handler specified\n")); NDIS_DbgPrint(MID_TRACE, ("No protocol bind handler specified\n"));
} }
next: next:
@ -1190,7 +1190,7 @@ NdisRegisterProtocol(
InitializeListHead(&Protocol->AdapterListHead); InitializeListHead(&Protocol->AdapterListHead);
/* We must set this before the call to ndisBindMiniportsToProtocol because the protocol's /* We must set this before the call to ndisBindMiniportsToProtocol because the protocol's
* BindAdapter handler might need it */ * BindAdapter handler might need it */
*NdisProtocolHandle = Protocol; *NdisProtocolHandle = Protocol;

View file

@ -311,7 +311,7 @@ VOID
NTAPI NTAPI
PrintTListInfo(IN PSAC_SYSTEM_INFORMATION SacInfo) PrintTListInfo(IN PSAC_SYSTEM_INFORMATION SacInfo)
{ {
SAC_DBG(1, "Testing: %d %d %I64d\n", SAC_DBG(SAC_DBG_ENTRY_EXIT, "Testing: %d %d %I64d\n",
SacInfo->BasicInfo.NumberOfPhysicalPages, SacInfo->BasicInfo.NumberOfPhysicalPages,
SacInfo->PerfInfo.AvailablePages, SacInfo->PerfInfo.AvailablePages,
SacInfo->TimeInfo.BootTime); SacInfo->TimeInfo.BootTime);
@ -357,7 +357,7 @@ DoRebootCommand(IN BOOLEAN Reboot)
LARGE_INTEGER Timeout, TickCount; LARGE_INTEGER Timeout, TickCount;
NTSTATUS Status; NTSTATUS Status;
KEVENT Event; KEVENT Event;
SAC_DBG(1, "SAC DoRebootCommand: Entering.\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "SAC DoRebootCommand: Entering.\n");
/* Get the current time now, and setup a timeout in 1 second */ /* Get the current time now, and setup a timeout in 1 second */
KeQueryTickCount(&TickCount); KeQueryTickCount(&TickCount);
@ -430,42 +430,42 @@ VOID
NTAPI NTAPI
DoSetTimeCommand(IN PCHAR InputTime) DoSetTimeCommand(IN PCHAR InputTime)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
VOID VOID
NTAPI NTAPI
DoKillCommand(IN PCHAR KillString) DoKillCommand(IN PCHAR KillString)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
VOID VOID
NTAPI NTAPI
DoLowerPriorityCommand(IN PCHAR PrioString) DoLowerPriorityCommand(IN PCHAR PrioString)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
VOID VOID
NTAPI NTAPI
DoRaisePriorityCommand(IN PCHAR PrioString) DoRaisePriorityCommand(IN PCHAR PrioString)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
VOID VOID
NTAPI NTAPI
DoLimitMemoryCommand(IN PCHAR LimitString) DoLimitMemoryCommand(IN PCHAR LimitString)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
VOID VOID
NTAPI NTAPI
DoCrashCommand(VOID) DoCrashCommand(VOID)
{ {
SAC_DBG(1, "SAC DoCrashCommand: Entering.\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "SAC DoCrashCommand: Entering.\n");
/* Crash the machine */ /* Crash the machine */
KeBugCheckEx(MANUALLY_INITIATED_CRASH, 0, 0, 0, 0); KeBugCheckEx(MANUALLY_INITIATED_CRASH, 0, 0, 0, 0);
@ -476,28 +476,28 @@ VOID
NTAPI NTAPI
DoMachineInformationCommand(VOID) DoMachineInformationCommand(VOID)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
VOID VOID
NTAPI NTAPI
DoChannelCommand(IN PCHAR ChannelString) DoChannelCommand(IN PCHAR ChannelString)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
VOID VOID
NTAPI NTAPI
DoCmdCommand(IN PCHAR InputString) DoCmdCommand(IN PCHAR InputString)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
VOID VOID
NTAPI NTAPI
DoLockCommand(VOID) DoLockCommand(VOID)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
FORCEINLINE FORCEINLINE
@ -556,14 +556,14 @@ VOID
NTAPI NTAPI
DoGetNetInfo(IN BOOLEAN DoPrint) DoGetNetInfo(IN BOOLEAN DoPrint)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
VOID VOID
NTAPI NTAPI
DoSetIpAddressCommand(IN PCHAR IpString) DoSetIpAddressCommand(IN PCHAR IpString)
{ {
SAC_DBG(1, "Entering\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Entering\n");
} }
VOID VOID
@ -589,7 +589,7 @@ DoTlistCommand(VOID)
{ {
/* Out of memory, bail out */ /* Out of memory, bail out */
SacPutSimpleMessage(11); SacPutSimpleMessage(11);
SAC_DBG(1, "SAC DoTlistCommand: Exiting.\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "SAC DoTlistCommand: Exiting.\n");
return; return;
} }
} }
@ -613,7 +613,7 @@ DoTlistCommand(VOID)
{ {
/* Out of memory, bail out */ /* Out of memory, bail out */
SacPutSimpleMessage(11); SacPutSimpleMessage(11);
SAC_DBG(1, "SAC DoTlistCommand: Exiting.\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "SAC DoTlistCommand: Exiting.\n");
return; return;
} }
@ -637,5 +637,5 @@ DoTlistCommand(VOID)
PrintTListInfo(GlobalBuffer); PrintTListInfo(GlobalBuffer);
} }
SAC_DBG(1, "SAC DoTlistCommand: Exiting.\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "SAC DoTlistCommand: Exiting.\n");
} }

View file

@ -458,7 +458,7 @@ ConMgrProcessInputLine(VOID)
BOOLEAN EnablePaging; BOOLEAN EnablePaging;
NTSTATUS Status; NTSTATUS Status;
SAC_DBG(4, "SAC Input Test: %s\n", InputBuffer); SAC_DBG(SAC_DBG_INIT, "SAC Input Test: %s\n", InputBuffer);
if (!strncmp(InputBuffer, "t", 1)) if (!strncmp(InputBuffer, "t", 1))
{ {
@ -508,7 +508,7 @@ ConMgrProcessInputLine(VOID)
sizeof(EnablePaging), sizeof(EnablePaging),
NULL, NULL,
0); 0);
if (!NT_SUCCESS(Status)) SAC_DBG(4, "SAC Display Log failed.\n"); if (!NT_SUCCESS(Status)) SAC_DBG(SAC_DBG_INIT, "SAC Display Log failed.\n");
} }
else if (!strncmp(InputBuffer, "cmd", 3)) else if (!strncmp(InputBuffer, "cmd", 3))
{ {

View file

@ -12,7 +12,7 @@
/* GLOBALS ********************************************************************/ /* GLOBALS ********************************************************************/
ULONG SACDebug = 0xFFFFFFFF; ULONG SACDebug = 0;
BOOLEAN CommandConsoleLaunchingEnabled; BOOLEAN CommandConsoleLaunchingEnabled;
BOOLEAN GlobalDataInitialized; BOOLEAN GlobalDataInitialized;
KMUTEX SACCMDEventInfoMutex; KMUTEX SACCMDEventInfoMutex;
@ -100,7 +100,7 @@ NTAPI
FreeGlobalData(VOID) FreeGlobalData(VOID)
{ {
UNICODE_STRING SymbolicLink; UNICODE_STRING SymbolicLink;
SAC_DBG(1, "SAC FreeGlobalData: Entering.\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "SAC FreeGlobalData: Entering.\n");
/* Only free if we allocated */ /* Only free if we allocated */
if (GlobalDataInitialized) if (GlobalDataInitialized)
@ -139,7 +139,7 @@ FreeGlobalData(VOID)
} }
/* All done */ /* All done */
SAC_DBG(1, "SAC FreeGlobalData: Exiting.\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "SAC FreeGlobalData: Exiting.\n");
} }
VOID VOID
@ -313,7 +313,7 @@ InitializeDeviceData(IN PDEVICE_OBJECT DeviceObject)
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
/* For debugging, write down why we failed */ /* For debugging, write down why we failed */
SAC_DBG(1, "Exiting (6) with status FALSE\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "Exiting (6) with status FALSE\n");
DeviceExtension->PriorityFail = TRUE; DeviceExtension->PriorityFail = TRUE;
/* Initialize rundown and wait for the thread to do it */ /* Initialize rundown and wait for the thread to do it */

View file

@ -434,7 +434,7 @@ GetRegistryValueBuffer(IN PCWSTR KeyName,
*Buffer = SacAllocatePool(ResultLength, GLOBAL_BLOCK_TAG); *Buffer = SacAllocatePool(ResultLength, GLOBAL_BLOCK_TAG);
if (!*Buffer) if (!*Buffer)
{ {
SAC_DBG(1, "SAC GetRegistryValueBuffer: failed allocation\n"); SAC_DBG(SAC_DBG_ENTRY_EXIT, "SAC GetRegistryValueBuffer: failed allocation\n");
return Status; return Status;
} }
@ -497,7 +497,7 @@ SetRegistryValue(IN PCWSTR KeyName,
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
/* Print error on failure */ /* Print error on failure */
SAC_DBG(1, "SAC SetRegistryValue: failed ZwSetValueKey: %X.\n", Status); SAC_DBG(SAC_DBG_ENTRY_EXIT, "SAC SetRegistryValue: failed ZwSetValueKey: %X.\n", Status);
} }
/* Close the handle and exit */ /* Close the handle and exit */

View file

@ -245,7 +245,7 @@ DeviceStatusChangeThread(
if (PortStatus.Change & USB_PORT_STATUS_CONNECT) if (PortStatus.Change & USB_PORT_STATUS_CONNECT)
{ {
// //
// Clear Port Connect // Clear Port Connect
// //
Status = ClearPortFeature(RootHubDeviceObject, PortId, C_PORT_CONNECTION); Status = ClearPortFeature(RootHubDeviceObject, PortId, C_PORT_CONNECTION);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
@ -794,7 +794,7 @@ IsCompositeDevice(
return TRUE; return TRUE;
} }
if (DeviceDescriptor->bDeviceClass == 0xEF && if (DeviceDescriptor->bDeviceClass == 0xEF &&
DeviceDescriptor->bDeviceSubClass == 0x02 && DeviceDescriptor->bDeviceSubClass == 0x02 &&
DeviceDescriptor->bDeviceProtocol == 0x01) DeviceDescriptor->bDeviceProtocol == 0x01)
{ {
@ -888,7 +888,7 @@ CreateDeviceIds(
if (DeviceDescriptor->bDeviceClass == 0) if (DeviceDescriptor->bDeviceClass == 0)
{ {
Index += swprintf(&Buffer[Index], Index += swprintf(&Buffer[Index],
L"USB\\Class_%02x&SubClass_%02x&Prot_%02x", L"USB\\Class_%02x&SubClass_%02x&Prot_%02x",
InterfaceDescriptor->bInterfaceClass, InterfaceDescriptor->bInterfaceSubClass, InterfaceDescriptor->bInterfaceProtocol) + 1; InterfaceDescriptor->bInterfaceClass, InterfaceDescriptor->bInterfaceSubClass, InterfaceDescriptor->bInterfaceProtocol) + 1;
Index += swprintf(&Buffer[Index], Index += swprintf(&Buffer[Index],
@ -900,7 +900,7 @@ CreateDeviceIds(
} }
else else
{ {
Index += swprintf(&Buffer[Index], Index += swprintf(&Buffer[Index],
L"USB\\Class_%02x&SubClass_%02x&Prot_%02x", L"USB\\Class_%02x&SubClass_%02x&Prot_%02x",
DeviceDescriptor->bDeviceClass, DeviceDescriptor->bDeviceSubClass, DeviceDescriptor->bDeviceProtocol) + 1; DeviceDescriptor->bDeviceClass, DeviceDescriptor->bDeviceSubClass, DeviceDescriptor->bDeviceProtocol) + 1;
Index += swprintf(&Buffer[Index], Index += swprintf(&Buffer[Index],
@ -964,7 +964,7 @@ CreateDeviceIds(
// Construct HardwareIds // Construct HardwareIds
// //
Index = 0; Index = 0;
Index += swprintf(&Buffer[Index], Index += swprintf(&Buffer[Index],
L"USB\\Vid_%04x&Pid_%04x&Rev_%04x", L"USB\\Vid_%04x&Pid_%04x&Rev_%04x",
UsbChildExtension->DeviceDesc.idVendor, UsbChildExtension->DeviceDesc.idProduct, UsbChildExtension->DeviceDesc.bcdDevice) + 1; UsbChildExtension->DeviceDesc.idVendor, UsbChildExtension->DeviceDesc.idProduct, UsbChildExtension->DeviceDesc.bcdDevice) + 1;
Index += swprintf(&Buffer[Index], Index += swprintf(&Buffer[Index],
@ -1146,7 +1146,7 @@ CreateUsbChildDeviceObject(
RootHubDeviceObject = HubDeviceExtension->RootHubPhysicalDeviceObject; RootHubDeviceObject = HubDeviceExtension->RootHubPhysicalDeviceObject;
HubInterfaceBusContext = HubDeviceExtension->UsbDInterface.BusContext; HubInterfaceBusContext = HubDeviceExtension->UsbDInterface.BusContext;
// //
// Find an empty slot in the child device array // Find an empty slot in the child device array
// //
for (ChildDeviceCount = 0; ChildDeviceCount < USB_MAXCHILDREN; ChildDeviceCount++) for (ChildDeviceCount = 0; ChildDeviceCount < USB_MAXCHILDREN; ChildDeviceCount++)
{ {
@ -1318,7 +1318,7 @@ CreateUsbChildDeviceObject(
} }
// query device details // query device details
Status = HubInterface->QueryDeviceInformation(HubInterfaceBusContext, Status = HubInterface->QueryDeviceInformation(HubInterfaceBusContext,
UsbChildExtension->UsbDeviceHandle, UsbChildExtension->UsbDeviceHandle,
&UsbChildExtension->DeviceInformation, &UsbChildExtension->DeviceInformation,
sizeof(USB_DEVICE_INFORMATION_0), sizeof(USB_DEVICE_INFORMATION_0),
@ -1638,13 +1638,13 @@ USBHUB_FdoStartDevice(
sizeof(USB_DEVICE_INFORMATION_0), sizeof(USB_DEVICE_INFORMATION_0),
&Result); &Result);
DPRINT1("Status %x, Result 0x%08lx\n", Status, Result); DPRINT("Status %x, Result 0x%08lx\n", Status, Result);
DPRINT1("InformationLevel %x\n", HubDeviceExtension->DeviceInformation.InformationLevel); DPRINT("InformationLevel %x\n", HubDeviceExtension->DeviceInformation.InformationLevel);
DPRINT1("ActualLength %x\n", HubDeviceExtension->DeviceInformation.ActualLength); DPRINT("ActualLength %x\n", HubDeviceExtension->DeviceInformation.ActualLength);
DPRINT1("PortNumber %x\n", HubDeviceExtension->DeviceInformation.PortNumber); DPRINT("PortNumber %x\n", HubDeviceExtension->DeviceInformation.PortNumber);
DPRINT1("DeviceDescriptor %x\n", HubDeviceExtension->DeviceInformation.DeviceDescriptor); DPRINT("DeviceDescriptor %x\n", HubDeviceExtension->DeviceInformation.DeviceDescriptor);
DPRINT1("HubAddress %x\n", HubDeviceExtension->DeviceInformation.HubAddress); DPRINT("HubAddress %x\n", HubDeviceExtension->DeviceInformation.HubAddress);
DPRINT1("NumberofPipes %x\n", HubDeviceExtension->DeviceInformation.NumberOfOpenPipes); DPRINT("NumberofPipes %x\n", HubDeviceExtension->DeviceInformation.NumberOfOpenPipes);
// Get Root Hubs Device Descriptor // Get Root Hubs Device Descriptor
UsbBuildGetDescriptorRequest(Urb, UsbBuildGetDescriptorRequest(Urb,
@ -1737,7 +1737,7 @@ USBHUB_FdoStartDevice(
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
} }
DPRINT1("HubDeviceExtension->UsbExtHubInfo.NumberOfPorts %x\n", HubDeviceExtension->UsbExtHubInfo.NumberOfPorts); DPRINT("HubDeviceExtension->UsbExtHubInfo.NumberOfPorts %x\n", HubDeviceExtension->UsbExtHubInfo.NumberOfPorts);
// Build hub descriptor request // Build hub descriptor request
UsbBuildVendorRequest(Urb, UsbBuildVendorRequest(Urb,
@ -2222,7 +2222,7 @@ USBHUB_FdoHandleDeviceControl(
} }
else else
{ {
DPRINT1("UNIMPLEMENTED FdoHandleDeviceControl IoCtl %x InputBufferLength %x OutputBufferLength %x\n", IoStack->Parameters.DeviceIoControl.IoControlCode, DPRINT1("UNIMPLEMENTED FdoHandleDeviceControl IoCtl %x InputBufferLength %x OutputBufferLength %x\n", IoStack->Parameters.DeviceIoControl.IoControlCode,
IoStack->Parameters.DeviceIoControl.InputBufferLength, IoStack->Parameters.DeviceIoControl.OutputBufferLength); IoStack->Parameters.DeviceIoControl.InputBufferLength, IoStack->Parameters.DeviceIoControl.OutputBufferLength);
} }

View file

@ -178,7 +178,7 @@ CUSBHardwareDevice::Initialize(
// //
// store device objects // store device objects
// //
m_DriverObject = DriverObject; m_DriverObject = DriverObject;
m_FunctionalDeviceObject = FunctionalDeviceObject; m_FunctionalDeviceObject = FunctionalDeviceObject;
m_PhysicalDeviceObject = PhysicalDeviceObject; m_PhysicalDeviceObject = PhysicalDeviceObject;
@ -289,7 +289,7 @@ CUSBHardwareDevice::PnpStart(
} }
// //
// Get controllers capabilities // Get controllers capabilities
// //
Version = READ_REGISTER_ULONG((PULONG)((ULONG_PTR)ResourceBase + OHCI_REVISION_OFFSET)); Version = READ_REGISTER_ULONG((PULONG)((ULONG_PTR)ResourceBase + OHCI_REVISION_OFFSET));
@ -380,7 +380,7 @@ CUSBHardwareDevice::PnpStart(
// //
// Start the controller // Start the controller
// //
DPRINT1("Starting Controller\n"); DPRINT("Starting Controller\n");
Status = StartController(); Status = StartController();
// //
@ -503,7 +503,7 @@ CUSBHardwareDevice::StartController(void)
// //
break; break;
} }
} }
// //
// if the ownership is still not changed, perform reset // if the ownership is still not changed, perform reset
@ -521,17 +521,17 @@ CUSBHardwareDevice::StartController(void)
// //
// read contents of control register // read contents of control register
// //
Control = (READ_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_CONTROL_OFFSET)) & OHCI_HC_FUNCTIONAL_STATE_MASK); Control = (READ_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_CONTROL_OFFSET)) & OHCI_HC_FUNCTIONAL_STATE_MASK);
DPRINT1("Controller State %x\n", Control); DPRINT("Controller State %x\n", Control);
switch (Control) switch (Control)
{ {
case OHCI_HC_FUNCTIONAL_STATE_RESET: case OHCI_HC_FUNCTIONAL_STATE_RESET:
NewControl |= OHCI_HC_FUNCTIONAL_STATE_RESET; NewControl |= OHCI_HC_FUNCTIONAL_STATE_RESET;
WaitInMs = 50; WaitInMs = 50;
break; break;
case OHCI_HC_FUNCTIONAL_STATE_SUSPEND: case OHCI_HC_FUNCTIONAL_STATE_SUSPEND:
case OHCI_HC_FUNCTIONAL_STATE_RESUME: case OHCI_HC_FUNCTIONAL_STATE_RESUME:
NewControl |= OHCI_HC_FUNCTIONAL_STATE_RESUME; NewControl |= OHCI_HC_FUNCTIONAL_STATE_RESUME;
@ -555,13 +555,13 @@ retry:
// delay is 100 ms // delay is 100 ms
// //
Timeout.QuadPart = WaitInMs; Timeout.QuadPart = WaitInMs;
DPRINT1("Waiting %lu milliseconds for controller to transition state\n", Timeout.LowPart); DPRINT("Waiting %lu milliseconds for controller to transition state\n", Timeout.LowPart);
// //
// convert to 100 ns units (absolute) // convert to 100 ns units (absolute)
// //
Timeout.QuadPart *= -10000; Timeout.QuadPart *= -10000;
// //
// perform the wait // perform the wait
// //
@ -617,9 +617,9 @@ retry:
FrameInterval = ((FrameInterval & OHCI_FRAME_INTERVAL_TOGGLE) ^ OHCI_FRAME_INTERVAL_TOGGLE); FrameInterval = ((FrameInterval & OHCI_FRAME_INTERVAL_TOGGLE) ^ OHCI_FRAME_INTERVAL_TOGGLE);
DPRINT1("FrameInterval %x IntervalValue %x\n", FrameInterval, m_IntervalValue); DPRINT("FrameInterval %x IntervalValue %x\n", FrameInterval, m_IntervalValue);
FrameInterval |= OHCI_FSMPS(m_IntervalValue) | m_IntervalValue; FrameInterval |= OHCI_FSMPS(m_IntervalValue) | m_IntervalValue;
DPRINT1("Computed FrameInterval %x\n", FrameInterval); DPRINT("Computed FrameInterval %x\n", FrameInterval);
// //
// write frame interval // write frame interval
@ -627,17 +627,17 @@ retry:
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_FRAME_INTERVAL_OFFSET), FrameInterval); WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_FRAME_INTERVAL_OFFSET), FrameInterval);
FrameInterval = READ_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_FRAME_INTERVAL_OFFSET)); FrameInterval = READ_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_FRAME_INTERVAL_OFFSET));
DPRINT1("Read FrameInterval %x\n", FrameInterval); DPRINT("Read FrameInterval %x\n", FrameInterval);
// //
// 90 % periodic // 90 % periodic
// //
Periodic = OHCI_PERIODIC(m_IntervalValue); Periodic = OHCI_PERIODIC(m_IntervalValue);
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_PERIODIC_START_OFFSET), Periodic); WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_PERIODIC_START_OFFSET), Periodic);
DPRINT1("Computed Periodic Start %x\n", Periodic); DPRINT("Computed Periodic Start %x\n", Periodic);
Periodic = READ_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_PERIODIC_START_OFFSET)); Periodic = READ_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_PERIODIC_START_OFFSET));
DPRINT1("Read Periodic Start %x\n", Periodic); DPRINT("Read Periodic Start %x\n", Periodic);
// Linux does this hack for some bad controllers // Linux does this hack for some bad controllers
if (!(FrameInterval & 0x3FFF0000) || if (!(FrameInterval & 0x3FFF0000) ||
@ -680,7 +680,7 @@ retry:
m_NumberOfPorts = OHCI_RH_GET_PORT_COUNT(Descriptor); m_NumberOfPorts = OHCI_RH_GET_PORT_COUNT(Descriptor);
} while (m_NumberOfPorts == 0); } while (m_NumberOfPorts == 0);
DPRINT1("NumberOfPorts %lu\n", m_NumberOfPorts); DPRINT("NumberOfPorts %lu\n", m_NumberOfPorts);
ASSERT(m_NumberOfPorts < OHCI_MAX_PORT_COUNT); ASSERT(m_NumberOfPorts < OHCI_MAX_PORT_COUNT);
// //
@ -701,7 +701,7 @@ retry:
// //
// write the configuration back // write the configuration back
// //
DPRINT1("Descriptor A: %x\n", Descriptor); DPRINT("Descriptor A: %x\n", Descriptor);
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_RH_DESCRIPTOR_A_OFFSET), Descriptor); WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_RH_DESCRIPTOR_A_OFFSET), Descriptor);
// //
@ -720,7 +720,7 @@ retry:
// //
// write the configuration back // write the configuration back
// //
DPRINT1("Descriptor B: %x\n", Descriptor); DPRINT("Descriptor B: %x\n", Descriptor);
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_RH_DESCRIPTOR_B_OFFSET), Descriptor); WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_RH_DESCRIPTOR_B_OFFSET), Descriptor);
// //
@ -730,7 +730,7 @@ retry:
KeStallExecutionProcessor(10); KeStallExecutionProcessor(10);
Control = READ_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_HCCA_OFFSET)); Control = READ_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_HCCA_OFFSET));
ASSERT((m_HCCAPhysicalAddress.LowPart & Control) == m_HCCAPhysicalAddress.LowPart); ASSERT((m_HCCAPhysicalAddress.LowPart & Control) == m_HCCAPhysicalAddress.LowPart);
DPRINT1("HCCA: %x Alignment mask: %x\n", m_HCCAPhysicalAddress.LowPart, Control); DPRINT("HCCA: %x Alignment mask: %x\n", m_HCCAPhysicalAddress.LowPart, Control);
// //
// write address of HCCA // write address of HCCA
@ -770,12 +770,12 @@ retry:
// //
ASSERT((Control & OHCI_HC_FUNCTIONAL_STATE_MASK) == OHCI_HC_FUNCTIONAL_STATE_OPERATIONAL); ASSERT((Control & OHCI_HC_FUNCTIONAL_STATE_MASK) == OHCI_HC_FUNCTIONAL_STATE_OPERATIONAL);
ASSERT((Control & OHCI_ENABLE_LIST) == OHCI_ENABLE_LIST); ASSERT((Control & OHCI_ENABLE_LIST) == OHCI_ENABLE_LIST);
DPRINT1("Control %x\n", Control); DPRINT("Control %x\n", Control);
// //
// done // done
// //
DPRINT1("OHCI controller is operational\n"); DPRINT("OHCI controller is operational\n");
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
@ -1152,7 +1152,7 @@ CUSBHardwareDevice::ClearPortStatus(
// //
// re-enable root hub change // re-enable root hub change
// //
DPRINT1("Enabling status change\n"); DPRINT("Enabling status change\n");
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_INTERRUPT_ENABLE_OFFSET), OHCI_ROOT_HUB_STATUS_CHANGE); WRITE_REGISTER_ULONG((PULONG)((PUCHAR)m_Base + OHCI_INTERRUPT_ENABLE_OFFSET), OHCI_ROOT_HUB_STATUS_CHANGE);
return STATUS_SUCCESS; return STATUS_SUCCESS;
@ -1206,7 +1206,7 @@ CUSBHardwareDevice::SetPortFeature(
// delay is multiplied by 2 ms // delay is multiplied by 2 ms
// //
Timeout.QuadPart *= 2; Timeout.QuadPart *= 2;
DPRINT1("Waiting %lu milliseconds for port power up\n", Timeout.LowPart); DPRINT("Waiting %lu milliseconds for port power up\n", Timeout.LowPart);
// //
// convert to 100 ns units (absolute) // convert to 100 ns units (absolute)
@ -1322,9 +1322,9 @@ InterruptServiceRoutine(
// the interrupt was not caused by DoneHead update // the interrupt was not caused by DoneHead update
// check if something important happened // check if something important happened
// //
DPRINT("InterruptStatus %x InterruptEnable %x\n", READ_REGISTER_ULONG((PULONG)((PUCHAR)This->m_Base + OHCI_INTERRUPT_STATUS_OFFSET)), DPRINT("InterruptStatus %x InterruptEnable %x\n", READ_REGISTER_ULONG((PULONG)((PUCHAR)This->m_Base + OHCI_INTERRUPT_STATUS_OFFSET)),
READ_REGISTER_ULONG((PULONG)((PUCHAR)This->m_Base + OHCI_INTERRUPT_ENABLE_OFFSET))); READ_REGISTER_ULONG((PULONG)((PUCHAR)This->m_Base + OHCI_INTERRUPT_ENABLE_OFFSET)));
Status = READ_REGISTER_ULONG((PULONG)((PUCHAR)This->m_Base + OHCI_INTERRUPT_STATUS_OFFSET)) & READ_REGISTER_ULONG((PULONG)((PUCHAR)This->m_Base + OHCI_INTERRUPT_ENABLE_OFFSET)) & (~OHCI_WRITEBACK_DONE_HEAD); Status = READ_REGISTER_ULONG((PULONG)((PUCHAR)This->m_Base + OHCI_INTERRUPT_STATUS_OFFSET)) & READ_REGISTER_ULONG((PULONG)((PUCHAR)This->m_Base + OHCI_INTERRUPT_ENABLE_OFFSET)) & (~OHCI_WRITEBACK_DONE_HEAD);
if (Status == 0) if (Status == 0)
{ {
// //
@ -1387,7 +1387,7 @@ InterruptServiceRoutine(
WRITE_REGISTER_ULONG((PULONG)((PUCHAR)This->m_Base + OHCI_CONTROL_OFFSET), OHCI_HC_FUNCTIONAL_STATE_RESET); WRITE_REGISTER_ULONG((PULONG)((PUCHAR)This->m_Base + OHCI_CONTROL_OFFSET), OHCI_HC_FUNCTIONAL_STATE_RESET);
} }
if (Status & OHCI_ROOT_HUB_STATUS_CHANGE) if (Status & OHCI_ROOT_HUB_STATUS_CHANGE)
{ {
// //
// disable interrupt as it will fire untill the port has been reset // disable interrupt as it will fire untill the port has been reset

View file

@ -822,7 +822,7 @@ NTAPI
HalpDispatchPower(IN PDEVICE_OBJECT DeviceObject, HalpDispatchPower(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp) IN PIRP Irp)
{ {
DPRINT1("HAL: PnP Driver Power!\n"); DPRINT("HAL: PnP Driver Power!\n");
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }

View file

@ -713,14 +713,14 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
case IRP_MN_START_DEVICE: case IRP_MN_START_DEVICE:
/* We only care about a PCI PDO */ /* We only care about a PCI PDO */
DPRINT1("Start device received\n"); DPRINT("Start device received\n");
/* Complete the IRP normally */ /* Complete the IRP normally */
break; break;
case IRP_MN_REMOVE_DEVICE: case IRP_MN_REMOVE_DEVICE:
/* Check if this is a PCI device */ /* Check if this is a PCI device */
DPRINT1("Remove device received\n"); DPRINT("Remove device received\n");
/* We're done */ /* We're done */
Status = STATUS_SUCCESS; Status = STATUS_SUCCESS;
@ -729,7 +729,7 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
case IRP_MN_SURPRISE_REMOVAL: case IRP_MN_SURPRISE_REMOVAL:
/* Inherit whatever status we had */ /* Inherit whatever status we had */
DPRINT1("Surprise removal IRP\n"); DPRINT("Surprise removal IRP\n");
Status = Irp->IoStatus.Status; Status = Irp->IoStatus.Status;
break; break;
@ -790,7 +790,7 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
default: default:
/* We don't handle anything else, so inherit the old state */ /* We don't handle anything else, so inherit the old state */
DPRINT("Illegal IRP: %lx\n", Minor); DPRINT1("Illegal IRP: %lx\n", Minor);
Status = Irp->IoStatus.Status; Status = Irp->IoStatus.Status;
break; break;
} }

View file

@ -90,6 +90,7 @@ extern "C" {
#define FSCTL_READ_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA) #define FSCTL_READ_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA)
#define FSCTL_WRITE_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA) #define FSCTL_WRITE_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA)
#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,25,METHOD_BUFFERED,FILE_ANY_ACCESS) #define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,25,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM,26,METHOD_BUFFERED,FILE_ANY_ACCESS)
#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM,27,METHOD_NEITHER,FILE_ANY_ACCESS) #define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM,27,METHOD_NEITHER,FILE_ANY_ACCESS)
#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM,28,METHOD_NEITHER,FILE_ANY_ACCESS) #define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM,28,METHOD_NEITHER,FILE_ANY_ACCESS)
#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,29,METHOD_BUFFERED,FILE_ANY_ACCESS) #define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,29,METHOD_BUFFERED,FILE_ANY_ACCESS)
@ -556,6 +557,19 @@ typedef struct {
LARGE_INTEGER MftZoneStart; LARGE_INTEGER MftZoneStart;
LARGE_INTEGER MftZoneEnd; LARGE_INTEGER MftZoneEnd;
} NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER; } NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER;
typedef struct {
ULONG ByteCount;
USHORT MajorVersion;
USHORT MinorVersion;
} NTFS_EXTENDED_VOLUME_DATA, *PNTFS_EXTENDED_VOLUME_DATA;
typedef struct {
LARGE_INTEGER FileReferenceNumber;
} NTFS_FILE_RECORD_INPUT_BUFFER, *PNTFS_FILE_RECORD_INPUT_BUFFER;
typedef struct {
LARGE_INTEGER FileReferenceNumber;
ULONG FileRecordLength;
UCHAR FileRecordBuffer[1];
} NTFS_FILE_RECORD_OUTPUT_BUFFER, *PNTFS_FILE_RECORD_OUTPUT_BUFFER;
#define IsRecognizedPartition(t)\ #define IsRecognizedPartition(t)\
(((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\ (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\

View file

@ -83,7 +83,8 @@ BOOL WINAPI StrRetToStrNW(LPWSTR,DWORD,LPSTRRET,const ITEMIDLIST*);
#define RFF_NOLABEL 0x08 #define RFF_NOLABEL 0x08
#define RFF_NOSEPARATEMEM 0x20 /* NT only */ #define RFF_NOSEPARATEMEM 0x20 /* NT only */
#define DE_SAMEFILE 0x71 #define DE_SAMEFILE 0x71
#define DE_DESTSAMETREE 0x7D
/* RunFileFlg notification structure */ /* RunFileFlg notification structure */
typedef struct typedef struct

View file

@ -22,8 +22,12 @@ HvpWriteLog(
ULONG LastIndex; ULONG LastIndex;
PVOID BlockPtr; PVOID BlockPtr;
BOOLEAN Success; BOOLEAN Success;
static ULONG PrintCount = 0;
UNIMPLEMENTED; if (PrintCount++ == 0)
{
UNIMPLEMENTED;
}
return TRUE; return TRUE;
ASSERT(RegistryHive->ReadOnly == FALSE); ASSERT(RegistryHive->ReadOnly == FALSE);

View file

@ -312,7 +312,7 @@ CHubController::QueryStatusChangeEndpoint(
// Get the number of ports and check each one for device connected // Get the number of ports and check each one for device connected
// //
m_Hardware->GetDeviceDetails(NULL, NULL, &PortCount, NULL); m_Hardware->GetDeviceDetails(NULL, NULL, &PortCount, NULL);
DPRINT1("[%s] SCE Request %p TransferBufferLength %lu Flags %x MDL %p\n", m_USBType, Urb->UrbBulkOrInterruptTransfer.TransferBuffer, Urb->UrbBulkOrInterruptTransfer.TransferBufferLength, Urb->UrbBulkOrInterruptTransfer.TransferFlags, Urb->UrbBulkOrInterruptTransfer.TransferBufferMDL); DPRINT("[%s] SCE Request %p TransferBufferLength %lu Flags %x MDL %p\n", m_USBType, Urb->UrbBulkOrInterruptTransfer.TransferBuffer, Urb->UrbBulkOrInterruptTransfer.TransferBufferLength, Urb->UrbBulkOrInterruptTransfer.TransferFlags, Urb->UrbBulkOrInterruptTransfer.TransferBufferMDL);
TransferBuffer = (PUCHAR)Urb->UrbBulkOrInterruptTransfer.TransferBuffer; TransferBuffer = (PUCHAR)Urb->UrbBulkOrInterruptTransfer.TransferBuffer;
@ -323,7 +323,7 @@ CHubController::QueryStatusChangeEndpoint(
{ {
m_Hardware->GetPortStatus(PortId, &PortStatus, &PortChange); m_Hardware->GetPortStatus(PortId, &PortStatus, &PortChange);
DPRINT1("[%s] Port %d: Status %x, Change %x\n", m_USBType, PortId, PortStatus, PortChange); DPRINT("[%s] Port %d: Status %x, Change %x\n", m_USBType, PortId, PortStatus, PortChange);
// //
@ -3935,7 +3935,7 @@ CHubController::CreatePDO(
} }
} }
DPRINT1("CHubController::CreatePDO: DeviceName %wZ\n", &DeviceName); DPRINT("CHubController::CreatePDO: DeviceName %wZ\n", &DeviceName);
// //
// fixup device stack voodoo part #1 // fixup device stack voodoo part #1

View file

@ -30,7 +30,7 @@ USBLIB_AddDevice(
NTSTATUS Status; NTSTATUS Status;
PHCDCONTROLLER HcdController; PHCDCONTROLLER HcdController;
DPRINT1("USBLIB_AddDevice\n"); DPRINT("USBLIB_AddDevice\n");
/* first create the controller object */ /* first create the controller object */
Status = CreateHCDController(&HcdController); Status = CreateHCDController(&HcdController);
@ -67,7 +67,7 @@ extern
NTSTATUS NTSTATUS
NTAPI NTAPI
USBLIB_Dispatch( USBLIB_Dispatch(
PDEVICE_OBJECT DeviceObject, PDEVICE_OBJECT DeviceObject,
PIRP Irp) PIRP Irp)
{ {
PCOMMON_DEVICE_EXTENSION DeviceExtension; PCOMMON_DEVICE_EXTENSION DeviceExtension;
@ -137,4 +137,4 @@ USBLIB_Dispatch(
return Status; return Status;
} }
} }

View file

@ -987,16 +987,10 @@ clean_up:
ext2_free_block_bitmap(&FileSys); ext2_free_block_bitmap(&FileSys);
ext2_free_inode_bitmap(&FileSys); ext2_free_inode_bitmap(&FileSys);
if (!bRet) if(bLocked)
{ {
Ext2DisMountVolume(&FileSys); Ext2DisMountVolume(&FileSys);
} Ext2UnLockVolume(&FileSys);
else
{
if(bLocked)
{
Ext2UnLockVolume(&FileSys);
}
} }
Ext2CloseDevice(&FileSys); Ext2CloseDevice(&FileSys);

View file

@ -36,7 +36,7 @@ LsaDeregisterLogonProcess(HANDLE LsaHandle)
LSA_API_MSG ApiMessage; LSA_API_MSG ApiMessage;
NTSTATUS Status; NTSTATUS Status;
DPRINT1("LsaDeregisterLogonProcess()\n"); DPRINT("LsaDeregisterLogonProcess()\n");
ApiMessage.ApiNumber = LSASS_REQUEST_DEREGISTER_LOGON_PROCESS; ApiMessage.ApiNumber = LSASS_REQUEST_DEREGISTER_LOGON_PROCESS;
ApiMessage.h.u1.s1.DataLength = LSA_PORT_DATA_SIZE(ApiMessage.DeregisterLogonProcess); ApiMessage.h.u1.s1.DataLength = LSA_PORT_DATA_SIZE(ApiMessage.DeregisterLogonProcess);
@ -60,7 +60,7 @@ LsaDeregisterLogonProcess(HANDLE LsaHandle)
NtClose(LsaHandle); NtClose(LsaHandle);
DPRINT1("LsaDeregisterLogonProcess() done (Status 0x%08lx)\n", Status); DPRINT("LsaDeregisterLogonProcess() done (Status 0x%08lx)\n", Status);
return Status; return Status;
} }
@ -79,7 +79,7 @@ LsaConnectUntrusted(PHANDLE LsaHandle)
ULONG ConnectInfoLength = sizeof(ConnectInfo); ULONG ConnectInfoLength = sizeof(ConnectInfo);
NTSTATUS Status; NTSTATUS Status;
DPRINT1("LsaConnectUntrusted(%p)\n", LsaHandle); DPRINT("LsaConnectUntrusted(%p)\n", LsaHandle);
RtlInitUnicodeString(&PortName, RtlInitUnicodeString(&PortName,
L"\\LsaAuthenticationPort"); L"\\LsaAuthenticationPort");
@ -311,7 +311,7 @@ LsaRegisterLogonProcess(PLSA_STRING LsaLogonProcessName,
ULONG ConnectInfoLength = sizeof(ConnectInfo); ULONG ConnectInfoLength = sizeof(ConnectInfo);
NTSTATUS Status; NTSTATUS Status;
DPRINT1("LsaRegisterLogonProcess()\n"); DPRINT("LsaRegisterLogonProcess()\n");
/* Check the logon process name length */ /* Check the logon process name length */
if (LsaLogonProcessName->Length > LSASS_MAX_LOGON_PROCESS_NAME_LENGTH) if (LsaLogonProcessName->Length > LSASS_MAX_LOGON_PROCESS_NAME_LENGTH)

View file

@ -668,52 +668,52 @@ ExpInitSystemPhase1(VOID)
DPRINT1("Executive: Event Pair initialization failed\n"); DPRINT1("Executive: Event Pair initialization failed\n");
return FALSE; return FALSE;
} }
/* Initialize mutants */ /* Initialize mutants */
if (ExpInitializeMutantImplementation() == FALSE) if (ExpInitializeMutantImplementation() == FALSE)
{ {
DPRINT1("Executive: Mutant initialization failed\n"); DPRINT1("Executive: Mutant initialization failed\n");
return FALSE; return FALSE;
} }
/* Initialize callbacks */ /* Initialize callbacks */
if (ExpInitializeCallbacks() == FALSE) if (ExpInitializeCallbacks() == FALSE)
{ {
DPRINT1("Executive: Callback initialization failed\n"); DPRINT1("Executive: Callback initialization failed\n");
return FALSE; return FALSE;
} }
/* Initialize semaphores */ /* Initialize semaphores */
if (ExpInitializeSemaphoreImplementation() == FALSE) if (ExpInitializeSemaphoreImplementation() == FALSE)
{ {
DPRINT1("Executive: Semaphore initialization failed\n"); DPRINT1("Executive: Semaphore initialization failed\n");
return FALSE; return FALSE;
} }
/* Initialize timers */ /* Initialize timers */
if (ExpInitializeTimerImplementation() == FALSE) if (ExpInitializeTimerImplementation() == FALSE)
{ {
DPRINT1("Executive: Timer initialization failed\n"); DPRINT1("Executive: Timer initialization failed\n");
return FALSE; return FALSE;
} }
/* Initialize profiling */ /* Initialize profiling */
if (ExpInitializeProfileImplementation() == FALSE) if (ExpInitializeProfileImplementation() == FALSE)
{ {
DPRINT1("Executive: Profile initialization failed\n"); DPRINT1("Executive: Profile initialization failed\n");
return FALSE; return FALSE;
} }
/* Initialize UUIDs */ /* Initialize UUIDs */
ExpInitUuids(); ExpInitUuids();
/* Initialize keyed events */ /* Initialize keyed events */
if (ExpInitializeKeyedEventImplementation() == FALSE) if (ExpInitializeKeyedEventImplementation() == FALSE)
{ {
DPRINT1("Executive: Keyed event initialization failed\n"); DPRINT1("Executive: Keyed event initialization failed\n");
return FALSE; return FALSE;
} }
/* Initialize Win32K */ /* Initialize Win32K */
if (ExpWin32kInit() == FALSE) if (ExpWin32kInit() == FALSE)
{ {
@ -1956,7 +1956,7 @@ Phase1InitializationDiscard(IN PVOID Context)
InbvEnableDisplayString(TRUE); InbvEnableDisplayString(TRUE);
/* Launch initial process */ /* Launch initial process */
DPRINT1("Free non-cache pages: %lx\n", MmAvailablePages + MiMemoryConsumers[MC_CACHE].PagesUsed); DPRINT("Free non-cache pages: %lx\n", MmAvailablePages + MiMemoryConsumers[MC_CACHE].PagesUsed);
ProcessInfo = &InitBuffer->ProcessInfo; ProcessInfo = &InitBuffer->ProcessInfo;
ExpLoadInitialProcess(InitBuffer, &ProcessParameters, &Environment); ExpLoadInitialProcess(InitBuffer, &ProcessParameters, &Environment);
@ -1998,7 +1998,7 @@ Phase1InitializationDiscard(IN PVOID Context)
/* Free the boot buffer */ /* Free the boot buffer */
ExFreePoolWithTag(InitBuffer, TAG_INIT); ExFreePoolWithTag(InitBuffer, TAG_INIT);
DPRINT1("Free non-cache pages: %lx\n", MmAvailablePages + MiMemoryConsumers[MC_CACHE].PagesUsed); DPRINT("Free non-cache pages: %lx\n", MmAvailablePages + MiMemoryConsumers[MC_CACHE].PagesUsed);
} }
VOID VOID

View file

@ -10,6 +10,8 @@
/* INCLUDES *****************************************************************/ /* INCLUDES *****************************************************************/
#include <ntoskrnl.h> #include <ntoskrnl.h>
#define NDEBUG
#include <debug.h> #include <debug.h>
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
@ -22,7 +24,7 @@ NTAPI
NtShutdownSystem(IN SHUTDOWN_ACTION Action) NtShutdownSystem(IN SHUTDOWN_ACTION Action)
{ {
POWER_ACTION PowerAction; POWER_ACTION PowerAction;
/* Convert to power action */ /* Convert to power action */
if (Action == ShutdownNoReboot) if (Action == ShutdownNoReboot)
{ {
@ -40,9 +42,9 @@ NtShutdownSystem(IN SHUTDOWN_ACTION Action)
{ {
return STATUS_INVALID_PARAMETER; return STATUS_INVALID_PARAMETER;
} }
/* Now call the power manager */ /* Now call the power manager */
DPRINT1("Setting state to: %lx\n", PowerAction); DPRINT("Setting state to: %lx\n", PowerAction);
return NtSetSystemPowerState(PowerAction, return NtSetSystemPowerState(PowerAction,
PowerSystemSleeping3, PowerSystemSleeping3,
POWER_ACTION_OVERRIDE_APPS | POWER_ACTION_OVERRIDE_APPS |

View file

@ -383,7 +383,7 @@ IopCreateArcNamesCd(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
/* Create symbolic link */ /* Create symbolic link */
IoAssignArcName(&ArcNameStringW, &DeviceStringW); IoAssignArcName(&ArcNameStringW, &DeviceStringW);
RtlFreeUnicodeString(&ArcNameStringW); RtlFreeUnicodeString(&ArcNameStringW);
DPRINT1("Boot device found\n"); DPRINT("Boot device found\n");
} }
/* And quit, whatever happens */ /* And quit, whatever happens */

View file

@ -390,7 +390,7 @@ IopInstallCriticalDevice(PDEVICE_NODE DeviceNode)
continue; continue;
} }
DPRINT1("Installed service '%S' for critical device '%wZ'\n", PartialInfo->Data, &ChildIdNameU); DPRINT("Installed service '%S' for critical device '%wZ'\n", PartialInfo->Data, &ChildIdNameU);
} }
else else
{ {
@ -3212,7 +3212,7 @@ IopIsFirmwareMapperDisabled(VOID)
DPRINT1("ZwOpenKey(%wZ) failed with status 0x%08lx\n", &KeyPathU, Status); DPRINT1("ZwOpenKey(%wZ) failed with status 0x%08lx\n", &KeyPathU, Status);
} }
DPRINT1("Firmware mapper is %s\n", KeyValue != 0 ? "disabled" : "enabled"); DPRINT("Firmware mapper is %s\n", KeyValue != 0 ? "disabled" : "enabled");
return (KeyValue != 0) ? TRUE : FALSE; return (KeyValue != 0) ? TRUE : FALSE;
} }

View file

@ -350,7 +350,7 @@ IoReportDetectedDevice(IN PDRIVER_OBJECT DriverObject,
IopQueueTargetDeviceEvent(&GUID_DEVICE_ARRIVAL, IopQueueTargetDeviceEvent(&GUID_DEVICE_ARRIVAL,
&DeviceNode->InstancePath); &DeviceNode->InstancePath);
DPRINT1("Reported device: %S (%wZ)\n", HardwareId, &DeviceNode->InstancePath); DPRINT("Reported device: %S (%wZ)\n", HardwareId, &DeviceNode->InstancePath);
/* Return the PDO */ /* Return the PDO */
if (DeviceObject) *DeviceObject = Pdo; if (DeviceObject) *DeviceObject = Pdo;

View file

@ -132,11 +132,12 @@ IopFindPortResource(
} }
else else
{ {
DPRINT1("Satisfying port requirement with 0x%I64x (length: 0x%x)\n", Start, CmDesc->u.Port.Length); DPRINT("Satisfying port requirement with 0x%I64x (length: 0x%x)\n", Start, CmDesc->u.Port.Length);
return TRUE; return TRUE;
} }
} }
DPRINT1("IopFindPortResource failed!\n");
return FALSE; return FALSE;
} }

View file

@ -47,7 +47,7 @@ MmZeroPageThread(VOID)
/* Get the discardable sections to free them */ /* Get the discardable sections to free them */
MiFindInitializationCode(&StartAddress, &EndAddress); MiFindInitializationCode(&StartAddress, &EndAddress);
if (StartAddress) MiFreeInitializationCode(StartAddress, EndAddress); if (StartAddress) MiFreeInitializationCode(StartAddress, EndAddress);
DPRINT1("Free non-cache pages: %lx\n", MmAvailablePages + MiMemoryConsumers[MC_CACHE].PagesUsed); DPRINT("Free non-cache pages: %lx\n", MmAvailablePages + MiMemoryConsumers[MC_CACHE].PagesUsed);
/* Set our priority to 0 */ /* Set our priority to 0 */
Thread->BasePriority = 0; Thread->BasePriority = 0;

View file

@ -191,7 +191,7 @@ PopShutdownSystem(IN POWER_ACTION SystemAction)
/* Note should notify caller of NtPowerInformation(PowerShutdownNotification) */ /* Note should notify caller of NtPowerInformation(PowerShutdownNotification) */
/* Unload symbols */ /* Unload symbols */
DPRINT1("It's the final countdown...%lx\n", SystemAction); DPRINT("It's the final countdown...%lx\n", SystemAction);
DbgUnLoadImageSymbols(NULL, (PVOID)-1, 0); DbgUnLoadImageSymbols(NULL, (PVOID)-1, 0);
/* Run the thread on the boot processor */ /* Run the thread on the boot processor */
@ -264,15 +264,15 @@ PopGracefulShutdown(IN PVOID Context)
} }
/* First, the HAL handles any "end of boot" special functionality */ /* First, the HAL handles any "end of boot" special functionality */
DPRINT1("HAL shutting down\n"); DPRINT("HAL shutting down\n");
HalEndOfBoot(); HalEndOfBoot();
/* In this step, the I/O manager does first-chance shutdown notification */ /* In this step, the I/O manager does first-chance shutdown notification */
DPRINT1("I/O manager shutting down in phase 0\n"); DPRINT("I/O manager shutting down in phase 0\n");
IoShutdownSystem(0); IoShutdownSystem(0);
/* In this step, all workers are killed and hives are flushed */ /* In this step, all workers are killed and hives are flushed */
DPRINT1("Configuration Manager shutting down\n"); DPRINT("Configuration Manager shutting down\n");
CmShutdownSystem(); CmShutdownSystem();
/* Note that modified pages should be written here (MiShutdownSystem) */ /* Note that modified pages should be written here (MiShutdownSystem) */
@ -283,18 +283,18 @@ PopGracefulShutdown(IN PVOID Context)
#endif #endif
/* In this step, the I/O manager does last-chance shutdown notification */ /* In this step, the I/O manager does last-chance shutdown notification */
DPRINT1("I/O manager shutting down in phase 1\n"); DPRINT("I/O manager shutting down in phase 1\n");
IoShutdownSystem(1); IoShutdownSystem(1);
CcWaitForCurrentLazyWriterActivity(); CcWaitForCurrentLazyWriterActivity();
/* Note that here, we should broadcast the power IRP to devices */ /* Note that here, we should broadcast the power IRP to devices */
/* In this step, the HAL disables any wake timers */ /* In this step, the HAL disables any wake timers */
DPRINT1("Disabling wake timers\n"); DPRINT("Disabling wake timers\n");
HalSetWakeEnable(FALSE); HalSetWakeEnable(FALSE);
/* And finally the power request is sent */ /* And finally the power request is sent */
DPRINT1("Taking the system down\n"); DPRINT("Taking the system down\n");
PopShutdownSystem(PopAction.Action); PopShutdownSystem(PopAction.Action);
} }

View file

@ -20,7 +20,7 @@ typedef struct _POP_FLUSH_VOLUME
LONG Count; LONG Count;
KEVENT Wait; KEVENT Wait;
} POP_FLUSH_VOLUME, *PPOP_FLUSH_VOLUME; } POP_FLUSH_VOLUME, *PPOP_FLUSH_VOLUME;
ULONG PopFlushPolicy = 0; ULONG PopFlushPolicy = 0;
KGUARDED_MUTEX PopVolumeLock; KGUARDED_MUTEX PopVolumeLock;
@ -56,7 +56,7 @@ PopGetDope(IN PDEVICE_OBJECT DeviceObject)
/* Make sure only one caller can assign dope to a device */ /* Make sure only one caller can assign dope to a device */
KeAcquireSpinLock(&PopDopeGlobalLock, &OldIrql); KeAcquireSpinLock(&PopDopeGlobalLock, &OldIrql);
/* Make sure the device still has no dope */ /* Make sure the device still has no dope */
if (!DeviceExtension->Dope) if (!DeviceExtension->Dope)
{ {
@ -67,7 +67,7 @@ PopGetDope(IN PDEVICE_OBJECT DeviceObject)
/* Allow other dope transactions now */ /* Allow other dope transactions now */
KeReleaseSpinLock(&PopDopeGlobalLock, OldIrql); KeReleaseSpinLock(&PopDopeGlobalLock, OldIrql);
/* Check if someone other than us already assigned the dope, so free ours */ /* Check if someone other than us already assigned the dope, so free ours */
if (Dope) ExFreePoolWithTag(Dope, 'Dope'); if (Dope) ExFreePoolWithTag(Dope, 'Dope');
@ -92,7 +92,7 @@ PoVolumeDevice(IN PDEVICE_OBJECT DeviceObject)
/* Add this volume into the list of power-manager volumes */ /* Add this volume into the list of power-manager volumes */
if (!Dope->Volume.Flink) InsertTailList(&PopVolumeDevices, &Dope->Volume); if (!Dope->Volume.Flink) InsertTailList(&PopVolumeDevices, &Dope->Volume);
/* Allow flushes to go through */ /* Allow flushes to go through */
KeReleaseGuardedMutex(&PopVolumeLock); KeReleaseGuardedMutex(&PopVolumeLock);
} }
@ -167,10 +167,10 @@ PopFlushVolumeWorker(IN PVOID Context)
/* Grab the next (ie: current) entry and remove it */ /* Grab the next (ie: current) entry and remove it */
NextEntry = FlushContext->List.Flink; NextEntry = FlushContext->List.Flink;
RemoveEntryList(NextEntry); RemoveEntryList(NextEntry);
/* Add it back on the volume list */ /* Add it back on the volume list */
InsertTailList(&PopVolumeDevices, NextEntry); InsertTailList(&PopVolumeDevices, NextEntry);
/* Done touching the volume list */ /* Done touching the volume list */
KeReleaseGuardedMutex(&PopVolumeLock); KeReleaseGuardedMutex(&PopVolumeLock);
@ -185,7 +185,7 @@ PopFlushVolumeWorker(IN PVOID Context)
if ((NT_SUCCESS(Status)) && (NameInfo->Name.Buffer)) if ((NT_SUCCESS(Status)) && (NameInfo->Name.Buffer))
{ {
/* Open the volume */ /* Open the volume */
DPRINT1("Opening: %wZ\n", &NameInfo->Name); DPRINT("Opening: %wZ\n", &NameInfo->Name);
InitializeObjectAttributes(&ObjectAttributes, InitializeObjectAttributes(&ObjectAttributes,
&NameInfo->Name, &NameInfo->Name,
OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
@ -205,7 +205,7 @@ PopFlushVolumeWorker(IN PVOID Context)
if (NT_SUCCESS(Status)) if (NT_SUCCESS(Status))
{ {
/* Flush it and close it */ /* Flush it and close it */
DPRINT1("Sending flush to: %p\n", VolumeHandle); DPRINT("Sending flush to: %p\n", VolumeHandle);
ZwFlushBuffersFile(VolumeHandle, &IoStatusBlock); ZwFlushBuffersFile(VolumeHandle, &IoStatusBlock);
ZwClose(VolumeHandle); ZwClose(VolumeHandle);
} }
@ -232,7 +232,7 @@ PopFlushVolumes(IN BOOLEAN ShuttingDown)
OBJECT_ATTRIBUTES ObjectAttributes; OBJECT_ATTRIBUTES ObjectAttributes;
HANDLE RegistryHandle; HANDLE RegistryHandle;
PLIST_ENTRY NextEntry; PLIST_ENTRY NextEntry;
PDEVICE_OBJECT_POWER_EXTENSION Dope; PDEVICE_OBJECT_POWER_EXTENSION Dope;
ULONG VolumeCount = 0; ULONG VolumeCount = 0;
NTSTATUS Status; NTSTATUS Status;
HANDLE ThreadHandle; HANDLE ThreadHandle;
@ -247,7 +247,7 @@ PopFlushVolumes(IN BOOLEAN ShuttingDown)
if ((FlushPolicy & 1)) if ((FlushPolicy & 1))
{ {
/* Registry flush requested, so open it */ /* Registry flush requested, so open it */
DPRINT1("Opening registry\n"); DPRINT("Opening registry\n");
InitializeObjectAttributes(&ObjectAttributes, InitializeObjectAttributes(&ObjectAttributes,
&RegistryName, &RegistryName,
OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
@ -257,7 +257,7 @@ PopFlushVolumes(IN BOOLEAN ShuttingDown)
if (NT_SUCCESS(Status)) if (NT_SUCCESS(Status))
{ {
/* Flush the registry */ /* Flush the registry */
DPRINT1("Flushing registry\n"); DPRINT("Flushing registry\n");
ZwFlushKey(RegistryHandle); ZwFlushKey(RegistryHandle);
ZwClose(RegistryHandle); ZwClose(RegistryHandle);
} }
@ -265,14 +265,14 @@ PopFlushVolumes(IN BOOLEAN ShuttingDown)
/* Serialize with other flushes */ /* Serialize with other flushes */
KeAcquireGuardedMutex(&PopVolumeLock); KeAcquireGuardedMutex(&PopVolumeLock);
/* Scan the volume list */ /* Scan the volume list */
NextEntry = PopVolumeDevices.Flink; NextEntry = PopVolumeDevices.Flink;
while (NextEntry != &PopVolumeDevices) while (NextEntry != &PopVolumeDevices)
{ {
/* Get the dope from the link */ /* Get the dope from the link */
Dope = CONTAINING_RECORD(NextEntry, DEVICE_OBJECT_POWER_EXTENSION, Volume); Dope = CONTAINING_RECORD(NextEntry, DEVICE_OBJECT_POWER_EXTENSION, Volume);
/* Grab the next entry now, since we'll be modifying the list */ /* Grab the next entry now, since we'll be modifying the list */
NextEntry = NextEntry->Flink; NextEntry = NextEntry->Flink;
@ -290,7 +290,7 @@ PopFlushVolumes(IN BOOLEAN ShuttingDown)
/* Remove it from the dope and add it to the flush context list */ /* Remove it from the dope and add it to the flush context list */
RemoveEntryList(&Dope->Volume); RemoveEntryList(&Dope->Volume);
InsertTailList(&FlushContext.List, &Dope->Volume); InsertTailList(&FlushContext.List, &Dope->Volume);
/* Next */ /* Next */
VolumeCount++; VolumeCount++;
} }
@ -321,13 +321,13 @@ PopFlushVolumes(IN BOOLEAN ShuttingDown)
/* We will ourselves become a flusher thread */ /* We will ourselves become a flusher thread */
FlushContext.Count = 1; FlushContext.Count = 1;
ThreadCount--; ThreadCount--;
/* Look for any extra ones we might need */ /* Look for any extra ones we might need */
while (ThreadCount > 0) while (ThreadCount > 0)
{ {
/* Create a new one */ /* Create a new one */
ThreadCount--; ThreadCount--;
DPRINT1("Creating flush thread\n"); DPRINT("Creating flush thread\n");
Status = PsCreateSystemThread(&ThreadHandle, Status = PsCreateSystemThread(&ThreadHandle,
THREAD_ALL_ACCESS, THREAD_ALL_ACCESS,
&ObjectAttributes, &ObjectAttributes,
@ -347,13 +347,13 @@ PopFlushVolumes(IN BOOLEAN ShuttingDown)
KeReleaseGuardedMutex(&PopVolumeLock); KeReleaseGuardedMutex(&PopVolumeLock);
/* Enter the flush work */ /* Enter the flush work */
DPRINT1("Local flush\n"); DPRINT("Local flush\n");
PopFlushVolumeWorker(&FlushContext); PopFlushVolumeWorker(&FlushContext);
/* Wait for all flushes to be over */ /* Wait for all flushes to be over */
DPRINT1("Waiting for flushes\n"); DPRINT("Waiting for flushes\n");
KeWaitForSingleObject(&FlushContext.Wait, Executive, KernelMode, FALSE, NULL); KeWaitForSingleObject(&FlushContext.Wait, Executive, KernelMode, FALSE, NULL);
DPRINT1("Flushes have completed\n"); DPRINT("Flushes have completed\n");
} }
VOID VOID

View file

@ -46,10 +46,10 @@ PopRequestPowerIrpCompletion(IN PDEVICE_OBJECT DeviceObject,
{ {
PIO_STACK_LOCATION Stack; PIO_STACK_LOCATION Stack;
PREQUEST_POWER_ITEM RequestPowerItem; PREQUEST_POWER_ITEM RequestPowerItem;
Stack = IoGetNextIrpStackLocation(Irp); Stack = IoGetNextIrpStackLocation(Irp);
RequestPowerItem = (PREQUEST_POWER_ITEM)Context; RequestPowerItem = (PREQUEST_POWER_ITEM)Context;
RequestPowerItem->CompletionRoutine(DeviceObject, RequestPowerItem->CompletionRoutine(DeviceObject,
Stack->MinorFunction, Stack->MinorFunction,
RequestPowerItem->PowerState, RequestPowerItem->PowerState,
@ -161,12 +161,12 @@ PopQuerySystemPowerStateTraverse(PDEVICE_NODE DeviceNode,
{ {
PPOWER_STATE_TRAVERSE_CONTEXT PowerStateContext = Context; PPOWER_STATE_TRAVERSE_CONTEXT PowerStateContext = Context;
NTSTATUS Status; NTSTATUS Status;
DPRINT("PopQuerySystemPowerStateTraverse(%p, %p)\n", DeviceNode, Context); DPRINT("PopQuerySystemPowerStateTraverse(%p, %p)\n", DeviceNode, Context);
if (DeviceNode == IopRootDeviceNode) if (DeviceNode == IopRootDeviceNode)
return STATUS_SUCCESS; return STATUS_SUCCESS;
if (DeviceNode->Flags & DNF_LEGACY_DRIVER) if (DeviceNode->Flags & DNF_LEGACY_DRIVER)
return STATUS_SUCCESS; return STATUS_SUCCESS;
@ -177,7 +177,7 @@ PopQuerySystemPowerStateTraverse(PDEVICE_NODE DeviceNode,
{ {
DPRINT1("Device '%wZ' failed IRP_MN_QUERY_POWER\n", &DeviceNode->InstancePath); DPRINT1("Device '%wZ' failed IRP_MN_QUERY_POWER\n", &DeviceNode->InstancePath);
} }
#if 0 #if 0
return Status; return Status;
#else #else
@ -191,15 +191,15 @@ PopSetSystemPowerStateTraverse(PDEVICE_NODE DeviceNode,
{ {
PPOWER_STATE_TRAVERSE_CONTEXT PowerStateContext = Context; PPOWER_STATE_TRAVERSE_CONTEXT PowerStateContext = Context;
NTSTATUS Status; NTSTATUS Status;
DPRINT("PopSetSystemPowerStateTraverse(%p, %p)\n", DeviceNode, Context); DPRINT("PopSetSystemPowerStateTraverse(%p, %p)\n", DeviceNode, Context);
if (DeviceNode == IopRootDeviceNode) if (DeviceNode == IopRootDeviceNode)
return STATUS_SUCCESS; return STATUS_SUCCESS;
if (DeviceNode->PhysicalDeviceObject == PowerStateContext->PowerDevice) if (DeviceNode->PhysicalDeviceObject == PowerStateContext->PowerDevice)
return STATUS_SUCCESS; return STATUS_SUCCESS;
if (DeviceNode->Flags & DNF_LEGACY_DRIVER) if (DeviceNode->Flags & DNF_LEGACY_DRIVER)
return STATUS_SUCCESS; return STATUS_SUCCESS;
@ -210,7 +210,7 @@ PopSetSystemPowerStateTraverse(PDEVICE_NODE DeviceNode,
{ {
DPRINT1("Device '%wZ' failed IRP_MN_SET_POWER\n", &DeviceNode->InstancePath); DPRINT1("Device '%wZ' failed IRP_MN_SET_POWER\n", &DeviceNode->InstancePath);
} }
#if 0 #if 0
return Status; return Status;
#else #else
@ -227,7 +227,7 @@ PopSetSystemPowerState(SYSTEM_POWER_STATE PowerState, POWER_ACTION PowerAction)
NTSTATUS Status; NTSTATUS Status;
DEVICETREE_TRAVERSE_CONTEXT Context; DEVICETREE_TRAVERSE_CONTEXT Context;
POWER_STATE_TRAVERSE_CONTEXT PowerContext; POWER_STATE_TRAVERSE_CONTEXT PowerContext;
Status = IopGetSystemPowerDeviceObject(&DeviceObject); Status = IopGetSystemPowerDeviceObject(&DeviceObject);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
@ -243,34 +243,34 @@ PopSetSystemPowerState(SYSTEM_POWER_STATE PowerState, POWER_ACTION PowerAction)
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
} }
} }
/* Set up context */ /* Set up context */
PowerContext.PowerAction = PowerAction; PowerContext.PowerAction = PowerAction;
PowerContext.SystemPowerState = PowerState; PowerContext.SystemPowerState = PowerState;
PowerContext.PowerDevice = Fdo; PowerContext.PowerDevice = Fdo;
/* Query for system power change */ /* Query for system power change */
IopInitDeviceTreeTraverseContext(&Context, IopInitDeviceTreeTraverseContext(&Context,
IopRootDeviceNode, IopRootDeviceNode,
PopQuerySystemPowerStateTraverse, PopQuerySystemPowerStateTraverse,
&PowerContext); &PowerContext);
Status = IopTraverseDeviceTree(&Context); Status = IopTraverseDeviceTree(&Context);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
DPRINT1("Query system power state failed; changing state anyway\n"); DPRINT1("Query system power state failed; changing state anyway\n");
} }
/* Set system power change */ /* Set system power change */
IopInitDeviceTreeTraverseContext(&Context, IopInitDeviceTreeTraverseContext(&Context,
IopRootDeviceNode, IopRootDeviceNode,
PopSetSystemPowerStateTraverse, PopSetSystemPowerStateTraverse,
&PowerContext); &PowerContext);
IopTraverseDeviceTree(&Context); IopTraverseDeviceTree(&Context);
if (!PopAcpiPresent) return STATUS_NOT_IMPLEMENTED; if (!PopAcpiPresent) return STATUS_NOT_IMPLEMENTED;
if (Fdo != NULL) if (Fdo != NULL)
{ {
if (PowerAction != PowerActionShutdownReset) if (PowerAction != PowerActionShutdownReset)
@ -303,7 +303,7 @@ PoInitSystem(IN ULONG BootPhase)
PopAddRemoveSysCapsCallback, PopAddRemoveSysCapsCallback,
NULL, NULL,
&NotificationEntry); &NotificationEntry);
/* Register lid notification */ /* Register lid notification */
IoRegisterPlugPlayNotification(EventCategoryDeviceInterfaceChange, IoRegisterPlugPlayNotification(EventCategoryDeviceInterfaceChange,
PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES, PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES,
@ -336,11 +336,11 @@ PoInitSystem(IN ULONG BootPhase)
PopAcpiPresent = KeLoaderBlock->Extension->AcpiTable != NULL ? TRUE : FALSE; PopAcpiPresent = KeLoaderBlock->Extension->AcpiTable != NULL ? TRUE : FALSE;
} }
/* Initialize volume support */ /* Initialize volume support */
InitializeListHead(&PopVolumeDevices); InitializeListHead(&PopVolumeDevices);
KeInitializeGuardedMutex(&PopVolumeLock); KeInitializeGuardedMutex(&PopVolumeLock);
/* Initialize support for dope */ /* Initialize support for dope */
KeInitializeSpinLock(&PopDopeGlobalLock); KeInitializeSpinLock(&PopDopeGlobalLock);
@ -522,19 +522,19 @@ PoRequestPowerIrp(IN PDEVICE_OBJECT DeviceObject,
PIO_STACK_LOCATION Stack; PIO_STACK_LOCATION Stack;
PIRP Irp; PIRP Irp;
PREQUEST_POWER_ITEM RequestPowerItem; PREQUEST_POWER_ITEM RequestPowerItem;
if (MinorFunction != IRP_MN_QUERY_POWER if (MinorFunction != IRP_MN_QUERY_POWER
&& MinorFunction != IRP_MN_SET_POWER && MinorFunction != IRP_MN_SET_POWER
&& MinorFunction != IRP_MN_WAIT_WAKE) && MinorFunction != IRP_MN_WAIT_WAKE)
return STATUS_INVALID_PARAMETER_2; return STATUS_INVALID_PARAMETER_2;
RequestPowerItem = ExAllocatePool(NonPagedPool, sizeof(REQUEST_POWER_ITEM)); RequestPowerItem = ExAllocatePool(NonPagedPool, sizeof(REQUEST_POWER_ITEM));
if (!RequestPowerItem) if (!RequestPowerItem)
return STATUS_INSUFFICIENT_RESOURCES; return STATUS_INSUFFICIENT_RESOURCES;
/* Always call the top of the device stack */ /* Always call the top of the device stack */
TopDeviceObject = IoGetAttachedDeviceReference(DeviceObject); TopDeviceObject = IoGetAttachedDeviceReference(DeviceObject);
Irp = IoBuildAsynchronousFsdRequest(IRP_MJ_POWER, Irp = IoBuildAsynchronousFsdRequest(IRP_MJ_POWER,
TopDeviceObject, TopDeviceObject,
NULL, NULL,
@ -547,12 +547,12 @@ PoRequestPowerIrp(IN PDEVICE_OBJECT DeviceObject,
ExFreePool(RequestPowerItem); ExFreePool(RequestPowerItem);
return STATUS_INSUFFICIENT_RESOURCES; return STATUS_INSUFFICIENT_RESOURCES;
} }
/* POWER IRPs are always initialized with a status code of /* POWER IRPs are always initialized with a status code of
STATUS_NOT_IMPLEMENTED */ STATUS_NOT_IMPLEMENTED */
Irp->IoStatus.Status = STATUS_NOT_IMPLEMENTED; Irp->IoStatus.Status = STATUS_NOT_IMPLEMENTED;
Irp->IoStatus.Information = 0; Irp->IoStatus.Information = 0;
Stack = IoGetNextIrpStackLocation(Irp); Stack = IoGetNextIrpStackLocation(Irp);
Stack->MinorFunction = MinorFunction; Stack->MinorFunction = MinorFunction;
if (MinorFunction == IRP_MN_WAIT_WAKE) if (MinorFunction == IRP_MN_WAIT_WAKE)
@ -562,18 +562,18 @@ PoRequestPowerIrp(IN PDEVICE_OBJECT DeviceObject,
Stack->Parameters.Power.Type = DevicePowerState; Stack->Parameters.Power.Type = DevicePowerState;
Stack->Parameters.Power.State = PowerState; Stack->Parameters.Power.State = PowerState;
} }
RequestPowerItem->CompletionRoutine = CompletionFunction; RequestPowerItem->CompletionRoutine = CompletionFunction;
RequestPowerItem->PowerState = PowerState; RequestPowerItem->PowerState = PowerState;
RequestPowerItem->Context = Context; RequestPowerItem->Context = Context;
RequestPowerItem->TopDeviceObject = TopDeviceObject; RequestPowerItem->TopDeviceObject = TopDeviceObject;
if (pIrp != NULL) if (pIrp != NULL)
*pIrp = Irp; *pIrp = Irp;
IoSetCompletionRoutine(Irp, PopRequestPowerIrpCompletion, RequestPowerItem, TRUE, TRUE, TRUE); IoSetCompletionRoutine(Irp, PopRequestPowerIrpCompletion, RequestPowerItem, TRUE, TRUE, TRUE);
PoCallDriver(TopDeviceObject, Irp); PoCallDriver(TopDeviceObject, Irp);
/* Always return STATUS_PENDING. The completion routine /* Always return STATUS_PENDING. The completion routine
* will call CompletionFunction and complete the Irp. * will call CompletionFunction and complete the Irp.
*/ */
@ -663,7 +663,7 @@ NtPowerInformation(IN POWER_INFORMATION_LEVEL PowerInformationLevel,
PowerInformationLevel, PowerInformationLevel,
InputBuffer, InputBufferLength, InputBuffer, InputBufferLength,
OutputBuffer, OutputBufferLength); OutputBuffer, OutputBufferLength);
switch (PowerInformationLevel) switch (PowerInformationLevel)
{ {
case SystemBatteryState: case SystemBatteryState:
@ -841,7 +841,7 @@ NtSetSystemPowerState(IN POWER_ACTION SystemAction,
if (SystemAction == PowerActionShutdown) PopReadShutdownPolicy(); if (SystemAction == PowerActionShutdown) PopReadShutdownPolicy();
/* Disable lazy flushing of registry */ /* Disable lazy flushing of registry */
DPRINT1("Stopping lazy flush\n"); DPRINT("Stopping lazy flush\n");
CmSetLazyFlushState(FALSE); CmSetLazyFlushState(FALSE);
/* Setup the power action */ /* Setup the power action */
@ -849,13 +849,13 @@ NtSetSystemPowerState(IN POWER_ACTION SystemAction,
Action.Flags = Flags; Action.Flags = Flags;
/* Notify callbacks */ /* Notify callbacks */
DPRINT1("Notifying callbacks\n"); DPRINT("Notifying callbacks\n");
ExNotifyCallback(PowerStateCallback, (PVOID)3, NULL); ExNotifyCallback(PowerStateCallback, (PVOID)3, NULL);
/* Swap in any worker thread stacks */ /* Swap in any worker thread stacks */
DPRINT1("Swapping worker threads\n"); DPRINT("Swapping worker threads\n");
ExSwapinWorkerThreads(FALSE); ExSwapinWorkerThreads(FALSE);
/* Make our action global */ /* Make our action global */
PopAction = Action; PopAction = Action;
@ -884,7 +884,7 @@ NtSetSystemPowerState(IN POWER_ACTION SystemAction,
/* Check if we're still in an invalid status */ /* Check if we're still in an invalid status */
if (!NT_SUCCESS(Status)) break; if (!NT_SUCCESS(Status)) break;
#ifndef NEWCC #ifndef NEWCC
/* Flush dirty cache pages */ /* Flush dirty cache pages */
CcRosFlushDirtyPages(-1, &Dummy, FALSE); //HACK: We really should wait here! CcRosFlushDirtyPages(-1, &Dummy, FALSE); //HACK: We really should wait here!
@ -893,14 +893,14 @@ NtSetSystemPowerState(IN POWER_ACTION SystemAction,
#endif #endif
/* Flush all volumes and the registry */ /* Flush all volumes and the registry */
DPRINT1("Flushing volumes, cache flushed %lu pages\n", Dummy); DPRINT("Flushing volumes, cache flushed %lu pages\n", Dummy);
PopFlushVolumes(PopAction.Shutdown); PopFlushVolumes(PopAction.Shutdown);
/* Set IRP for drivers */ /* Set IRP for drivers */
PopAction.IrpMinor = IRP_MN_SET_POWER; PopAction.IrpMinor = IRP_MN_SET_POWER;
if (PopAction.Shutdown) if (PopAction.Shutdown)
{ {
DPRINT1("Queueing shutdown thread\n"); DPRINT("Queueing shutdown thread\n");
/* Check if we are running in the system context */ /* Check if we are running in the system context */
if (PsGetCurrentProcess() != PsInitialSystemProcess) if (PsGetCurrentProcess() != PsInitialSystemProcess)
{ {
@ -910,7 +910,7 @@ NtSetSystemPowerState(IN POWER_ACTION SystemAction,
NULL); NULL);
ExQueueWorkItem(&PopShutdownWorkItem, CriticalWorkQueue); ExQueueWorkItem(&PopShutdownWorkItem, CriticalWorkQueue);
/* Spend us -- when we wake up, the system is good to go down */ /* Spend us -- when we wake up, the system is good to go down */
KeSuspendThread(KeGetCurrentThread()); KeSuspendThread(KeGetCurrentThread());
Status = STATUS_SYSTEM_SHUTDOWN; Status = STATUS_SYSTEM_SHUTDOWN;
@ -923,7 +923,7 @@ NtSetSystemPowerState(IN POWER_ACTION SystemAction,
PopGracefulShutdown(NULL); PopGracefulShutdown(NULL);
} }
} }
/* You should not have made it this far */ /* You should not have made it this far */
ASSERTMSG("System is still up and running?!", FALSE); ASSERTMSG("System is still up and running?!", FALSE);
break; break;

View file

@ -1134,8 +1134,11 @@ SeValidSecurityDescriptor(IN ULONG Length,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI _IRQL_requires_max_(PASSIVE_LEVEL)
SeDeassignSecurity(PSECURITY_DESCRIPTOR *SecurityDescriptor) NTSTATUS
NTAPI
SeDeassignSecurity(
_Inout_ PSECURITY_DESCRIPTOR *SecurityDescriptor)
{ {
PAGED_CODE(); PAGED_CODE();
@ -1149,36 +1152,22 @@ SeDeassignSecurity(PSECURITY_DESCRIPTOR *SecurityDescriptor)
} }
/*
* @unimplemented
*/
NTSTATUS NTAPI
SeAssignSecurityEx(IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL,
OUT PSECURITY_DESCRIPTOR *NewDescriptor,
IN GUID *ObjectType OPTIONAL,
IN BOOLEAN IsDirectoryObject,
IN ULONG AutoInheritFlags,
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
IN PGENERIC_MAPPING GenericMapping,
IN POOL_TYPE PoolType)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI _IRQL_requires_max_(PASSIVE_LEVEL)
SeAssignSecurity(PSECURITY_DESCRIPTOR _ParentDescriptor OPTIONAL, NTSTATUS
PSECURITY_DESCRIPTOR _ExplicitDescriptor OPTIONAL, NTAPI
PSECURITY_DESCRIPTOR *NewDescriptor, SeAssignSecurityEx(
BOOLEAN IsDirectoryObject, _In_opt_ PSECURITY_DESCRIPTOR _ParentDescriptor,
PSECURITY_SUBJECT_CONTEXT SubjectContext, _In_opt_ PSECURITY_DESCRIPTOR _ExplicitDescriptor,
PGENERIC_MAPPING GenericMapping, _Out_ PSECURITY_DESCRIPTOR *NewDescriptor,
POOL_TYPE PoolType) _In_opt_ GUID *ObjectType,
_In_ BOOLEAN IsDirectoryObject,
_In_ ULONG AutoInheritFlags,
_In_ PSECURITY_SUBJECT_CONTEXT SubjectContext,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ POOL_TYPE PoolType)
{ {
PISECURITY_DESCRIPTOR ParentDescriptor = _ParentDescriptor; PISECURITY_DESCRIPTOR ParentDescriptor = _ParentDescriptor;
PISECURITY_DESCRIPTOR ExplicitDescriptor = _ExplicitDescriptor; PISECURITY_DESCRIPTOR ExplicitDescriptor = _ExplicitDescriptor;
@ -1196,6 +1185,11 @@ SeAssignSecurity(PSECURITY_DESCRIPTOR _ParentDescriptor OPTIONAL,
PACL Dacl = NULL; PACL Dacl = NULL;
PACL Sacl = NULL; PACL Sacl = NULL;
DBG_UNREFERENCED_PARAMETER(ObjectType);
DBG_UNREFERENCED_PARAMETER(AutoInheritFlags);
DBG_UNREFERENCED_PARAMETER(GenericMapping);
UNREFERENCED_PARAMETER(PoolType);
PAGED_CODE(); PAGED_CODE();
/* Lock subject context */ /* Lock subject context */
@ -1327,7 +1321,7 @@ SeAssignSecurity(PSECURITY_DESCRIPTOR _ParentDescriptor OPTIONAL,
if (Descriptor == NULL) if (Descriptor == NULL)
{ {
DPRINT1("ExAlloctePool() failed\n"); DPRINT1("ExAlloctePool() failed\n");
/* FIXME: Unlock subject context */ SeUnlockSubjectContext(SubjectContext);
return STATUS_INSUFFICIENT_RESOURCES; return STATUS_INSUFFICIENT_RESOURCES;
} }
@ -1375,10 +1369,38 @@ SeAssignSecurity(PSECURITY_DESCRIPTOR _ParentDescriptor OPTIONAL,
*NewDescriptor = Descriptor; *NewDescriptor = Descriptor;
DPRINT("Descrptor %p\n", Descriptor); DPRINT("Descriptor %p\n", Descriptor);
ASSERT(RtlLengthSecurityDescriptor(Descriptor)); ASSERT(RtlLengthSecurityDescriptor(Descriptor));
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
/*
* @implemented
*/
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSTATUS
NTAPI
SeAssignSecurity(
_In_opt_ PSECURITY_DESCRIPTOR ParentDescriptor,
_In_opt_ PSECURITY_DESCRIPTOR ExplicitDescriptor,
_Out_ PSECURITY_DESCRIPTOR *NewDescriptor,
_In_ BOOLEAN IsDirectoryObject,
_In_ PSECURITY_SUBJECT_CONTEXT SubjectContext,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ POOL_TYPE PoolType)
{
PAGED_CODE();
return SeAssignSecurityEx(ParentDescriptor,
ExplicitDescriptor,
NewDescriptor,
NULL,
IsDirectoryObject,
0,
SubjectContext,
GenericMapping,
PoolType);
}
/* EOF */ /* EOF */

View file

@ -71,7 +71,7 @@ CSR_API(BaseSrvCreateProcess)
HANDLE ProcessHandle, ThreadHandle; HANDLE ProcessHandle, ThreadHandle;
PCSR_THREAD CsrThread; PCSR_THREAD CsrThread;
PCSR_PROCESS Process; PCSR_PROCESS Process;
ULONG Flags = 0, VdmPower = 0, DebugFlags = 0; ULONG Flags = 0, DebugFlags = 0, VdmPower = 0;
/* Get the current client thread */ /* Get the current client thread */
CsrThread = CsrGetClientThread(); CsrThread = CsrGetClientThread();
@ -83,6 +83,13 @@ CSR_API(BaseSrvCreateProcess)
Flags = (ULONG_PTR)CreateProcessRequest->ProcessHandle & 3; Flags = (ULONG_PTR)CreateProcessRequest->ProcessHandle & 3;
CreateProcessRequest->ProcessHandle = (HANDLE)((ULONG_PTR)CreateProcessRequest->ProcessHandle & ~3); CreateProcessRequest->ProcessHandle = (HANDLE)((ULONG_PTR)CreateProcessRequest->ProcessHandle & ~3);
/* Some things should be done if this is a VDM process */
if (CreateProcessRequest->VdmBinaryType)
{
/* We need to set the VDM power later on */
VdmPower = 1;
}
/* Duplicate the process handle */ /* Duplicate the process handle */
Status = NtDuplicateObject(Process->ProcessHandle, Status = NtDuplicateObject(Process->ProcessHandle,
CreateProcessRequest->ProcessHandle, CreateProcessRequest->ProcessHandle,
@ -112,10 +119,9 @@ CSR_API(BaseSrvCreateProcess)
return Status; return Status;
} }
/* See if this is a VDM process */ /* If this is a VDM process, request VDM power */
if (VdmPower) if (VdmPower)
{ {
/* Request VDM powers */
Status = NtSetInformationProcess(ProcessHandle, Status = NtSetInformationProcess(ProcessHandle,
ProcessWx86Information, ProcessWx86Information,
&VdmPower, &VdmPower,

View file

@ -576,7 +576,7 @@ CSR_API(BaseSrvCheckVDM)
BOOLEAN NewConsoleRecord = FALSE; BOOLEAN NewConsoleRecord = FALSE;
/* Don't do anything if the VDM has been disabled in the registry */ /* Don't do anything if the VDM has been disabled in the registry */
if (!BaseSrvIsVdmAllowed()) return STATUS_ACCESS_DENIED; if (!BaseSrvIsVdmAllowed()) return STATUS_VDM_DISALLOWED;
/* Validate the message buffers */ /* Validate the message buffers */
if (!CsrValidateMessageBuffer(ApiMessage, if (!CsrValidateMessageBuffer(ApiMessage,

View file

@ -576,7 +576,7 @@ CsrParseServerCommandLine(IN ULONG ArgumentCount,
ParameterValue = NULL; ParameterValue = NULL;
ParameterValue = strchr(ParameterName, '='); ParameterValue = strchr(ParameterName, '=');
if (ParameterValue) *ParameterValue++ = ANSI_NULL; if (ParameterValue) *ParameterValue++ = ANSI_NULL;
DPRINT1("Name=%s, Value=%s\n", ParameterName, ParameterValue); DPRINT("Name=%s, Value=%s\n", ParameterName, ParameterValue);
/* Check for Object Directory */ /* Check for Object Directory */
if (_stricmp(ParameterName, "ObjectDirectory") == 0) if (_stricmp(ParameterName, "ObjectDirectory") == 0)

View file

@ -633,8 +633,8 @@ IntCreateRegistryPath(
RtlAppendUnicodeToString(DeviceRegistryPath, Insert2); RtlAppendUnicodeToString(DeviceRegistryPath, Insert2);
} }
DbgPrint("Formatted registry key '%wZ' -> '%wZ'\n", DPRINT("Formatted registry key '%wZ' -> '%wZ'\n",
DriverRegistryPath, DeviceRegistryPath); DriverRegistryPath, DeviceRegistryPath);
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }

View file

@ -3365,7 +3365,7 @@ GreExtTextOutW(
BrushOrigin.x = 0; BrushOrigin.x = 0;
BrushOrigin.y = 0; BrushOrigin.y = 0;
psurf = dc->dclevel.pSurface ; psurf = dc->dclevel.pSurface;
if(!psurf) if(!psurf)
psurf = psurfDefaultBitmap; psurf = psurfDefaultBitmap;
@ -3921,7 +3921,7 @@ NtGdiGetCharABCWidthsW(
IN HDC hDC, IN HDC hDC,
IN UINT FirstChar, IN UINT FirstChar,
IN ULONG Count, IN ULONG Count,
IN OPTIONAL PWCHAR pwch, IN OPTIONAL PWCHAR UnSafepwch,
IN FLONG fl, IN FLONG fl,
OUT PVOID Buffer) OUT PVOID Buffer)
{ {
@ -3937,14 +3937,29 @@ NtGdiGetCharABCWidthsW(
HFONT hFont = 0; HFONT hFont = 0;
NTSTATUS Status = STATUS_SUCCESS; NTSTATUS Status = STATUS_SUCCESS;
PMATRIX pmxWorldToDevice; PMATRIX pmxWorldToDevice;
PWCHAR Safepwch = NULL;
if (pwch) if (!Buffer)
{ {
EngSetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
if (UnSafepwch)
{
UINT pwchSize = Count * sizeof(WCHAR);
Safepwch = ExAllocatePoolWithTag(PagedPool, pwchSize, GDITAG_TEXT);
if(!Safepwch)
{
EngSetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE;
}
_SEH2_TRY _SEH2_TRY
{ {
ProbeForRead(pwch, ProbeForRead(UnSafepwch, pwchSize, 1);
sizeof(PWSTR), RtlCopyMemory(Safepwch, UnSafepwch, pwchSize);
1);
} }
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{ {
@ -3952,15 +3967,13 @@ NtGdiGetCharABCWidthsW(
} }
_SEH2_END; _SEH2_END;
} }
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
EngSetLastError(Status); if(Safepwch)
return FALSE; ExFreePoolWithTag(Safepwch , GDITAG_TEXT);
}
if (!Buffer) EngSetLastError(Status);
{
EngSetLastError(ERROR_INVALID_PARAMETER);
return FALSE; return FALSE;
} }
@ -3969,6 +3982,10 @@ NtGdiGetCharABCWidthsW(
if (!fl) SafeBuffF = (LPABCFLOAT) SafeBuff; if (!fl) SafeBuffF = (LPABCFLOAT) SafeBuff;
if (SafeBuff == NULL) if (SafeBuff == NULL)
{ {
if(Safepwch)
ExFreePoolWithTag(Safepwch , GDITAG_TEXT);
EngSetLastError(ERROR_NOT_ENOUGH_MEMORY); EngSetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE; return FALSE;
} }
@ -3977,6 +3994,10 @@ NtGdiGetCharABCWidthsW(
if (dc == NULL) if (dc == NULL)
{ {
ExFreePoolWithTag(SafeBuff, GDITAG_TEXT); ExFreePoolWithTag(SafeBuff, GDITAG_TEXT);
if(Safepwch)
ExFreePoolWithTag(Safepwch , GDITAG_TEXT);
EngSetLastError(ERROR_INVALID_HANDLE); EngSetLastError(ERROR_INVALID_HANDLE);
return FALSE; return FALSE;
} }
@ -3991,6 +4012,10 @@ NtGdiGetCharABCWidthsW(
if (TextObj == NULL) if (TextObj == NULL)
{ {
ExFreePoolWithTag(SafeBuff, GDITAG_TEXT); ExFreePoolWithTag(SafeBuff, GDITAG_TEXT);
if(Safepwch)
ExFreePoolWithTag(Safepwch , GDITAG_TEXT);
EngSetLastError(ERROR_INVALID_HANDLE); EngSetLastError(ERROR_INVALID_HANDLE);
return FALSE; return FALSE;
} }
@ -4014,6 +4039,10 @@ NtGdiGetCharABCWidthsW(
{ {
DPRINT1("WARNING: Could not find desired charmap!\n"); DPRINT1("WARNING: Could not find desired charmap!\n");
ExFreePoolWithTag(SafeBuff, GDITAG_TEXT); ExFreePoolWithTag(SafeBuff, GDITAG_TEXT);
if(Safepwch)
ExFreePoolWithTag(Safepwch , GDITAG_TEXT);
EngSetLastError(ERROR_INVALID_HANDLE); EngSetLastError(ERROR_INVALID_HANDLE);
return FALSE; return FALSE;
} }
@ -4035,12 +4064,12 @@ NtGdiGetCharABCWidthsW(
{ {
int adv, lsb, bbx, left, right; int adv, lsb, bbx, left, right;
if (pwch) if (Safepwch)
{ {
if (fl & GCABCW_INDICES) if (fl & GCABCW_INDICES)
glyph_index = pwch[i - FirstChar]; glyph_index = Safepwch[i - FirstChar];
else else
glyph_index = FT_Get_Char_Index(face, pwch[i - FirstChar]); glyph_index = FT_Get_Char_Index(face, Safepwch[i - FirstChar]);
} }
else else
{ {
@ -4079,13 +4108,18 @@ NtGdiGetCharABCWidthsW(
IntUnLockFreeType; IntUnLockFreeType;
TEXTOBJ_UnlockText(TextObj); TEXTOBJ_UnlockText(TextObj);
Status = MmCopyToCaller(Buffer, SafeBuff, BufferSize); Status = MmCopyToCaller(Buffer, SafeBuff, BufferSize);
ExFreePoolWithTag(SafeBuff, GDITAG_TEXT);
if(Safepwch)
ExFreePoolWithTag(Safepwch , GDITAG_TEXT);
if (! NT_SUCCESS(Status)) if (! NT_SUCCESS(Status))
{ {
SetLastNtError(Status); SetLastNtError(Status);
ExFreePoolWithTag(SafeBuff, GDITAG_TEXT);
return FALSE; return FALSE;
} }
ExFreePoolWithTag(SafeBuff, GDITAG_TEXT);
DPRINT("NtGdiGetCharABCWidths Worked!\n"); DPRINT("NtGdiGetCharABCWidths Worked!\n");
return TRUE; return TRUE;
} }
@ -4099,7 +4133,7 @@ NtGdiGetCharWidthW(
IN HDC hDC, IN HDC hDC,
IN UINT FirstChar, IN UINT FirstChar,
IN UINT Count, IN UINT Count,
IN OPTIONAL PWCHAR pwc, IN OPTIONAL PWCHAR UnSafepwc,
IN FLONG fl, IN FLONG fl,
OUT PVOID Buffer) OUT PVOID Buffer)
{ {
@ -4115,14 +4149,22 @@ NtGdiGetCharWidthW(
UINT i, glyph_index, BufferSize; UINT i, glyph_index, BufferSize;
HFONT hFont = 0; HFONT hFont = 0;
PMATRIX pmxWorldToDevice; PMATRIX pmxWorldToDevice;
PWCHAR Safepwc = NULL;
if (pwc) if (UnSafepwc)
{ {
UINT pwcSize = Count * sizeof(WCHAR);
Safepwc = ExAllocatePoolWithTag(PagedPool, pwcSize, GDITAG_TEXT);
if(!Safepwc)
{
EngSetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE;
}
_SEH2_TRY _SEH2_TRY
{ {
ProbeForRead(pwc, ProbeForRead(UnSafepwc, pwcSize, 1);
sizeof(PWSTR), RtlCopyMemory(Safepwc, UnSafepwc, pwcSize);
1);
} }
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{ {
@ -4130,6 +4172,7 @@ NtGdiGetCharWidthW(
} }
_SEH2_END; _SEH2_END;
} }
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
EngSetLastError(Status); EngSetLastError(Status);
@ -4141,6 +4184,9 @@ NtGdiGetCharWidthW(
if (!fl) SafeBuffF = (PFLOAT) SafeBuff; if (!fl) SafeBuffF = (PFLOAT) SafeBuff;
if (SafeBuff == NULL) if (SafeBuff == NULL)
{ {
if(Safepwc)
ExFreePoolWithTag(Safepwc, GDITAG_TEXT);
EngSetLastError(ERROR_NOT_ENOUGH_MEMORY); EngSetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE; return FALSE;
} }
@ -4148,6 +4194,9 @@ NtGdiGetCharWidthW(
dc = DC_LockDc(hDC); dc = DC_LockDc(hDC);
if (dc == NULL) if (dc == NULL)
{ {
if(Safepwc)
ExFreePoolWithTag(Safepwc, GDITAG_TEXT);
ExFreePoolWithTag(SafeBuff, GDITAG_TEXT); ExFreePoolWithTag(SafeBuff, GDITAG_TEXT);
EngSetLastError(ERROR_INVALID_HANDLE); EngSetLastError(ERROR_INVALID_HANDLE);
return FALSE; return FALSE;
@ -4161,6 +4210,9 @@ NtGdiGetCharWidthW(
if (TextObj == NULL) if (TextObj == NULL)
{ {
if(Safepwc)
ExFreePoolWithTag(Safepwc, GDITAG_TEXT);
ExFreePoolWithTag(SafeBuff, GDITAG_TEXT); ExFreePoolWithTag(SafeBuff, GDITAG_TEXT);
EngSetLastError(ERROR_INVALID_HANDLE); EngSetLastError(ERROR_INVALID_HANDLE);
return FALSE; return FALSE;
@ -4184,7 +4236,11 @@ NtGdiGetCharWidthW(
if (!found) if (!found)
{ {
DPRINT1("WARNING: Could not find desired charmap!\n"); DPRINT1("WARNING: Could not find desired charmap!\n");
ExFreePool(SafeBuff);
if(Safepwc)
ExFreePoolWithTag(Safepwc, GDITAG_TEXT);
ExFreePoolWithTag(SafeBuff, GDITAG_TEXT);
EngSetLastError(ERROR_INVALID_HANDLE); EngSetLastError(ERROR_INVALID_HANDLE);
return FALSE; return FALSE;
} }
@ -4204,12 +4260,12 @@ NtGdiGetCharWidthW(
for (i = FirstChar; i < FirstChar+Count; i++) for (i = FirstChar; i < FirstChar+Count; i++)
{ {
if (pwc) if (Safepwc)
{ {
if (fl & GCW_INDICES) if (fl & GCW_INDICES)
glyph_index = pwc[i - FirstChar]; glyph_index = Safepwc[i - FirstChar];
else else
glyph_index = FT_Get_Char_Index(face, pwc[i - FirstChar]); glyph_index = FT_Get_Char_Index(face, Safepwc[i - FirstChar]);
} }
else else
{ {
@ -4227,6 +4283,10 @@ NtGdiGetCharWidthW(
IntUnLockFreeType; IntUnLockFreeType;
TEXTOBJ_UnlockText(TextObj); TEXTOBJ_UnlockText(TextObj);
MmCopyToCaller(Buffer, SafeBuff, BufferSize); MmCopyToCaller(Buffer, SafeBuff, BufferSize);
if(Safepwc)
ExFreePoolWithTag(Safepwc, GDITAG_TEXT);
ExFreePoolWithTag(SafeBuff, GDITAG_TEXT); ExFreePoolWithTag(SafeBuff, GDITAG_TEXT);
return TRUE; return TRUE;
} }
@ -4347,7 +4407,8 @@ NtGdiGetGlyphIndicesW(
FT_Face face; FT_Face face;
WCHAR DefChar = 0xffff; WCHAR DefChar = 0xffff;
PWSTR Buffer = NULL; PWSTR Buffer = NULL;
ULONG Size; ULONG Size, pwcSize;
PWSTR Safepwc = NULL;
if ((!UnSafepwc) && (!UnSafepgi)) return cwc; if ((!UnSafepwc) && (!UnSafepgi)) return cwc;
@ -4392,11 +4453,19 @@ NtGdiGetGlyphIndicesW(
ExFreePoolWithTag(potm, GDITAG_TEXT); ExFreePoolWithTag(potm, GDITAG_TEXT);
} }
pwcSize = cwc * sizeof(WCHAR);
Safepwc = ExAllocatePoolWithTag(PagedPool, pwcSize, GDITAG_TEXT);
if (!Safepwc)
{
EngSetLastError(ERROR_NOT_ENOUGH_MEMORY);
return GDI_ERROR;
}
_SEH2_TRY _SEH2_TRY
{ {
ProbeForRead(UnSafepwc, ProbeForRead(UnSafepwc, pwcSize, 1);
sizeof(PWSTR), RtlCopyMemory(Safepwc, UnSafepwc, pwcSize);
1);
} }
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{ {
@ -4417,7 +4486,7 @@ NtGdiGetGlyphIndicesW(
for (i = 0; i < cwc; i++) for (i = 0; i < cwc; i++)
{ {
Buffer[i] = FT_Get_Char_Index(face, UnSafepwc[i]); // FIXME: Unsafe! Buffer[i] = FT_Get_Char_Index(face, Safepwc[i]);
if (Buffer[i] == 0) if (Buffer[i] == 0)
{ {
Buffer[i] = DefChar; Buffer[i] = DefChar;
@ -4428,12 +4497,8 @@ NtGdiGetGlyphIndicesW(
_SEH2_TRY _SEH2_TRY
{ {
ProbeForWrite(UnSafepgi, ProbeForWrite(UnSafepgi, cwc * sizeof(WORD), 1);
sizeof(WORD), RtlCopyMemory(UnSafepgi, Buffer, cwc * sizeof(WORD));
1);
RtlCopyMemory(UnSafepgi,
Buffer,
cwc*sizeof(WORD));
} }
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{ {
@ -4443,6 +4508,7 @@ NtGdiGetGlyphIndicesW(
ErrorRet: ErrorRet:
ExFreePoolWithTag(Buffer, GDITAG_TEXT); ExFreePoolWithTag(Buffer, GDITAG_TEXT);
ExFreePoolWithTag(Safepwc, GDITAG_TEXT);
if (NT_SUCCESS(Status)) return cwc; if (NT_SUCCESS(Status)) return cwc;
EngSetLastError(Status); EngSetLastError(Status);
return GDI_ERROR; return GDI_ERROR;

View file

@ -473,7 +473,7 @@ IntGetDesktopObjectHandle(PDESKTOP DesktopObject)
} }
else else
{ {
ERR("Got handle: %p\n", Ret); TRACE("Got handle: %p\n", Ret);
} }
return Ret; return Ret;

View file

@ -75,8 +75,8 @@ InitDisplayDriver(
DEVMODEW dmDefault; DEVMODEW dmDefault;
DWORD dwVga; DWORD dwVga;
ERR("InitDisplayDriver(%S, %S);\n", TRACE("InitDisplayDriver(%S, %S);\n",
pwszDeviceName, pwszRegKey); pwszDeviceName, pwszRegKey);
/* Open the driver's registry key */ /* Open the driver's registry key */
Status = RegOpenKey(pwszRegKey, &hkey); Status = RegOpenKey(pwszRegKey, &hkey);

View file

@ -632,7 +632,7 @@ co_IntMouseActivateWindow(PWND Wnd)
} }
return FALSE; return FALSE;
} }
ERR("Mouse Active\n"); TRACE("Mouse Active\n");
co_IntSetForegroundAndFocusWindow(Wnd, TRUE); co_IntSetForegroundAndFocusWindow(Wnd, TRUE);
return TRUE; return TRUE;
} }
@ -820,7 +820,7 @@ UserSetActiveWindow(PWND Wnd)
} }
/* /*
Yes your eye are not deceiving you~! Yes your eye are not deceiving you~!
First part of wines Win.c test_SetActiveWindow: First part of wines Win.c test_SetActiveWindow:
flush_events( TRUE ); flush_events( TRUE );

View file

@ -52,7 +52,7 @@ StartDebugHotKeys(VOID)
} }
UserRegisterHotKey(PWND_BOTTOM, IDHK_SHIFTF12, MOD_SHIFT, vk); UserRegisterHotKey(PWND_BOTTOM, IDHK_SHIFTF12, MOD_SHIFT, vk);
UserRegisterHotKey(PWND_BOTTOM, IDHK_F12, 0, vk); UserRegisterHotKey(PWND_BOTTOM, IDHK_F12, 0, vk);
ERR("Start up the debugger hotkeys!! Should see this once!\n"); TRACE("Start up the debugger hotkeys!! If you see this you eneabled debugprints. Congrats!\n");
} }
/* /*
@ -248,8 +248,8 @@ co_UserProcessHotKeys(WORD wVk, BOOL bIsDown)
if (pHotKey->pWnd == PWND_BOTTOM) if (pHotKey->pWnd == PWND_BOTTOM)
{ {
if (gpqForeground != NULL) if (gpqForeground != NULL)
{ {
pWnd = gpqForeground->spwndFocus; pWnd = gpqForeground->spwndFocus;
} }
else else
return FALSE; return FALSE;
@ -354,7 +354,7 @@ DefWndSetHotKey(PWND pWnd, WPARAM wParam)
pHotKey = pHotKey->pNext; pHotKey = pHotKey->pNext;
} }
} }
pHotKey = gphkFirst; pHotKey = gphkFirst;
pLink = &gphkFirst; pLink = &gphkFirst;
while (pHotKey) while (pHotKey)

View file

@ -197,7 +197,7 @@ UserInitKeyboard(HANDLE hKeyboardDevice)
{ {
ERR("NtDeviceIoControlFile() failed, ignored\n"); ERR("NtDeviceIoControlFile() failed, ignored\n");
} }
ERR("Keyboard type %d, subtype %d and number of func keys %d\n", TRACE("Keyboard type %d, subtype %d and number of func keys %d\n",
gKeyboardInfo.KeyboardIdentifier.Type, gKeyboardInfo.KeyboardIdentifier.Type,
gKeyboardInfo.KeyboardIdentifier.Subtype, gKeyboardInfo.KeyboardIdentifier.Subtype,
gKeyboardInfo.NumberOfFunctionKeys); gKeyboardInfo.NumberOfFunctionKeys);
@ -820,7 +820,7 @@ ProcessKeyEvent(WORD wVk, WORD wScanCode, DWORD dwFlags, BOOL bInjected, DWORD d
TRACE("HotKey Processed\n"); TRACE("HotKey Processed\n");
bPostMsg = FALSE; bPostMsg = FALSE;
} }
wFixedVk = IntFixVk(wSimpleVk, bExt); /* LSHIFT + EXT = RSHIFT */ wFixedVk = IntFixVk(wSimpleVk, bExt); /* LSHIFT + EXT = RSHIFT */
if (wSimpleVk == VK_SHIFT) /* shift can't be extended */ if (wSimpleVk == VK_SHIFT) /* shift can't be extended */
bExt = FALSE; bExt = FALSE;

View file

@ -2068,7 +2068,7 @@ MsqCleanupMessageQueue(PTHREADINFO pti)
IntGetSysCursorInfo()->CurrentCursorObject = NULL; IntGetSysCursorInfo()->CurrentCursorObject = NULL;
} }
ERR("DereferenceObject pCursor\n"); TRACE("DereferenceObject pCursor\n");
UserDereferenceObject(pCursor); UserDereferenceObject(pCursor);
} }
@ -2200,7 +2200,7 @@ MsqSetStateWindow(PTHREADINFO pti, ULONG Type, HWND hWnd)
{ {
HWND Prev; HWND Prev;
PUSER_MESSAGE_QUEUE MessageQueue; PUSER_MESSAGE_QUEUE MessageQueue;
MessageQueue = pti->MessageQueue; MessageQueue = pti->MessageQueue;
switch(Type) switch(Type)

View file

@ -164,8 +164,8 @@ NtUserInitialize(
{ {
NTSTATUS Status; NTSTATUS Status;
ERR("Enter NtUserInitialize(%lx, %p, %p)\n", TRACE("Enter NtUserInitialize(%lx, %p, %p)\n",
dwWinVersion, hPowerRequestEvent, hMediaRequestEvent); dwWinVersion, hPowerRequestEvent, hMediaRequestEvent);
/* Check the Windows version */ /* Check the Windows version */
if (dwWinVersion != 0) if (dwWinVersion != 0)

View file

@ -250,7 +250,7 @@ ClientThreadSetup(VOID)
// CsrConnectToUser, we'll pretend we "did something" here. Then the rest will // CsrConnectToUser, we'll pretend we "did something" here. Then the rest will
// continue as normal. // continue as normal.
// //
UNIMPLEMENTED; //UNIMPLEMENTED;
return TRUE; return TRUE;
} }
@ -258,7 +258,7 @@ BOOL
Init(VOID) Init(VOID)
{ {
USERCONNECT UserCon; USERCONNECT UserCon;
/* Set PEB data */ /* Set PEB data */
NtCurrentPeb()->KernelCallbackTable = apfnDispatch; NtCurrentPeb()->KernelCallbackTable = apfnDispatch;
NtCurrentPeb()->PostProcessInitRoutine = NULL; NtCurrentPeb()->PostProcessInitRoutine = NULL;
@ -379,7 +379,7 @@ GetConnected(VOID)
g_ulSharedDelta = UserCon.siClient.ulSharedDelta; g_ulSharedDelta = UserCon.siClient.ulSharedDelta;
gpsi = SharedPtrToUser(UserCon.siClient.psi); gpsi = SharedPtrToUser(UserCon.siClient.psi);
gHandleTable = SharedPtrToUser(UserCon.siClient.aheList); gHandleTable = SharedPtrToUser(UserCon.siClient.aheList);
gHandleEntries = SharedPtrToUser(gHandleTable->handles); gHandleEntries = SharedPtrToUser(gHandleTable->handles);
} }
@ -387,9 +387,9 @@ NTSTATUS
WINAPI WINAPI
User32CallClientThreadSetupFromKernel(PVOID Arguments, ULONG ArgumentLength) User32CallClientThreadSetupFromKernel(PVOID Arguments, ULONG ArgumentLength)
{ {
ERR("ClientThreadSetup\n"); TRACE("ClientThreadSetup\n");
ClientThreadSetup(); ClientThreadSetup();
return ZwCallbackReturn(NULL, 0, STATUS_SUCCESS); return ZwCallbackReturn(NULL, 0, STATUS_SUCCESS);
} }
NTSTATUS NTSTATUS
@ -403,7 +403,7 @@ User32CallGetCharsetInfo(PVOID Arguments, ULONG ArgumentLength)
Ret = TranslateCharsetInfo((DWORD *)pgci->Locale, &pgci->Cs, TCI_SRCLOCALE); Ret = TranslateCharsetInfo((DWORD *)pgci->Locale, &pgci->Cs, TCI_SRCLOCALE);
return ZwCallbackReturn(Arguments, ArgumentLength, Ret ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL); return ZwCallbackReturn(Arguments, ArgumentLength, Ret ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL);
} }
NTSTATUS NTSTATUS

View file

@ -202,7 +202,7 @@ User32CreateWindowEx(DWORD dwExStyle,
return (HWND)0; return (HWND)0;
} }
} }
/* Copy it to a LARGE_STRING */ /* Copy it to a LARGE_STRING */
lstrClassName.Buffer = ClassName.Buffer; lstrClassName.Buffer = ClassName.Buffer;
lstrClassName.Length = ClassName.Length; lstrClassName.Length = ClassName.Length;
@ -219,7 +219,7 @@ User32CreateWindowEx(DWORD dwExStyle,
NTSTATUS Status; NTSTATUS Status;
PSTR AnsiBuffer = WindowName.Buffer; PSTR AnsiBuffer = WindowName.Buffer;
ULONG AnsiLength = WindowName.Length; ULONG AnsiLength = WindowName.Length;
WindowName.Length = 0; WindowName.Length = 0;
WindowName.MaximumLength = AnsiLength * sizeof(WCHAR); WindowName.MaximumLength = AnsiLength * sizeof(WCHAR);
WindowName.Buffer = RtlAllocateHeap(RtlGetProcessHeap(), WindowName.Buffer = RtlAllocateHeap(RtlGetProcessHeap(),
@ -311,7 +311,7 @@ cleanup:
{ {
RtlFreeUnicodeString(&ClassName); RtlFreeUnicodeString(&ClassName);
} }
RtlFreeLargeString(&WindowName); RtlFreeLargeString(&WindowName);
} }
@ -343,7 +343,7 @@ CreateWindowExA(DWORD dwExStyle,
if (!RegisterDefaultClasses) if (!RegisterDefaultClasses)
{ {
ERR("CreateWindowExA RegisterSystemControls\n"); TRACE("CreateWindowExA RegisterSystemControls\n");
RegisterSystemControls(); RegisterSystemControls();
} }
@ -488,7 +488,7 @@ CreateWindowExW(DWORD dwExStyle,
WARN("WS_EX_MDICHILD, but parent %p is not MDIClient\n", hWndParent); WARN("WS_EX_MDICHILD, but parent %p is not MDIClient\n", hWndParent);
return NULL; return NULL;
} }
/* lpParams of WM_[NC]CREATE is different for MDI children. /* lpParams of WM_[NC]CREATE is different for MDI children.
* MDICREATESTRUCT members have the originally passed values. * MDICREATESTRUCT members have the originally passed values.
*/ */
@ -680,7 +680,7 @@ User32EnumWindows(HDESK hDesktop,
if (!dwCount) if (!dwCount)
{ {
if (!dwThreadId) if (!dwThreadId)
return FALSE; return FALSE;
else else
return TRUE; return TRUE;
} }
@ -692,7 +692,7 @@ User32EnumWindows(HDESK hDesktop,
/* FIXME I'm only getting NULLs from Thread Enumeration, and it's /* FIXME I'm only getting NULLs from Thread Enumeration, and it's
* probably because I'm not doing it right in NtUserBuildHwndList. * probably because I'm not doing it right in NtUserBuildHwndList.
* Once that's fixed, we shouldn't have to check for a NULL HWND * Once that's fixed, we shouldn't have to check for a NULL HWND
* here * here
* This is now fixed in revision 50205. (jt) * This is now fixed in revision 50205. (jt)
*/ */
if (!pHwnd[i]) /* don't enumerate a NULL HWND */ if (!pHwnd[i]) /* don't enumerate a NULL HWND */
@ -907,7 +907,7 @@ GetAncestor(HWND hwnd, UINT gaFlags)
{ {
HWND Ret = NULL; HWND Ret = NULL;
PWND Ancestor, Wnd; PWND Ancestor, Wnd;
Wnd = ValidateHwnd(hwnd); Wnd = ValidateHwnd(hwnd);
if (!Wnd) if (!Wnd)
return NULL; return NULL;
@ -960,7 +960,7 @@ GetClientRect(HWND hWnd, LPRECT lpRect)
lpRect->bottom = GetSystemMetrics(SM_CYMINIMIZED); lpRect->bottom = GetSystemMetrics(SM_CYMINIMIZED);
return TRUE; return TRUE;
} }
if ( hWnd != GetDesktopWindow()) // Wnd->fnid != FNID_DESKTOP ) if ( hWnd != GetDesktopWindow()) // Wnd->fnid != FNID_DESKTOP )
{ {
/* lpRect->left = lpRect->top = 0; /* lpRect->left = lpRect->top = 0;
lpRect->right = Wnd->rcClient.right - Wnd->rcClient.left; lpRect->right = Wnd->rcClient.right - Wnd->rcClient.left;
@ -977,7 +977,7 @@ GetClientRect(HWND hWnd, LPRECT lpRect)
/* Do this until Init bug is fixed. This sets 640x480, see InitMetrics. /* Do this until Init bug is fixed. This sets 640x480, see InitMetrics.
lpRect->right = GetSystemMetrics(SM_CXSCREEN); lpRect->right = GetSystemMetrics(SM_CXSCREEN);
lpRect->bottom = GetSystemMetrics(SM_CYSCREEN); lpRect->bottom = GetSystemMetrics(SM_CYSCREEN);
*/ } */ }
return TRUE; return TRUE;
} }
@ -1103,7 +1103,7 @@ GetWindow(HWND hWnd,
if (Wnd->spwndPrev != NULL) if (Wnd->spwndPrev != NULL)
FoundWnd = DesktopPtrToUser(Wnd->spwndPrev); FoundWnd = DesktopPtrToUser(Wnd->spwndPrev);
break; break;
case GW_CHILD: case GW_CHILD:
if (Wnd->spwndChild != NULL) if (Wnd->spwndChild != NULL)
FoundWnd = DesktopPtrToUser(Wnd->spwndChild); FoundWnd = DesktopPtrToUser(Wnd->spwndChild);
@ -1370,7 +1370,7 @@ GetWindowThreadProcessId(HWND hWnd,
if (!pWnd) return Ret; if (!pWnd) return Ret;
ti = pWnd->head.pti; ti = pWnd->head.pti;
if (ti) if (ti)
{ {
if (ti == GetW32ThreadInfo()) if (ti == GetW32ThreadInfo())

View file

@ -261,7 +261,7 @@ CreateSysMenu(HWND hWnd)
if (hMenu != NULL) if (hMenu != NULL)
{ {
mii.cbSize = sizeof(mii); mii.cbSize = sizeof(mii);
mii.fMask = MIIM_STRING; mii.fMask = MIIM_STRING;
mii.dwTypeData = szMenuStringBack; mii.dwTypeData = szMenuStringBack;
mii.cch = sizeof(szMenuStringBack)/sizeof(WCHAR); mii.cch = sizeof(szMenuStringBack)/sizeof(WCHAR);
@ -711,7 +711,7 @@ OnActivate(PGUI_CONSOLE_DATA GuiData, WPARAM wParam)
{ {
WORD ActivationState = LOWORD(wParam); WORD ActivationState = LOWORD(wParam);
DPRINT1("WM_ACTIVATE - ActivationState = %d\n"); DPRINT("WM_ACTIVATE - ActivationState = %d\n");
if ( ActivationState == WA_ACTIVE || if ( ActivationState == WA_ACTIVE ||
ActivationState == WA_CLICKACTIVE ) ActivationState == WA_CLICKACTIVE )