From 189b9cc5a04c9935479cd3686982fa4d8750ce10 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Tue, 9 Feb 2021 14:29:47 +0100
Subject: [PATCH] Patch the '?data' path when aegisub is launched as an
 AppImage

---
 .gitignore               |  6 ++++++
 libaegisub/unix/path.cpp | 10 ++++++++++
 meson.build              |  2 +-
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 7e4ade9c2..75c278598 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,9 @@ subprojects/icu
 subprojects/ffmpeg
 subprojects/ffms2*
 subprojects/boost*
+
+# Build and tag files
+cscope.files
+git_version.h
+git_version.xml
+tags
diff --git a/libaegisub/unix/path.cpp b/libaegisub/unix/path.cpp
index 0541e0dbe..934371a64 100644
--- a/libaegisub/unix/path.cpp
+++ b/libaegisub/unix/path.cpp
@@ -44,7 +44,17 @@ void Path::FillPlatformSpecificPaths() {
 	agi::fs::path home = home_dir();
 	SetToken("?user", home/".aegisub");
 	SetToken("?local", home/".aegisub");
+#ifdef __linux__
+    /* AppImage case */
+    if (const char *ptr_root = getenv("APPDIR"); ptr_root != nullptr) {
+        agi::fs::path root = ptr_root;
+        SetToken("?data", root/P_DATA);
+    } else {
+        SetToken("?data", P_DATA);
+    }
+#else
 	SetToken("?data", P_DATA);
+#endif
 	SetToken("?dictionary", "/usr/share/hunspell");
 #else
 	agi::fs::path app_support = agi::util::GetApplicationSupportDirectory();
diff --git a/meson.build b/meson.build
index fd558be4d..353110f47 100644
--- a/meson.build
+++ b/meson.build
@@ -1,7 +1,7 @@
 project('Aegisub', ['c', 'cpp'],
         license: 'BSD-3-Clause',
         meson_version: '>=0.56.0',
-        default_options: ['cpp_std=c++11', 'buildtype=debugoptimized'],
+        default_options: ['cpp_std=c++17', 'buildtype=debugoptimized'],
         version: '3.3.3')
 
 cmake = import('cmake')
-- 
GitLab