#define B2DVIPS_C	1
#include "bmepsi.h"

#line 3 "b2dvips.ctr"



#ifndef VERSNUMB
#define VERSNUMB "2.0.16"
#endif


static char versnumb[] = { VERSNUMB };


/*
	Used to construct a dk_app_t
*/
static
char *myargv[] = { "bmeps", NULL };

static char tmp1name[64];
static char tmp2name[64];
static char tmp3name[64];
static char tmp4name[64];
static char tmp5name[64];
static char tmp6name[64];
static char tmp7name[64];
static BO bo;
static BJ bj;



static
void
make_sure_to_have_configured DK_P1(char *,langdef)
{
  static char not_yet_configured = 0x01;
  unsigned long ul;
  if(not_yet_configured) {
    bmeps_bj_init(&bj);
    bj.msg = bmeps_str_base();
    bj.bo = &bo;
    bj.a = dkapp_open_ext1(1, myargv, GROUPNAME, SYSCONFDIR, 1, 1);
    bj.tmp1 = tmp1name;
    bj.tmp2 = tmp2name;
    bj.tmp3 = tmp3name;
    bj.tmp4 = tmp4name;
    bj.tmp5 = tmp5name;
    bj.tmp6 = tmp6name;
    bj.tmp7 = tmp7name;
    ul = (unsigned long)dksf_getpid();
    sprintf(tmp1name, "bmeps-%lu-1.tmp", ul);
    sprintf(tmp2name, "bmeps-%lu-2.tmp", ul);
    sprintf(tmp3name, "bmeps-%lu-3.tmp", ul);
    sprintf(tmp4name, "bmeps-%lu-4.tmp", ul);
    sprintf(tmp4name, "bmeps-%lu-5.tmp", ul);
    sprintf(tmp4name, "bmeps-%lu-6.tmp", ul);
    sprintf(tmp4name, "bmeps-%lu-7.tmp", ul);
    bmeps_bo_get_configuration(&bj, langdef);
    if(bj.a) {
      dkapp_close(bj.a); bj.a = NULL;
    }
  }
}


/*
  Use the configuration specified here as option.
*/
void
bmeps_cfg DK_P1(char *,langdef)
{
  
  make_sure_to_have_configured(langdef);
  
}



/*
  Print bmeps version number to output.
*/
void
bmeps_version DK_P1(FILE *,f)
{
  
  fprintf(f, "%s %s\n", "% bmeps", versnumb);
}



/*
  Run a conversion.
  Return:
  1 ... ok
  0 ... error
*/
int
bmeps_run DK_P3(FILE *,outf, FILE *,inf, char *,name)
{
  int back = 1;
  
  make_sure_to_have_configured(NULL);
  bj.outf = outf;
  bj.inf = inf;
  bj.infname = name;
  bj.frame_s = 0L;
  bj.frame_e = 0L;
  bj.frame_c = 0x01;	/* we really want only the first frame */
  bmeps_convert(&bj);
  
  if(bj.exval) back = 0;
  return back;
}



/*
  Check whether the file with a given name can be handled.
  Return:
  1 ... ok, can be handled
  0 ... no, can not be handled
*/
int
bmeps_can_handle DK_P1(char *,name)
{
  int back = 0;
  back = dkbif_can_handle_name(name);
  return back;
}



#ifndef LINT
static char sccs_id[] = {
"@(#)b2dvips.ctr 1.10 06/30/08\tbmeps2"
};
#endif

