]> git.seodisparate.com - SimpleArchiver/commitdiff
"Fix" windows build
authorStephen Seo <seo.disparate@gmail.com>
Wed, 24 Jul 2024 06:03:34 +0000 (15:03 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Wed, 24 Jul 2024 06:03:34 +0000 (15:03 +0900)
src/archiver.c

index 03a508a0e30f9e03c868fc52d390a4cd56d71d98..36a59bce9fc891523d4671f3bb1b28ac79103b67 100644 (file)
@@ -104,6 +104,9 @@ void cleanup_temp_filename_delete(void ***ptrs_array) {
 }
 
 char *filename_to_absolute_path(const char *filename) {
+#if SIMPLE_ARCHIVER_PLATFORM == SIMPLE_ARCHIVER_PLATFORM_COSMOPOLITAN || \
+    SIMPLE_ARCHIVER_PLATFORM == SIMPLE_ARCHIVER_PLATFORM_MAC ||          \
+    SIMPLE_ARCHIVER_PLATFORM == SIMPLE_ARCHIVER_PLATFORM_LINUX
   __attribute__((cleanup(free_malloced_memory))) void *path =
       malloc(strlen(filename) + 1);
   strncpy(path, filename, strlen(filename) + 1);
@@ -138,6 +141,8 @@ char *filename_to_absolute_path(const char *filename) {
           strlen(filename_basename) + 1);
 
   return fullpath;
+#endif
+  return NULL;
 }
 
 int write_files_fn(void *data, void *ud) {
@@ -707,8 +712,12 @@ int write_files_fn(void *data, void *ud) {
 
     // Need to get abs_path for checking/setting a flag before storing flags.
     // Get absolute path.
-    __attribute__((cleanup(free_malloced_memory))) void *abs_path =
-        realpath(file_info->filename, NULL);
+    __attribute__((cleanup(free_malloced_memory))) void *abs_path = NULL;
+#if SIMPLE_ARCHIVER_PLATFORM == SIMPLE_ARCHIVER_PLATFORM_COSMOPOLITAN || \
+    SIMPLE_ARCHIVER_PLATFORM == SIMPLE_ARCHIVER_PLATFORM_MAC ||          \
+    SIMPLE_ARCHIVER_PLATFORM == SIMPLE_ARCHIVER_PLATFORM_LINUX
+    abs_path = realpath(file_info->filename, NULL);
+#endif
     __attribute__((cleanup(free_malloced_memory))) void *rel_path = NULL;
     if (abs_path) {
       // Get relative path.
@@ -873,8 +882,12 @@ int filenames_to_abs_map_fn(void *data, void *ud) {
 
   // Try putting all parent dirs up to current working directory.
   // First get absolute path to current working directory.
-  __attribute__((cleanup(free_malloced_memory))) void *cwd_dirname =
-      realpath(".", NULL);
+  __attribute__((cleanup(free_malloced_memory))) void *cwd_dirname = NULL;
+#if SIMPLE_ARCHIVER_PLATFORM == SIMPLE_ARCHIVER_PLATFORM_COSMOPOLITAN || \
+    SIMPLE_ARCHIVER_PLATFORM == SIMPLE_ARCHIVER_PLATFORM_MAC ||          \
+    SIMPLE_ARCHIVER_PLATFORM == SIMPLE_ARCHIVER_PLATFORM_LINUX
+  cwd_dirname = realpath(".", NULL);
+#endif
   if (!cwd_dirname) {
     return 1;
   }