From: Piotr Caban piotr@codeweavers.com
--- dlls/winspool.drv/info.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 456d5e2ecdf..54ecb81d3be 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -7490,9 +7490,6 @@ static BOOL is_port(const WCHAR *port_list, const WCHAR *output) { size_t len;
- if (!output) - return FALSE; - if (wcschr(output, ':')) return TRUE;
@@ -7532,7 +7529,7 @@ LPWSTR WINAPI StartDocDlgW( HANDLE hPrinter, DOCINFOW *doc )
/* Check whether default port is FILE: */ b = !doc->lpszOutput && (!pi5->pPortName || wcscmp( pi5->pPortName, L"FILE:" )); - if (!b) + if (!b && doc->lpszOutput && wcscmp( doc->lpszOutput, L"FILE:" )) b = is_port(pi5->pPortName, doc->lpszOutput); free(pi5); if (b)
From: Piotr Caban piotr@codeweavers.com
We're storing it now in DC attributes. --- dlls/wineps.drv/escape.c | 10 +--------- dlls/wineps.drv/init.c | 3 --- dlls/wineps.drv/psdrv.h | 1 - 3 files changed, 1 insertion(+), 13 deletions(-)
diff --git a/dlls/wineps.drv/escape.c b/dlls/wineps.drv/escape.c index 0149e192520..9ced2221b1c 100644 --- a/dlls/wineps.drv/escape.c +++ b/dlls/wineps.drv/escape.c @@ -459,17 +459,9 @@ INT CDECL PSDRV_StartDoc( PHYSDEV dev, const DOCINFOW *doc ) }
di.pDocName = (LPWSTR) doc->lpszDocName; + di.pOutputFile = (LPWSTR) doc->lpszOutput; di.pDatatype = NULL;
- if(doc->lpszOutput) - di.pOutputFile = (LPWSTR) doc->lpszOutput; - else if(physDev->job.output) - di.pOutputFile = physDev->job.output; - else - di.pOutputFile = NULL; - - TRACE("using output: %s\n", debugstr_w(di.pOutputFile)); - /* redirection located in HKCU\Software\Wine\Printing\Spooler is done during winspool.drv,ScheduleJob */ physDev->job.id = StartDocPrinterW(physDev->job.hprinter, 1, (LPBYTE) &di); diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c index 0d4467b6964..579e59e621b 100644 --- a/dlls/wineps.drv/init.c +++ b/dlls/wineps.drv/init.c @@ -387,8 +387,6 @@ static BOOL CDECL PSDRV_CreateDC( PHYSDEV *pdev, LPCWSTR device, LPCWSTR output,
if (!(physDev = create_psdrv_physdev( pi ))) return FALSE;
- if (output && *output) physDev->job.output = strdupW( output ); - if(initData) { dump_devmode(initData); @@ -432,7 +430,6 @@ static BOOL CDECL PSDRV_DeleteDC( PHYSDEV dev ) TRACE("\n");
HeapFree( GetProcessHeap(), 0, physDev->Devmode ); - HeapFree( GetProcessHeap(), 0, physDev->job.output ); HeapFree( GetProcessHeap(), 0, physDev );
return TRUE; diff --git a/dlls/wineps.drv/psdrv.h b/dlls/wineps.drv/psdrv.h index 2af021508b7..153601d4c86 100644 --- a/dlls/wineps.drv/psdrv.h +++ b/dlls/wineps.drv/psdrv.h @@ -352,7 +352,6 @@ enum passthrough typedef struct { DWORD id; /* Job id */ HANDLE hprinter; /* Printer handle */ - LPWSTR output; /* Output file/port */ LPWSTR doc_name; /* Document Name */ BOOL banding; /* Have we received a NEXTBAND */ BOOL OutOfPage; /* Page header not sent yet */
From: Piotr Caban piotr@codeweavers.com
We should probably ignore all incorrect ports. This is a minimal change that restores 5dadeeb29d36a93b3bbeec8d7b1d237f29bf8f67 commit.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54379 --- dlls/localspl/provider.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/localspl/provider.c b/dlls/localspl/provider.c index 7ab68b62c3d..d09ac4420c3 100644 --- a/dlls/localspl/provider.c +++ b/dlls/localspl/provider.c @@ -3697,7 +3697,7 @@ static BOOL WINAPI fpScheduleJob(HANDLE hprinter, DWORD job_id) }
port = job->port; - if (!port) + if (!port || !*port) port = printer->info->port; TRACE("need to schedule job %ld filename %s to port %s\n", job->id, debugstr_w(job->filename), debugstr_w(port));
This merge request was approved by Huw Davies.