#include "m_pd.h"
#include<stdio.h>
#include<string.h>
#include<fcntl.h>
#include<limits.h>
#include<unistd.h>

static t_class *arguse2_class;

typedef struct _arguse2 {
  t_object  x_obj;
  char buf[1024]; 
  t_symbol *name;
} t_arguse2;

static void arguse2_bang(t_arguse2 *x)
{
  post (x->buf);
}

static void *arguse2_new(t_symbol *name_arg)
{
  t_arguse2 *x = (t_arguse2 *)pd_new(arguse2_class);

  x->name = name_arg;
  sprintf(x->buf, "The symbol argument is %s", x->name->s_name);

  return (void *)x;
}

void arguse2_setup(void) {
  arguse2_class = class_new(gensym("arguse2"),
        (t_newmethod)arguse2_new,
        0, sizeof(t_arguse2),
        CLASS_DEFAULT,
        A_DEFSYMBOL, 0);

  class_addbang(arguse2_class, arguse2_bang);
}

