]> git.lizzy.rs Git - uwu-lang.git/blob - common/dir.h
Turn common back into a normal directory (instead of a submodule)
[uwu-lang.git] / common / dir.h
1 #ifndef _UWU_COMMON_DIR_H_
2 #define _UWU_COMMON_DIR_H_
3
4 #include <stdlib.h>
5 #include <libgen.h>
6 #include <string.h>
7
8 static char *wrap_name_func(const char *name, char *(*fn)(char *))
9 {
10         char *copy = strdup(name);
11         char *result = fn(copy);
12         char *result_copy = strdup(result);
13
14         free(copy);
15         return result_copy;
16 }
17
18 static inline char *basename_wrapper(const char *name)
19 {
20         return wrap_name_func(name, &basename);
21 }
22
23 static inline char *dirname_wrapper(const char *name)
24 {
25         return wrap_name_func(name, &dirname);
26 }
27
28 #endif