void *memmove(void *dest, const void *src, size_t n);
void *memset(void *s, int c, size_t n);
int memcmp(const void *s1, const void *s2, size_t n);
+void *memchr(const void *s, int c, size_t n);
+#if !defined(__PRE_RAM__)
int sprintf(char * buf, const char *fmt, ...);
+#endif
-// yes, linux has fancy ones. We don't care. This stuff gets used
-// hardly at all. And the pain of including those files is just too high.
-
-//extern inline void strcpy(char *dst, char *src) {while (*src) *dst++ = *src++;}
-
-//extern inline int strlen(char *src) { int i = 0; while (*src++) i++; return i;}
+// simple string functions
-static inline size_t strnlen(const char *src, size_t max)
-{
+static inline size_t strnlen(const char *src, size_t max)
+{
size_t i = 0;
while((*src++) && (i < max)) {
i++;
for (; *s; s++) {
if (*s == c)
return (char *) s;
- }
+ }
return 0;
}
-#ifndef __ROMCC__
+#if !defined(__PRE_RAM__)
static inline char *strdup(const char *s)
-{
+{
size_t sz = strlen(s) + 1;
char *d = malloc(sz);
memcpy(d, s, sz);
return ret;
}
+static inline void strcpy(char *dst, const char *src)
+{
+ while (*src)
+ *dst++ = *src++;
+}
+
static inline int strcmp(const char *s1, const char *s2)
-{
+{
int r;
while ((r = (*s1 - *s2)) == 0 && *s1) {
s2++;
}
return r;
-}
+}
static inline int strncmp(const char *s1, const char *s2, int maxlen)
{