wineps: Move the constraints list to a standard list.

This commit is contained in:
Huw Davies 2012-04-11 12:36:15 +01:00 committed by Alexandre Julliard
parent 4ff9b7f11a
commit 4dfef2ef2d
2 changed files with 12 additions and 14 deletions

View File

@ -634,6 +634,7 @@ PPD *PSDRV_ParsePPD(char *fname)
list_init( &ppd->InstalledFonts ); list_init( &ppd->InstalledFonts );
list_init( &ppd->PageSizes ); list_init( &ppd->PageSizes );
list_init( &ppd->Constraints );
/* /*
* The Windows PostScript drivers create the following "virtual bin" for * The Windows PostScript drivers create the following "virtual bin" for
@ -812,23 +813,19 @@ PPD *PSDRV_ParsePPD(char *fname)
ppd->LandscapeOrientation); ppd->LandscapeOrientation);
} }
else if(!strcmp("*UIConstraints", tuple.key)) { else if(!strcmp("*UIConstraints", tuple.key))
{
char *start; char *start;
CONSTRAINT *con, **insert = &ppd->Constraints; CONSTRAINT *con = HeapAlloc( PSDRV_Heap, 0, sizeof(*con) );
while(*insert)
insert = &((*insert)->next);
con = *insert = HeapAlloc( PSDRV_Heap, HEAP_ZERO_MEMORY,
sizeof(*con) );
start = tuple.value; start = tuple.value;
con->Feature1 = PSDRV_PPDGetWord(start, &start); con->Feature1 = PSDRV_PPDGetWord(start, &start);
con->Value1 = PSDRV_PPDGetWord(start, &start); con->Value1 = PSDRV_PPDGetWord(start, &start);
con->Feature2 = PSDRV_PPDGetWord(start, &start); con->Feature2 = PSDRV_PPDGetWord(start, &start);
con->Value2 = PSDRV_PPDGetWord(start, &start); con->Value2 = PSDRV_PPDGetWord(start, &start);
}
list_add_tail( &ppd->Constraints, &con->entry );
}
else if (!strcmp("*InputSlot", tuple.key)) else if (!strcmp("*InputSlot", tuple.key))
{ {
@ -992,7 +989,7 @@ PPD *PSDRV_ParsePPD(char *fname)
page->PaperDimension->x, page->PaperDimension->y); page->PaperDimension->x, page->PaperDimension->y);
} }
for(con = ppd->Constraints; con; con = con->next) LIST_FOR_EACH_ENTRY( con, &ppd->Constraints, CONSTRAINT, entry )
TRACE("CONSTRAINTS@ %s %s %s %s\n", con->Feature1, TRACE("CONSTRAINTS@ %s %s %s %s\n", con->Feature1,
con->Value1, con->Feature2, con->Value2); con->Value1, con->Feature2, con->Value2);

View File

@ -168,12 +168,13 @@ typedef struct _tagOPTION { /* Treat bool as a special case of pickone */
struct _tagOPTION *next; struct _tagOPTION *next;
} OPTION; } OPTION;
typedef struct _tagCONSTRAINT { typedef struct
{
struct list entry;
char *Feature1; char *Feature1;
char *Value1; char *Value1;
char *Feature2; char *Feature2;
char *Value2; char *Value2;
struct _tagCONSTRAINT *next;
} CONSTRAINT; } CONSTRAINT;
typedef struct _tagINPUTSLOT { typedef struct _tagINPUTSLOT {
@ -218,7 +219,7 @@ typedef struct {
struct list PageSizes; struct list PageSizes;
PAGESIZE *DefaultPageSize; PAGESIZE *DefaultPageSize;
OPTION *InstalledOptions; OPTION *InstalledOptions;
CONSTRAINT *Constraints; struct list Constraints;
INPUTSLOT *InputSlots; INPUTSLOT *InputSlots;
RASTERIZEROPTION TTRasterizer; RASTERIZEROPTION TTRasterizer;
DUPLEX *Duplexes; DUPLEX *Duplexes;