aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/flxlet.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2002-12-30 04:32:19 +0000
committerThomas Grill <xovo@users.sourceforge.net>2002-12-30 04:32:19 +0000
commit62530f3fc55d3dc1c12bcd3b88f0922c15cd82e5 (patch)
treea57fc5a54ed78f189f074724396f81330faf9a3b /externals/grill/flext/source/flxlet.cpp
parent562dcc336797951b2a8707413aa44177484c9f2a (diff)
""
svn path=/trunk/; revision=310
Diffstat (limited to 'externals/grill/flext/source/flxlet.cpp')
-rwxr-xr-xexternals/grill/flext/source/flxlet.cpp18
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,...)