Alexandre Julliard : winemenubuilder: Avoid using wine_get_config_dir().

Alexandre Julliard julliard at winehq.org
Fri Apr 17 16:12:56 CDT 2020


Module: wine
Branch: master
Commit: 43e80d235e76e3f991e365c24822935873a037ff
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=43e80d235e76e3f991e365c24822935873a037ff

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Apr 17 12:46:06 2020 +0200

winemenubuilder: Avoid using wine_get_config_dir().

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/winemenubuilder/winemenubuilder.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
index fa700f8c19..d6fc9e2923 100644
--- a/programs/winemenubuilder/winemenubuilder.c
+++ b/programs/winemenubuilder/winemenubuilder.c
@@ -93,7 +93,6 @@
 
 #include "wine/unicode.h"
 #include "wine/debug.h"
-#include "wine/library.h"
 #include "wine/list.h"
 #include "wine/rbtree.h"
 
@@ -1452,6 +1451,8 @@ static BOOL write_desktop_entry(const char *unix_link, const char *location, con
                                 const char *workdir, const char *icon, const char *wmclass)
 {
     FILE *file;
+    const char *prefix = getenv("WINEPREFIX");
+    const char *home = getenv("HOME");
 
     WINE_TRACE("(%s,%s,%s,%s,%s,%s,%s,%s,%s)\n", wine_dbgstr_a(unix_link), wine_dbgstr_a(location),
                wine_dbgstr_a(linkname), wine_dbgstr_a(path), wine_dbgstr_a(args),
@@ -1464,8 +1465,12 @@ static BOOL write_desktop_entry(const char *unix_link, const char *location, con
 
     fprintf(file, "[Desktop Entry]\n");
     fprintf(file, "Name=%s\n", linkname);
-    fprintf(file, "Exec=env WINEPREFIX=\"%s\" wine %s %s\n",
-            wine_get_config_dir(), path, args);
+    if (prefix)
+        fprintf(file, "Exec=env WINEPREFIX=\"%s\" wine %s %s\n", prefix, path, args);
+    else if (home)
+        fprintf(file, "Exec=env WINEPREFIX=\"%s/.wine\" wine %s %s\n", home, path, args);
+    else
+        fprintf(file, "Exec=wine %s %s\n", path, args);
     fprintf(file, "Type=Application\n");
     fprintf(file, "StartupNotify=true\n");
     if (descr && *descr)
@@ -2493,6 +2498,8 @@ static BOOL write_freedesktop_association_entry(const char *desktopPath, const c
 {
     BOOL ret = FALSE;
     FILE *desktop;
+    const char *prefix = getenv("WINEPREFIX");
+    const char *home = getenv("HOME");
 
     WINE_TRACE("writing association for file type %s, friendlyAppName=%s, MIME type %s, progID=%s, icon=%s to file %s\n",
                wine_dbgstr_a(dot_extension), wine_dbgstr_a(friendlyAppName), wine_dbgstr_a(mimeType),
@@ -2505,7 +2512,12 @@ static BOOL write_freedesktop_association_entry(const char *desktopPath, const c
         fprintf(desktop, "Type=Application\n");
         fprintf(desktop, "Name=%s\n", friendlyAppName);
         fprintf(desktop, "MimeType=%s;\n", mimeType);
-        fprintf(desktop, "Exec=env WINEPREFIX=\"%s\" wine start /ProgIDOpen %s %%f\n", wine_get_config_dir(), progId);
+        if (prefix)
+            fprintf(desktop, "Exec=env WINEPREFIX=\"%s\" wine start /ProgIDOpen %s %%f\n", prefix, progId);
+        else if (home)
+            fprintf(desktop, "Exec=env WINEPREFIX=\"%s/.wine\" wine start /ProgIDOpen %s %%f\n", home, progId);
+        else
+            fprintf(desktop, "Exec=wine start /ProgIDOpen %s %%f\n", progId);
         fprintf(desktop, "NoDisplay=true\n");
         fprintf(desktop, "StartupNotify=true\n");
         if (openWithIcon)




More information about the wine-cvs mailing list