aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/path.c
diff options
context:
space:
mode:
authorRui Abreu Ferreira <raf-ep@gmx.com>2016-05-01 00:18:42 +0100
committerKillTheMule <KillTheMule@users.noreply.github.com>2016-05-08 20:24:02 +0200
commit24dac220d377d0dedbe192437b1da4b5b6f4bd6f (patch)
tree076a6a78342d774c0e42698dc60c7e66f014d806 /src/nvim/path.c
parentb02ba11cb156e094d3f6f12fc7c79a983b6df68d (diff)
downloadrneovim-24dac220d377d0dedbe192437b1da4b5b6f4bd6f.tar.gz
rneovim-24dac220d377d0dedbe192437b1da4b5b6f4bd6f.tar.bz2
rneovim-24dac220d377d0dedbe192437b1da4b5b6f4bd6f.zip
vim-patch:7.4.896
Problem: Editing a URL, which netrw should handle, doesn't work. Solution: Avoid changing slashes to backslashes. (Yasuhiro Matsumoto) https://github.com/vim/vim/commit/b4f6a46b01ed00b642a2271e9d1559e51ab0f2c4 Cherry-picked from https://github.com/neovim/neovim/pull/810, rebased.
Diffstat (limited to 'src/nvim/path.c')
-rw-r--r--src/nvim/path.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/nvim/path.c b/src/nvim/path.c
index aff0ee2d48..41fd69f238 100644
--- a/src/nvim/path.c
+++ b/src/nvim/path.c
@@ -1284,6 +1284,29 @@ static int expand_backtick(
return cnt;
}
+#ifdef BACKSLASH_IN_FILENAME
+/// Replace all slashes by backslashes.
+/// This used to be the other way around, but MS-DOS sometimes has problems
+/// with slashes (e.g. in a command name). We can't have mixed slashes and
+/// backslashes, because comparing file names will not work correctly. The
+/// commands that use a file name should try to avoid the need to type a
+/// backslash twice.
+/// When 'shellslash' set do it the other way around.
+/// When the path looks like a URL leave it unmodified.
+void slash_adjust(char_u *p)
+{
+ if (path_with_url(p)) {
+ return;
+ }
+ while (*p) {
+ if (*p == psepcN) {
+ *p = psepc;
+ }
+ mb_ptr_adv(p);
+ }
+}
+#endif
+
// Add a file to a file list. Accepted flags:
// EW_DIR add directories
// EW_FILE add files