return !!strstr(s, pattern);
}
+void pakfire_string_truncate(char* s, const size_t l) {
+ // Determine the length of the string
+ size_t length = strlen(s);
+
+ // Return if the string isn't long enough
+ if (length < l)
+ return;
+
+ // Truncate
+ s[l] = '\0';
+}
+
int pakfire_string_partition(const char* s, const char* delim, char** s1, char** s2) {
char* p = strstr(s, delim);
int pakfire_string_endswith(const char* s, const char* suffix);
int pakfire_string_matches(const char* s, const char* pattern);
+void pakfire_string_truncate(char* s, const size_t l);
+
// Strip
void pakfire_string_lstrip(char* s);
void pakfire_string_rstrip(char* s);
return r;
}
+static int test_truncate(const struct test* t) {
+ char s[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ int r = EXIT_FAILURE;
+
+ // Truncate the string bit by bit
+
+ pakfire_string_truncate(s, 24);
+ ASSERT_STRING_EQUALS(s, "ABCDEFGHIJKLMNOPQRSTUVWX");
+
+ pakfire_string_truncate(s, 3);
+ ASSERT_STRING_EQUALS(s, "ABC");
+
+ pakfire_string_truncate(s, 4);
+ ASSERT_STRING_EQUALS(s, "ABC");
+
+ pakfire_string_truncate(s, 0);
+ ASSERT_STRING_EQUALS(s, "");
+
+ // Everything passed
+ r = EXIT_SUCCESS;
+
+FAIL:
+ return r;
+}
+
int main(int argc, const char* argv[]) {
testsuite_add_test(test_string_set, 0);
testsuite_add_test(test_string_setn, 0);
testsuite_add_test(test_intervals, 0);
testsuite_add_test(test_string_contains_whitespace, 0);
testsuite_add_test(test_string_search, 0);
+ testsuite_add_test(test_truncate, 0);
return testsuite_run(argc, argv);
}