From ba429d344132c088177e853cce8ff7181570b221 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 19:42:51 +0200 Subject: Adding upstream version 44.2. Signed-off-by: Daniel Baumann --- gedit/gedit-dirs.c | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 gedit/gedit-dirs.c (limited to 'gedit/gedit-dirs.c') diff --git a/gedit/gedit-dirs.c b/gedit/gedit-dirs.c new file mode 100644 index 0000000..81f32c2 --- /dev/null +++ b/gedit/gedit-dirs.c @@ -0,0 +1,176 @@ +/* + * gedit-dirs.c + * This file is part of gedit + * + * Copyright (C) 2008 Ignacio Casal Quinteiro + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include "config.h" + +#include "gedit-dirs.h" + +#ifdef OS_OSX +#include +#endif + +static gchar *user_config_dir = NULL; +static gchar *user_data_dir = NULL; +static gchar *user_styles_dir = NULL; +static gchar *user_plugins_dir = NULL; +static gchar *gedit_locale_dir = NULL; +static gchar *gedit_lib_dir = NULL; +static gchar *gedit_plugins_dir = NULL; +static gchar *gedit_plugins_data_dir = NULL; + +void +gedit_dirs_init () +{ +#ifdef G_OS_WIN32 + gchar *win32_dir; + + win32_dir = g_win32_get_package_installation_directory_of_module (NULL); + + gedit_locale_dir = g_build_filename (win32_dir, + "share", + "locale", + NULL); + gedit_lib_dir = g_build_filename (win32_dir, + "lib", + "gedit", + NULL); + gedit_plugins_data_dir = g_build_filename (win32_dir, + "share", + "gedit", + "plugins", + NULL); + + g_free (win32_dir); +#endif /* G_OS_WIN32 */ + +#ifdef OS_OSX + if (gtkosx_application_get_bundle_id () != NULL) + { + const gchar *bundle_resource_dir = gtkosx_application_get_resource_path (); + + gedit_locale_dir = g_build_filename (bundle_resource_dir, + "share", + "locale", + NULL); + gedit_lib_dir = g_build_filename (bundle_resource_dir, + "lib", + "gedit", + NULL); + gedit_plugins_data_dir = g_build_filename (bundle_resource_dir, + "share", + "gedit", + "plugins", + NULL); + } +#endif /* OS_OSX */ + + if (gedit_locale_dir == NULL) + { + gedit_locale_dir = g_build_filename (DATADIR, + "locale", + NULL); + gedit_lib_dir = g_build_filename (LIBDIR, + "gedit", + NULL); + gedit_plugins_data_dir = g_build_filename (DATADIR, + "gedit", + "plugins", + NULL); + } + + user_config_dir = g_build_filename (g_get_user_config_dir (), + "gedit", + NULL); + user_data_dir = g_build_filename (g_get_user_data_dir (), + "gedit", + NULL); + user_styles_dir = g_build_filename (user_data_dir, + "styles", + NULL); + user_plugins_dir = g_build_filename (user_data_dir, + "plugins", + NULL); + gedit_plugins_dir = g_build_filename (gedit_lib_dir, + "plugins", + NULL); +} + +void +gedit_dirs_shutdown () +{ + g_clear_pointer (&user_config_dir, g_free); + g_clear_pointer (&user_data_dir, g_free); + g_clear_pointer (&user_styles_dir, g_free); + g_clear_pointer (&user_plugins_dir, g_free); + g_clear_pointer (&gedit_locale_dir, g_free); + g_clear_pointer (&gedit_lib_dir, g_free); + g_clear_pointer (&gedit_plugins_dir, g_free); + g_clear_pointer (&gedit_plugins_data_dir, g_free); +} + +const gchar * +gedit_dirs_get_user_config_dir (void) +{ + return user_config_dir; +} + +const gchar * +gedit_dirs_get_user_data_dir (void) +{ + return user_data_dir; +} + +const gchar * +gedit_dirs_get_user_styles_dir (void) +{ + return user_styles_dir; +} + +const gchar * +gedit_dirs_get_user_plugins_dir (void) +{ + return user_plugins_dir; +} + +const gchar * +gedit_dirs_get_gedit_locale_dir (void) +{ + return gedit_locale_dir; +} + +const gchar * +gedit_dirs_get_gedit_lib_dir (void) +{ + return gedit_lib_dir; +} + +const gchar * +gedit_dirs_get_gedit_plugins_dir (void) +{ + return gedit_plugins_dir; +} + +const gchar * +gedit_dirs_get_gedit_plugins_data_dir (void) +{ + return gedit_plugins_data_dir; +} + +/* ex:set ts=8 noet: */ -- cgit v1.2.3