aboutsummaryrefslogtreecommitdiff
path: root/haxstring_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'haxstring_utils.c')
-rw-r--r--haxstring_utils.c130
1 files changed, 0 insertions, 130 deletions
diff --git a/haxstring_utils.c b/haxstring_utils.c
deleted file mode 100644
index 82be667..0000000
--- a/haxstring_utils.c
+++ /dev/null
@@ -1,130 +0,0 @@
-// Hax's string utils
-//
-// Written by: Test_User <hax@andrewyu.org>
-//
-// This is free and unencumbered software released into the public
-// domain.
-//
-// Anyone is free to copy, modify, publish, use, compile, sell, or
-// distribute this software, either in source code form or as a compiled
-// binary, for any purpose, commercial or non-commercial, and by any
-// means.
-//
-// In jurisdictions that recognize copyright laws, the author or authors
-// of this software dedicate any and all copyright interest in the
-// software to the public domain. We make this dedication for the benefit
-// of the public at large and to the detriment of our heirs and
-// successors. We intend this dedication to be an overt act of
-// relinquishment in perpetuity of all present and future rights to this
-// software under copyright law.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-// IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-// OTHER DEALINGS IN THE SOFTWARE.
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "haxstring.h"
-#include "haxstring_utils.h"
-
-size_t str_to_unsigned(struct string str, char *err) {
- if (str.len == 0) {
- *err = 1;
- return 0;
- }
-
- size_t val = 0;
- while (str.len > 0) {
- switch(str.data[0]) {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (val > ((size_t)-1)/10) {
- *err = 1;
- return 0;
- }
- val *= 10;
- if (val > (-((size_t)((unsigned char)str.data[0] - 0x30) + 1))) {
- *err = 1;
- return 0;
- }
- val += (unsigned char)str.data[0] - 0x30;
- break;
- default:
- *err = 1;
- return 0;
- }
-
- str.data++;
- str.len--;
- }
-
- *err = 0;
- return val;
-}
-
-int unsigned_to_str(size_t number, struct string *str) {
- size_t len = 0;
- {
- size_t tmp = number;
- do {
- len++;
- } while ((tmp = tmp / 10) != 0);
- }
-
- void *tmp = malloc(len);
- if (!tmp)
- return 1;
-
- str->data = tmp;
- str->len = len;
-
- for (size_t i = len; i > 0; i--) {
- str->data[i - 1] = (char)((number % 10) + 0x30);
- number = number / 10;
- }
-
- return 0;
-}
-
-int str_clone(struct string *dest, struct string source) {
- dest->data = malloc(source.len);
- if (!dest->data)
- return 1;
- memcpy(dest->data, source.data, source.len);
- dest->len = source.len;
-
- return 0;
-}
-
-int str_combine(struct string *dest, size_t count, struct string *sources) {
- size_t len = 0;
- for (size_t i = 0; i < count; i++)
- len += sources[i].len;
-
- dest->data = malloc(len);
- if (!dest->data && len != 0)
- return 1;
- dest->len = len;
-
- size_t offset = 0;
- for (size_t i = 0; i < count; i++) {
- memcpy(&(dest->data[offset]), sources[i].data, sources[i].len);
- offset += sources[i].len;
- }
-
- return 0;
-}