|
@@ -3,6 +3,7 @@
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
#include <stdint.h>
|
|
|
#include <stddef.h>
|
|
#include <stddef.h>
|
|
|
|
|
+#include <stdbool.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
struct str {
|
|
struct str {
|
|
@@ -24,6 +25,8 @@ struct str str_strip(struct str str);
|
|
|
struct str_tokenizer str_tokenize(struct str str, char c);
|
|
struct str_tokenizer str_tokenize(struct str str, char c);
|
|
|
struct str str_tokenizer_next(struct str_tokenizer *st);
|
|
struct str str_tokenizer_next(struct str_tokenizer *st);
|
|
|
|
|
|
|
|
|
|
+bool str_eq_cstr(struct str str, const char *cstr, size_t cstr_size);
|
|
|
|
|
+
|
|
|
#if defined(IMP) || defined(IMP_STR)
|
|
#if defined(IMP) || defined(IMP_STR)
|
|
|
|
|
|
|
|
#include <ctype.h>
|
|
#include <ctype.h>
|
|
@@ -121,7 +124,24 @@ ret_err:
|
|
|
return str;
|
|
return str;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-#endif /* defined(IMP) || defined(IMP_STR) */
|
|
|
|
|
|
|
|
|
|
|
|
+bool
|
|
|
|
|
+str_eq_cstr(struct str str, const char *cstr, size_t cstr_size)
|
|
|
|
|
+{
|
|
|
|
|
+ size_t i = 0;
|
|
|
|
|
+ if ( str.size != cstr_size ) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for ( i = 0; i < str.size; ++i ) {
|
|
|
|
|
+ if ( str.data[i] != cstr[i] ) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return true;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+#endif /* defined(IMP) || defined(IMP_STR) */
|
|
|
|
|
|
|
|
#endif /* STR_H */
|
|
#endif /* STR_H */
|