~singpolyma/biboumi

ref: ffb402f0adb9f808c7b8bc9616e71f7b3f8931ac biboumi/src/utils/xdg.cpp -rw-r--r-- 704 bytes
ffb402f0 — louiz’ Drop support for botan < 2.0 5 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <utils/xdg.hpp>
#include <cstdlib>

#include "biboumi.h"

std::string xdg_path(const std::string& filename, const char* env_var)
{
  const char* xdg_home = ::getenv(env_var);
  if (xdg_home && xdg_home[0] == '/')
    return std::string{xdg_home} + "/" PROJECT_NAME "/" + filename;
  else
    {
      const char* home = ::getenv("HOME");
      if (home)
        return std::string{home} + "/" ".config" "/" PROJECT_NAME "/" + filename;
      else
        return filename;
    }
}

std::string xdg_config_path(const std::string& filename)
{
  return xdg_path(filename, "XDG_CONFIG_HOME");
}

std::string xdg_data_path(const std::string& filename)
{
  return xdg_path(filename, "XDG_DATA_HOME");
}