#include <string.h>

#include "swis.h"
#include "kernel.h"

#include "toolbox.h"
#include "wimp.h"
#include "wimplib.h"

#include "msgtrans.h"

MessagesFD msgtrans_block;

static char _msg_buf[256];

char *msgtrans(char *token)
{
  _kernel_swi_regs r;
  r.r[0]=(int)&msgtrans_block;
  r.r[1]=(int)token;
  r.r[2]=(int)_msg_buf;
  r.r[3]=255;
  if (_kernel_swi(MessageTrans_Lookup,&r,&r)) _msg_buf[0]=0;

  return _msg_buf;
}

_kernel_oserror _msgtrans_e;

void msgtrans_error(char *token)
{
  _msgtrans_e.errnum=2048;
  strcpy(_msgtrans_e.errmess,msgtrans(token));
  wimp_report_error(&_msgtrans_e, 0, msgtrans("_TaskName"),0,0,0);
}

_kernel_oserror *msgtrans_errorlookup(char *token)
{
  _msgtrans_e.errnum=2048;
  strcpy(_msgtrans_e.errmess,msgtrans(token));
  return &_msgtrans_e;
}
