diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2002-12-30 04:32:19 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2002-12-30 04:32:19 +0000 |
commit | 62530f3fc55d3dc1c12bcd3b88f0922c15cd82e5 (patch) | |
tree | a57fc5a54ed78f189f074724396f81330faf9a3b /externals/grill/flext/source/flxlet.cpp | |
parent | 562dcc336797951b2a8707413aa44177484c9f2a (diff) |
""
svn path=/trunk/; revision=310
Diffstat (limited to 'externals/grill/flext/source/flxlet.cpp')
-rwxr-xr-x | externals/grill/flext/source/flxlet.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
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,...) |