/*
* 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: */