Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
file_location.c File Reference
#include "config.h"
#include <pwd.h>
#include "osx/osx.h"
#include "common/grealpath.h"
#include "common/paths.h"
#include "darktable.h"
#include "file_location.h"
#include "whereami.h"
#include "system/macros.h"
#include "system/mem_alloc.h"
#include "common/logging.h"
#include "common/utility.h"
+ Include dependency graph for file_location.c:

Go to the source code of this file.

Macros

#define HAVE_GETPWNAM_R   1
 

Functions

static char * _application_directory (void)
 
void dt_loc_resolve_localedir (char *localedir, size_t bufsize)
 Resolve the locale directory the way dt_loc_init() does, creating it if missing, but set no global and check nothing: dt_init() checks it right after. For the command-line tools, which bind their text domain before dt_init(). dt_init() zeroes every path before resolving them all, so whatever an earlier dt_loc_init() set would leak.
 
void dt_loc_init (const char *datadir, const char *moduledir, const char *localedir, const char *configdir, const char *cachedir, const char *tmpdir, const char *kerneldir)
 
gchar * dt_loc_get_home_dir (const gchar *user)
 
gchar * dt_loc_init_generic (const char *absolute_value, const char *application_directory, const char *default_value)
 
void dt_loc_init_user_config_dir (const char *configdir)
 
void dt_loc_init_tmp_dir (const char *tmpdir)
 
void dt_loc_init_user_cache_dir (const char *cachedir)
 
void dt_loc_init_moduledir (const char *application_directory, const char *moduledir)
 
void dt_check_opendir (const char *context, const char *directory)
 
void dt_loc_init_localedir (const char *application_directory, const char *localedir)
 
void dt_loc_init_datadir (const char *application_directory, const char *datadir)
 
void dt_loc_init_sharedir (const char *application_directory)
 
void dt_loc_init_kerneldir (const char *application_directory, const char *kerneldir)
 
const char * dt_loc_datadir (void)
 
const char * dt_loc_sharedir (void)
 
const char * dt_loc_moduledir (void)
 
const char * dt_loc_localedir (void)
 
const char * dt_loc_tmpdir (void)
 
const char * dt_loc_configdir (void)
 
const char * dt_loc_cachedir (void)
 
const char * dt_loc_kerneldir (void)
 
void dt_loc_get_kerneldir (char *kerneldir, size_t bufsize)
 
void dt_loc_get_moduledir (char *moduledir, size_t bufsize)
 
void dt_loc_get_localedir (char *localedir, size_t bufsize)
 
void dt_loc_get_user_config_dir (char *configdir, size_t bufsize)
 
void dt_loc_get_user_cache_dir (char *cachedir, size_t bufsize)
 
void dt_loc_get_tmp_dir (char *tmpdir, size_t bufsize)
 
void dt_loc_get_datadir (char *datadir, size_t bufsize)
 
void dt_loc_get_sharedir (char *sharedir, size_t bufsize)
 

Macro Definition Documentation

◆ HAVE_GETPWNAM_R

#define HAVE_GETPWNAM_R   1

Definition at line 46 of file file_location.c.

Function Documentation

◆ _application_directory()

static char * _application_directory ( void  )
static

Definition at line 68 of file file_location.c.

References IS_NULL_PTR, and L.

Referenced by dt_loc_init(), and dt_loc_resolve_localedir().

◆ dt_check_opendir()

void dt_check_opendir ( const char *  text,
const char *  directory 
)

◆ dt_loc_cachedir()

const char * dt_loc_cachedir ( void  )

Definition at line 347 of file file_location.c.

References darktable_t::cachedir, and darktable.

Referenced by dt_loc_get_user_cache_dir().

◆ dt_loc_configdir()

const char * dt_loc_configdir ( void  )

Definition at line 342 of file file_location.c.

References darktable_t::configdir, and darktable.

Referenced by dt_loc_get_user_config_dir(), and main().

◆ dt_loc_datadir()

const char * dt_loc_datadir ( void  )

interned read-only getters for the app-lifetime path constants. Written once at startup by the dt_loc_init_*() family, never mutated afterwards: the returned pointer is valid for the whole application lifetime. Do not free.

Definition at line 317 of file file_location.c.

References darktable, and darktable_t::datadir.

Referenced by dt_loc_get_datadir(), and main().

◆ dt_loc_get_datadir()

◆ dt_loc_get_home_dir()

gchar * dt_loc_get_home_dir ( const gchar *  user)

returns the users home directory

Definition at line 114 of file file_location.c.

References dt_free, IS_NULL_PTR, and L.

Referenced by _dt_check_basedir(), _init_expansion(), dt_conf_expand_default_dir(), and dt_util_fix_path().

◆ dt_loc_get_kerneldir()

void dt_loc_get_kerneldir ( char *  kerneldir,
size_t  bufsize 
)

Definition at line 357 of file file_location.c.

References dt_loc_kerneldir(), and L.

Referenced by dt_opencl_device_init(), and dt_opencl_md5sum().

◆ dt_loc_get_localedir()

void dt_loc_get_localedir ( char *  localedir,
size_t  bufsize 
)

Definition at line 367 of file file_location.c.

References dt_loc_localedir(), and L.

Referenced by dt_init(), dt_l10n_init(), and get_language_names().

◆ dt_loc_get_moduledir()

void dt_loc_get_moduledir ( char *  moduledir,
size_t  bufsize 
)

Definition at line 362 of file file_location.c.

References dt_loc_moduledir(), and L.

Referenced by dt_module_read_manifest().

◆ dt_loc_get_sharedir()

void dt_loc_get_sharedir ( char *  sharedir,
size_t  bufsize 
)

Definition at line 388 of file file_location.c.

References dt_loc_sharedir(), and L.

Referenced by _splash_create_logo(), dt_gui_gtk_init(), and dt_init().

◆ dt_loc_get_tmp_dir()

void dt_loc_get_tmp_dir ( char *  tmpdir,
size_t  bufsize 
)

Definition at line 380 of file file_location.c.

References dt_loc_tmpdir(), and L.

Referenced by _print_job_run(), dt_print_file(), and store().

◆ dt_loc_get_user_cache_dir()

◆ dt_loc_get_user_config_dir()

◆ dt_loc_init()

void dt_loc_init ( const char *  datadir,
const char *  moduledir,
const char *  localedir,
const char *  configdir,
const char *  cachedir,
const char *  tmpdir,
const char *  kerneldir 
)

◆ dt_loc_init_datadir()

void dt_loc_init_datadir ( const char *  application_directory,
const char *  datadir 
)

init systemwide data dir

Definition at line 295 of file file_location.c.

References darktable, DARKTABLE_DATADIR, darktable_t::datadir, dt_check_opendir(), dt_loc_init_generic(), and L.

Referenced by dt_loc_init(), and main().

◆ dt_loc_init_generic()

gchar * dt_loc_init_generic ( const char *  absolute_value,
const char *  application_directory,
const char *  default_value 
)

init specific dir. Value is appended if application_directory is not NULL (relative path resolution).

bundle detected ...

outside a bundle. Apply standard linux path rules

Definition at line 159 of file file_location.c.

References dt_free, dt_osx_get_bundle_res_path(), DT_PATH_MAX, dt_util_fix_path(), FALSE, g_realpath(), and L.

Referenced by dt_loc_init_datadir(), dt_loc_init_kerneldir(), dt_loc_init_localedir(), dt_loc_init_moduledir(), dt_loc_init_sharedir(), dt_loc_init_tmp_dir(), dt_loc_init_user_cache_dir(), dt_loc_init_user_config_dir(), and dt_loc_resolve_localedir().

◆ dt_loc_init_kerneldir()

void dt_loc_init_kerneldir ( const char *  application_directory,
const char *  kerneldir 
)

init OpenCL kernels dir

Definition at line 307 of file file_location.c.

References darktable, DARKTABLE_KERNELSDIR, dt_check_opendir(), dt_loc_init_generic(), darktable_t::kerneldir, and L.

Referenced by dt_loc_init().

◆ dt_loc_init_localedir()

void dt_loc_init_localedir ( const char *  application_directory,
const char *  localedir 
)

init the locale dir

Definition at line 289 of file file_location.c.

References darktable, DARKTABLE_LOCALEDIR, dt_check_opendir(), dt_loc_init_generic(), L, and darktable_t::localedir.

Referenced by dt_loc_init().

◆ dt_loc_init_moduledir()

void dt_loc_init_moduledir ( const char *  application_directory,
const char *  moduledir 
)

init the plugin dir

Definition at line 246 of file file_location.c.

References darktable, DARKTABLE_MODULEDIR, dt_check_opendir(), dt_loc_init_generic(), L, and darktable_t::moduledir.

Referenced by dt_loc_init().

◆ dt_loc_init_sharedir()

void dt_loc_init_sharedir ( const char *  application_directory)

init share dir

Definition at line 301 of file file_location.c.

References darktable, DARKTABLE_SHAREDIR, dt_check_opendir(), dt_loc_init_generic(), L, and darktable_t::sharedir.

Referenced by dt_loc_init().

◆ dt_loc_init_tmp_dir()

void dt_loc_init_tmp_dir ( const char *  tmpdir)

init user local dir

Definition at line 232 of file file_location.c.

References darktable, dt_check_opendir(), dt_loc_init_generic(), L, and darktable_t::tmpdir.

Referenced by dt_loc_init().

◆ dt_loc_init_user_cache_dir()

void dt_loc_init_user_cache_dir ( const char *  cachedir)

init user cache dir

Definition at line 238 of file file_location.c.

References darktable_t::cachedir, darktable, dt_check_opendir(), dt_free, dt_loc_init_generic(), and L.

Referenced by dt_loc_init().

◆ dt_loc_init_user_config_dir()

void dt_loc_init_user_config_dir ( const char *  configdir)

init user config dir

Definition at line 224 of file file_location.c.

References darktable_t::configdir, darktable, dt_check_opendir(), dt_free, dt_loc_init_generic(), and L.

Referenced by dt_loc_init(), and main().

◆ dt_loc_kerneldir()

const char * dt_loc_kerneldir ( void  )

Definition at line 352 of file file_location.c.

References darktable, and darktable_t::kerneldir.

Referenced by dt_loc_get_kerneldir().

◆ dt_loc_localedir()

const char * dt_loc_localedir ( void  )

Definition at line 332 of file file_location.c.

References darktable, and darktable_t::localedir.

Referenced by dt_loc_get_localedir().

◆ dt_loc_moduledir()

const char * dt_loc_moduledir ( void  )

Definition at line 327 of file file_location.c.

References darktable, and darktable_t::moduledir.

Referenced by dt_loc_get_moduledir().

◆ dt_loc_resolve_localedir()

void dt_loc_resolve_localedir ( char *  localedir,
size_t  bufsize 
)

Resolve the locale directory the way dt_loc_init() does, creating it if missing, but set no global and check nothing: dt_init() checks it right after. For the command-line tools, which bind their text domain before dt_init(). dt_init() zeroes every path before resolving them all, so whatever an earlier dt_loc_init() set would leak.

Definition at line 87 of file file_location.c.

References _application_directory(), DARKTABLE_LOCALEDIR, dt_free, dt_loc_init_generic(), and L.

Referenced by main().

◆ dt_loc_sharedir()

const char * dt_loc_sharedir ( void  )

Definition at line 322 of file file_location.c.

References darktable, and darktable_t::sharedir.

Referenced by dt_loc_get_sharedir().

◆ dt_loc_tmpdir()

const char * dt_loc_tmpdir ( void  )

Definition at line 337 of file file_location.c.

References darktable, and darktable_t::tmpdir.

Referenced by dt_loc_get_tmp_dir().