mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 18:08:24 +08:00
Add get_standard_config_dir function
This adds a new get_standard_config_dir, which returns the name of the configuration directory. In XDG, this is ~/.config/gdb/. Future patches will make use of this. 2020-07-05 Tom Tromey <tom@tromey.com> * pathstuff.h (get_standard_config_dir): Declare. * pathstuff.cc (get_standard_config_dir): New function.
This commit is contained in:

committed by
Andrew Burgess

parent
5b3d3560e9
commit
8768c3e362
@ -1,3 +1,8 @@
|
|||||||
|
2020-11-02 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* pathstuff.h (get_standard_config_dir): Declare.
|
||||||
|
* pathstuff.cc (get_standard_config_dir): New function.
|
||||||
|
|
||||||
2020-11-02 Simon Marchi <simon.marchi@efficios.com>
|
2020-11-02 Simon Marchi <simon.marchi@efficios.com>
|
||||||
|
|
||||||
* common-exceptions.h: Fix indentation.
|
* common-exceptions.h: Fix indentation.
|
||||||
|
@ -266,6 +266,38 @@ get_standard_temp_dir ()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* See pathstuff.h. */
|
||||||
|
|
||||||
|
std::string
|
||||||
|
get_standard_config_dir ()
|
||||||
|
{
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#define HOME_CONFIG_DIR "Library/Preferences"
|
||||||
|
#else
|
||||||
|
#define HOME_CONFIG_DIR ".config"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __APPLE__
|
||||||
|
const char *xdg_config_home = getenv ("XDG_CONFIG_HOME");
|
||||||
|
if (xdg_config_home != NULL)
|
||||||
|
{
|
||||||
|
/* Make sure the path is absolute and tilde-expanded. */
|
||||||
|
gdb::unique_xmalloc_ptr<char> abs (gdb_abspath (xdg_config_home));
|
||||||
|
return string_printf ("%s/gdb", abs.get ());
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *home = getenv ("HOME");
|
||||||
|
if (home != NULL)
|
||||||
|
{
|
||||||
|
/* Make sure the path is absolute and tilde-expanded. */
|
||||||
|
gdb::unique_xmalloc_ptr<char> abs (gdb_abspath (home));
|
||||||
|
return string_printf ("%s/" HOME_CONFIG_DIR "/gdb", abs.get ());
|
||||||
|
}
|
||||||
|
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
/* See gdbsupport/pathstuff.h. */
|
/* See gdbsupport/pathstuff.h. */
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
|
@ -85,6 +85,20 @@ extern std::string get_standard_cache_dir ();
|
|||||||
|
|
||||||
extern std::string get_standard_temp_dir ();
|
extern std::string get_standard_temp_dir ();
|
||||||
|
|
||||||
|
/* Get the usual user config directory for the current platform.
|
||||||
|
|
||||||
|
On Linux, it follows the XDG Base Directory specification: use
|
||||||
|
$XDG_CONFIG_HOME/gdb if the XDG_CONFIG_HOME environment variable is
|
||||||
|
defined, otherwise $HOME/.config.
|
||||||
|
|
||||||
|
On macOS, it follows the local convention and uses
|
||||||
|
~/Library/Preferences/gdb.
|
||||||
|
|
||||||
|
The return value is absolute and tilde-expanded. Return an empty
|
||||||
|
string if neither XDG_CONFIG_HOME (on Linux) or HOME are defined. */
|
||||||
|
|
||||||
|
extern std::string get_standard_config_dir ();
|
||||||
|
|
||||||
/* Return the file name of the user's shell. Normally this comes from
|
/* Return the file name of the user's shell. Normally this comes from
|
||||||
the SHELL environment variable. */
|
the SHELL environment variable. */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user