Update of /cvsroot/pure-data/externals/grill/pool
In directory sc8-pr-cvs1:/tmp/cvs-serv27114
Modified Files:
pool.cpp
Log Message:
""
Index: pool.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/pool/pool.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** pool.cpp 12 Dec 2003 03:38:10 -0000 1.13
--- pool.cpp 15 Dec 2003 03:37:53 -0000 1.14
***************
*** 425,429 ****
pooldir *ndir = p->AddDir(1,&dix->dir);
if(ndir)
! ok = ndir->Copy(dix,depth > 0?depth-1:depth,cut);
else
ok = false;
--- 425,429 ----
pooldir *ndir = p->AddDir(1,&dix->dir);
if(ndir)
! ok = dix->Copy(ndir,depth > 0?depth-1:depth,cut);
else
ok = false;
***************
*** 662,673 ****
)
) {
! BL ret;
! if(indata)
! ret = ParseAtoms(s,v);
else // inkey
! if(inval)
! ret = ParseAtoms(s,k);
else {
! SetString(d[d.Count()-1],s.c_str());
ret = true;
}
--- 662,687 ----
)
) {
! BL ret = true;
! if(indata) {
! if(v.Count())
! post("pool - XML load: value data already given, ignoring new data");
! else
! ret = ParseAtoms(s,v);
! }
else // inkey
! if(inval) {
! if(k.Count())
! post("pool - XML load, value key already given, ignoring new key");
! else
! ret = ParseAtoms(s,k);
! }
else {
! t_atom &dkey = d[d.Count()-1];
! const char *ds = GetString(dkey);
! FLEXT_ASSERT(ds);
! if(*ds)
! post("pool - XML load: dir key already given, ignoring new key");
! else
! SetString(dkey,s.c_str());
ret = true;
}
***************
*** 684,687 ****
--- 698,702 ----
if(tag == "dir") {
if(tag.type == xmltag::t_start) {
+ // initialize dir key as empty
t_atom at; SetString(at,"");
d.Append(at);
***************
*** 691,695 ****
d.Part(0,d.Count()-1);
else
! post("pool - superfluous </dir> in XML data");
}
}
--- 706,710 ----
d.Part(0,d.Count()-1);
else
! post("pool - XML load: superfluous </dir> in XML data");
}
}
***************
*** 702,713 ****
if(depth < 0 || d.Count() <= depth) {
// NOW set value
! pooldir *nd = mkdir?AddDir(d):GetDir(d);
! if(nd) {
! // only use first word of key
! if(k.Count() == 1)
! nd->SetVal(k[0],new AtomList(v));
! else
! post("pool - Invalid key (!= 1 atom)");
! }
}
inval = false;
--- 717,733 ----
if(depth < 0 || d.Count() <= depth) {
// NOW set value
! const char *ds = d.Count()?GetString(d[d.Count()-1]):NULL;
! if(!ds || !*ds)
! post("pool - XML load: dir key must be given prior to dir values");
! else {
! pooldir *nd = mkdir?AddDir(d):GetDir(d);
! if(nd) {
! // only use first word of key
! if(k.Count() == 1)
! nd->SetVal(k[0],new AtomList(v));
! else
! post("pool - XML load: value key must be exactly one word, value not stored");
! }
! }
}
inval = false;