From f8636b18dbdc1f508de37d53b752a0659552f26e Mon Sep 17 00:00:00 2001
From: Philippe Teuwen <phil@teuwen.org>
Date: Wed, 4 Sep 2019 23:40:42 +0200
Subject: [PATCH] searchFile: HOME takes precedence on repo and installed
 paths, more coherent

---
 client/fileutils.c | 48 +++++++++++++++++++++++-----------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/client/fileutils.c b/client/fileutils.c
index 1c0403294..a4521fcf8 100644
--- a/client/fileutils.c
+++ b/client/fileutils.c
@@ -899,6 +899,30 @@ static int searchFinalFile(char **foundpath, const char *pm3dir, const char *sea
             return PM3_SUCCESS;
         }
     }
+    // try pm3 dirs in user .proxmark3 (user mode)
+    char *user_path = getenv("HOME");
+    if (user_path != NULL) {
+        char *path = calloc(strlen(user_path) + strlen(PM3_USER_DIRECTORY) + strlen(pm3dir) + strlen(filename) + 1, sizeof(char));
+        if (path == NULL)
+            goto out;
+        strcpy(path, user_path);
+        strcat(path, PM3_USER_DIRECTORY);
+        strcat(path, pm3dir);
+        strcat(path, filename);
+        if ((g_debugMode == 2) && (!silent)) {
+            PrintAndLogEx(INFO, "Searching %s", path);
+        }
+        if (fileExists(path)) {
+            free(filename);
+            *foundpath = path;
+            if ((g_debugMode == 2) && (!silent)) {
+                PrintAndLogEx(INFO, "Found %s", *foundpath);
+            }
+            return PM3_SUCCESS;
+        } else {
+            free(path);
+        }
+    }
     // try pm3 dirs in current client workdir (dev mode)
     const char *exec_path = get_my_executable_directory();
     if ((exec_path != NULL) &&
@@ -951,30 +975,6 @@ static int searchFinalFile(char **foundpath, const char *pm3dir, const char *sea
             free(path);
         }
     }
-    // try pm3 dirs in user .proxmark3 (user mode)
-    char *user_path = getenv("HOME");
-    if (user_path != NULL) {
-        char *path = calloc(strlen(user_path) + strlen(PM3_USER_DIRECTORY) + strlen(pm3dir) + strlen(filename) + 1, sizeof(char));
-        if (path == NULL)
-            goto out;
-        strcpy(path, user_path);
-        strcat(path, PM3_USER_DIRECTORY);
-        strcat(path, pm3dir);
-        strcat(path, filename);
-        if ((g_debugMode == 2) && (!silent)) {
-            PrintAndLogEx(INFO, "Searching %s", path);
-        }
-        if (fileExists(path)) {
-            free(filename);
-            *foundpath = path;
-            if ((g_debugMode == 2) && (!silent)) {
-                PrintAndLogEx(INFO, "Found %s", *foundpath);
-            }
-            return PM3_SUCCESS;
-        } else {
-            free(path);
-        }
-    }
     // try pm3 dirs in pm3 installation dir (install mode)
     {
         char *path = calloc(strlen(exec_path) + strlen(PM3_SHARE_RELPATH) + strlen(pm3dir) + strlen(filename) + 1, sizeof(char));