From: Huw Davies Subject: wineps: Always initialize the Windows page type. Message-Id: <1397645881-16003-1-git-send-email-huw@codeweavers.com> Date: Wed, 16 Apr 2014 11:58:01 +0100 --- dlls/wineps.drv/ppd.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/dlls/wineps.drv/ppd.c b/dlls/wineps.drv/ppd.c index adb6a21..520355a 100644 --- a/dlls/wineps.drv/ppd.c +++ b/dlls/wineps.drv/ppd.c @@ -816,26 +816,13 @@ PPD *PSDRV_ParsePPD( const WCHAR *fname, HANDLE printer ) tuple.value = NULL; } - else if(!strcmp("*PageSize", tuple.key)) { + else if(!strcmp("*PageSize", tuple.key)) + { page = get_pagesize( ppd, tuple.option, TRUE ); if(!page->Name) { - int i; - page->Name = tuple.option; tuple.option = NULL; - - for(i = 0; PageTrans[i].PSName; i++) { - if(!strcmp(PageTrans[i].PSName, page->Name)) { /* case ? */ - page->WinPage = PageTrans[i].WinPage; - break; - } - } - if(!page->WinPage) { - TRACE("Can't find Windows page type for '%s' - using %u\n", - page->Name, UserPageType); - page->WinPage = UserPageType++; - } } if(!page->FullName) { if(tuple.opttrans) { @@ -851,7 +838,24 @@ PPD *PSDRV_ParsePPD( const WCHAR *fname, HANDLE printer ) page->InvocationString = tuple.value; tuple.value = NULL; } - } + if (!page->WinPage) + { + int i; + for (i = 0; PageTrans[i].PSName; i++) + { + if (!strcmp( PageTrans[i].PSName, page->Name )) + { + page->WinPage = PageTrans[i].WinPage; + break; + } + } + if (!page->WinPage) + { + TRACE( "Can't find Windows page type for %s - using %u\n", debugstr_a(page->Name), UserPageType ); + page->WinPage = UserPageType++; + } + } + } else if(!strcmp("*DefaultPageSize", tuple.key)) {