return_val_if_fail (parent != NULL, NULL);
return parent;
}
+
+bool
+p11_path_prefix (const char *string,
+ const char *prefix)
+{
+ int a, b;
+
+ return_val_if_fail (string != NULL, false);
+ return_val_if_fail (prefix != NULL, false);
+
+ a = strlen (string);
+ b = strlen (prefix);
+
+ return a > b &&
+ strncmp (string, prefix, b) == 0 &&
+ is_path_component_or_null (string[b]);
+}
char * p11_path_parent (const char *path);
+bool p11_path_prefix (const char *string,
+ const char *prefix);
+
#endif /* P11_PATH_H__ */
assert_ptr_eq (NULL, p11_path_parent (""));
}
+static void
+test_prefix (void)
+{
+ assert (p11_path_prefix ("/test/second", "/test"));
+ assert (!p11_path_prefix ("/test", "/test"));
+ assert (!p11_path_prefix ("/different/prefix", "/test"));
+ assert (!p11_path_prefix ("/te", "/test"));
+ assert (!p11_path_prefix ("/test", "/test/blah"));
+ assert (p11_path_prefix ("/test/other/second", "/test"));
+ assert (p11_path_prefix ("/test//other//second", "/test"));
+}
+
int
main (int argc,
char *argv[])
p11_test (test_expand, "/path/expand");
p11_test (test_absolute, "/path/absolute");
p11_test (test_parent, "/path/parent");
+ p11_test (test_prefix, "/path/prefix");
return p11_test_run (argc, argv);
}