patch 7.4.964
Problem:    Test 87 doesn't work in a shadow directory.
Solution:   Handle the extra subdirectory. (James McCoy, closes #515)
diff --git a/src/testdir/test87.in b/src/testdir/test87.in
index fedc795..2308fde 100644
--- a/src/testdir/test87.in
+++ b/src/testdir/test87.in
@@ -910,8 +910,19 @@
 cb.append(str(fnamemodify('.', ':p:h:t')))
 cb.append(vim.eval('@%'))
 os.chdir('..')
-cb.append(str(fnamemodify('.', ':p:h:t')))
-cb.append(vim.eval('@%').replace(os.path.sep, '/'))
+path = fnamemodify('.', ':p:h:t')
+if path != b'src':
+  # Running tests from a shadow directory, so move up another level
+  # This will result in @% looking like shadow/testdir/test87.in, hence the
+  # slicing to remove the leading path and path separator
+  os.chdir('..')
+  cb.append(str(fnamemodify('.', ':p:h:t')))
+  cb.append(vim.eval('@%')[len(path)+1:].replace(os.path.sep, '/'))
+  os.chdir(path)
+else:
+  cb.append(str(fnamemodify('.', ':p:h:t')))
+  cb.append(vim.eval('@%').replace(os.path.sep, '/'))
+del path
 os.chdir('testdir')
 cb.append(str(fnamemodify('.', ':p:h:t')))
 cb.append(vim.eval('@%'))