From 62530f3fc55d3dc1c12bcd3b88f0922c15cd82e5 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Mon, 30 Dec 2002 04:32:19 +0000 Subject: "" svn path=/trunk/; revision=310 --- externals/grill/flext/source/flxlet.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'externals/grill/flext/source/flxlet.cpp') diff --git a/externals/grill/flext/source/flxlet.cpp b/externals/grill/flext/source/flxlet.cpp index 2804bae3..e47a92e3 100755 --- a/externals/grill/flext/source/flxlet.cpp +++ b/externals/grill/flext/source/flxlet.cpp @@ -23,8 +23,9 @@ flext_base::xlet::xlet(type t,const char *d): { if(d) { int ln = strlen(d); - desc = new char[ln]; - strncpy(desc,d,ln); + desc = new char[ln+1]; + memcpy(desc,d,ln); + desc[ln] = 0; } else desc = NULL; } @@ -45,9 +46,18 @@ void flext_base::AddXlet(xlet::type tp,int mult,const char *desc,xlet *&root) } } -void flext_base::DescXlet(int ix,const char *desc,xlet *&root) +void flext_base::DescXlet(int ix,const char *d,xlet *&root) { - post("%s - sorry, not implemented",thisName()); + xlet *xi = root; + for(int i = 0; xi && i < ix; xi = xi->nxt,++i) {} + + if(xi) { + if(xi->desc) delete[] xi->desc; + int ln = strlen(d); + xi->desc = new char[ln+1]; + memcpy(xi->desc,d,ln); + xi->desc[ln] = 0; + } } unsigned long flext_base::XletCode(xlet::type tp,...) -- cgit v1.2.1