40 #include <strings.h> |
40 #include <strings.h> |
41 #define cx_strcasecmp_impl strncasecmp |
41 #define cx_strcasecmp_impl strncasecmp |
42 #endif |
42 #endif |
43 |
43 |
44 cxmutstr cx_mutstr(char *cstring) { |
44 cxmutstr cx_mutstr(char *cstring) { |
45 return (cxmutstr) {cstring, strlen(cstring)}; |
45 return (cxmutstr) {cstring, cstring == NULL ? 0 : strlen(cstring)}; |
46 } |
46 } |
47 |
47 |
48 cxmutstr cx_mutstrn( |
48 cxmutstr cx_mutstrn( |
49 char *cstring, |
49 char *cstring, |
50 size_t length |
50 size_t length |
51 ) { |
51 ) { |
52 return (cxmutstr) {cstring, length}; |
52 return (cxmutstr) {cstring, length}; |
53 } |
53 } |
54 |
54 |
55 cxstring cx_str(const char *cstring) { |
55 cxstring cx_str(const char *cstring) { |
56 return (cxstring) {cstring, strlen(cstring)}; |
56 return (cxstring) {cstring, cstring == NULL ? 0 : strlen(cstring)}; |
57 } |
57 } |
58 |
58 |
59 cxstring cx_strn( |
59 cxstring cx_strn( |
60 const char *cstring, |
60 const char *cstring, |
61 size_t length |
61 size_t length |