summaryrefslogtreecommitdiff
path: root/src/user/lib/fwik/String.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/user/lib/fwik/String.cpp')
-rw-r--r--src/user/lib/fwik/String.cpp176
1 files changed, 0 insertions, 176 deletions
diff --git a/src/user/lib/fwik/String.cpp b/src/user/lib/fwik/String.cpp
deleted file mode 100644
index e3455e3..0000000
--- a/src/user/lib/fwik/String.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-#include <String.h>
-#include <string.h>
-
-String::String() {
- ptr = 0;
- len = 0;
-}
-
-String::String(const String &other) {
- len = other.len;
- if (len == 0) {
- ptr = 0;
- } else {
- ptr = (char*)malloc(len + 1);
- libc::memcpy(ptr, other.ptr, len + 1);
- }
-}
-
-String::String(const char* from) {
- len = (from == 0 ? 0 : libc::strlen(from));
- if (len == 0) {
- ptr = 0;
- } else {
- ptr = (char*)malloc(len + 1);
- libc::memcpy(ptr, from, len + 1);
- }
-}
-
-String::String(const char* from, int l) {
- len = l;
- if (len < 0) len = 0;
- if (len == 0) {
- ptr = 0;
- } else {
- ptr = (char*)malloc(len + 1);
- libc::memcpy(ptr, from, len);
- ptr[len] = 0;
- }
-}
-
-String::String(char c, int count) {
- len = count;
- if (len == 0) {
- ptr = 0;
- } else {
- ptr = (char*)malloc(len + 1);
- libc::memset(ptr, c, len);
- ptr[len] = 0;
- }
-}
-
-String::~String() {
- if (ptr != 0) free(ptr);
-}
-
-void String::operator=(const String &other) {
- if (ptr != 0) free(ptr);
- len = other.len;
- if (len == 0) {
- ptr = 0;
- } else {
- ptr = (char*)malloc(len + 1);
- libc::memcpy(ptr, other.ptr, len + 1);
- }
-}
-
-void String::operator=(const char* from) {
- if (ptr != 0) free(ptr);
- len = (from == 0 ? 0 : libc::strlen(from));
- if (len == 0) {
- ptr = 0;
- } else {
- ptr = (char*)malloc(len + 1);
- libc::memcpy(ptr, from, len + 1);
- }
-}
-
-const char* String::c_str() const {
- if (ptr == 0) return "";
- return ptr;
-}
-
-bool String::operator==(const String& other) const {
- if (len != other.len) return false;
- for (int i = 0; i < len; i++) if (ptr[i] != other.ptr[i]) return false;
- return true;
-}
-
-bool String::operator==(const char* other) const {
- if (other == 0) return (len == 0);
- if (len != libc::strlen(other)) return false;
- for (int i = 0; i < len; i++) if (ptr[i] != other[i]) return false;
- return true;
-}
-
-bool String::operator<(const String& other) const {
- for (int i = 0; i < len && i < other.len; i++) {
- if (ptr[i] > other.ptr[i]) return false;
- if (ptr[i] < other.ptr[i]) return true;
- }
- if (len < other.len) return true;
- return false;
-}
-
-static char crap;
-char &String::operator[](int pos) {
- if (pos >= 0 && pos < len) return ptr[pos];
- crap = 0;
- return crap;
-}
-
-char String::operator[](int pos) const {
- if (pos >= 0 && pos < len) return ptr[pos];
- return 0;
-}
-
-String String::substr(int start, int count) const {
- if (start + count > len) count = len - start;
- return String(ptr + start, count);
-}
-
-String String::operator+(const String& other) const {
- String ret(' ', len + other.len);
- libc::memcpy(ret.ptr, ptr, len);
- libc::memcpy(ret.ptr + len, other.ptr, other.len);
- return ret;
-}
-
-void String::operator+=(const String& other) {
- if (other.len == 0) return;
- int newlen = len + other.len;
- char* newptr = (char*)malloc(newlen + 1);
- libc::memcpy(newptr, ptr, len);
- libc::memcpy(newptr+len, other.ptr, other.len);
- newptr[newlen] = 0;
- free(ptr);
- ptr = newptr;
- len = newlen;
-}
-
-void String::operator+=(char c) {
- char* newptr = (char*)malloc(len + 2);
- libc::memcpy(newptr, ptr, len);
- newptr[len] = c;
- len++;
- newptr[len] = 0;
- free(ptr);
- ptr = newptr;
-}
-
-String String::dec(int i) {
- char b[16];
- const char *e = libc::format_int(b, i);
- return String(b, e - b);
-}
-
-String String::hex(uint32_t v) {
- char b[16];
- const char *e = libc::format_hex(b, v);
- return String(b, e - b);
-}
-
-String String::sprintf(const char* format, ...) {
- va_list ap;
- va_start(ap, format);
- va_list ap2;
- va_copy(ap2, ap);
-
- String ret;
- ret.len = libc::printf_str_len(format, ap2);
- va_end(ap2);
- ret.ptr = (char*)malloc(ret.len + 1);
- ret.len = libc::vsprintf(ret.ptr, format, ap);
- va_end(ap);
- return ret;
-}