[PD-cvs] externals/PDContainer/src h_deque.cpp, 1.3, 1.4 h_list.cpp, 1.5, 1.6 HList.cpp, 1.1.1.1, 1.2 h_map.cpp, 1.3, 1.4 h_multimap.cpp, 1.3, 1.4 HMultiMap.cpp, 1.1.1.1, 1.2 h_multiset.cpp, 1.3, 1.4 h_prioqueue.cpp, 1.1.1.1, 1.2 h_queue.cpp, 1.1.1.1, 1.2 h_set.cpp, 1.3, 1.4 h_stack.cpp, 1.1.1.1, 1.2 h_vector.cpp, 1.3, 1.4 PDContainer.cpp, 1.1.1.1, 1.2

Georg Holzmann grholzi at users.sourceforge.net
Sun Oct 9 23:50:59 CEST 2005


Update of /cvsroot/pure-data/externals/PDContainer/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12682

Modified Files:
	h_deque.cpp h_list.cpp HList.cpp h_map.cpp h_multimap.cpp 
	HMultiMap.cpp h_multiset.cpp h_prioqueue.cpp h_queue.cpp 
	h_set.cpp h_stack.cpp h_vector.cpp PDContainer.cpp 
Log Message:
version 0.2


Index: h_multiset.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/h_multiset.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** h_multiset.cpp	5 May 2005 23:00:56 -0000	1.3
--- h_multiset.cpp	9 Oct 2005 21:50:57 -0000	1.4
***************
*** 33,40 ****
      }
    
!   Element key;
!   key.length = argc;
!   key.atom = argv;
! 
    x->hmultiset->add( key );
  }
--- 33,37 ----
      }
    
!   Element key(argc,argv);
    x->hmultiset->add( key );
  }
***************
*** 48,55 ****
      }  
    
!   Element key;
!   key.length = argc;
!   key.atom = argv;
! 
    int output = x->hmultiset->get( key );
  
--- 45,49 ----
      }  
    
!   Element key(argc,argv);
    int output = x->hmultiset->get( key );
  
***************
*** 65,72 ****
      }  
    
!   Element key;
!   key.length = argc;
!   key.atom = argv;
! 
    x->hmultiset->remove( key );
  }
--- 59,63 ----
      }  
    
!   Element key(argc,argv);
    x->hmultiset->remove( key );
  }

Index: HMultiMap.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/HMultiMap.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** HMultiMap.cpp	25 Oct 2004 19:02:30 -0000	1.1.1.1
--- HMultiMap.cpp	9 Oct 2005 21:50:57 -0000	1.2
***************
*** 34,41 ****
      }
  
!   // returns a NULL-pointer if there's no element
!   // (okay, thats not good, I'll change that)
!   Element *nothing;
!   nothing = 0;
!   return *nothing;
  }
--- 34,38 ----
      }
  
!   // throw an exception if nothing was found
!   throw "h_multimap, get: Element not found !";
  }

Index: HList.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/HList.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** HList.cpp	25 Oct 2004 19:02:30 -0000	1.1.1.1
--- HList.cpp	9 Oct 2005 21:50:57 -0000	1.2
***************
*** 77,81 ****
        // into the objects and add them to the container
  
!       t_atom *key_atom = new t_atom[key_count];
        if(key_atom == NULL)
  	post("Fatal Error Out Of Memory (%s-readFromFile)",dataname_.c_str());
--- 77,81 ----
        // into the objects and add them to the container
  
!       t_atom *key_atom = (t_atom*)getbytes(key_count*sizeof(t_atom));
        if(key_atom == NULL)
  	post("Fatal Error Out Of Memory (%s-readFromFile)",dataname_.c_str());
***************
*** 98,108 ****
  	}
  
!       key.length = key_count;
!       key.atom = (t_atom*)copybytes(key_atom, key_count * sizeof(t_atom));
  
        // insert the data
        data_[h_namespace_].insert(iter_,key);
        
!       delete[] key_atom;
      }
  
--- 98,107 ----
  	}
  
! 	key.setAtoms(key_count,key_atom);
  
        // insert the data
        data_[h_namespace_].insert(iter_,key);
        
!       freebytes(key_atom, key_count*sizeof(t_atom));
      }
  

Index: h_stack.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/h_stack.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** h_stack.cpp	25 Oct 2004 19:02:30 -0000	1.1.1.1
--- h_stack.cpp	9 Oct 2005 21:50:57 -0000	1.2
***************
*** 29,36 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hstack->push(key);
      }
--- 29,33 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hstack->push(key);
      }
***************
*** 60,76 ****
    Element output = x->hstack->top();
   
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
  }
  
--- 57,78 ----
    Element output = x->hstack->top();
   
!   if(output.getLength() == 1) // symbol or float
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }
+     
+   // no data
+   outlet_bang(x->out2);
  }
  

Index: h_prioqueue.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/h_prioqueue.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** h_prioqueue.cpp	25 Oct 2004 19:02:30 -0000	1.1.1.1
--- h_prioqueue.cpp	9 Oct 2005 21:50:57 -0000	1.2
***************
*** 62,113 ****
    // symbol without selector "symbol":
    if(argc == 0)
!     {
!       x->value.length = 1;
!       SETSYMBOL(x->value.atom, s);
!       x->event_set = true;
!       return;
!     }
  
    // input is a list without selector "list":
    if ( argc && (strcmp(s->s_name,"list")!=0) 
!        && (strcmp(s->s_name,"float")!=0) && (strcmp(s->s_name,"symbol")!=0) )
!     {
!       t_atom *atoms = new t_atom[argc+1];
  
        // add the selector symbol to the list:
!       SETSYMBOL(atoms, s);
  
!       for(int i=0; i<argc; i++)
! 	{
! 	  if(argv[i].a_type == A_FLOAT)
! 	    SETFLOAT(&atoms[i+1],argv[i].a_w.w_float);
! 	  if(argv[i].a_type == A_SYMBOL)
! 	    SETSYMBOL(&atoms[i+1],argv[i].a_w.w_symbol);
! 	}
  
!       if (x->value.length != argc+1) 
! 	{
! 	  freebytes(x->value.atom, x->value.length * sizeof(t_atom));
! 	  x->value.length = argc+1;
! 	  x->value.atom = (t_atom*)copybytes(atoms, (argc+1) * sizeof(t_atom));
! 	} else memcpy(x->value.atom, atoms, (argc+1) * sizeof(t_atom));
  
!       x->event_set = true;
!       delete[] atoms;
!       return;
!     }
  
!   // "normal" input (list, float or symbol):
    if (argc)
!     {
!       if (x->value.length != argc) 
! 	{
! 	  freebytes(x->value.atom, x->value.length * sizeof(t_atom));
! 	  x->value.length = argc;
! 	  x->value.atom = (t_atom*)copybytes(argv, argc * sizeof(t_atom));
! 	} else memcpy(x->value.atom, argv, argc * sizeof(t_atom));
!       x->event_set = true;
!       return;
!     }
  }
  
--- 62,108 ----
    // symbol without selector "symbol":
    if(argc == 0)
!   {
!     t_atom tmp;
!     SETSYMBOL(&tmp, s);
!     x->value.setAtoms(1, &tmp);
!     x->event_set = true;
!     return;
!   }
  
    // input is a list without selector "list":
    if ( argc && (strcmp(s->s_name,"list")!=0) 
!        && (strcmp(s->s_name,"float")!=0) 
!        && (strcmp(s->s_name,"symbol")!=0)
!        && (strcmp(s->s_name,"pointer")!=0) )
!   {
!     t_atom *atoms = (t_atom*)getbytes( (argc+1)*sizeof(t_atom) );
  
        // add the selector symbol to the list:
!     SETSYMBOL(atoms, s);
  
!     for(int i=0; i<argc; i++)
!     {
!       if(argv[i].a_type == A_FLOAT)
! 	SETFLOAT(&atoms[i+1],argv[i].a_w.w_float);
!       if(argv[i].a_type == A_SYMBOL)
! 	SETSYMBOL(&atoms[i+1],argv[i].a_w.w_symbol);
!       if(argv[i].a_type == A_POINTER)
! 	SETPOINTER(&atoms[i+1],argv[i].a_w.w_gpointer);
!     }
  
!     x->value.setAtoms(argc+1, atoms);
  
!     x->event_set = true;
!     freebytes(atoms, (argc+1)*sizeof(t_atom));
!     return;
!   }
  
!   // "normal" input (list, float, pointer or symbol):
    if (argc)
!   {
!     x->value.setAtoms(argc, argv);
!     x->event_set = true;
!     return;
!   }
  }
  
***************
*** 123,137 ****
    Element output = x->hpriority_queue->top();
   
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
--- 118,134 ----
    Element output = x->hpriority_queue->top();
   
!   if(output.getLength() == 1) // symbol or float
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }

Index: h_queue.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/h_queue.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** h_queue.cpp	25 Oct 2004 19:02:30 -0000	1.1.1.1
--- h_queue.cpp	9 Oct 2005 21:50:57 -0000	1.2
***************
*** 29,36 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hqueue->push(key);
      }
--- 29,33 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hqueue->push(key);
      }
***************
*** 60,76 ****
    Element output = x->hqueue->front();
   
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
  }
  
--- 57,78 ----
    Element output = x->hqueue->front();
   
!   if(output.getLength() == 1) // symbol or float
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }
+     
+   // outlet bang if no data here
+   outlet_bang(x->out2);
  }
  

Index: h_deque.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/h_deque.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** h_deque.cpp	5 May 2005 23:00:56 -0000	1.3
--- h_deque.cpp	9 Oct 2005 21:50:57 -0000	1.4
***************
*** 92,146 ****
  {
    t_h_deque *x = (t_h_deque *)(p->x);
! 
    // symbol without selector "symbol":
    if(argc == 0)
!     {
!       x->value.length = 1;
!       SETSYMBOL(x->value.atom, s);
!       x->event_set = true;
!       return;
!     }
  
    // input is a list without selector "list":
    if ( argc && (strcmp(s->s_name,"list")!=0) 
!        && (strcmp(s->s_name,"float")!=0) && (strcmp(s->s_name,"symbol")!=0) )
!     {
!       t_atom *atoms = new t_atom[argc+1];
  
        // add the selector symbol to the list:
!       SETSYMBOL(atoms, s);
  
!       for(int i=0; i<argc; i++)
! 	{
! 	  if(argv[i].a_type == A_FLOAT)
! 	    SETFLOAT(&atoms[i+1],argv[i].a_w.w_float);
! 	  if(argv[i].a_type == A_SYMBOL)
! 	    SETSYMBOL(&atoms[i+1],argv[i].a_w.w_symbol);
! 	}
  
!       if (x->value.length != argc+1) 
! 	{
! 	  freebytes(x->value.atom, x->value.length * sizeof(t_atom));
! 	  x->value.length = argc+1;
! 	  x->value.atom = (t_atom*)copybytes(atoms, (argc+1) * sizeof(t_atom));
! 	} else memcpy(x->value.atom, atoms, (argc+1) * sizeof(t_atom));
  
!       x->event_set = true;
!       delete[] atoms;
!       return;
!     }
  
    // "normal" input (list, float or symbol):
    if (argc)
!     {
!       if (x->value.length != argc) 
! 	{
! 	  freebytes(x->value.atom, x->value.length * sizeof(t_atom));
! 	  x->value.length = argc;
! 	  x->value.atom = (t_atom*)copybytes(argv, argc * sizeof(t_atom));
! 	} else memcpy(x->value.atom, argv, argc * sizeof(t_atom));
!       x->event_set = true;
!       return;
!     }
  }
  
--- 92,141 ----
  {
    t_h_deque *x = (t_h_deque *)(p->x);
!   
    // symbol without selector "symbol":
    if(argc == 0)
!   {
!     t_atom tmp;
!     SETSYMBOL(&tmp, s);
!     x->value.setAtoms(1, &tmp);
!     x->event_set = true;
!     return;
!   }
  
    // input is a list without selector "list":
    if ( argc && (strcmp(s->s_name,"list")!=0) 
!        && (strcmp(s->s_name,"float")!=0) 
!        && (strcmp(s->s_name,"symbol")!=0)
!        && (strcmp(s->s_name,"pointer")!=0) )
!   {
!     t_atom *atoms = (t_atom*)getbytes( (argc+1)*sizeof(t_atom) );
  
        // add the selector symbol to the list:
!     SETSYMBOL(atoms, s);
  
!     for(int i=0; i<argc; i++)
!     {
!       if(argv[i].a_type == A_FLOAT)
! 	SETFLOAT(&atoms[i+1],argv[i].a_w.w_float);
!       if(argv[i].a_type == A_SYMBOL)
! 	SETSYMBOL(&atoms[i+1],argv[i].a_w.w_symbol);
!       if(argv[i].a_type == A_POINTER)
! 	SETPOINTER(&atoms[i+1],argv[i].a_w.w_gpointer);
!     }
  
!     x->value.setAtoms(argc+1, atoms);
  
!     x->event_set = true;
!     freebytes(atoms, (argc+1)*sizeof(t_atom));
!     return;
!   }
  
    // "normal" input (list, float or symbol):
    if (argc)
!   {
!     x->value.setAtoms(argc, argv);
!     x->event_set = true;
!     return;
!   }
  }
  
***************
*** 164,178 ****
    Element output = x->hdeque->get( index );
   
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
--- 159,175 ----
    Element output = x->hdeque->get( index );
   
!   if(output.getLength() == 1) // symbol or float
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }
***************
*** 186,193 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hdeque->pushBack(key);
      }
--- 183,187 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hdeque->pushBack(key);
      }
***************
*** 217,231 ****
    Element output = x->hdeque->back();
   
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
--- 211,227 ----
    Element output = x->hdeque->back();
   
!   if(output.getLength() == 1) // symbol or float
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }
***************
*** 239,246 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hdeque->pushFront(key);
      }
--- 235,239 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hdeque->pushFront(key);
      }
***************
*** 270,284 ****
    Element output = x->hdeque->front();
   
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
--- 263,279 ----
    Element output = x->hdeque->front();
   
!   if(output.getLength() == 1) // symbol or float
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }
***************
*** 394,398 ****
  {
    string symbol;
!   int index;
  
    switch(argc)
--- 389,393 ----
  {
    string symbol;
!   int index=0;
  
    switch(argc)
***************
*** 453,457 ****
  {
    string symbol;
!   int index;
  
    switch(argc)
--- 448,452 ----
  {
    string symbol;
!   int index=0;
  
    switch(argc)

Index: h_vector.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/h_vector.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** h_vector.cpp	5 May 2005 23:00:56 -0000	1.3
--- h_vector.cpp	9 Oct 2005 21:50:57 -0000	1.4
***************
*** 66,73 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hvector->pushBack(key);
      }
--- 66,70 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hvector->pushBack(key);
      }
***************
*** 109,160 ****
    // symbol without selector "symbol":
    if(argc == 0)
!     {
!       x->value.length = 1;
!       SETSYMBOL(x->value.atom, s);
!       x->event_set = true;
!       return;
!     }
  
    // input is a list without selector "list":
    if ( argc && (strcmp(s->s_name,"list")!=0) 
!        && (strcmp(s->s_name,"float")!=0) && (strcmp(s->s_name,"symbol")!=0) )
!     {
!       t_atom *atoms = new t_atom[argc+1];
  
        // add the selector symbol to the list:
!       SETSYMBOL(atoms, s);
  
!       for(int i=0; i<argc; i++)
! 	{
! 	  if(argv[i].a_type == A_FLOAT)
! 	    SETFLOAT(&atoms[i+1],argv[i].a_w.w_float);
! 	  if(argv[i].a_type == A_SYMBOL)
! 	    SETSYMBOL(&atoms[i+1],argv[i].a_w.w_symbol);
! 	}
  
!       if (x->value.length != argc+1) 
! 	{
! 	  freebytes(x->value.atom, x->value.length * sizeof(t_atom));
! 	  x->value.length = argc+1;
! 	  x->value.atom = (t_atom*)copybytes(atoms, (argc+1) * sizeof(t_atom));
! 	} else memcpy(x->value.atom, atoms, (argc+1) * sizeof(t_atom));
  
!       x->event_set = true;
!       delete[] atoms;
!       return;
!     }
  
    // "normal" input (list, float or symbol):
    if (argc)
!     {
!       if (x->value.length != argc) 
! 	{
! 	  freebytes(x->value.atom, x->value.length * sizeof(t_atom));
! 	  x->value.length = argc;
! 	  x->value.atom = (t_atom*)copybytes(argv, argc * sizeof(t_atom));
! 	} else memcpy(x->value.atom, argv, argc * sizeof(t_atom));
!       x->event_set = true;
!       return;
!     }
  }
  
--- 106,152 ----
    // symbol without selector "symbol":
    if(argc == 0)
!   {
!     t_atom tmp;
!     SETSYMBOL(&tmp, s);
!     x->value.setAtoms(1, &tmp);
!     x->event_set = true;
!     return;
!   }
  
    // input is a list without selector "list":
    if ( argc && (strcmp(s->s_name,"list")!=0) 
!        && (strcmp(s->s_name,"float")!=0) 
!        && (strcmp(s->s_name,"symbol")!=0)
!        && (strcmp(s->s_name,"pointer")!=0) )
!   {
!     t_atom *atoms = (t_atom*)getbytes( (argc+1)*sizeof(t_atom) );
  
        // add the selector symbol to the list:
!     SETSYMBOL(atoms, s);
  
!     for(int i=0; i<argc; i++)
!     {
!       if(argv[i].a_type == A_FLOAT)
! 	SETFLOAT(&atoms[i+1],argv[i].a_w.w_float);
!       if(argv[i].a_type == A_SYMBOL)
! 	SETSYMBOL(&atoms[i+1],argv[i].a_w.w_symbol);
!       if(argv[i].a_type == A_POINTER)
! 	SETPOINTER(&atoms[i+1],argv[i].a_w.w_gpointer);
!     }
  
!     x->value.setAtoms(argc+1, atoms);
  
!     x->event_set = true;
!     freebytes(atoms, (argc+1)*sizeof(t_atom));
!     return;
!   }
  
    // "normal" input (list, float or symbol):
    if (argc)
!   {
!     x->value.setAtoms(argc, argv);
!     x->event_set = true;
!     return;
!   }
  }
  
***************
*** 178,192 ****
    Element output = x->hvector->get( index );
   
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
--- 170,186 ----
    Element output = x->hvector->get( index );
   
!   if(output.getLength() == 1) // symbol or float
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }
***************
*** 313,317 ****
  {
    string symbol;
!   int index;
  
    switch(argc)
--- 307,311 ----
  {
    string symbol;
!   int index=0;
  
    switch(argc)
***************
*** 372,376 ****
  {
    string symbol;
!   int index;
  
    switch(argc)
--- 366,370 ----
  {
    string symbol;
!   int index=0;
  
    switch(argc)

Index: h_list.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/h_list.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** h_list.cpp	5 May 2005 23:00:56 -0000	1.5
--- h_list.cpp	9 Oct 2005 21:50:57 -0000	1.6
***************
*** 29,36 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hlist->pushBack(key);
      }
--- 29,33 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hlist->pushBack(key);
      }
***************
*** 54,61 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hlist->pushFront(key);
      }
--- 51,55 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hlist->pushFront(key);
      }
***************
*** 85,101 ****
    Element output = x->hlist->back();
   
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
  }
  
--- 79,99 ----
    Element output = x->hlist->back();
   
!   if(output.getLength() == 1) // symbol, float or pointer
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }
+ 
+   outlet_bang(x->out3);
  }
  
***************
*** 110,126 ****
    Element output = x->hlist->front();
   
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
  }
  
--- 108,128 ----
    Element output = x->hlist->front();
   
!   if(output.getLength() == 1) // symbol or float
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }
+     
+   outlet_bang(x->out3);
  }
  
***************
*** 133,149 ****
      }
  
!   Element output = x->hlist->get();
  
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
--- 135,164 ----
      }
  
!   Element output;
  
!   try
!   { output = x->hlist->get(); }
!   
!   catch(const char* s)
!   {
!     // if there was no Element found, put out a bang at the right outlet
!     post("%s", s);
!     outlet_bang(x->out3);
!     return;
!   }
! 
!   if(output.getLength() == 1) // symbol or float
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }
***************
*** 156,163 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hlist->insert(key);
      }
--- 171,175 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hlist->insert(key);
      }
***************
*** 170,177 ****
    if(argc)
    {
!     Element key;
!     key.length = argc;
!     key.atom = argv;
!       
      x->hlist->modify(key);
    }
--- 182,186 ----
    if(argc)
    {
!     Element key(argc,argv);
      x->hlist->modify(key);
    }
***************
*** 184,191 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hlist->remove(key);
      }
--- 193,197 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hlist->remove(key);
      }

Index: h_map.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/h_map.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** h_map.cpp	5 May 2005 23:00:56 -0000	1.3
--- h_map.cpp	9 Oct 2005 21:50:57 -0000	1.4
***************
*** 45,54 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hmap->add(key, x->value);
-       
        x->event_set = false;
      }
--- 45,50 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hmap->add(key, x->value);
        x->event_set = false;
      }
***************
*** 64,69 ****
    if(argc == 0)
      {
!       x->value.length = 1;
!       SETSYMBOL(x->value.atom, s);
        x->event_set = true;
        return;
--- 60,66 ----
    if(argc == 0)
      {
!       t_atom tmp;
!       SETSYMBOL(&tmp, s);
!       x->value.setAtoms(1, &tmp);
        x->event_set = true;
        return;
***************
*** 72,78 ****
    // input is a list without selector "list":
    if ( argc && (strcmp(s->s_name,"list")!=0) 
!        && (strcmp(s->s_name,"float")!=0) && (strcmp(s->s_name,"symbol")!=0) )
      {
!       t_atom *atoms = new t_atom[argc+1];
  
        // add the selector symbol to the list:
--- 69,77 ----
    // input is a list without selector "list":
    if ( argc && (strcmp(s->s_name,"list")!=0) 
!        && (strcmp(s->s_name,"float")!=0) 
!        && (strcmp(s->s_name,"symbol")!=0)
!        && (strcmp(s->s_name,"pointer")!=0) )
      {
!       t_atom *atoms = (t_atom*)getbytes( (argc+1)*sizeof(t_atom) );
  
        // add the selector symbol to the list:
***************
*** 80,111 ****
  
        for(int i=0; i<argc; i++)
! 	{
! 	  if(argv[i].a_type == A_FLOAT)
! 	    SETFLOAT(&atoms[i+1],argv[i].a_w.w_float);
! 	  if(argv[i].a_type == A_SYMBOL)
! 	    SETSYMBOL(&atoms[i+1],argv[i].a_w.w_symbol);
! 	}
  
!       if (x->value.length != argc+1) 
! 	{
! 	  freebytes(x->value.atom, x->value.length * sizeof(t_atom));
! 	  x->value.length = argc+1;
! 	  x->value.atom = (t_atom*)copybytes(atoms, (argc+1) * sizeof(t_atom));
! 	} else memcpy(x->value.atom, atoms, (argc+1) * sizeof(t_atom));
  
        x->event_set = true;
!       delete[] atoms;
        return;
      }
  
!   // "normal" input (list, float or symbol):
    if (argc)
      {
!       if (x->value.length != argc) 
! 	{
! 	  freebytes(x->value.atom, x->value.length * sizeof(t_atom));
! 	  x->value.length = argc;
! 	  x->value.atom = (t_atom*)copybytes(argv, argc * sizeof(t_atom));
! 	} else memcpy(x->value.atom, argv, argc * sizeof(t_atom));
        x->event_set = true;
        return;
--- 79,102 ----
  
        for(int i=0; i<argc; i++)
!       {
! 	if(argv[i].a_type == A_FLOAT)
! 	  SETFLOAT(&atoms[i+1],argv[i].a_w.w_float);
! 	if(argv[i].a_type == A_SYMBOL)
! 	  SETSYMBOL(&atoms[i+1],argv[i].a_w.w_symbol);
! 	if(argv[i].a_type == A_POINTER)
! 	  SETPOINTER(&atoms[i+1],argv[i].a_w.w_gpointer);
!       }
  
!       x->value.setAtoms(argc+1, atoms);
  
        x->event_set = true;
!       freebytes(atoms, (argc+1)*sizeof(t_atom));
        return;
      }
  
!   // "normal" input (list, float, symbol or pointer):
    if (argc)
      {
!       x->value.setAtoms(argc, argv);
        x->event_set = true;
        return;
***************
*** 119,141 ****
        post("h_map, get: no arguments"); 
        return;
!     }  
!   
!   Element key;
!   key.length = argc;
!   key.atom = argv;
  
!   Element output = x->hmap->get( key );
  
!   if(output.length == 1) // symbol or float
      {
!       if (output.atom[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.atom[0].a_w.w_float);
!       if (output.atom[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
        return;
      }
!   if(output.length > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.length,output.atom);
        return;
      }
--- 110,142 ----
        post("h_map, get: no arguments"); 
        return;
!     }
  
!   Element key(argc,argv);
!   Element output;
  
!   try
!   { output = x->hmap->get( key ); }
! 
!   catch(const char* s)
!   {
!     // if there was no Element found, put out a bang at the right outlet
!     post("%s", s);
!     outlet_bang(x->out2);
!     return;
!   }
! 
!   if(output.getLength() == 1) // symbol, float or pointer
      {
!       if (output.getAtom()[0].a_type == A_FLOAT)
! 	outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
!       if (output.getAtom()[0].a_type == A_SYMBOL)
! 	outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
!       if (output.getAtom()[0].a_type == A_POINTER)
! 	outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
        return;
      }
!   if(output.getLength() > 1) // list
      {
!       outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
        return;
      }
***************
*** 151,161 ****
        post("h_map, remove: no arguments"); 
        return;
!     }  
!   
!   Element key;
!   key.length = argc;
!   key.atom = argv;
  
!   x->hmap->remove( key );
  }
  
--- 152,164 ----
        post("h_map, remove: no arguments"); 
        return;
!     }
  
!   Element key(argc,argv);
! 
!   try
!   { x->hmap->remove( key ); }
! 
!   catch(const char* s)
!   { post("%s", s); }
  }
  

Index: PDContainer.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/PDContainer.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** PDContainer.cpp	25 Oct 2004 19:02:30 -0000	1.1.1.1
--- PDContainer.cpp	9 Oct 2005 21:50:57 -0000	1.2
***************
*** 30,34 ****
    post("Library (STL) of C++");
    post("for documentation see the help patches");
!   post("(by Georg Holzmann <grh at gmx.at>, 2004)");
    post("------------------------------------------\n");
  }
--- 30,34 ----
    post("Library (STL) of C++");
    post("for documentation see the help patches");
!   post("(by Georg Holzmann <grh at mur.at>, 2004)");
    post("------------------------------------------\n");
  }
***************
*** 70,74 ****
    //-end-----------------------------------------------
  
!   post("\nPD-Container, Version: "PDC_VERSION", by Georg Holzmann <grh at gmx.at>, 2004");
    
    // without an argument the following two methods wont work ??? why?? because of c++?  
--- 70,74 ----
    //-end-----------------------------------------------
  
!   post("\nPD-Container, Version: "PDC_VERSION", by Georg Holzmann <grh at mur.at>, 2004-2005");
    
    // without an argument the following two methods wont work ??? why?? because of c++?  

Index: h_set.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/h_set.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** h_set.cpp	5 May 2005 23:00:56 -0000	1.3
--- h_set.cpp	9 Oct 2005 21:50:57 -0000	1.4
***************
*** 33,40 ****
      }
    
!   Element key;
!   key.length = argc;
!   key.atom = argv;
! 
    x->hset->add( key );
  }
--- 33,37 ----
      }
    
!   Element key(argc,argv);
    x->hset->add( key );
  }
***************
*** 48,55 ****
      }  
    
!   Element key;
!   key.length = argc;
!   key.atom = argv;
! 
    int output = x->hset->get( key );
  
--- 45,49 ----
      }  
    
!   Element key(argc,argv);
    int output = x->hset->get( key );
  
***************
*** 65,72 ****
      }  
    
!   Element key;
!   key.length = argc;
!   key.atom = argv;
! 
    x->hset->remove( key );
  }
--- 59,63 ----
      }  
    
!   Element key(argc,argv);
    x->hset->remove( key );
  }

Index: h_multimap.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/PDContainer/src/h_multimap.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** h_multimap.cpp	5 May 2005 23:00:56 -0000	1.3
--- h_multimap.cpp	9 Oct 2005 21:50:57 -0000	1.4
***************
*** 45,54 ****
    if(argc)
      {
!       Element key;
!       key.length = argc;
!       key.atom = argv;
!       
        x->hmultimap->add(key, x->value);
-     
        x->event_set = false;
      }
--- 45,50 ----
    if(argc)
      {
!       Element key(argc,argv);
        x->hmultimap->add(key, x->value);
        x->event_set = false;
      }
***************
*** 63,114 ****
    // symbol without selector "symbol":
    if(argc == 0)
!     {
!       x->value.length = 1;
!       SETSYMBOL(x->value.atom, s);
!       x->event_set = true;
!       return;
!     }
  
    // input is a list without selector "list":
    if ( argc && (strcmp(s->s_name,"list")!=0) 
!        && (strcmp(s->s_name,"float")!=0) && (strcmp(s->s_name,"symbol")!=0) )
!     {
!       t_atom *atoms = new t_atom[argc+1];
  
        // add the selector symbol to the list:
!       SETSYMBOL(atoms, s);
  
!       for(int i=0; i<argc; i++)
! 	{
! 	  if(argv[i].a_type == A_FLOAT)
! 	    SETFLOAT(&atoms[i+1],argv[i].a_w.w_float);
! 	  if(argv[i].a_type == A_SYMBOL)
! 	    SETSYMBOL(&atoms[i+1],argv[i].a_w.w_symbol);
! 	}
  
!       if (x->value.length != argc+1) 
! 	{
! 	  freebytes(x->value.atom, x->value.length * sizeof(t_atom));
! 	  x->value.length = argc+1;
! 	  x->value.atom = (t_atom*)copybytes(atoms, (argc+1) * sizeof(t_atom));
! 	} else memcpy(x->value.atom, atoms, (argc+1) * sizeof(t_atom));
  
!       x->event_set = true;
!       delete[] atoms;
!       return;
!     }
  
!   // "normal" input (list, float or symbol):
    if (argc)
!     {
!       if (x->value.length != argc) 
! 	{
! 	  freebytes(x->value.atom, x->value.length * sizeof(t_atom));
! 	  x->value.length = argc;
! 	  x->value.atom = (t_atom*)copybytes(argv, argc * sizeof(t_atom));
! 	} else memcpy(x->value.atom, argv, argc * sizeof(t_atom));
!       x->event_set = true;
!       return;
!     }
  }
  
--- 59,106 ----
    // symbol without selector "symbol":
    if(argc == 0)
!   {
!     t_atom tmp;
!     SETSYMBOL(&tmp, s);
!     x->value.setAtoms(1, &tmp);
!     x->event_set = true;
!     return;
!   }
  
    // input is a list without selector "list":
+     // input is a list without selector "list":
    if ( argc && (strcmp(s->s_name,"list")!=0) 
!        && (strcmp(s->s_name,"float")!=0) 
!        && (strcmp(s->s_name,"symbol")!=0)
!        && (strcmp(s->s_name,"pointer")!=0) )
!   {
!     t_atom *atoms = (t_atom*)getbytes( (argc+1)*sizeof(t_atom) );
  
        // add the selector symbol to the list:
!     SETSYMBOL(atoms, s);
  
!     for(int i=0; i<argc; i++)
!     {
!       if(argv[i].a_type == A_FLOAT)
! 	SETFLOAT(&atoms[i+1],argv[i].a_w.w_float);
!       if(argv[i].a_type == A_SYMBOL)
! 	SETSYMBOL(&atoms[i+1],argv[i].a_w.w_symbol);
!       if(argv[i].a_type == A_POINTER)
! 	SETPOINTER(&atoms[i+1],argv[i].a_w.w_gpointer);
!     }
  
!     x->value.setAtoms(argc+1, atoms);
  
!     x->event_set = true;
!     freebytes(atoms, (argc+1)*sizeof(t_atom));
!     return;
!   }
  
!   // "normal" input (list, float, symbol or pointer):
    if (argc)
!   {
!     x->value.setAtoms(argc, argv);
!     x->event_set = true;
!     return;
!   }
  }
  
***************
*** 123,129 ****
    // outputs all the values of one key one after an other
  
!   Element key;
!   key.length = argc;
!   key.atom = argv;
    int value_nr = x->hmultimap->getNr( key );
  
--- 115,119 ----
    // outputs all the values of one key one after an other
  
!   Element key(argc,argv);
    int value_nr = x->hmultimap->getNr( key );
  
***************
*** 132,150 ****
    for(int i=0; i < value_nr; i++)
      {
!       Element output(x->hmultimap->get(key, i));
!       // check if there exists an value
!       if(&output == 0)
  	continue;
  
!       if(output.length == 1) // symbol or float
  	{
! 	  if (output.atom[0].a_type == A_FLOAT)
! 	    outlet_float(x->out0, output.atom[0].a_w.w_float);
! 	    
! 	  if (output.atom[0].a_type == A_SYMBOL)
! 	    outlet_symbol(x->out0, output.atom[0].a_w.w_symbol);
  	}
!       if(output.length > 1) // list
! 	outlet_list(x->out0,&s_list,output.length,output.atom);
      }
  }
--- 122,145 ----
    for(int i=0; i < value_nr; i++)
      {
!       Element output;
!       try
!       { output = x->hmultimap->get(key, i); }
!       catch(const char* s)
!       {
! 	post("%s", s);
  	continue;
+       }
  
!       if(output.getLength() == 1) // symbol, float or pointer
  	{
! 	  if (output.getAtom()[0].a_type == A_FLOAT)
! 	    outlet_float(x->out0, output.getAtom()[0].a_w.w_float);
! 	  if (output.getAtom()[0].a_type == A_SYMBOL)
! 	    outlet_symbol(x->out0, output.getAtom()[0].a_w.w_symbol);
! 	  if (output.getAtom()[0].a_type == A_POINTER)
! 	    outlet_pointer(x->out0, output.getAtom()[0].a_w.w_gpointer);
  	}
!       if(output.getLength() > 1) // list
! 	outlet_list(x->out0,&s_list,output.getLength(),output.getAtom());
      }
  }
***************
*** 158,166 ****
      }  
    
!   Element key;
!   key.length = argc;
!   key.atom = argv;
! 
!   x->hmultimap->remove( key );
  }
  
--- 153,161 ----
      }  
    
!   Element key(argc,argv);
!   try
!   { x->hmultimap->remove( key ); }
!   catch(const char* s)
!   { post("%s", s); }
  }
  





More information about the Pd-cvs mailing list