Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 1 | Tests for: |
| 2 | - "gf" on ${VAR}, |
| 3 | - ":checkpath!" with various 'include' settings. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 4 | |
| 5 | STARTTEST |
| 6 | :so small.vim |
| 7 | :if has("ebcdic") |
| 8 | : set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,} |
| 9 | :else |
| 10 | : set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,} |
| 11 | :endif |
Bram Moolenaar | abc70bb | 2016-06-08 21:48:50 +0200 | [diff] [blame] | 12 | :" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 13 | :if has("unix") |
| 14 | :let $CDIR = "." |
| 15 | /CDIR |
| 16 | :else |
| 17 | :if has("amiga") |
| 18 | :let $TDIR = "/testdir" |
| 19 | :else |
| 20 | :let $TDIR = "." |
| 21 | :endif |
| 22 | /TDIR |
| 23 | :endif |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 24 | :" Dummy writing for making that sure gf doesn't fail even if the current |
| 25 | :" file is modified. It can be occurred when executing the following command |
| 26 | :" directly on Windows without fixing the 'fileformat': |
| 27 | :" > nmake -f Make_dos.mak test17.out |
| 28 | :w! test.out |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 29 | gf |
Bram Moolenaar | c84e3c1 | 2013-07-03 22:28:36 +0200 | [diff] [blame] | 30 | :set ff=unix |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 31 | :w! test.out |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 32 | :brewind |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 33 | ENDTEST |
| 34 | |
| 35 | ${CDIR}/test17a.in |
| 36 | $TDIR/test17a.in |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 37 | |
| 38 | STARTTEST |
| 39 | :" check for 'include' without \zs or \ze |
| 40 | :lang C |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 41 | :call delete("./Xbase.a") |
Bram Moolenaar | abc70bb | 2016-06-08 21:48:50 +0200 | [diff] [blame] | 42 | :call delete("Xdir1", "rf") |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 43 | :!mkdir Xdir1 |
| 44 | :!mkdir "Xdir1/dir2" |
| 45 | :e! Xdir1/dir2/foo.a |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 46 | i#include "bar.a": |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 47 | :w |
| 48 | :e Xdir1/dir2/bar.a |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 49 | i#include "baz.a": |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 50 | :w |
| 51 | :e Xdir1/dir2/baz.a |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 52 | i#include "foo.a": |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 53 | :w |
| 54 | :e Xbase.a |
| 55 | :set path=Xdir1/dir2 |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 56 | i#include <foo.a>: |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 57 | :w |
| 58 | :redir! >>test.out |
| 59 | :checkpath! |
| 60 | :redir END |
| 61 | :brewind |
| 62 | ENDTEST |
| 63 | |
| 64 | STARTTEST |
| 65 | :" check for 'include' with \zs and \ze |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 66 | :call delete("./Xbase.b") |
Bram Moolenaar | abc70bb | 2016-06-08 21:48:50 +0200 | [diff] [blame] | 67 | :call delete("Xdir1", "rf") |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 68 | :!mkdir Xdir1 |
| 69 | :!mkdir "Xdir1/dir2" |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 70 | :let &include='^\s*%inc\s*/\zs[^/]\+\ze' |
| 71 | :function! DotsToSlashes() |
| 72 | : return substitute(v:fname, '\.', '/', 'g') . '.b' |
| 73 | :endfunction |
| 74 | :let &includeexpr='DotsToSlashes()' |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 75 | :e! Xdir1/dir2/foo.b |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 76 | i%inc /bar/: |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 77 | :w |
| 78 | :e Xdir1/dir2/bar.b |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 79 | i%inc /baz/: |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 80 | :w |
| 81 | :e Xdir1/dir2/baz.b |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 82 | i%inc /foo/: |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 83 | :w |
| 84 | :e Xbase.b |
| 85 | :set path=Xdir1/dir2 |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 86 | i%inc /foo/: |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 87 | :w |
| 88 | :redir! >>test.out |
| 89 | :checkpath! |
| 90 | :redir END |
| 91 | :brewind |
| 92 | ENDTEST |
| 93 | |
| 94 | STARTTEST |
| 95 | :" check for 'include' with \zs and no \ze |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 96 | :call delete("./Xbase.c") |
Bram Moolenaar | abc70bb | 2016-06-08 21:48:50 +0200 | [diff] [blame] | 97 | :call delete("Xdir1", "rf") |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 98 | :!mkdir Xdir1 |
| 99 | :!mkdir "Xdir1/dir2" |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 100 | :let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze' |
| 101 | :function! StripNewlineChar() |
| 102 | : if v:fname =~ '\n$' |
| 103 | : return v:fname[:-2] |
| 104 | : endif |
| 105 | : return v:fname |
| 106 | :endfunction |
| 107 | :let &includeexpr='StripNewlineChar()' |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 108 | :e! Xdir1/dir2/foo.c |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 109 | i%inc bar.c: |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 110 | :w |
| 111 | :e Xdir1/dir2/bar.c |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 112 | i%inc baz.c: |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 113 | :w |
| 114 | :e Xdir1/dir2/baz.c |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 115 | i%inc foo.c: |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 116 | :w |
| 117 | :e Xdir1/dir2/FALSE.c |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 118 | i%inc foo.c: |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 119 | :w |
| 120 | :e Xbase.c |
| 121 | :set path=Xdir1/dir2 |
Bram Moolenaar | 901e58c | 2015-08-11 18:33:48 +0200 | [diff] [blame] | 122 | i%inc FALSE.c foo.c: |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 123 | :w |
| 124 | :redir! >>test.out |
| 125 | :checkpath! |
| 126 | :redir END |
| 127 | :brewind |
Bram Moolenaar | c84e3c1 | 2013-07-03 22:28:36 +0200 | [diff] [blame] | 128 | :" change "\" to "/" for Windows and fix 'fileformat' |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 129 | :e test.out |
| 130 | :%s#\\#/#g |
Bram Moolenaar | c84e3c1 | 2013-07-03 22:28:36 +0200 | [diff] [blame] | 131 | :set ff& |
Bram Moolenaar | d73895e | 2013-06-19 21:17:31 +0200 | [diff] [blame] | 132 | :w |
Bram Moolenaar | 058bdcf | 2012-07-25 13:46:30 +0200 | [diff] [blame] | 133 | :q |
| 134 | ENDTEST |
| 135 | |