diff options
author | Mike Buland <eichlan@xagasoft.com> | 2006-07-11 07:33:20 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2006-07-11 07:33:20 +0000 |
commit | 6c36406a5dba3d390e2c98bd48c01bb1db86a985 (patch) | |
tree | 4c9b419df1adaac0777fc608ebd6f70ca6dcb373 | |
parent | a91f2195b4f1774e86c4b6372df0cd360e962f58 (diff) | |
download | libbu++-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.cpp | 19 | ||||
-rw-r--r-- | src/stringrep.h | 17 |
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 | |||
3 | int32_t stringlen( const char *s ) | ||
4 | { | ||
5 | for( int32_t i = 0;; i++ ) | ||
6 | if( !s[i] ) | ||
7 | return i; | ||
8 | } | ||
9 | |||
10 | char *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 | */ | ||
9 | int32_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 | */ | ||
15 | char *stringdup( const char *s ); | ||
16 | |||
17 | #endif | ||