aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2015-09-22 15:03:27 +0300
committerZyX <kp-pav@yandex.ru>2015-10-08 22:01:10 +0300
commit0966e92cf441bbae1d50c68f56809fbb08fab7b6 (patch)
tree3abaeeef01d2c04c9f73942b5260aea7bf7adc70 /src
parent7085ea07d8e5f976260476f2e84c38b3a3bf0407 (diff)
downloadrneovim-0966e92cf441bbae1d50c68f56809fbb08fab7b6.tar.gz
rneovim-0966e92cf441bbae1d50c68f56809fbb08fab7b6.tar.bz2
rneovim-0966e92cf441bbae1d50c68f56809fbb08fab7b6.zip
shada: When using shada-r normalize option path
Diffstat (limited to 'src')
-rw-r--r--src/nvim/shada.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/nvim/shada.c b/src/nvim/shada.c
index d6a507eb50..a66b3c598e 100644
--- a/src/nvim/shada.c
+++ b/src/nvim/shada.c
@@ -68,6 +68,8 @@ KHASH_SET_INIT_STR(strset)
#define emsgu(a, ...) emsgu((char_u *) a, __VA_ARGS__)
#define home_replace_save(a, b) \
((char *)home_replace_save(a, (char_u *)b))
+#define home_replace(a, b, c, d, e) \
+ home_replace(a, (char_u *)b, (char_u *)c, d, e)
#define vim_rename(a, b) \
(vim_rename((char_u *)a, (char_u *)b))
#define has_non_ascii(a) (has_non_ascii((char_u *)a))
@@ -4003,16 +4005,16 @@ bool shada_removable(const char *name)
FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_PURE
{
char *p;
- char part[51];
+ char part[MAXPATHL + 1];
bool retval = false;
- size_t n;
char *new_name = home_replace_save(NULL, name);
for (p = (char *) p_shada; *p; ) {
- (void) copy_option_part(&p, part, 51, ", ");
+ (void) copy_option_part(&p, part, ARRAY_SIZE(part), ", ");
if (part[0] == 'r') {
- n = STRLEN(part + 1);
- if (STRNICMP(part + 1, new_name, n) == 0) {
+ home_replace(NULL, part + 1, NameBuff, MAXPATHL, true);
+ size_t n = STRLEN(NameBuff);
+ if (STRNICMP(NameBuff, new_name, n) == 0) {
retval = true;
break;
}