summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2006-07-11 07:33:20 +0000
committerMike Buland <eichlan@xagasoft.com>2006-07-11 07:33:20 +0000
commit6c36406a5dba3d390e2c98bd48c01bb1db86a985 (patch)
tree4c9b419df1adaac0777fc608ebd6f70ca6dcb373
parenta91f2195b4f1774e86c4b6372df0cd360e962f58 (diff)
downloadlibbu++-6c36406a5dba3d390e2c98bd48c01bb1db86a985.tar.gz
libbu++-6c36406a5dba3d390e2c98bd48c01bb1db86a985.tar.bz2
libbu++-6c36406a5dba3d390e2c98bd48c01bb1db86a985.tar.xz
libbu++-6c36406a5dba3d390e2c98bd48c01bb1db86a985.zip
I added stringrep, which is a cpp replacement for some c string functions.
They're all really simple, and maybe could even be optimized. I did this so that you could use the old c functions when you wanted to, but with cpp memory management. Also, some of these don't exist on other platforms, so it makes other programs more portable. The new functions are just like the c ones, only named string* instead of str*, for example stringdup instead of strdup.
-rw-r--r--src/stringrep.cpp19
-rw-r--r--src/stringrep.h17
2 files changed, 36 insertions, 0 deletions
diff --git a/src/stringrep.cpp b/src/stringrep.cpp
new file mode 100644
index 0000000..a505f8a
--- /dev/null
+++ b/src/stringrep.cpp
@@ -0,0 +1,19 @@
1#include "stringrep.h"
2
3int32_t stringlen( const char *s )
4{
5 for( int32_t i = 0;; i++ )
6 if( !s[i] )
7 return i;
8}
9
10char *stringdup( const char *s )
11{
12 int len = stringlen( s );
13 char *r = new char[len+1];
14 for( int j = 0; j <= len; j++ )
15 r[j] = s[j];
16
17 return r;
18}
19
diff --git a/src/stringrep.h b/src/stringrep.h
new file mode 100644
index 0000000..eaa4a12
--- /dev/null
+++ b/src/stringrep.h
@@ -0,0 +1,17 @@
1#ifndef STRING_REP_H
2#define STRING_REP_H
3
4#include <stdint.h>
5
6/**
7 * Calculates the length of a string.
8 */
9int32_t stringlen( const char *s );
10
11/**
12 * Identicle to strdup, which isn't available everywhere, but uses c++ memory
13 * facilities. Remember to use delete[] when freeing the returned string.
14 */
15char *stringdup( const char *s );
16
17#endif