Module: wine Branch: master Commit: e6398a554483f454a23e21c85d6760af96cbdd41 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e6398a554483f454a23e21c85d...
Author: Huw Davies huw@codeweavers.com Date: Wed May 16 13:15:18 2012 +0100
wineps: Add a helper to perform duplex lookup by name.
---
dlls/wineps.drv/ppd.c | 44 +++++++++++++++++++++++++------------------- 1 files changed, 25 insertions(+), 19 deletions(-)
diff --git a/dlls/wineps.drv/ppd.c b/dlls/wineps.drv/ppd.c index 42969df..dc598e8 100644 --- a/dlls/wineps.drv/ppd.c +++ b/dlls/wineps.drv/ppd.c @@ -481,6 +481,19 @@ static PAGESIZE *get_pagesize( PPD *ppd, char *name, BOOL create ) return page; }
+static DUPLEX *get_duplex( PPD *ppd, const char *name ) +{ + DUPLEX *duplex; + + LIST_FOR_EACH_ENTRY( duplex, &ppd->Duplexes, DUPLEX, entry ) + { + if (!strcmp( duplex->Name, name )) + return duplex; + } + + return NULL; +} + /********************************************************************** * * PSDRV_PPDGetWord @@ -896,13 +909,13 @@ PPD *PSDRV_ParsePPD(char *fname) list_add_tail( &ppd->Duplexes, &duplex->entry ); }
- else if(!strcmp("*DefaultDuplex", tuple.key)) { - if(default_duplex) { - WARN("Already set default duplex\n"); - } else { + else if (!strcmp("*DefaultDuplex", tuple.key)) + { + if (!default_duplex) + { default_duplex = tuple.value; tuple.value = NULL; - } + } }
HeapFree(PSDRV_Heap, 0, tuple.key); @@ -946,24 +959,17 @@ PPD *PSDRV_ParsePPD(char *fname)
ppd->DefaultDuplex = NULL; if (default_duplex) - { - DUPLEX *duplex; - LIST_FOR_EACH_ENTRY( duplex, &ppd->Duplexes, DUPLEX, entry ) - { - if (!strcmp(duplex->Name, default_duplex)) - { - ppd->DefaultDuplex = duplex; - TRACE("DefaultDuplex: %s\n", duplex->Name); - break; - } - } - HeapFree(PSDRV_Heap, 0, default_duplex); - } + ppd->DefaultDuplex = get_duplex( ppd, default_duplex ); + if (!ppd->DefaultDuplex) { - ppd->DefaultDuplex = LIST_ENTRY( list_head( &ppd->Duplexes ), DUPLEX, entry ); + struct list *head = list_head( &ppd->Duplexes ); + if (head) ppd->DefaultDuplex = LIST_ENTRY( head, DUPLEX, entry ); TRACE("Setting DefaultDuplex to first in list\n"); } + TRACE( "DefaultDuplex: %s\n", ppd->DefaultDuplex ? ppd->DefaultDuplex->Name : "<not set>" ); + + HeapFree( PSDRV_Heap, 0, default_duplex );
{