From 89d7a47453cc1b189cf7cb54aa0df244292ac4a2 Mon Sep 17 00:00:00 2001 From: keremgokcek Date: Wed, 31 Jul 2024 03:37:33 +0300 Subject: [PATCH] Add support for XDG base directory specification --- .../flash/configuration/Configuration.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java index dfda5e2b1..a72b12ef5 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java @@ -1061,9 +1061,24 @@ public final class Configuration { String path = "Library/Application Support/" + applicationId + "/"; directory = new File(userHome, path); } else { - // ${userHome}/.${applicationId}/ - String path = "." + applicationId + "/"; - directory = new File(userHome, path); + File xdgConfigHome = null; + try { + String xdgConfigHomeEV = System.getenv("XDG_CONFIG_HOME"); + if ((xdgConfigHomeEV != null) && (xdgConfigHomeEV.length() > 0)) { + xdgConfigHome = new File(xdgConfigHomeEV); + } + } catch (SecurityException ignore) { + //ignored + } + if ((xdgConfigHome != null) && xdgConfigHome.isDirectory()) { + // ${xdgConfigHome}/${applicationId} + String path = applicationId + "/"; + directory = new File(xdgConfigHome, path); + } else { + // ${userHome}/.config/${applicationId} + String path = ".config/" + applicationId + "/"; + directory = new File(userHome, path); + } } } else { //no home, then use application directory