summaryrefslogtreecommitdiffstats
path: root/qtools/scstring.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qtools/scstring.cpp')
-rw-r--r--qtools/scstring.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/qtools/scstring.cpp b/qtools/scstring.cpp
index 18a5492..5632f57 100644
--- a/qtools/scstring.cpp
+++ b/qtools/scstring.cpp
@@ -13,10 +13,17 @@
*
*/
+// with this switch you can choose between the original qcstring implementation,
+// which implicitly shares data so copying is faster, but requires at least 12 bytes, and
+// the new implementation in this file, which has a smaller footprint (only 4 bytes for
+// an empty string), but always copies strings.
+#define SMALLSTRING
+
#include "qcstring.h"
#ifndef SMALLSTRING
#include "qcstring.cpp"
#else
+#define SCString QCString
#include <qstring.h>
#include <stdlib.h>
@@ -60,7 +67,7 @@ SCString::SCString( const char *str, uint maxlen )
if (str && ( l = QMIN(qstrlen(str),maxlen) ))
{
m_data=(char *)malloc(l+1);
- strncpy(m_data,str,maxlen);
+ strncpy(m_data,str,l+1);
m_data[l]='\0';
}
else