most config fixed, still need to do a bunch more testing

This commit is contained in:
herbglitch 2023-01-20 22:38:29 -07:00
parent 2b2e40921d
commit 5e6ee54473
7 changed files with 730 additions and 424 deletions

View file

@ -14,6 +14,15 @@ void ARC_String_Create(ARC_String **string, char *data, uint64_t length){
(*string)->data[length] = '\0';
}
void ARC_String_CreateWithStrlen(ARC_String **string, char *data){
*string = (ARC_String *)malloc(sizeof(ARC_String));
(*string)->length = strlen(data);
(*string)->data = (char *)malloc((*string)->length + 1);
strncpy((*string)->data, data, (*string)->length);
(*string)->data[(*string)->length] = '\0';
}
void ARC_String_Destroy(ARC_String *string){
free(string->data);
free(string);
@ -108,13 +117,18 @@ uint8_t ARC_String_Alpha(ARC_String *string){
}
uint64_t ARC_String_ToUint64_t(ARC_String *string){
char temp[string->length + 1];
strncpy(temp, string->data, string->length);
temp[string->length] = '\0';
return (uint64_t) strtoul(temp, NULL, 10);
return (uint64_t) strtoul(string->data, NULL, 10);
}
int64_t ARC_String_ToInt64_t(ARC_String *string){
return (int64_t) strtol(string->data, NULL, 10);
}
double ARC_String_ToDouble(ARC_String *string){
return strtod(string->data, NULL);
}
uint64_t ARC_String_Find(ARC_String *string, ARC_String *substring){
if(!string || !substring){
arc_errno = ARC_ERRNO_NULL;
@ -128,7 +142,7 @@ uint64_t ARC_String_Find(ARC_String *string, ARC_String *substring){
uint64_t max = string->length - (substring->length - 1);
for(uint64_t i = 0; max; i++, max--){
if(!strncmp(string->data + i, substring->data, substring->length)){
return i + 1;
return i;
}
}