mirror of
https://github.com/daeken/Zookeeper.git
synced 2024-05-31 19:17:36 -04:00
79 lines
1.4 KiB
C++
79 lines
1.4 KiB
C++
#include "NightBeliever.hpp"
|
|
|
|
void *memcpy(void *dest, const void *src, size_t n) {
|
|
auto a = (uint8_t *) dest, b = (uint8_t *) src;
|
|
while(n--)
|
|
*(a++) = *(b++);
|
|
return dest;
|
|
}
|
|
|
|
char *strcpy(char *dest, const char *src) {
|
|
return (char *) memcpy(dest, src, strlen(src) + 1);
|
|
}
|
|
|
|
void *memset(void *ptr, int value, size_t num) {
|
|
auto chrs = (uint8_t *) ptr;
|
|
while(num--)
|
|
chrs[num] = (uint8_t) value;
|
|
return ptr;
|
|
}
|
|
|
|
size_t strlen(const char *str) {
|
|
auto i = 0;
|
|
while(str[i++] != 0);
|
|
return i - 1;
|
|
}
|
|
|
|
int tolower(int c) {
|
|
if(c >= 'A' && c <= 'Z')
|
|
return c - 'A' + 'a';
|
|
return c;
|
|
}
|
|
|
|
int toupper(int c) {
|
|
if(c >= 'a' && c <= 'z')
|
|
return c - 'a' + 'A';
|
|
return c;
|
|
}
|
|
|
|
int strcmp(const char *str1, const char *str2) {
|
|
auto a = strlen(str1), b = strlen(str2);
|
|
if(a < b) return -1;
|
|
else if(a > b) return 1;
|
|
|
|
for(auto i = 0; i < a; ++i) {
|
|
if(str1[i] < str2[i]) return -1;
|
|
else if(str1[i] > str2[i]) return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int stricmp(const char *str1, const char *str2) {
|
|
auto a = strlen(str1), b = strlen(str2);
|
|
if(a < b) return -1;
|
|
else if(a > b) return 1;
|
|
|
|
for(auto i = 0; i < a; ++i) {
|
|
auto c1 = tolower(str1[i]), c2 = tolower(str2[i]);
|
|
if(c1 < c2) return -1;
|
|
else if(c1 > c2) return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
void *operator new(size_t size) {
|
|
return malloc(size);
|
|
}
|
|
|
|
void *operator new[](size_t size) {
|
|
return malloc(size);
|
|
}
|
|
|
|
void operator delete(void *ptr) {
|
|
free(ptr);
|
|
}
|
|
|
|
void operator delete[](void *ptr) {
|
|
free(ptr);
|
|
}
|