/* demidtst.c */

#include <stdio.h>
#include <string.h>
#include <malloc.h>

extern unsigned short far pascal INITDEMANGLEID (const char far *init);
extern unsigned short far pascal DEMANGLEID (const char far *src,
    char far *dst, unsigned long dst_size);


int main (int argc, char *argv[])
{
  char init[] = "\0";
  char *p;
  size_t len;
  static char buf[512];

  if (INITDEMANGLEID (init) == 0)
    fprintf (stderr, "INITDEMANGLEID failed.\n");
  else if (argc != 2)
    fprintf (stderr, "Usage: demidtst <name>\n");
  else
    {
      len = strlen (argv[1]);
      p = alloca (1 + len);
      p[0] = (char)len;
      memcpy (p + 1, argv[1], len);
      if (DEMANGLEID (p, buf, sizeof (buf)) == 0)
        fprintf (stderr, "DEMANGLEID failed.\n");
      else
        printf ("%s -> %s\n", argv[1], buf);
    }
  return (0);
}
