#include <xpk/xpk.h>
#include <pragma/dos_lib.h>
#include "PrintFlags.c"

/* Includesheader

	Name:		WriteXpkFib.c
	Versionstring:	$VER: WriteXpkFib.c 1.1 (06.12.96)
	Author:		SDI
	Distribution:	PD
	Description:	prints XpkFib data

 1.1   06.12.96 : now uses VPrintf and gives better output
*/

void WriteXpkFib(struct XpkFib *xfib)
{
  STRPTR a = 0;

  switch(xfib->xf_Type)
  {
    case 0: a = "XPKTYPE_UNPACKED"; break;
    case 1: a = "XPKTYPE_PACKED"; break;
    case 2: a = "XPKTYPE_ARCHIVE"; break;
  }

  if(a)
    VPrintf("xf_Type      : %s\n", &a);
  else
    VPrintf("xf_Type      : %ld\n", &xfib->xf_Type);
  VPrintf(
    "xf_ULen      : %ld\n"
    "xf_CLen      : %ld\n"
    "xf_NLen      : %ld\n"
    "xf_UCur      : %ld\n"
    "xf_CCur      : %ld\n"
    "xf_ID        : %lx", &xfib->xf_ULen);
  a = (STRPTR) &xfib->xf_ID;
  VPrintf(" (%.4s)\n", &a);
  a = xfib->xf_Packer;
  VPrintf(
    "xf_Packer    : %s\n", &a);
  VPrintf(
    "xf_SubVersion: %d\n"
    "xf_MasVersion: %d\n"
    "xf_Flags     : ", &xfib->xf_SubVersion);
  {
    ULONG i = xfib->xf_Flags;
    PrintFlag(&i, XPKFLAGS_PASSWORD, "XPKFLAGS_PASSWORD");
    PrintFlag(&i, XPKFLAGS_NOSEEK, "SPKFLAGS_NOSEEK");
    PrintFlag(&i, XPKFLAGS_NONSTD, "XPKFLAGS_NONSTD");
    PrintEndFlag(i, xfib->xf_Flags);
  }
  VPrintf(
    "xf_Head      : %04lx%04lx%04lx%04lx\n"
    "xf_Ratio     : %ld\n", &xfib->xf_Head[0]);
}
