aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/window.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2016-01-23 14:47:45 -0500
committerJustin M. Keyes <justinkz@gmail.com>2016-01-23 14:47:45 -0500
commit4172ce4eb078fe63cf3696dd10f9bdf47cd70eb1 (patch)
tree17a3042487871d51bf7298b4f09b14146e20b058 /src/nvim/window.c
parentd4430dc3ebec717ec91c0c997dd5be358b714077 (diff)
parentce17037e3ebbfb9f181c40f26bc601780e3f17a5 (diff)
downloadrneovim-4172ce4eb078fe63cf3696dd10f9bdf47cd70eb1.tar.gz
rneovim-4172ce4eb078fe63cf3696dd10f9bdf47cd70eb1.tar.bz2
rneovim-4172ce4eb078fe63cf3696dd10f9bdf47cd70eb1.zip
Merge pull request #4072 from jbradaric/vim-7.4.642
vim-patch:7.4.642
Diffstat (limited to 'src/nvim/window.c')
-rw-r--r--src/nvim/window.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 16ff7dfb14..f0c6cacdf0 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -4837,17 +4837,15 @@ static void frame_add_height(frame_T *frp, int n)
*/
char_u *grab_file_name(long count, linenr_T *file_lnum)
{
+ int options = FNAME_MESS | FNAME_EXP | FNAME_REL | FNAME_UNESC;
if (VIsual_active) {
size_t len;
char_u *ptr;
if (get_visual_text(NULL, &ptr, &len) == FAIL)
return NULL;
- return find_file_name_in_path(ptr, len,
- FNAME_MESS|FNAME_EXP|FNAME_REL,
- count, curbuf->b_ffname);
+ return find_file_name_in_path(ptr, len, options, count, curbuf->b_ffname);
}
- return file_name_at_cursor(FNAME_MESS|FNAME_HYP|FNAME_EXP|FNAME_REL, count,
- file_lnum);
+ return file_name_at_cursor(options | FNAME_HYP, count, file_lnum);
}
/*
@@ -4918,12 +4916,18 @@ file_name_in_line (
* Also allow "://" when ':' is not in 'isfname'.
*/
len = 0;
- while (vim_isfilec(ptr[len])
- || ((options & FNAME_HYP) && path_is_url((char *)ptr + len)))
- if (has_mbyte)
+ while (vim_isfilec(ptr[len]) || (ptr[len] == '\\' && ptr[len + 1] == ' ')
+ || ((options & FNAME_HYP) && path_is_url((char *)ptr + len))) {
+ if (ptr[len] == '\\' && ptr[len + 1] == ' ') {
+ // Skip over the "\" in "\ ".
+ ++len;
+ }
+ if (has_mbyte) {
len += (size_t)(*mb_ptr2len)(ptr + len);
- else
+ } else {
++len;
+ }
+ }
/*
* If there is trailing punctuation, remove it.