Make GetPrinterDriverDirectoryA pass all tests.
diff --git a/dlls/winspool/info.c b/dlls/winspool/info.c index 646cabc..1c33bee 100644 --- a/dlls/winspool/info.c +++ b/dlls/winspool/info.c
@@ -2505,11 +2505,12 @@ ret = GetPrinterDriverDirectoryW( nameW.Buffer, environmentW.Buffer, Level, (LPBYTE)driverDirectoryW, len, &pcbNeededW ); if (ret) { - ret = WideCharToMultiByte( CP_ACP, 0, driverDirectoryW, -1, + DWORD needed; + needed = 1 + WideCharToMultiByte( CP_ACP, 0, driverDirectoryW, -1, pDriverDirectory, cbBuf, NULL, NULL); if(pcbNeeded) - *pcbNeeded = WideCharToMultiByte( CP_ACP, 0, driverDirectoryW, -1, - NULL, 0, NULL, NULL); + *pcbNeeded = needed; + ret = (needed <= cbBuf) ? TRUE : FALSE; } else if(pcbNeeded) *pcbNeeded = pcbNeededW * sizeof(CHAR)/sizeof(WCHAR);