blob: 4462131c344ec3232bb949923c743021bbf4f3d0 [file] [log] [blame]
#ifndef ROS_INC_STRING_H
#define ROS_INC_STRING_H
#include <ros/common.h>
#define STRING char *NTS
#define STRBUF(n) char *NT COUNT(n)
int strlen(const STRING s);
int strnlen(const STRBUF(size) s, size_t size);
/* zra : These aren't being used, and they are dangerous, so I'm rm'ing them
STRING strcpy(STRING dst, const STRING src);
STRING strcat(STRING dst, const STRING src);
*/
STRING strncpy(STRBUF(size) dst, const STRING src, size_t size);
size_t strlcpy(STRBUF(size-1) dst, const STRING src, size_t size);
int strcmp(const STRING s1, const STRING s2);
int strncmp(const STRING s1, const STRING s2, size_t size);
STRING strchr(const STRING s, char c);
STRING strrchr(const STRING s, char c);
STRING strfind(const STRING s, char c);
STRING strstr(const STRING haystack, const STRING needle);
void strcat(STRING to, const STRING from);
void * (DMEMSET(1, 2, 3) memset)(void* p, int what, size_t sz);
int (DMEMCMP(1, 2, 3) memcmp)(const void* s1, const void* s2, size_t sz);
void * (DMEMCPY(1, 2, 3) memcpy)(void* dst, const void* src, size_t sz);
void * (DMEMCPY(1, 2, 3) memmove)(void *dst, const void* src, size_t sz);
void * memchr(void* mem, int chr, int len);
void *BND(s,s+len) memfind(const void *COUNT(len) s, int c, size_t len);
long strtol(const char *NTS s, char **endptr, int base);
unsigned long strtoul(const char *NTS s, char **endptr, int base);
int atoi(const char*NTS s);
#endif /* not ROS_INC_STRING_H */