diff options
author | Tom Tromey <tom@tromey.com> | 2018-09-14 08:48:22 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-09-17 08:43:12 -0600 |
commit | e6cd1dc1e6c0d081382ee21c156b205204efc75b (patch) | |
tree | 38f09c61ca5b3db2557cf6a7caa2e14d23efccc1 /gdb/common | |
parent | c12d9fa2afe7abcbe407a00e15719e1a1350c2a7 (diff) | |
download | gdb-e6cd1dc1e6c0d081382ee21c156b205204efc75b.zip gdb-e6cd1dc1e6c0d081382ee21c156b205204efc75b.tar.gz gdb-e6cd1dc1e6c0d081382ee21c156b205204efc75b.tar.bz2 |
Update get_standard_cache_dir for macOS
On macOS the usual cache directory is ~/Library/Caches. This patch
changes get_standard_cache_dir to use that instead of XDG.
gdb/ChangeLog
2018-09-17 Tom Tromey <tom@tromey.com>
* common/pathstuff.c (get_standard_cache_dir): Use
~/Library/Caches on macOS.
* common/pathstuff.h (get_standard_cache_dir): Update comment.
gdb/doc/ChangeLog
2018-09-17 Tom Tromey <tom@tromey.com>
* gdb.texinfo (Index Files): Update for cache directory change on
macOS.
Diffstat (limited to 'gdb/common')
-rw-r--r-- | gdb/common/pathstuff.c | 10 | ||||
-rw-r--r-- | gdb/common/pathstuff.h | 10 |
2 files changed, 16 insertions, 4 deletions
diff --git a/gdb/common/pathstuff.c b/gdb/common/pathstuff.c index 2d9dcb2..3dd58e3 100644 --- a/gdb/common/pathstuff.c +++ b/gdb/common/pathstuff.c @@ -164,6 +164,13 @@ contains_dir_separator (const char *path) std::string get_standard_cache_dir () { +#ifdef __APPLE__ +#define HOME_CACHE_DIR "Library/Caches" +#else +#define HOME_CACHE_DIR ".cache" +#endif + +#ifndef __APPLE__ char *xdg_cache_home = getenv ("XDG_CACHE_HOME"); if (xdg_cache_home != NULL) { @@ -171,13 +178,14 @@ get_standard_cache_dir () gdb::unique_xmalloc_ptr<char> abs (gdb_abspath (xdg_cache_home)); return string_printf ("%s/gdb", abs.get ()); } +#endif 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/.cache/gdb", abs.get ()); + return string_printf ("%s/" HOME_CACHE_DIR "/gdb", abs.get ()); } return {}; diff --git a/gdb/common/pathstuff.h b/gdb/common/pathstuff.h index d1aa6b3..a43b963 100644 --- a/gdb/common/pathstuff.h +++ b/gdb/common/pathstuff.h @@ -53,10 +53,14 @@ extern bool contains_dir_separator (const char *path); /* Get the usual user cache directory for the current platform. On Linux, it follows the XDG Base Directory specification: use - $XDG_CACHE_HOME/gdb if the XDG_CACHE_HOME environment variable is defined, - otherwise $HOME/.cache. The return value is absolute and tilde-expanded. + $XDG_CACHE_HOME/gdb if the XDG_CACHE_HOME environment variable is + defined, otherwise $HOME/.cache. - Return an empty string if neither XDG_CACHE_HOME or HOME are defined. */ + On macOS, it follows the local convention and uses + ~/Library/Caches/gdb. + + The return value is absolute and tilde-expanded. Return an empty + string if neither XDG_CACHE_HOME (on Linux) or HOME are defined. */ extern std::string get_standard_cache_dir (); |