aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-05-18 19:33:28 +0200
committerGitHub <noreply@github.com>2018-05-18 19:33:28 +0200
commit2ed2939597d217f12f9f6da1877684703aa9301f (patch)
treea8f07a3e7539dcd781b29df6cdc4719551ab655c /src/nvim/eval.c
parent0ed297bdb495fa072053b3e28e0c504c7107cf5c (diff)
parent91c4de83c9de9049fc706f319deea38e9436502e (diff)
downloadrneovim-2ed2939597d217f12f9f6da1877684703aa9301f.tar.gz
rneovim-2ed2939597d217f12f9f6da1877684703aa9301f.tar.bz2
rneovim-2ed2939597d217f12f9f6da1877684703aa9301f.zip
Merge #8406 'stdpath(): handle NULL default values'
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index a3540b3153..ffea88aa83 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -15712,6 +15712,9 @@ static void get_xdg_var_list(const XDGVarType xdg, typval_T *rettv)
rettv->vval.v_list = list;
tv_list_ref(list);
char *const dirs = stdpaths_get_xdg_var(xdg);
+ if (dirs == NULL) {
+ return;
+ }
do {
size_t dir_len;
const char *dir;
@@ -15737,15 +15740,15 @@ static void f_stdpath(typval_T *argvars, typval_T *rettv, FunPtr fptr)
return; // Type error; errmsg already given.
}
- if (strcmp(p, "config") == 0) {
+ if (strequal(p, "config")) {
rettv->vval.v_string = (char_u *)get_xdg_home(kXDGConfigHome);
- } else if (strcmp(p, "data") == 0) {
+ } else if (strequal(p, "data")) {
rettv->vval.v_string = (char_u *)get_xdg_home(kXDGDataHome);
- } else if (strcmp(p, "cache") == 0) {
+ } else if (strequal(p, "cache")) {
rettv->vval.v_string = (char_u *)get_xdg_home(kXDGCacheHome);
- } else if (strcmp(p, "config_dirs") == 0) {
+ } else if (strequal(p, "config_dirs")) {
get_xdg_var_list(kXDGConfigDirs, rettv);
- } else if (strcmp(p, "data_dirs") == 0) {
+ } else if (strequal(p, "data_dirs")) {
get_xdg_var_list(kXDGDataDirs, rettv);
} else {
EMSG2(_("E6100: \"%s\" is not a valid stdpath"), p);