#include <stdio.h>
#include <stdlib.h>
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "wvexporter-priv.h"

void wvPutFLD(FLD *item,wvStream *fd)
{
      	U8 temp8 = (U8)0;
       	U8 ch = (U8)0;

 		/* FLD is a union of var1 && var2
 		 * but they have a common 'ch' first member
 		 * I pray to god that this works XP & X-compilers
 		 */
		ch = item->var1.ch;

        if (ch == 19)
                 {
				 temp8 |= ch;
                 temp8 |= item->var1.reserved << 5;
				 write_8ubit(fd, temp8);
				 write_8ubit(fd, (U8)item->var1.flt);
                 }
         else
                 {
				 temp8 |= ch;
                 temp8 |= item->var2.reserved << 5;
				 write_8ubit(fd, temp8);

				 temp8 |= item->var2.fDiffer;
				 temp8 |= item->var2.fZombieEmbed << 1;
				 temp8 |= item->var2.fResultDirty << 2;
				 temp8 |= item->var2.fResultEdited << 3;
				 temp8 |= item->var2.fLocked << 4;
				 temp8 |= item->var2.fPrivateResult << 5;
				 temp8 |= item->var2.fNested << 6;
				 temp8 |= item->var2.fHasSep << 7;
                 write_8ubit(fd, temp8);
                 }
 }
