#include <string.h>
#include "utils.h"
-#include "const.h"
+#include "fuse_xattrs_config.h"
char *prepend_source_directory(const char *a, const char *b) {
size_t len = strlen(a) + strlen(b) + 1;
char *get_sidecar_path(const char *path)
{
const size_t path_len = strlen(path);
- const size_t sidecar_ext_len = strlen(SIDECAR_EXT); // this can be optimized
+ const size_t sidecar_ext_len = strlen(BINARY_SIDECAR_EXT); // this can be optimized
const size_t sidecar_path_len = path_len + sidecar_ext_len + 1;
char *sidecar_path = (char *) malloc(sidecar_path_len);
memset(sidecar_path, '\0', sidecar_path_len);
memcpy(sidecar_path, path, path_len);
- memcpy(sidecar_path + path_len, SIDECAR_EXT, sidecar_ext_len);
+ memcpy(sidecar_path + path_len, BINARY_SIDECAR_EXT, sidecar_ext_len);
return sidecar_path;
}
return sanitized;
}
+
+const size_t BINARY_SIDECAR_EXT_SIZE = strlen(BINARY_SIDECAR_EXT);
+
+const int filename_is_sidecar(const char *string) {
+ if(string == NULL)
+ return 0;
+
+ size_t size = strlen(string);
+ if (size <= BINARY_SIDECAR_EXT_SIZE)
+ return 0;
+
+ if (memcmp(string+size-BINARY_SIDECAR_EXT_SIZE, BINARY_SIDECAR_EXT, BINARY_SIDECAR_EXT_SIZE) == 0) {
+ return 1;
+ }
+
+ return 0;
+}
+
enum namespace get_namespace(const char *name) {
if (strncmp(name, "user.", strlen("user.")) == 0) {
return USER;