Compare commits

...

1678 Commits

Author SHA1 Message Date
373c65104e patch 8.2.1036: popupwin test fails sometimes
Problem:    Popupwin test fails sometimes.
Solution:   Use WaitForAssert() instead of a sleep.
2020-06-22 19:24:23 +02:00
7633fe595e patch 8.2.1035: setreg() does not always clear the register
Problem:    setreg() does not always clear the register.
Solution:   Clear the register if the dict argument is empty. (Andy Massimino,
            closes #3370)
2020-06-22 19:10:56 +02:00
38041da1c2 patch 8.2.1034: compiler warning for uninitialized variables
Problem:    Compiler warning for uninitialized variables.
Solution:   Add initializations. (John Marriott)
2020-06-21 22:17:18 +02:00
73fef33014 Update runtime files 2020-06-21 22:12:03 +02:00
8d9437968b patch 8.2.1033: not easy to read the test time in the test output
Problem:    Not easy to read the test time in the test output.
Solution:   Align the times.  Make slow tests bold.
2020-06-21 20:39:37 +02:00
7fe875583b patch 8.2.1032: error message for declaring a variable cannot be translated
Problem:    Error message for declaring a variable cannot be translated.
Solution:   Enclose in _().  Make environment variable a separate message.
2020-06-21 20:38:28 +02:00
f5433fbfe4 patch 8.2.1031: build failure with Perl5.32
Problem:    Build failure with Perl5.32.
Solution:   Define a few more functions. (Felix Yan, closes #6310)
2020-06-21 20:06:54 +02:00
da58134eed patch 8.2.1030: reducing size of a terminal window may cause a crash
Problem:    Reducing size of a terminal window may cause a crash.
Solution:   Make sure the row and column don't become negative. (closes #6273)
2020-06-21 17:57:32 +02:00
23c5527373 patch 8.2.1029: Vim9: cannot chain function calls with -> at line start
Problem:    Vim9: cannot chain function calls with -> at line start.
Solution:   Peek ahead for a following line starting with "->". (closes #6306)
2020-06-21 16:58:13 +02:00
e55b1c098d patch 8.2.1028: Vim9: no error for declaring buffer, window, etc. variable
Problem:    Vim9: no error for declaring buffer, window, etc. variable.
Solution:   Give an error.  Unify the error messages.
2020-06-21 15:52:59 +02:00
820ffa567c patch 8.2.1027: GUI: multi-byte characters do not work in a terminal
Problem:    GUI: multi-byte characters do not work in a terminal.
Solution:   Do not assume a key is one byte. (closes #6304)
2020-06-21 15:09:14 +02:00
a3b7fdc1bb patch 8.2.1026: Vim9: cannot break the line after "->"
Problem:    Vim9: cannot break the line after "->".
Solution:   Check for a continuation line after "->", "[" and ".".  Ignore
            trailing white space.
2020-06-21 14:12:17 +02:00
8c524f76eb patch 8.2.1025: tabpage menu and tabline not sufficiently tested
Problem:    Tabpage menu and tabline not sufficiently tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6307)
2020-06-21 13:23:45 +02:00
6797966dfc patch 8.2.1024: Vim9: no error for using "let g:var = val"
Problem:    Vim9: no error for using "let g:var = val".
Solution:   Add an error.
2020-06-20 22:50:47 +02:00
0cb5bcf583 patch 8.2.1023: Vim9: redefining a function uses a new index every time
Problem:    Vim9: redefining a function uses a new index every time.
Solution:   When redefining a function clear the contents and re-use the
            index.
2020-06-20 18:19:09 +02:00
845e0ee594 patch 8.2.1022: various parts of code not covered by tests
Problem:    Various parts of code not covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6300)
2020-06-20 16:05:32 +02:00
a190548e91 patch 8.2.1021: Ruby interface not tested enough
Problem:    Ruby interface not tested enough.
Solution:   Add a couple more tests. (Dominique Pellé, closes #6301)
2020-06-20 16:00:25 +02:00
b326edf5b3 patch 8.2.1020: popupwin test fails in the GUI
Problem:    Popupwin test fails in the GUI.
Solution:   Send GUI byte sequence for <C-S-a>.
2020-06-20 15:03:38 +02:00
ef6746f637 patch 8.2.1019: mapping <M-S-a> does not work in the GUI
Problem:    Mapping <M-S-a> does not work in the GUI.
Solution:   Move the logic to remove the shift modifier to
            may_remove_shift_modifier() and also use it in the GUI.
2020-06-20 14:43:23 +02:00
280b0dc815 patch 8.2.1018: typo in enum value
Problem:    Typo in enum value. (James McCoy)
Solution:   Fix the typo.
2020-06-20 13:29:03 +02:00
1089374130 patch 8.2.1017: Appveyor output doesn't show MinGW console features
Problem:    Appveyor output doesn't show MinGW console features.
Solution:   List the features of the console build.
2020-06-19 22:37:47 +02:00
7e380030c1 patch 8.2.1016: Vim9: test fails when channel feature is missing
Problem:    Vim9: test fails when channel feature is missing.
Solution:   Process an :if command when skipping
2020-06-19 22:35:44 +02:00
20298ce679 patch 8.2.1015: popup filter gets key with modifier prepended
Problem:    Popup filter gets key with modifier prepended when using
            modifyOtherKeys.
Solution:   Remove the shift modifier when it is included in the key, also
            when the Alt or Meta modifier is used.
2020-06-19 21:46:52 +02:00
1e0b7b11db patch 8.2.1014: using "name" for a string result is confusing
Problem:    Using "name" for a string result is confusing.
Solution:   Rename to "end".
2020-06-19 19:30:53 +02:00
ec9b017b87 patch 8.2.1013: channel tests can be a bit flaky
Problem:    Channel tests can be a bit flaky.
Solution:   Set the g:test_is_flaky flag in SetUp().
2020-06-19 19:10:59 +02:00
3b74b6b4bb patch 8.2.1012: Vim9: cannot declare single character script variables
Problem:    Vim9: cannot declare single character script variables.
Solution:   Don't see "b:", "s:", etc. as namespace.  Fix item size of
            sn_var_vals.
2020-06-19 19:01:43 +02:00
c785b9a7f4 patch 8.2.1011: Vim9: some code not tested
Problem:    Vim9: some code not tested.
Solution:   Add a few more test cases.  Reorder checks for clearer error.
            Remove unreachable code.
2020-06-19 18:34:15 +02:00
128d307963 patch 8.2.1010: build failure in libvterm with debug enabled
Problem:    Build failure in libvterm with debug enabled. (John Little)
Solution:   Use "->" instead of ".".
2020-06-19 17:20:41 +02:00
c5b1c20b6b patch 8.2.1009: Vim9: some failures not checked for
Problem:    Vim9: some failures not checked for.
Solution:   Add test cases.  Remove unused code.
2020-06-18 22:43:27 +02:00
0779fab297 patch 8.2.1008: Vim9: no test for disassambling newly added instructions
Problem:    Vim9: no test for disassambling newly added instructions.
Solution:   Add a function and check disassembly.
2020-06-18 22:18:18 +02:00
c8cb883015 patch 8.2.1007: completion doesn't work after ":r ++arg !"
Problem:    Completion doesn't work after ":r ++arg !".
Solution:   Skip over "++arg". (Christian Brabandt, closes #6275,
            closes #6258)
2020-06-18 21:14:30 +02:00
efd8855594 patch 8.2.1006: Vim9: require unnecessary return statement
Problem:    Vim9: require unnecessary return statement.
Solution:   Improve the use of the had_return flag. (closes #6270)
2020-06-18 20:50:10 +02:00
9b68c82b7c patch 8.2.1005: Vim9: using TRUE/FALSE/MAYBE for ctx_skip is confusing
Problem:    Vim9: using TRUE/FALSE/MAYBE for ctx_skip is confusing.
Solution:   Use an enum value.
2020-06-18 19:31:08 +02:00
511feec6f0 patch 8.2.1004: line numbers below filler lines not always updated
Problem:    Line numbers below filler lines not always updated.
Solution:   Don't break out of the win_line() loop too early. (Christian
            Brabandt, closes #6294, closes #6138)
2020-06-18 19:15:27 +02:00
865af6b990 patch 8.2.1003: Vim9: return type of sort() is too generic
Problem:    Vim9: return type of sort() is too generic.
Solution:   Get type from the first argument. (closes #6292)
2020-06-18 18:45:49 +02:00
ceb2e77510 patch 8.2.1002: test may fail when run directly
Problem:    Test may fail when run directly.
Solution:   Check if g:run_nr exists. (Christian Brabandt, closes #6285)
2020-06-18 18:33:59 +02:00
72abcf42d4 patch 8.2.1001: Vim9: crash with nested "if" and assignment
Problem:    Vim9: crash with nested "if" and assignment.
Solution:   Skip more of the assignment.  Do not set ctx_skip when code is
            reachable.
2020-06-18 18:26:24 +02:00
158ea175a9 patch 8.2.1000: get error when leaving Ex mode with :visual
Problem:    Get error when leaving Ex mode with :visual and a CmdLineEnter
            autocommand was used.
Solution:   Reset ex_pressedreturn. (closes #6293)
2020-06-18 17:28:39 +02:00
2f03e5a0a9 patch 8.2.0999: moving to next sentence gets stuck on quote
Problem:    Moving to next sentence gets stuck on quote.
Solution:   When moving to the next sentence doesn't result in moving, advance
            a character and try again. (closes #6291)
2020-06-18 15:33:25 +02:00
3d9207ad2f patch 8.2.0998: not all tag code is tested
Problem:    Not all tag code is tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #6284)
2020-06-17 22:58:35 +02:00
856c1110c1 patch 8.2.0997: cannot execute a register containing line continuation
Problem:    Cannot execute a register containing line continuation.
Solution:   Concatenate lines where needed. (Yegappan Lakshmanan,
            closes #6272)
2020-06-17 21:47:23 +02:00
40a019f157 patch 8.2.0996: using "aucmdwin" in win_gettype() is not ideal
Problem:    Using "aucmdwin" in win_gettype() is not ideal.
Solution:   Rename to "autocmd".
2020-06-17 21:41:35 +02:00
e17f8817a1 patch 8.2.0995: insufficient testing for the readdir() sort option
Problem:    Insufficient testing for the readdir() sort option.
Solution:   Add a few more tests. (Christian Brabandt, closes #6278)
2020-06-17 20:30:44 +02:00
9bb3eb3e02 patch 8.2.0994: Vim9: missing function causes compilation error
Problem:    Vim9: missing function causes compilation error.
Solution:   Call test function indirectly.
2020-06-17 20:03:36 +02:00
f7d267ef20 patch 8.2.0993: Vim9 script test fails with normal features
Problem:    Vim9 script test fails with normal features.
Solution:   Use :func instead of :def for now.
2020-06-17 12:04:54 +02:00
101f4810e2 patch 8.2.0992: Vim9: crash when using :import in the Vim command
Problem:    Vim9: crash when using :import in the Vim command.
Solution:   Give an error when using :import outside of a script.
            (closes #6271)
2020-06-16 23:18:51 +02:00
0fe937fd86 patch 8.2.0991: cannot get window type for autocmd and preview window
Problem:    Cannot get window type for autocmd and preview window.
Solution:   Add types to win_gettype(). (Yegappan Lakshmanan, closes #6277)
2020-06-16 22:42:04 +02:00
a1bc6f1293 patch 8.2.0990: Using duplicate error number
Problem:    Using duplicate error number.
Solution:   Use an unused error number.  Add a test for it.
2020-06-16 22:27:39 +02:00
a6e8bf2d89 patch 8.2.0989: crash after resizing a terminal window
Problem:    Crash after resizing a terminal window. (August Masquelier)
Solution:   Add check for valid row in libvterm. (closes #6273)
2020-06-16 20:58:07 +02:00
84cf6bd81b patch 8.2.0988: getting directory contents is always case sorted
Problem:    Getting directory contents is always case sorted.
Solution:   Add sort options and v:collate. (Christian Brabandt, closes #6229)
2020-06-16 20:03:43 +02:00
9af78769ee patch 8.2.0987: Vim9: cannot assign to [var; var]
Problem:    Vim9: cannot assign to [var; var].
Solution:   Assign rest of items to a list.
2020-06-16 11:34:42 +02:00
c70222d12a patch 8.2.0986: MS-Windows: functions test fails
Problem:    MS-Windows: functions test fails.
Solution:   Only simplify ///path on Unix.
2020-06-15 23:18:12 +02:00
fdcbe3c3fe patch 8.2.0985: simplify() does not remove slashes from "///path"
Problem:    Simplify() does not remove slashes from "///path".
Solution:   Reduce > 2 slashes to one. (closes #6263)
2020-06-15 21:41:56 +02:00
ab176ce982 patch 8.2.0984: not using previous window when closing a shell popup window
Problem:    Not using previous window when closing a shell popup window.
Solution:   Use "prevwin" if it was set. (closes #6267)
2020-06-15 21:19:08 +02:00
ad72350360 patch 8.2.0983: SConstruct file type not recognized
Problem:    SConstruct file type not recognized.
Solution:   Use python for SConstruct files. (Roland Hieber)
2020-06-15 20:24:58 +02:00
b340baed9f patch 8.2.0982: insufficient testing for reading/writing files
Problem:    Insufficient testing for reading/writing files.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6257)
            Add "ui_delay" to test_override() and use it for the CTRL-O test.
2020-06-15 19:51:56 +02:00
47a519a933 patch 8.2.0981: Vim9: cannot compile "[var, var] = list"
Problem:    Vim9: cannot compile "[var, var] = list".
Solution:   Implement list assignment.
2020-06-14 23:05:10 +02:00
a65d8b5bb9 patch 8.2.0980: raku file extension not recognized
Problem:    Raku file extension not recognized. (Steven Penny)
Solution:   Recognize .raku and .rakumod. (closes #6255)
2020-06-14 20:04:32 +02:00
65e0d77a66 Update runtime files 2020-06-14 17:29:55 +02:00
8e20f75e58 patch 8.2.0979: a couple of screendump tests fail
Problem:    A couple of screendump tests fail.
Solution:   Do not redraw when clearing t_8u.
2020-06-14 16:43:47 +02:00
0c8059e0b6 patch 8.2.0978: leaking memory in termcodes test
Problem:    Leaking memory in termcodes test.
Solution:   Set t_8u with set_option_value().
2020-06-14 15:35:58 +02:00
8dff4cbf6d patch 8.2.0977: t_8u is made empty for the wrong terminals
Problem:    t_8u is made empty for the wrong terminals. (Dominique Pelle)
Solution:   Invert the check for TPR_YES. (closes #6254)
2020-06-14 14:34:16 +02:00
df7df59d85 patch 8.2.0976: some 'cpoptions' not tested
Problem:    Some 'cpoptions' not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6253)
2020-06-14 13:50:55 +02:00
984dddbef4 patch 8.2.0975: Vim9: script variable does not accept optional s: prefix
Problem:    Vim9: script variable does not accept optional s: prefix.
Solution:   Adjust the accepted syntax.
2020-06-14 12:50:24 +02:00
f3decc5830 patch 8.2.0974: Vim9: memory leak when script var has wrong type
Problem:    Vim9: memory leak when script var has wrong type.
Solution:   Free the variable name.
2020-06-13 19:56:38 +02:00
34db91f7a4 patch 8.2.0973: Vim9: type is not checked when assigning to a script variable
Problem:    Vim9: type is not checked when assigning to a script variable.
Solution:   Check the type.
2020-06-13 19:00:10 +02:00
c82a5b5da5 patch 8.2.0972: Vim9 script variable declarations need a type
Problem:    Vim9 script variable declarations need a type.
Solution:   Make "let var: type" declare a script-local variable.
2020-06-13 18:09:19 +02:00
142499de33 patch 8.2.0971: build with tiny features fails
Problem:    Build with tiny features fails.
Solution:   Add #ifdef.
2020-06-13 16:39:31 +02:00
0c0eddd3dd patch 8.2.0970: terminal properties are not available in Vim script
Problem:    Terminal properties are not available in Vim script.
Solution:   Add the terminalprops() function.
2020-06-13 15:47:25 +02:00
4a021dfbee patch 8.2.0969: assert_equal() output for dicts is hard to figure out
Problem:    Assert_equal() output for dicts is hard to figure out.
Solution:   Only show the different items.
2020-06-13 15:13:38 +02:00
c9630d2658 patch 8.2.0968: no proper testing of the 'cpoptions' flags
Problem:    No proper testing of the 'cpoptions' flags.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6251)
2020-06-13 13:20:48 +02:00
71ccd03ee8 patch 8.2.0967: unnecessary type casts for vim_strnsave()
Problem:    Unnecessary type casts for vim_strnsave().
Solution:   Remove the type casts.
2020-06-12 22:59:11 +02:00
722e505d1a patch 8.2.0966: 'shortmess' flag "n" not used in two places
Problem:    'shortmess' flag "n" not used in two places.
Solution:   Make use of the "n" flag consistent. (Nick Jensen, closes #6245,
            closes #6244)
2020-06-12 22:31:00 +02:00
5055c56cfb patch 8.2.0965: has_funcundefined() is not used
Problem:    Has_funcundefined() is not used.
Solution:   Delete the function. (Dominique Pellé, closes #6242)
2020-06-12 22:15:31 +02:00
37d1673ce0 patch 8.2.0964: TextYankPost does not provide info about Visual selection
Problem:    TextYankPost does not provide info about Visual selection.
Solution:   Add the 'visual' key in v:event. (closes #6249)
2020-06-12 22:09:01 +02:00
6c6be9e88d patch 8.2.0963: number increment/decrement does not work with 'virtualedit'
Problem:    Number increment/decrement does not work with 'virtualedit'.
Solution:   Handle coladd changing. (Christian Brabandt, closes #6240,
            closes #923)
2020-06-12 20:19:44 +02:00
f6e020b122 patch 8.2.0962: terminal test sometimes hangs on Travis
Problem:    Terminal test sometimes hangs on Travis.
Solution:   Do show output for this test temporarily.
2020-06-12 20:11:55 +02:00
ec68028604 patch 8.2.0961: MS-Windows: no completion for locales
Problem:    MS-Windows: no completion for locales.
Solution:   Use the directories in $VIMRUNTIME/lang to complete locales.
            (Christian Brabandt, closes 36248)
2020-06-12 19:35:32 +02:00
9721fb4ea3 patch 8.2.0960: cannot use :import in legacy Vim script
Problem:    Cannot use :import in legacy Vim script.
Solution:   Support :import in any Vim script.
2020-06-11 23:10:46 +02:00
00e260bb6c patch 8.2.0959: using 'quickfixtextfunc' is a bit slow
Problem:    Using 'quickfixtextfunc' is a bit slow.
Solution:   Process a list of entries. (Yegappan Lakshmanan, closes #6234)
2020-06-11 19:35:52 +02:00
1de5f7c81d patch 8.2.0958: not sufficient testing for buffer writing
Problem:    Not sufficient testing for buffer writing.
Solution:   Add a few tests. (Yegappan Lakshmanan, closes #6238)
2020-06-11 19:22:43 +02:00
2d4070d3b0 patch 8.2.0957: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize one variable.
2020-06-11 12:30:13 +02:00
e0ebeda4d8 patch 8.2.0956: spell test fails
Problem:    Spell test fails.
Solution:   Add missing change the spell checking.
2020-06-10 22:17:58 +02:00
215f49c4d7 patch 8.2.0955: build fails
Problem:    Build fails.
Solution:   Add missing struct change.
2020-06-10 22:12:04 +02:00
f1f0ff9557 patch 8.2.0954: not all desktop files are recognized
Problem:    Not all desktop files are recognized.
Solution:   Add the *.directory pattern. (Eisuke Kawashima, closes #3317)
2020-06-10 22:07:52 +02:00
362b44bd4a patch 8.2.0953: spell checking doesn't work for CamelCased words
Problem:    Spell checking doesn't work for CamelCased words.
Solution:   Add the "camel" value in the new option 'spelloptions'.
            (closes #1235)
2020-06-10 21:47:00 +02:00
be5ee8686a patch 8.2.0952: no simple way to interrupt Vim
Problem:    No simple way to interrupt Vim.
Solution:   Add the SigUSR1 autocommand, triggered by SIGUSR1. (Jacob Hayes,
            closes #1718)
2020-06-10 20:56:58 +02:00
6ba24d8763 patch 8.2.0951: search stat test has leftover from debugging
Problem:    Search stat test has leftover from debugging.
Solution:   Remove line that writes a file. (Christian Brabandt, closes #6224)
2020-06-10 20:21:09 +02:00
13b8205b44 patch 8.2.0950: tagjump test fails
Problem:    Tagjump test fails.
Solution:   Adjust expected text of the prompt.
2020-06-10 17:13:48 +02:00
ea1233fccf patch 8.2.0949: strptime() does not use DST
Problem:    Strptime() does not use DST.
Solution:   Set the tm_isdst field to -1. (Tomáš Janoušek, closes #6230)
2020-06-10 16:54:13 +02:00
d281b7c227 patch 8.2.0948: spell test fails
Problem:    Spell test fails.
Solution:   Adjust expected text of the prompt.
2020-06-10 16:39:32 +02:00
ab54032f29 patch 8.2.0947: readdirex() doesn't handle broken link properly
Problem:    Readdirex() doesn't handle broken link properly.
Solution:   Small fixes to readdirex(). (Christian Brabandt, closes #6226,
            closes #6213)
2020-06-10 15:55:36 +02:00
eebd555733 patch 8.2.0946: cannot use "q" to cancel a number prompt
Problem:    Cannot use "q" to cancel a number prompt.
Solution:   Recognize "q" instead of ignoring it.
2020-06-10 15:45:57 +02:00
152e79e94b patch 8.2.0945: cannot use "z=" when 'spell' is off
Problem:    Cannot use "z=" when 'spell' is off.
Solution:   Make "z=" work even when 'spell' is off. (Christian Brabandt,
            Gary Johnson, closes #6227)
2020-06-10 15:32:08 +02:00
253ea9fa42 patch 8.2.0944: xxd test leaves file behind
Problem:    Xxd test leaves file behind.
Solution:   Delete the file "XXDfile". (Christian Brabandt, closes #6228)
2020-06-10 14:21:20 +02:00
32ee627750 patch 8.2.0943: displaying ^M or ^J depends on current buffer
Problem:    Displaying ^M or ^J depends on current buffer.
Solution:   Pass the displayed buffer to transchar(). (closes #6225)
2020-06-10 14:16:49 +02:00
0e390f40e9 patch 8.2.0942: expanding to local dir after homedir keeps "~/"
Problem:    Expanding to local dir after homedir keeps "~/".
Solution:   Adjust modify_fname(). (Christian Brabandt, closes #6205,
            closes #5979)
2020-06-10 13:12:28 +02:00
517f00f788 patch 8.2.0941: detecting terminal properties is unstructured
Problem:    Detecting terminal properties is unstructured.
Solution:   Add a table with terminal properties.  Set properties when a
            terminal is detected.
2020-06-10 12:15:51 +02:00
0ca8b5ba7b patch 8.2.0940: build failure with tiny features
Problem:    Build failure with tiny features.
Solution:   Add #ifdef.  Add UNUSED.  A bit more cleaning up.
2020-06-09 21:35:36 +02:00
218cb0fb62 patch 8.2.0939: checking for term escape sequences is long and confusing
Problem:    checking for term escape sequences is long and confusing
Solution:   Refactor code into separate functions.
2020-06-09 21:26:36 +02:00
59de417b90 patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Problem:    NFA regexp uses tolower() to compare ignore-case. (Thayne McCombs)
Solution:   Use utf_fold() when possible. (ref. neovim #12456)
2020-06-09 19:34:54 +02:00
dcf59c37d0 patch 8.2.0937: asan failure in the flatten() test
Problem:    Asan failure in the flatten() test.
Solution:   Free the flattened list.
2020-06-09 17:30:04 +02:00
a45551a535 patch 8.2.0936: some terminals misinterpret the code for getting cursor style
Problem:    Some terminals misinterpret the code for getting cursor style.
Solution:   Send a sequence to the terminal and check the result. (IWAMOTO
            Kouichi, closes #2126)  Merged with current code.
2020-06-09 15:57:37 +02:00
077a1e670a patch 8.2.0935: flattening a list with existing code is slow
Problem:    Flattening a list with existing code is slow.
Solution:   Add flatten(). (Mopp, closes #3676)
2020-06-08 20:50:43 +02:00
ec98e93a82 patch 8.2.0934: lhelpgrep twice in help window doesn't jump to the help topic
Problem:    Running lhelpgrep twice in a help window doesn't jump to the help
            topic.
Solution:   Check whether any window with the location list is present.
            (Yegappan Lakshmanan, closes #6215)
2020-06-08 19:35:59 +02:00
7ba5a7eff3 patch 8.2.0933: 'quickfixtextfunc' does not get window ID of location list
Problem:    'quickfixtextfunc' does not get window ID of location list.
Solution:   Add "winid" to the dict argument. (Yegappan Lakshmanan,
            closes #6222)
2020-06-08 19:20:27 +02:00
f154f3ab2c patch 8.2.0932: missspelling spelllang
Problem:    Missspelling spelllang.
Solution:   Add an "l". (Dominique Pelle)
2020-06-08 18:54:49 +02:00
6938e27abd patch 8.2.0931: some remarks about BeOS remain
Problem:    Some remarks about BeOS remain.
Solution:   Remove BeOS remarks from the help and other files. (Emir Sari,
            closes #6221)
2020-06-07 22:23:19 +02:00
b5e18f29fa patch 8.2.0930: script filetype detection trips over env -S argument
Problem:    Script filetype detection trips over env -S argument.
Solution:   Remove "-S" and "--ignore-environment". (closes #5013)
            Add tests.
2020-06-07 21:58:54 +02:00
cc613031b9 patch 8.2.0929: v:register is not cleared after an operator was executed
Problem:    v:register is not cleared after an operator was executed.
Solution:   Clear v:register after finishing an operator (Andy Massimino,
            closes #5305)
2020-06-07 21:31:18 +02:00
acc2240640 Update runtime files 2020-06-07 21:07:18 +02:00
df44a27b53 patch 8.2.0928: many type casts are used for vim_strnsave()
Problem:    Many type casts are used for vim_strnsave().
Solution:   Make the length argument size_t instead of int. (Ken Takata,
            closes #5633)  Remove some type casts.
2020-06-07 20:49:05 +02:00
da84ac2a6f patch 8.2.0927: some sshconfig and ssdhconfig files are not recognized
Problem:    Some sshconfig and ssdhconfig files are not recognized.
Solution:   Add filetype patterns.
2020-06-07 20:07:43 +02:00
951a2fb1b8 patch 8.2.0926: cmdline test fails on Appveyor
Problem:    Cmdline test fails on Appveyor.
Solution:   Add CR to the commands. (Naruhiko Nishino, closes #6220)
2020-06-07 19:38:10 +02:00
1f1fd44ef7 patch 8.2.0925: getcompletion() does not return command line arguments
Problem:    Getcompletion() does not return command line arguments.
Solution:   Add the "cmdline" option. (Shougo, closes #1140)
2020-06-07 18:45:14 +02:00
bb861e293e patch 8.2.0924: cannot save and restore a register properly
Problem:    Cannot save and restore a register properly.
Solution:   Add getreginfo() and make setreg() accept a dictionary. (Andy
            Massimino, closes #3370)
2020-06-07 18:16:36 +02:00
c82dd86084 patch 8.2.0923: cmdline test is slow
Problem:    Cmdline test is slow.
Solution:   Use WaitForAssert().
2020-06-07 17:30:33 +02:00
48af321a33 patch 8.2.0922: search test fails
Problem:    Search test fails.
Solution:   Remove failure tests for calls that no longer fail.
2020-06-07 17:20:02 +02:00
4fdb8bd054 patch 8.2.0921: CTRL-W T in cmdline window causes trouble
Problem:    CTRL-W T in cmdline window causes trouble.
Solution:   Disallow CTRL-W T in the cmdline window.  Add more tests.
            (Naruhiko Nishino, closes #6219)
2020-06-07 17:03:21 +02:00
5b157fe2ed patch 8.2.0920: writing viminfo fails with a circular reference
Problem:    Writing viminfo fails with a circular reference.
Solution:   Use copyID to detect the cycle. (closes #6217)
2020-06-07 16:08:08 +02:00
673fc3e23f patch 8.2.0919: merging modifier for modifyOtherKeys is done twice
Problem:    Merging modifier for modifyOtherKeys is done twice.
Solution:   Remove the merging done in vgetc().
2020-06-07 15:46:11 +02:00
a9c0104947 patch 8.2.0918: duplicate code for evaluating expression argument
Problem:    Duplicate code for evaluating expression argument.
Solution:   Merge the code and make the use more flexible.
2020-06-07 14:50:50 +02:00
e928366de5 patch 8.2.0917: quickfix entries do not suport a "note" type
Problem:    Quickfix entries do not suport a "note" type.
Solution:   Add support for "note". (partly by Yegappan Lakshmanan,
            closes #5527, closes #6216)
2020-06-07 14:10:47 +02:00
975a880a13 patch 8.2.0916: mapping with partly modifyOtherKeys code does not work
Problem:    Mapping with partly modifyOtherKeys code does not work.
Solution:   If there is no mapping with a separate modifier include the
            modifier in the key and then try mapping again. (closes #6200)
2020-06-06 22:36:24 +02:00
adc17a5f9d patch 8.2.0915: search() cannot skip over matches like searchpair() can
Problem:    Search() cannot skip over matches like searchpair() can.
Solution:   Add an optional "skip" argument. (Christian Brabandt, closes #861)
2020-06-06 18:37:51 +02:00
d8df304c59 patch 8.2.0914: MS-Windows: cannot specify a "modified by" text
Problem:    MS-Windows: cannot specify a "modified by" text.
Solution:   Add MODIFIED_BY in the MSVC build file.  (Chen Lei, closes #1275)
2020-06-06 16:18:46 +02:00
439c036ed0 patch 8.2.0913: code for resetting v:register is duplicated
Problem:    Code for resetting v:register is duplicated.
Solution:   Add reset_reg_var().
2020-06-06 15:58:03 +02:00
11f1ffd182 patch 8.2.0912: a few test cases for CJK formatting are disabled
Problem:    A few test cases for CJK formatting are disabled.
Solution:   Fix the tests and enable them. (closes #6212)
2020-06-06 15:23:26 +02:00
9b7cce28d5 patch 8.2.0911: crash when opening a buffer for the cmdline window fails
Problem:    Crash when opening a buffer for the cmdline window fails. (Chris
            Barber)
Solution:   Check do_ecmd() succeeds.  Reset got_int if "q" was used at the
            more prompt. (closes #6211)
2020-06-06 15:14:08 +02:00
87fda407f8 Also fix the patch number. 2020-06-06 13:25:31 +02:00
fe712ced6e Fix duplicated code that only appears in git. 2020-06-06 13:17:59 +02:00
8f1dde5021 patch 8.2.0910: Vim is not reproducibly buildable
Problem:    Vim is not reproducibly buildable.
Solution:   Use the $SOURCE_DATE_EPOCH environment variable in configure.
            (James McCoy, closes #513)  Give a warning about using it.
2020-06-05 23:16:29 +02:00
002bc79991 patch 8.2.0909: cannot go back to the previous local directory
Problem:    Cannot go back to the previous local directory.
Solution:   Add "tcd -" and "lcd -". (Yegappan Lakshmanan, closes #4362)
2020-06-05 22:33:42 +02:00
3fffa97159 patch 8.2.0908: crash when changing the function table while listing it
Problem:    Crash when changing the function table while listing it.
Solution:   Bail out when the function table changes. (closes #6209)
2020-06-05 21:06:10 +02:00
07188fc5ef patch 8.2.0907: when using :global clipboard isn't set correctly
Problem:    When using :global clipboard isn't set correctly.
Solution:   Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian
            Brabandt, closes #6203, closes #6198)
2020-06-05 20:03:16 +02:00
ea563cc22b patch 8.2.0906: when setting 'termguicolors' SpellBad is no longer red
Problem:    When setting 'termguicolors' SpellBad is no longer red.
Solution:   Only use the RGB guisp color for cterm when using the "underline"
            or "undercurl" attributes to avoid the background color to be
            cleared. Also make t_8u empty when the termresponse indicates a
            real xterm. (closes #6207)
2020-06-05 19:36:57 +02:00
e0c3c3d6cb patch 8.2.0905: test coverage could be better
Problem:    Test coverage could be better.
Solution:   Add a couple of tests. (Dominique Pelle, closes #6202)
2020-06-04 22:46:04 +02:00
46cd43bda1 patch 8.2.0904: assuming modifyOtherKeys for rhs of mapping
Problem:    Assuming modifyOtherKeys for rhs of mapping.
Solution:   Ignore seenModifyOtherKeys for mapped characters. (closes #6200)
2020-06-04 22:22:11 +02:00
852ea366d6 patch 8.2.0903: comparing WINVER does not work correctly
Problem:    comparing WINVER does not work correctly.
Solution:   Use arithmethic expansion. (Ozaki Kiichi, closes #6197)
2020-06-04 21:32:49 +02:00
442a85369f patch 8.2.0902: using searchcount() in 'statusline' causes an error
Problem:    Using searchcount() in 'statusline' causes an error.
Solution:   Avoid saving/restoring the search patten recursively.
            (closes #6194)
2020-06-04 20:56:09 +02:00
e52702f003 patch 8.2.0901: formatting CJK text isn't optimal
Problem:    Formatting CJK text isn't optimal.
Solution:   Properly break CJK lines. (closes #3875)
2020-06-04 18:22:13 +02:00
9155825b24 patch 8.2.0900: function list test fails on MS-Windows
Problem:    Function list test fails on MS-Windows.
Solution:   Make sure the fileformat is "unix"
2020-06-04 17:19:05 +02:00
30cc44a97f patch 8.2.0899: assert_equalfile() does not give a hint about the difference
Problem:    Assert_equalfile() does not give a hint about the difference.
Solution:   Display the last seen text.
2020-06-04 16:52:40 +02:00
6b0e528368 patch 8.2.0898: missing help for a function goes unnoticed
Problem:    Missing help for a function goes unnoticed.
Solution:   Add a test. (Gary Johnson)
2020-06-04 15:52:25 +02:00
ebacddbc16 patch 8.2.0897: list of functions in patched version is outdated
Problem:    List of functions in patched version is outdated.
Solution:   Update the function lists only.
2020-06-04 15:22:21 +02:00
14681627f3 patch 8.2.0896: crash when calling searchcount() with a string
Problem:    Crash when calling searchcount() with a string.
Solution:   Check the argument is a dict. (closes #6192)
2020-06-03 22:57:39 +02:00
408c23b079 patch 8.2.0895: :mkspell output does not mention the tree type
Problem:    :mkspell output does not mention the tree type.
Solution:   Back out increasing the limits, it has no effect.  Mention the
            tree being compressed.  Only give a message once per second.
2020-06-03 22:15:45 +02:00
59f88fbf24 patch 8.2.0894: :mkspell can take very long if the word count is high
Problem:    :mkspell can take very long if the word count is high.
Solution:   Use long to avoid negative numbers.  Increase the limits by 20% if
            the compression did not have effect.
2020-06-03 20:51:11 +02:00
fb517bac23 patch 8.2.0893: assert_equalfile() does not take a third argument
Problem:    Assert_equalfile() does not take a third argument.
Solution:   Implement the third argument. (Gary Johnson)
2020-06-03 19:55:35 +02:00
c5acc0f7fe patch 8.2.0892: ubsan warns for undefined behavior
Problem:    Ubsan warns for undefined behavior.
Solution:   Use unsigned instead of signed variable. (Dominique Pelle,
            closes #6193)
2020-06-03 18:55:38 +02:00
cc836556d9 patch 8.2.0891: clang warns for invalid conversion
Problem:    Clang warns for invalid conversion.
Solution:   Use zero instead of INVALCOLOR.
2020-06-03 10:04:49 +02:00
1e5f8f6d65 patch 8.2.0890: no color in terminal window when 'termguicolor' is set
Problem:    No color in terminal window when 'termguicolor' is set.
Solution:   Clear the underline color. (closes #6186)
2020-06-02 23:18:24 +02:00
791fb1bcda patch 8.2.0889: using old style comments
Problem:    Using old style comments.
Solution:   Use // comments. (Yegappan Lakshmanan, closes #6190)
2020-06-02 22:24:36 +02:00
441d60efd8 patch 8.2.0888: readdirex() returns size -2 for a directory
Problem:    Readdirex() returns size -2 for a directory.
Solution:   Add missing "else". (Ken Takata, closes #6185)
2020-06-02 22:19:50 +02:00
57f75a5a36 patch 8.2.0887: searchcount().exact_match is 1 right after a match
Problem:    Searchcount().exact_match is 1 right after a match.
Solution:   Use LT_POS() instead of LTOREQ_POS(). (closes #6189)
2020-06-02 22:06:21 +02:00
c17e66c5c0 patch 8.2.0886: cannot use octal numbers in scriptversion 4
Problem:    Cannot use octal numbers in scriptversion 4.
Solution:   Add the "0o" notation. (Ken Takata, closes #5304)
2020-06-02 21:38:22 +02:00
3ac498c8a1 patch 8.2.0885: "make shadow" does not link new lua test dir
Problem:    "make shadow" does not link new lua test dir.
Solution:   Also link testdir/testluaplugin. (Elimar Riesebieter)
2020-06-02 20:25:36 +02:00
ea6561af92 patch 8.2.0884: searchcount() test fails on slower systems
Problem:    Searchcount() test fails on slower systems.
Solution:   Set a longer timeout.
2020-06-01 21:32:45 +02:00
5fbf3bc3f9 patch 8.2.0883: memory leak in test 49
Problem:    Memory leak in test 49.
Solution:   Free "sfile" from the exception.
2020-06-01 21:13:11 +02:00
48b1c21809 patch 8.2.0882: leaking memory when using reduce()
Problem:    Leaking memory when using reduce().
Solution:   Free the intermediate value.
2020-06-01 20:11:02 +02:00
d6a77f95ee patch 8.2.0881: compiler warning for argument type
Problem:    Compiler warning for argument type.
Solution:   Add type cast. (Mike Williams)
2020-06-01 19:14:12 +02:00
109aece79d patch 8.2.0880: leaking memory when using searchcount()
Problem:    Leaking memory when using searchcount().
Solution:   Free the last used search pattern.
2020-06-01 19:08:54 +02:00
f9ca08e95f patch 8.2.0879: compiler warning for unused function argument
Problem:    Compiler warning for unused function argument.
Solution:   Add UNUSED.
2020-06-01 18:56:03 +02:00
85629985b7 patch 8.2.0878: no reduce() function
Problem:    No reduce() function.
Solution:   Add a reduce() function. (closes #5481)
2020-06-01 18:39:20 +02:00
e8f5ec0d30 patch 8.2.0877: cannot get the search statistics
Problem:    Cannot get the search statistics.
Solution:   Add the searchcount() function. (Fujiwara Takuya, closes #4446)
2020-06-01 17:28:35 +02:00
950587242c patch 8.2.0876: :pwd does not give a hint about the scope of the directory
Problem:    :pwd does not give a hint about the scope of the directory
Solution:   Make ":verbose pwd" show the scope. (Takuya Fujiwara, closes #5469)
2020-06-01 16:26:19 +02:00
6c9ba04280 patch 8.2.0875: getting attributes for directory entries is slow
Problem:    Getting attributes for directory entries is slow.
Solution:   Add readdirex(). (Ken Takata, closes #5619)
2020-06-01 16:09:41 +02:00
d14fd5285e patch 8.2.0874: signals test is a bit flaky
Problem:    Signals test is a bit flaky.
Solution:   Flush the XautoOut file.  Delete files that may be left behind
            from a failure. (Dominique Pelle, closes #6179)
2020-06-01 15:05:19 +02:00
2891459b81 patch 8.2.0873: a .jl file can be sawfish (lisp) or Julia
Problem:    A .jl file can be sawfish (lisp) or Julia.
Solution:   Do not recognize *.jl as lisp, since it might be Julia.
            (closes #6178)
2020-06-01 14:43:59 +02:00
f15c8b6eb3 patch 8.2.0872: XIM code is mixed with multi-byte code
Problem:    XIM code is mixed with multi-byte code.
Solution:   Move the XIM code to a separate file. (Yegappan Lakshmanan,
            closes #6177)
2020-06-01 14:34:43 +02:00
f17e7ea67a patch 8.2.0871: cannot use getmarklist() as a method
Problem:    Cannot use getmarklist() as a method.
Solution:   Make getmarklist() work as a method.  Add one to the column
            number to match getpos(). (Yegappan Lakshmanan, closes #6176)
2020-06-01 14:14:44 +02:00
ad772a63ec patch 8.2.0870: MS-Windows: Control keys don't work in the GUI
Problem:    MS-Windows: Control keys don't work in the GUI.
Solution:   Don't set seenModifyOtherKeys for now. (Yasuhiro Matsumoto,
            closes #6175)
2020-06-01 14:07:49 +02:00
858ba06d5f patch 8.2.0869: it is not possible to customize the quickfix window contents
Problem:    It is not possible to customize the quickfix window contents.
Solution:   Add 'quickfixtextfunc'. (Yegappan Lakshmanan, closes #5465)
2020-05-31 23:11:59 +02:00
2245ae18e3 patch 8.2.0868: trim() always trims both ends
Problem:    trim() always trims both ends.
Solution:   Add an argument to only trim the beginning or end. (Yegappan
            Lakshmanan, closes #6126)
2020-05-31 22:20:36 +02:00
fccd93f091 patch 8.2.0867: using \{xxx} for encoding a modifier is not nice
Problem:    Using \{xxx} for encoding a modifier is not nice.
Solution:   Use \<*xxx> instead, since it's the same as \<xxx> but producing a
            different code.
2020-05-31 22:06:51 +02:00
494e9069cb patch 8.2.0866: not enough tests for buffer writing
Problem:    Not enough tests for buffer writing.
Solution:   Add more tests. Use CheckRunVimInTerminal in more places.
            (Yegappan Lakshmanan, closes #6167)
2020-05-31 21:28:02 +02:00
e35a52aee7 patch 8.2.0865: syntax foldlevel is taken from the start of the line
Problem:    Syntax foldlevel is taken from the start of the line.
Solution:   Add ":syn foldlevel" to be able to use the minimal foldlevel in
            the line. (Brad King, closes #6087)
2020-05-31 19:48:53 +02:00
d881b516da patch 8.2.0864: pragmas are indented all the way to the left
Problem:    Pragmas are indented all the way to the left.
Solution:   Add an option to indent progmas like normal code. (Max Rumpf,
            closes #5468)
2020-05-31 17:49:30 +02:00
e023e88bed patch 8.2.0863: cannot set a separate color for underline/undercurl
Problem:    Cannot set a separate color for underline/undercurl.
Solution:   Add the t_AU and t_8u termcap codes. (Timur Celik, closes #6011)
2020-05-31 16:42:30 +02:00
b10090928c patch 8.2.0862: ":term ++curwin" makes the current buffer hidden
Problem:    ":term ++curwin" makes the current buffer hidden. (Harm te
            Hennepe)
Solution:   Do not hide the current buffer. (closes #6170)
2020-05-31 16:04:42 +02:00
cfb4b47de0 patch 8.2.0861: cannot easily get all the current marks
Problem:    Cannot easily get all the current marks.
Solution:   Add getmarklist(). (Yegappan Lakshmanan, closes #6032)
2020-05-31 15:41:57 +02:00
aaad995f83 patch 8.2.0860: cannot use CTRL-A and CTRL-X on unsigned numbers
Problem:    Cannot use CTRL-A and CTRL-X on unsigned numbers.
Solution:   Add "unsigned" to 'nrformats'. (Naruhiko Nishino, closes #6144)
2020-05-31 15:08:59 +02:00
f09715bc5c patch 8.2.0859: no Turkish translation of the manual
Problem:    No Turkish translation of the manual.
Solution:   Add Turkish translations. (Emir Sarı, closes #5641)
2020-05-31 14:25:22 +02:00
788fbb4707 patch 8.2.0858: not easy to require Lua modules
Problem:    Not easy to require Lua modules.
Solution:   Improve use of Lua path. (Prabir Shrestha, closes #6098)
2020-05-31 14:08:12 +02:00
5cd1cb9ff9 patch 8.2.0857: GTK cell height can be a pixel too much
Problem:    GTK cell height can be a pixel too much.
Solution:   Subtract 3 instead of 1 when rounding. (closes #6168)
2020-05-31 13:53:04 +02:00
928eec649b patch 8.2.0856: CTRL-S stops output
Problem:    CTRL-S stops output.
Solution:   Invert the IXON flag. (closes #6166)
2020-05-31 13:09:47 +02:00
ebe9d34aa0 patch 8.2.0855: GUI tests fail because the test doesn't use a modifier
Problem:    GUI tests fail because the test doesn't use a modifier.
Solution:   Add "\{xxx}" to be able to encode a modifier.
2020-05-30 21:52:54 +02:00
363d6148df patch 8.2.0854: xxd cannot show offset as a decimal number
Problem:    Xxd cannot show offset as a decimal number.
Solution:   Add the "-d" flag. (Aapo Rantalainen, closes #5616
2020-05-30 20:50:25 +02:00
ca70c07b72 patch 8.2.0853: ml_delete() often called with FALSE argument
Problem:    ml_delete() often called with FALSE argument.
Solution:   Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE.
2020-05-30 20:30:46 +02:00
d6cd5ffade patch 8.2.0852: cannot map CTRL-S on some systems
Problem:    Cannot map CTRL-S on some systems.
Solution:   Do not use CTRL-S for flow control.
2020-05-30 20:05:02 +02:00
f4ae6b245a patch 8.2.0851: can't distinguish <M-a> from accented "a" in the GUI
Problem:    Can't distinguish <M-a> from accented "a" in the GUI.
Solution:   Use another way to make mapping <C-bslash> work. (closes #6163)
2020-05-30 19:52:46 +02:00
95da136142 patch 8.2.0850: MS-Windows: exepath() works different from cmd.exe
Problem:    MS-Windows: exepath() works different from cmd.exe.
Solution:   Make exepath() work better on MS-Windows. (closes #6115)
2020-05-30 18:37:55 +02:00
041c7107f2 patch 8.2.0849: BeOS code is not maintained and probably unused
Problem:    BeOS code is not maintained and probably unused.
Solution:   Remove the BeOS code. (Emir Sari, closes #5817)
2020-05-30 18:14:57 +02:00
06b7b58455 patch 8.2.0848: MS-Windows: the Windows terminal code has some flaws
Problem:    MS-Windows: the Windows terminal code has some flaws.
Solution:   Do not redraw the right edge of the screen.  Remove the background
            color trick.  Flush the screen output buffer often.  (Nobuhiro
            Takasaki, #5546)
2020-05-30 17:49:25 +02:00
367d59e6ba patch 8.2.0847: typval related code is spread out
Problem:    Typval related code is spread out.
Solution:   Move code to new typval.c file. (Yegappan Lakshmanan, closes #6093)
2020-05-30 17:06:14 +02:00
d5c2c7763d patch 8.2.0846: build failure with small features
Problem:    Build failure with small features.
Solution:   Add #ifdef.
2020-05-30 16:17:33 +02:00
87be9be1db patch 8.2.0845: text properties crossing lines not handled correctly
Problem:    Text properties crossing lines not handled correctly.
Solution:   When joining lines merge text properties if possible.
            (Axel Forsman, closes #5839, closes #5683)
2020-05-30 15:32:02 +02:00
a9d4b84d97 patch 8.2.0844: text properties crossing lines not handled correctly
Problem:    Text properties crossing lines not handled correctly.
Solution:   When saving for undo include an extra line when needed and do not
            adjust properties when undoing. (Axel Forsman, closes #5875)
2020-05-30 14:46:52 +02:00
0016fd2e29 patch 8.2.0843: filetype elm not detected
Problem:    Filetype elm not detected.
Solution:   Recognize *.elm files. (closes #6157)
2020-05-30 13:15:14 +02:00
208534d9ae patch 8.2.0842: MS-Windows: channel tests fail
Problem:    MS-Windows: channel tests fail.
Solution:   Adjust #ifdefs. (closes #6162)
2020-05-30 13:07:39 +02:00
823654bc06 patch 8.2.0841: 'verbose' value 16 causes duplicate output
Problem:    'verbose' value 16 causes duplicate output.
Solution:   Combine levels 15 and 16 into one message. (Christian Brabandt,
            closes #6153)
2020-05-29 23:03:09 +02:00
6cb0726215 patch 8.2.0840: search match count wrong when only match is in fold
Problem:    Search match count wrong when only match is in fold.
Solution:   Update search stats when in a closed fold. (Christian Brabandt,
            closes #6160, closes #6152)
2020-05-29 22:49:43 +02:00
b42c0d5427 patch 8.2.0839: dropping modifier when putting a character back in typeahead
Problem:    Dropping modifier when putting a character back in typeahead.
Solution:   Add modifier to ins_char_typebuf(). (closes #6158)
2020-05-29 22:41:41 +02:00
09307e3bc1 patch 8.2.0838: MS-Windows: compiler warning for uninitialized variables
Problem:    MS-Windows: compiler warning for uninitialized variables.
Solution:   Initialize variables.
2020-05-29 21:42:55 +02:00
b60db8ba14 patch 8.2.0837: compiler warning for value set but not used
Problem:    Compiler warning for value set but not used.
Solution:   Move variable inside #ifdef.
2020-05-29 21:38:42 +02:00
14798ab9a5 patch 8.2.0836: not all :cdo output is visible
Problem:    Not all :cdo output is visible.
Solution:   Reset 'shortmess' temporarily. (Yegappan Lakshmanan, closes #6155)
2020-05-28 21:30:11 +02:00
c998370562 patch 8.2.0835: Motif: mapping <C-bslash> still doesn't work
Problem:    Motif: mapping <C-bslash> still doesn't work.
Solution:   Accept CSI for K_SPECIAL.  Do not apply CTRL to the character
            early.  (closes #6150)
2020-05-28 21:03:53 +02:00
3f65c66df9 patch 8.2.0834: :drop command in terminal popup causes problems
Problem:    :drop command in terminal popup causes problems.
Solution:   Check for using a popup window. (closes #6151)
2020-05-27 23:15:16 +02:00
ca5bc74607 patch 8.2.0833: mapping <C-bslash> doesn't work in the GUI
Problem:    Mapping <C-bslash> doesn't work in the GUI.
Solution:   Reset seenModifyOtherKeys when starting the GUI. (closes #6150)
2020-05-27 22:08:34 +02:00
a55ba06f69 patch 8.2.0832: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Add initial value.
2020-05-27 21:29:04 +02:00
f4b68e9056 patch 8.2.0831: compiler warnings for integer sizes
Problem:    Compiler warnings for integer sizes.
Solution:   Add type casts. (Mike Williams)
2020-05-27 21:22:14 +02:00
80a20df86a patch 8.2.0830: Motif: can't map "!"
Problem:    Motif: can't map "!". (Ben Jackson)
Solution:   Remove the shift modifier if it's already included in the key.
            (closes #6147)
2020-05-26 22:14:27 +02:00
388a5d4f20 Update runtime files 2020-05-26 21:20:45 +02:00
fcb0b61d15 patch 8.2.0829: filter() may give misleading error message
Problem:    filter() may give misleading error message.
Solution:   Also mention Blob as an allowed argument.
2020-05-26 20:22:01 +02:00
92c098d18e patch 8.2.0828: Travis: regexp patttern doesn't work everywhere
Problem:    Travis: regexp patttern doesn't work everywhere.
Solution:   Use [:blank:] instead of \b. (Ozaki Kiichi, closes #6146)
2020-05-26 20:09:11 +02:00
285b189260 patch 8.2.0827: Vim9: crash in :defcompile
Problem:    Vim9: crash in :defcompile.
Solution:   Fix off-by-one error.
2020-05-26 11:37:26 +02:00
ebc3de634f patch 8.2.0826: Vim9: crash in :defcompile
Problem:    Vim9: crash in :defcompile.
Solution:   Restart the loop after a call to compile_def_function() caused the
            hash table to resize.
2020-05-26 11:08:28 +02:00
a14e697547 patch 8.2.0825: def_function() may return pointer that was freed
Problem:    def_function() may return pointer that was freed.
Solution:   Set "fp" to NULL after freeing it.
2020-05-25 23:29:28 +02:00
1919371b2b patch 8.2.0824: still not enough memory allocated when converting string
Problem:    Still not enough memory allocated when converting string with
            special character.
Solution:   Reserve space for expanding K_SPECIAL. (closes #6130)
2020-05-25 23:01:42 +02:00
25e0f5863e patch 8.2.0823: Vim9: script reload test is disabled
Problem:    Vim9: script reload test is disabled.
Solution:   Compile a function in the context of the script where it was
            defined.  Set execution stack for compiled function.  Add a test
            that an error is reported for the right file/function.
2020-05-25 22:36:50 +02:00
2eec37926d patch 8.2.0822: Vim9: code left over from discovery phase
Problem:    Vim9: code left over from discovery phase.
Solution:   Remove the dead code.
2020-05-25 20:33:55 +02:00
45a1508a22 patch 8.2.0821: Vim9: memory leak in expr test
Problem:    Vim9: memory leak in expr test.
Solution:   Do not decrement the length of the list of functions if the
            current function is not at the end.
2020-05-25 00:28:33 +02:00
6ff71d8b7f patch 8.2.0820: Vim9: function type isn't set until compiled
Problem:    Vim9: function type isn't set until compiled.
Solution:   Set function type early.
2020-05-24 23:45:24 +02:00
f40e51a880 patch 8.2.0819: compiler warning for unused variable
Problem:    Compiler warning for unused variable.
Solution:   Remove the variable.
2020-05-24 23:14:23 +02:00
822ba24743 patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Problem:    Vim9: using a discovery phase doesn't work well.
Solution:   Remove the discovery phase, instead compile a function only when
            it is used.  Add :defcompile to compile def functions earlier.
2020-05-24 23:00:18 +02:00
f7271e8316 patch 8.2.0817: not enough memory allocated when converting string
Problem:    Not enough memory allocated when converting string with special
            character.
Solution:   Reserve space for modifier code. (closes #6130)
2020-05-24 18:45:07 +02:00
87202264f8 patch 8.2.0816: terminal test fails when compiled with Athena
Problem:    Terminal test fails when compiled with Athena.
Solution:   Do give an error when the GUI is not running. (hint by Dominique
            Pelle, closes #5928, closes #6132)
2020-05-24 17:23:45 +02:00
9c65253fe7 patch 8.2.0815: maparg() does not provide enough information for mapset()
Problem:    maparg() does not provide enough information for mapset().
Solution:   Add "lhsraw" and "lhsrawalt" items.  Drop "simplified"
2020-05-24 13:10:18 +02:00
3718427ba3 patch 8.2.0814: clang warning for implicit conversion
Problem:    Clang warning for implicit conversion.
Solution:   Add type cast. (Dominique Pelle, closes #6124)
2020-05-23 19:30:05 +02:00
591cec8366 patch 8.2.0813: libvterm code is slightly different from upstream
Problem:    libvterm code is slightly different from upstream.
Solution:   Use upstream text to avoid future merge problems.  Mainly comment
            style changes.
2020-05-22 22:06:06 +02:00
c94c1467b9 patch 8.2.0812: mapset() does not properly handle <> notation
Problem:    mapset() does not properly handle <> notation.
Solution:   Convert <> codes. (closes #6116)
2020-05-22 20:01:06 +02:00
9cdcd1d0dc patch 8.2.0811: terminal keycode test is flaky
Problem:    Terminal keycode test is flaky.
Solution:   Use WaitForAssert()
2020-05-22 14:44:26 +02:00
2e61e2d083 patch 8.2.0810: error when appending "tagfile" to 'wildoptions'
Problem:    Error when appending "tagfile" to 'wildoptions'.
Solution:   use flags P_ONECOMMA and P_NODUP. (Dmitri Vereshchagin,
            closes #6105)
2020-05-22 14:10:36 +02:00
5a80f8ad5d patch 8.2.0809: build failure with small features
Problem:    Build failure with small features. (Tony Mechelynck)
Solution:   Move "expr" inside #ifdef.
2020-05-22 13:38:18 +02:00
98f1671cc0 patch 8.2.0808: not enough testing for the terminal window
Problem:    Not enough testing for the terminal window.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6069)  Fix memory
            leak.
2020-05-22 13:34:01 +02:00
4c9243f9fb patch 8.2.0807: cannot easily restore a mapping
Problem:    Cannot easily restore a mapping.
Solution:   Add mapset().
2020-05-22 13:10:44 +02:00
74fae513f8 patch 8.2.0806: using "func!" after vim9script gives confusing error
Problem:    using "func!" after vim9script gives confusing error.
Solution:   Give E477. (closes #6107)
2020-05-21 21:50:58 +02:00
fe81389d60 patch 8.2.0805: terminal key codes test fails on some systems
Problem:    Terminal key codes test fails on some systems.
Solution:   Skip keypad 3 and 9. (Yegappan Lakshmanan, closes #6070)
2020-05-21 20:38:31 +02:00
e5886ccb51 patch 8.2.0804: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revision 727, but add the index instead of switching
            between RGB and indexed.
2020-05-21 20:10:04 +02:00
83a52533b2 patch 8.2.0803: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 764 - 767
2020-05-20 19:30:19 +02:00
d863728913 patch 8.2.0802: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 759 - 762.
2020-05-20 18:41:41 +02:00
eaa3e0dae5 patch 8.2.0801: terminal test fails on Mac
Problem:    Terminal test fails on Mac.
Solution:   Concatenate OSC pieces.
2020-05-19 23:11:00 +02:00
a09195f29e patch 8.2.0800: errors from failing test are unclear
Problem:    Errors from failing test are unclear.
Solution:   Include text where parsing failed.
2020-05-19 22:38:59 +02:00
74c6963656 patch 8.2.0799: build fails if snprintf is not available
Problem:    Build fails if snprintf is not available.
Solution:   Use vim_snprintf().
2020-05-19 21:43:47 +02:00
be593bf135 patch 8.2.0798: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 755 - 758.
2020-05-19 21:20:04 +02:00
904e48a22b patch 8.2.0797: MS-Windows: compiler still can't handle C99 construct
Problem:    MS-Windows: compiler still can't handle C99 construct.
Solution:   Change to C90 construct. (Dominique Pelle, closes #6106)
2020-05-19 10:33:02 +02:00
37ebd42f16 patch 8.2.0796: MS-Windows: compiler can't handle C99 construct in libvterm
Problem:    MS-Windows: compiler can't handle C99 construct in libvterm.
Solution:   Change to C90 construct.
2020-05-18 23:27:50 +02:00
88d68de95d patch 8.2.0795: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 748 - 754.
2020-05-18 21:51:01 +02:00
d098b824c1 patch 8.2.0794: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 743 - 747.
2020-05-18 21:12:59 +02:00
1e1d2e89fa patch 8.2.0793: MS-Windows: cannot build GUI with small features
Problem:    MS-Windows: cannot build GUI with small features. (Michael Soyka)
Solution:   Add #ifdef around use of windowsVersion. (Ken Takata)
2020-05-18 20:17:02 +02:00
c33b3216c8 patch 8.2.0792: build failure with small features
Problem:    Build failure with small features.
Solution:   Add #ifdef.
2020-05-18 20:12:09 +02:00
b5383b174b patch 8.2.0791: a second popup window with terminal causes trouble
Problem:    A second popup window with terminal causes trouble.
Solution:   Disallow opening a second terminal-popup window. (closes #6101,
            closes #6103) Avoid defaulting to an invalid line number.
2020-05-18 19:46:48 +02:00
843700875e patch 8.2.0790: Vim9: list index not well tested
Problem:    Vim9: list index not well tested.
Solution:   Add a few more tests.
2020-05-18 14:20:36 +02:00
66b3101672 patch 8.2.0789: Vim9: expression testing lost coverage using constants
Problem:    Vim9: expression testing lost coverage using constants.
Solution:   Use a few variables instead of constants.
2020-05-18 13:38:02 +02:00
deb17451ed patch 8.2.0788: memory leak in libvterm
Problem:    Memory leak in libvterm.
Solution:   free tmpbuffer.
2020-05-17 23:34:42 +02:00
a2e408f598 patch 8.2.0787: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 741 - 742.
2020-05-17 23:00:52 +02:00
0b39ec3c7d patch 8.2.0786: channel test is flaky on FreeBSD
Problem:    Channel test is flaky on FreeBSD.
Solution:   Set the sockiet TCP_NODELAY option. Adjust expected line count in
            netbeans test. (Ozaki Kiichi, closes #6097)
2020-05-17 22:33:53 +02:00
6fc3b59ee9 patch 8.2.0785: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 734 - 740.
2020-05-17 22:27:55 +02:00
94d729cbe8 patch 8.2.0784: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 730 - 733.
2020-05-17 21:50:16 +02:00
c4c9f7e43e patch 8.2.0783: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 728 - 729.
2020-05-17 20:52:45 +02:00
df1643a6a7 patch 8.2.0782: cannot build with Lua on MS-Windows
Problem:    Cannot build with Lua on MS-Windows.
Solution:   Add DLL symbol for luaL_Loadstring. (Ken Takata)
2020-05-17 18:53:27 +02:00
9309eb2f28 patch 8.2.0781: compiler warning for not using value in Lua
Problem:    Compiler warning for not using value in Lua.
Solution:   Add "(void)".
2020-05-17 16:53:56 +02:00
2d2970ea59 patch 8.2.0780: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 724 - 726.
2020-05-17 16:29:47 +02:00
f4e16ae041 patch 8.2.0779: tmode_T not used everywhere
Problem:    Tmode_T not used everywhere.
Solution:   Also use tmode_T for settmode().
2020-05-17 16:10:11 +02:00
d4a5f40c0c patch 8.2.0778: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 720 - 723.
2020-05-17 16:04:44 +02:00
ed37d9b324 Update feature_request.md 2020-05-17 15:17:26 +02:00
79ea680e6b patch 8.2.0777: terminal test fails
Problem:    Terminal test fails.
Solution:   Adjust character position for double-wide characters.
2020-05-17 15:09:27 +02:00
e178ba3654 patch 8.2.0776: libvterm code lags behind the upstream version
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revision 719.
2020-05-17 14:59:47 +02:00
eb04f0893a patch 8.2.0775: not easy to call a Vim function from Lua
Problem:    Not easy to call a Vim function from Lua.
Solution:   Add vim.call() and vim.fn(). (Prabir Shrestha, closes #6063)
2020-05-17 14:32:35 +02:00
26e86445bf patch 8.2.0774: t_TI and t_TE are output when using 'visualbell'
Problem:    t_TI and t_TE are output when using 'visualbell'. (Dominique
            Pelle)
Solution:   Do not change the terminal mode for a short sleep.  Do not output
            t_TI and t_TE when switching to/from TMODE_SLEEP. Make tmode an
            enum.
2020-05-17 14:06:16 +02:00
3b1f18f785 patch 8.2.0773: switching to raw mode every time ":" is used
Problem:    Switching to raw mode every time ":" is used.
Solution:   When executing a shell set cur_tmode to TMODE_UNKNOWN, so that the
            next time TMODE_RAW is used it is set, but not every time.
2020-05-16 23:15:08 +02:00
df671b4629 patch 8.2.0772: Vim9: some variable initializations not tested
Problem:    Vim9: some variable initializations not tested.
Solution:   Add a few more tests
2020-05-16 22:33:33 +02:00
6f5b6dfb16 patch 8.2.0771: Vim9: cannot call a compiled closure from not compiled code
Problem:    Vim9: cannot call a compiled closure from not compiled code.
Solution:   Pass funcexe to call_user_func().
2020-05-16 21:20:12 +02:00
aa5fc4ec51 patch 8.2.0770: cannot map CTRL-B when using the GUI
Problem:    Cannot map CTRL-B when using the GUI.
Solution:   Reset the CTRL modifier when used. (closes #6092)
2020-05-16 18:57:53 +02:00
129d6bf6b3 patch 8.2.0769: VimLeavePre not triggered when Vim is terminated
Problem:    VimLeavePre not triggered when Vim is terminated.
Solution:   Unblock autocommands.
2020-05-16 16:08:35 +02:00
e75ba268b3 patch 8.2.0768: Vim9: memory leak in script test
Problem:    Vim9: memory leak in script test.
Solution:   Clear typval before giving an error message.
2020-05-16 15:43:31 +02:00
645e3fe3fe patch 8.2.0767: modifyOtherKeys active when using a shell command in autocmd
Problem:    ModifyOtherKeys active when using a shell command in autocmd.
Solution:   Output T_CTE when going to cooked mode. (closes 5617)
2020-05-16 15:05:04 +02:00
e882f7a73c patch 8.2.0766: display error when using 'number' and 'breakindent'
Problem:    Display error when using 'number' and 'breakindent'.
Solution:   Adjust extra spaces in the first row. (Ken Takata, closes #6089,
            closes #5986)
2020-05-16 14:07:39 +02:00
fd615a3c90 patch 8.2.0765: In the GUI can't use all the modifiers.
Problem:    In the GUI can't use all the modifiers. (Andri Möll)
Solution:   Do not apply Alt/Meta early, do it later like with the terminal.
            Avoid the Motif test from crashing.
2020-05-16 14:01:51 +02:00
a6e67e4f41 patch 8.2.0764: Vim9: assigning to option not fully tested
Problem:    Vim9: assigning to option not fully tested.
Solution:   Add more test cases. Allow using any type for assignment.
2020-05-15 23:36:40 +02:00
4457e1d98f patch 8.2.0763: GUI test fails without the terminal feature
Problem:    GUI test fails without the terminal feature.
Solution:   Check the terminal feature is supported. (Ken Takata,
            closes #6084)
2020-05-15 22:46:44 +02:00
76cb683097 patch 8.2.0762: buffer is not considered modified after setting crypt key
Problem:    Buffer is not considered modified after setting crypt key.
Solution:   Set the modified flag. (Christian Brabandt, closes #6082)
2020-05-15 22:30:38 +02:00
4aeeb63938 patch 8.2.0761: Vim9: instructions not tested
Problem:    Vim9: instructions not tested
Solution:   Use a variable instead of a constant.
2020-05-15 22:01:57 +02:00
4dac32caf3 patch 8.2.0760: Vim9: dict member errors not tested
Problem:    Vim9: dict member errors not tested.
Solution:   Delete unreachable error.  Add tests.
2020-05-15 21:44:19 +02:00
270d0388d2 patch 8.2.0759: Vim9: missing changes for performance improvements
Problem:    Vim9: missing changes for performance improvements
Solution:   Use GA_GROW().  Don't call breakcheck so often.
2020-05-15 21:42:53 +02:00
cb7904016e patch 8.2.0758: Vim9: no test for STORELIST and STOREDICT
Problem:    Vim9: no test for STORELIST and STOREDICT.
Solution:   Add a test.  Make matches stricter.
2020-05-15 20:53:00 +02:00
4902ab16cb patch 8.2.0757: Vim9: no test for MEMBER instruction
Problem:    Vim9: no test for MEMBER instruction.
Solution:   Add a test.  Make matches stricter.
2020-05-15 19:21:31 +02:00
7e6f3fcc3c patch 8.2.0756: MS-Windows: still a compiler warning
Problem:    MS-Windows: still a compiler warning.
Solution:   Move flag to another place in the Makefile. (Ken Takata,
            closes #6083)
2020-05-15 18:21:51 +02:00
227a69de1e patch 8.2.0755: Vim9: No error when variable initializer is not a constant
Problem:    Vim9: No error when variable initializer is not a constant.
Solution:   Return FAIL when trying to get a variable value.  Do not execute a
            script when an error is deteted in the first or second phase.
2020-05-15 18:17:28 +02:00
a5d0077efb patch 8.2.0754: Vim9: No test for forward declaration
Problem:    Vim9: No test for forward declaration.
Solution:   Add a test.
2020-05-14 23:20:55 +02:00
32e351179e patch 8.2.0753: Vim9: expressions are evaluated in the discovery phase
Problem:    Vim9: expressions are evaluated in the discovery phase.
Solution:   Bail out if an expression is not a constant.  Require a type for
            declared constants.
2020-05-14 22:41:15 +02:00
e06a28f5e3 patch 8.2.0752: terminal in popup window test is a bit flaky
Problem:    Terminal in popup window test is a bit flaky.
Solution:   Wait for shell job status to be "run".  Mark as flaky test.
2020-05-13 23:24:12 +02:00
2b72821924 Update version.c for missing patch number 2020-05-13 23:21:55 +02:00
7e9f351b2e patch 8.2.0751: Vim9: performance can be improved
Problem:    Vim9: performance can be improved.
Solution:   Don't call break.  Inline check for list materialize.  Make an
            inline version of ga_grow().
2020-05-13 22:44:22 +02:00
37d1b4f941 patch 8.2.0750: netbeans test is a bit flaky
Problem:    Netbeans test is a bit flaky.
Solution:   Allow for standard sign to be defined.  Use WaitForAssert().
2020-05-13 17:16:04 +02:00
55ba4b844f patch 8.2.0749: TERM signal test fails on FreeBSD
Problem:    TERM signal test fails on FreeBSD.
Solution:   Do not check the messages, the may appear anywhere. (Dominique
            Pelle, closes #6075)
2020-05-13 16:53:49 +02:00
ef6b979bfa patch 8.2.0748: cannot get a list of all popups
Problem:    Cannot get a list of all popups.
Solution:   Add popup_list().  Use it in the test runner.
2020-05-13 16:34:15 +02:00
03a9f84817 patch 8.2.0747: cannot forcefully close all popups
Problem:    Cannot forcefully close all popups.
Solution:   Add the "force" argument to popup_clear().  Use it after running a
            test.  Put back the check for a popup when editing a file.
2020-05-13 13:40:16 +02:00
d502aa4c10 patch 8.2.0746: popup_clear() hangs when a popup can't be closed
Problem:    popup_clear() hangs when a popup can't be closed.
Solution:   Bail out when a popup can't be closed.
2020-05-13 01:04:32 +02:00
06f0853cb0 patch 8.2.0745: crash on exit when not all popups are closed
Problem:    Crash on exit when not all popups are closed.
Solution:   Close popups when freeing all memory.  Disable checking for popup
            when editing a file for now.
2020-05-12 23:45:16 +02:00
47e13953ff Update runtime files 2020-05-12 22:49:12 +02:00
9e6ba8cbef patch 8.2.0744: the name vim is not capatilized in a message
Problem:    The name vim is not capatilized in a message.
Solution:   Use "Vim" instead of "vim".
2020-05-12 22:21:26 +02:00
5aed0ccb96 patch 8.2.0743: can move to another buffer from a terminal in popup window
Problem:    Can move to another buffer from a terminal in popup window.
Solution:   Do not allow "gf" or editing a file. (closes #6072)
2020-05-12 22:02:21 +02:00
48a687148c patch 8.2.0742: handling of a TERM signal not tested
Problem:    Handling of a TERM signal not tested.
Solution:   Add a test for SIGTERM. (Dominique Pelle, closes #6055)
2020-05-12 14:42:02 +02:00
c3fd98cf8e patch 8.2.0741: Python tests fail because of changed message
Problem:    Python tests fail because of changed message.
Solution:   Adjust the expected messages (Dominique Pelle, closes #6066)
2020-05-12 13:08:07 +02:00
86181df9f5 patch 8.2.0740: minor message mistakes
Problem:    Minor message mistakes.
Solution:   Change vim to Vim and other fixes.
2020-05-11 23:14:04 +02:00
b415168a98 patch 8.2.0739: incomplete profiling when exiting because of a dealy signal
Problem:    Incomplete profiling when exiting because of a dealy signal.
Solution:   Call __gcov_flush() if available.
2020-05-11 22:13:28 +02:00
91689ea8ae patch 8.2.0738: mouse handling in a terminal window not well tested
Problem:    Mouse handling in a terminal window not well tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6052)
2020-05-11 22:04:53 +02:00
5c3128efe6 patch 8.2.0737: when shell doesn't support CTRL-Z Vim still handles it
Problem:    When shell doesn't support CTRL-Z Vim still handles it.
Solution:   Ignore the STOP signal if it was ignored on startup.
            (Kurtis Rader, closes #5990, closes #6058)
2020-05-11 20:54:42 +02:00
aacc6afdb8 patch 8.2.0736: some files not recognized as pamenv
Problem:    Some files not recognized as pamenv.
Solution:   Add pam_inv.conf. (closes #6065)
2020-05-11 19:46:36 +02:00
bc38f25c02 patch 8.2.0735: Vim9: using unitialized memory
Problem:    Vim9: using unitialized memory.
Solution:   Clear the arg_lvar field.
2020-05-10 23:20:06 +02:00
04816717df patch 8.2.0734: Vim9: leaking memory when using :finish
Problem:    Vim9: leaking memory when using :finish.
Solution:   Do not check for next line in third pass.
2020-05-10 23:11:53 +02:00
cb2bdb1c6d patch 8.2.0733: Vim9: assigning to dict or list argument does not work
Problem:    Vim9: assigning to dict or list argument does not work.
Solution:   Recognize an argument as assignment target.
2020-05-10 22:53:56 +02:00
f163bd5e41 patch 8.2.0732: Vim9: storing value in dict messes up stack
Problem:    Vim9: storing value in dict messes up stack.
Solution:   Correct item count of stack.
2020-05-10 21:47:43 +02:00
7e5bd91dc9 patch 8.2.0731: Vim9: parsing declarations continues after :finish
Problem:    Vim9: parsing declarations continues after :finish.
Solution:   Bail out when encountering :finish.
2020-05-10 21:20:29 +02:00
1cc2a94f80 patch 8.2.0730: Vim9: Assignment to dict member does not work
Problem:    Vim9: Assignment to dict member does not work.
Solution:   Parse dict assignment. Implement getting dict member.
2020-05-10 19:10:31 +02:00
89483d4043 patch 8.2.0729: Vim9: When reloading a script variables are not cleared
Problem:    Vim9: When reloading a script variables are not cleared.
Solution:   When sourcing a script again clear all script-local variables.
2020-05-10 15:24:44 +02:00
69212b11d1 patch 8.2.0728: messages about a deadly signal are not left aligned
Problem:    Messages about a deadly signal are not left aligned.
Solution:   Output a CR before the NL. (Dominique Pelle, #6055)
2020-05-10 14:14:03 +02:00
d695ba732d patch 8.2.0727: MS-Windows: new gcc compiler does not support scanf format
Problem:    MS-Windows: new gcc compiler does not support scanf format.
Solution:   Use "%ll" instead of "%I". (Ken Takata)
2020-05-10 13:42:43 +02:00
3b6a6eb7b4 patch 8.2.0726: Vim9: leaking memory when calling not compiled :def function
Problem:    Vim9: leaking memory when calling not compiled :def function.
Solution:   Check if function is compiled earlier.
2020-05-09 23:20:20 +02:00
09689a0284 patch 8.2.0725: Vim9: cannot call a function declared later in Vim9 script
Problem:    Vim9: cannot call a function declared later in Vim9 script.
Solution:   Make two passes through the script file.
2020-05-09 22:50:08 +02:00
396f3138ca patch 8.2.0724: Vim9: appending to buffer/window/tab variable not tested
Problem:    Vim9: appending to buffer/window/tab variable not tested
Solution:   Add a test.
2020-05-09 18:44:56 +02:00
1c74721233 patch 8.2.0723: Vim9: nested constant expression not evaluated compile time
Problem:    Vim9: nested constant expression not evaluated compile time.
Solution:   Use compile_expr1() for parenthesis.
2020-05-09 18:28:34 +02:00
7f14155f42 patch 8.2.0722: Vim9: not handling constant expression for elseif
Problem:    Vim9: not handling constant expression for elseif.
Solution:   Use postponed constants.  Delete the code for evaluating a
            constant expression.
2020-05-09 17:35:53 +02:00
497f76bfbf patch 8.2.0721: Vim9: leaking memory when skipping
Problem:    Vim9: leaking memory when skipping.
Solution:   Disable skipping in generate_ppconst().
2020-05-09 16:44:22 +02:00
b1062eb23e patch 8.2.0720: occasional exit when encountering an X error
Problem:    Occasional exit when encountering an X error. (Manfred Lotz)
Solution:   On an X error do not exit, do preserve files.
2020-05-09 16:11:33 +02:00
a5565e4189 patch 8.2.0719: Vim9: more expressions can be evaluated at compile time
Problem:    Vim9: more expressions can be evaluated at compile time
Solution:   Recognize has('name').
2020-05-09 15:44:01 +02:00
7d3664df90 patch 8.2.0718: gcc warning for returning pointer to local variable
Problem:    Gcc warning for returning pointer to local variable. (John
            Marriott)
Solution:   Return another pointer.
2020-05-09 13:06:24 +02:00
7d131b0715 patch 8.2.0717: Vim9: postponed constant expressions does not scale
Problem:    Vim9: postponed constant expressions does not scale.
Solution:   Add a structure to pass around postponed constants.
2020-05-08 19:10:34 +02:00
5c2fe64443 patch 8.2.0716: Vim9: another memory leak
Problem:    Vim9: another memory leak.
Solution:   Clear typval when failing.
2020-05-07 23:20:21 +02:00
cca34aa4be patch 8.2.0715: Vim9: leaking memory
Problem:    Vim9: leaking memory.
Solution:   Free strings after concatenating them.
2020-05-07 22:23:58 +02:00
f0eefce93b patch 8.2.0714: Vim9: handling constant expression does not scale
Problem:    Vim9: handling constant expression does not scale.
Solution:   Use another solution, passint typval_T.
2020-05-07 22:19:01 +02:00
2cfb4a2a72 Update runtime files 2020-05-07 18:56:00 +02:00
6115481053 patch 8.2.0713: the pam_environment file is not recognized
Problem:    The pam_environment file is not recognized.
Solution:   Add a filetype pattern for pamenv. (closes #6051)
2020-05-07 18:51:27 +02:00
0ff5dedf0f patch 8.2.0712: various code not fully tested
Problem:    Various code not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6049)
2020-05-07 18:43:44 +02:00
b2d0e51366 patch 8.2.0711: temp directory might be cleared
Problem:    With a long running Vim the temp directory might be cleared on
            some systems.
Solution:   Lock the temp directory. (closes #6044)
2020-05-07 18:37:03 +02:00
4a070cc82e patch 8.2.0710: Netbeans test sometimes fails
Problem:    Netbeans test sometimes fails.
Solution:   Mark any test using an external command as flaky.
2020-05-07 18:16:35 +02:00
ea554ca4fa patch 8.2.0709: MS-Windows: compiler warning for int vs size_t
Problem:    MS-Windows: compiler warning for int vs size_t.
Solution:   Add type cast. (Mike Williams)
2020-05-07 17:46:59 +02:00
61a8981699 patch 8.2.0708: Vim9: constant expressions are not simplified
Problem:    Vim9: constant expressions are not simplified.
Solution:   Simplify string concatenation.
2020-05-07 16:58:17 +02:00
f391586f3f patch 8.2.0707: Vim9 function test fails
Problem:    Vim9 function test fails.
Solution:   Adjust expected error code.
2020-05-07 14:37:19 +02:00
8a1c101315 patch 8.2.0706: Vim9: using assert_fails() causes function to finish
Problem:    Vim9: using assert_fails() causes function to finish.
Solution:   Check did_emsg instead of called_emsg.
2020-05-07 14:07:25 +02:00
3657686a0e patch 8.2.0705: indent tests don't run on CI for FreeBSD
Problem:    Indent tests don't run on CI for FreeBSD.
Solution:   Set modeline. (Ozaki Kiichi, closes #6048)
2020-05-06 22:25:05 +02:00
f821ddaa0c patch 8.2.0704: Vim9: memory leak in disassemble test
Problem:    Vim9: memory leak in disassemble test.
Solution:   Decrement refcount when creating funccal.
2020-05-06 22:18:17 +02:00
b68b346e6d patch 8.2.0703: Vim9: closure cannot store value in outer context
Problem:    Vim9: closure cannot store value in outer context.
Solution:   Make storing value in outer context work.  Make :disassemble
            accept a function reference.
2020-05-06 21:06:30 +02:00
54ed0dff29 patch 8.2.0702: running channel tests may leave running process behind
Problem:    Running channel tests may leave running process behind.
Solution:   Make Python client exit when running into EOF. (Kurtis Rader,
            part of #6046)
2020-05-06 19:38:30 +02:00
2a1381c305 patch 8.2.0701: Vim9 test fails without job feature
Problem:    Vim9 test fails without job feature.
Solution:   Add feature check.
2020-05-05 23:32:58 +02:00
40ee466c36 patch 8.2.0700: Vim9: converting error message to exception not tested
Problem:    Vim9: converting error message to exception not tested.
Solution:   Test exception from error.  Do not continue after :echoerr.
2020-05-05 22:08:26 +02:00
015f4267f4 patch 8.2.0699: Vim9: not all errors tested
Problem:    Vim9: not all errors tested.
Solution:   Add test for deleted function.  Bail out on first error.
2020-05-05 21:25:22 +02:00
f9ab52e155 patch 8.2.0698: insert mode completion not fully tested
Problem:    Insert mode completion not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6041)
2020-05-05 19:57:18 +02:00
221fcc741a patch 8.2.0697: Vim9: memory leak when using nested function
Problem:    Vim9: memory leak when using nested function.
Solution:   Unreference function when deleting instructions. Adjust reference
            count for local variables.
2020-05-05 19:46:20 +02:00
0e65d3de0a patch 8.2.0696: Vim9: nested function does not work properly
Problem:    Vim9: nested function does not work properly
Solution:   Create a function reference.  Check argument count.
2020-05-05 17:53:16 +02:00
04b1269783 patch 8.2.0695: Vim9: cannot define a function inside a function
Problem:    Vim9: cannot define a function inside a function.
Solution:   Initial support for :def inside :def.
2020-05-04 23:24:44 +02:00
80a8d3889b patch 8.2.0694: Haiku: channel and terminal do not work
Problem:    Haiku: channel and terminal do not work.
Solution:   Close files when the job has finished. (Ozaki Kiichi,
            closes #6039)
2020-05-03 22:57:32 +02:00
2fd4cd755c patch 8.2.0693: closure using argument not tested
Problem:    Closure using argument not tested.
Solution:   Add a test, make it work.
2020-05-03 22:30:49 +02:00
4515bcdec8 patch 8.2.0692: startup test fails on MS-Windows
Problem:    Startup test fails on MS-Windows.
Solution:   Allow for any path.
2020-05-03 18:21:04 +02:00
7779ee30d9 patch 8.2.0691: startup test fails
Problem:    Startup test fails.
Solution:   Adjust expected output from -V2 argument.
2020-05-03 17:55:32 +02:00
5125874951 patch 8.2.0690: line number of option set by modeline is wrong
Problem:    Line number of option set by modeline is wrong.
Solution:   Do not double the line number. (Ozaki Kiichi, closes #6035)
2020-05-03 17:19:33 +02:00
a38b2b737e patch 8.2.0689: when using getaddrinfo() the error message is unclear
Problem:    When using getaddrinfo() the error message is unclear.
Solution:   Use gai_strerror() to get the message. (Ozaki Kiichi,
            closes #6034)
2020-05-03 17:03:29 +02:00
647a530b33 patch 8.2.0688: output clobbered if setting 'verbose' to see shell commands
Problem:    Output clobbered if setting 'verbose' to see shell commands.
Solution:   Only output "Searching for" when 'verbose' is 11 or higher.
2020-05-03 17:01:24 +02:00
41d4299f26 patch 8.2.0687: some tests do not work on FreeBSD
Problem:    Some tests do not work on FreeBSD.
Solution:   Enable modeline.  Use WaitFor() in more cases. (Ozaki Kiichi,
            closes #6036)
2020-05-03 16:29:50 +02:00
2eaeaf3c31 patch 8.2.0686: formatoptions not sufficiently tested
Problem:    Formatoptions not sufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6031)
2020-05-03 16:04:43 +02:00
3df02f507f patch 8.2.0685: Build failure
Problem:    Build failure.
Solution:   Include missing changes.
2020-05-03 15:47:33 +02:00
f7779c63d4 patch 8.2.0684: Vim9: memory leak when using lambda
Problem:    Vim9: memory leak when using lambda.
Solution:   Move the funccal context to the partial. Free the function when
            exiting.
2020-05-03 15:38:16 +02:00
5adc55cb74 patch 8.2.0683: Vim9: parsing type does not always work
Problem:    Vim9: parsing type does not always work.
Solution:   Handle func type without return value.  Test more closures.
            Fix type check offset.  Fix garbage collection.
2020-05-02 23:12:58 +02:00
1c0d44f8ef patch 8.2.0682: Vim9: parsing function argument type can get stuck
Problem:    Vim9: parsing function argument type can get stuck.
Solution:   Bail out when not making progress.
2020-05-02 19:04:58 +02:00
0b6849e9e3 patch 8.2.0681: pattern for 'hlsearch' highlighting may leak
Problem:    Pattern for 'hlsearch' highlighting may leak. (Dominique Pelle)
Solution:   Call end_search_hl() to make sure the previous pattern is freed.
            (closes #6028)
2020-05-02 18:33:25 +02:00
01f731e97c patch 8.2.0680: PTYGROUP and PTYMODE are unused
Problem:    PTYGROUP and PTYMODE are unused.
Solution:   Remove from autoconf. (closes #6024)
2020-05-02 18:14:37 +02:00
bf67ea1af0 patch 8.2.0679: Vim9: incomplete support for closures
Problem:    Vim9: incomplete support for closures.
Solution:   At the end of a function copy arguments and local variables if
            they are still used by a referenced closure.
2020-05-02 17:52:42 +02:00
d58a662f44 patch 8.2.0678: rare crash for popup menu
Problem:    Rare crash for popup menu.
Solution:   Check for NULL pointer. (Nobuhiro Takasaki, closes #6027)
2020-05-02 14:52:57 +02:00
c8cd2b34d1 patch 8.2.0677: Vim9: no support for closures
Problem:    Vim9: no support for closures.
Solution:   Find variables in the outer function scope, so long as the scope
            exists.
2020-05-01 19:29:08 +02:00
37addecc42 patch 8.2.0676: pattern in list of distributed files does not match
Problem:    Pattern in list of distributed files does not match.
Solution:   Drop "testdir/test_[a-z]*.ok".  Add CI sed files.
2020-05-01 16:08:11 +02:00
7ceefb35c8 Update runtime files 2020-05-01 16:07:38 +02:00
b84a381c75 patch 8.2.0675: Vim9: no support for closures
Problem:    Vim9: no support for closures.
Solution:   Do not re-use stack entries.
2020-05-01 15:44:29 +02:00
11abd09521 patch 8.2.0674: some source files are too big
Problem:    Some source files are too big.
Solution:   Move text formatting functions to a new file. (Yegappan
            Lakshmanan, closes #6021)
2020-05-01 14:26:37 +02:00
4cfde1d273 patch 8.2.0673: cannot build Haiku in shadow directory
Problem:    Cannot build Haiku in shadow directory.
Solution:   Add symlink. (Ozaki Kiichi, closes #6023)
2020-05-01 14:14:07 +02:00
6ab0953fef patch 8.2.0672: heredoc in scripts does not accept lower case marker
Problem:    Heredoc in scripts does not accept lower case marker.
Solution:   Allow lower case only in non-Vim scripts. (Ken Takata,
            closes #6019)
2020-05-01 14:10:13 +02:00
9e175141f3 patch 8.2.0671: Haiku: compiler warnings
Problem:    Haiku: compiler warnings.
Solution:   Avoid the warnings. Drop display_errors() copy. (Emir Sari,
            closes #6018)
2020-04-30 22:51:01 +02:00
6adb9ea0a6 patch 8.2.0670: cannot change window when evaluating 'completefunc'
Problem:    Cannot change window when evaluating 'completefunc'.
Solution:   Make a difference between not changing text or buffers and also
            not changing window.
2020-04-30 22:31:18 +02:00
4e5534fab7 patch 8.2.0669: MS-Windows: display in VTP is a bit slow
Problem:    MS-Windows: display in VTP is a bit slow.
Solution:   Optimize the code. (Nobuhiro Takasaki, closes #6014)
2020-04-30 20:59:57 +02:00
7f6f56f43c patch 8.2.0668: compiler warning for int/size_t usage
Problem:    Compiler warning for int/size_t usage.
Solution:   Change "int" to "size_t". (Mike Williams)
2020-04-30 20:21:43 +02:00
2c5c1638a9 patch 8.2.0667: cannot install Haiku version from source
Problem:    Cannot install Haiku version from source.
Solution:   Update Makefile and rdef file. (Emir Sari, closes #6013)
2020-04-30 19:54:38 +02:00
88e6cc2539 patch 8.2.0666: Ruby test fails on MS-Windows
Problem:    Ruby test fails on MS-Windows.
Solution:   Remove the "maintainer" line. (Ken Takata, closes #6015)
2020-04-30 19:19:29 +02:00
a161cb5ddd patch 8.2.0665: wrongly assuming Python executable is called "python"
Problem:    Wrongly assuming Python executable is called "python".
Solution:   Use detected python command. (Ken Takata, closes #6016)
            Also use CheckFunction if possible.
2020-04-30 19:09:35 +02:00
8dbafd0790 patch 8.2.0664: included undesired changes in Makefile
Problem:    Included undesired changes in Makefile.
Solution:   Revert the changes.
2020-04-29 23:11:32 +02:00
512fe833c3 patch 8.2.0663: not all systemd temp files are recognized
Problem:    Not all systemd temp files are recognized.
Solution:   Add two more patterns. (Jamie Macdonald, closes #6003)
2020-04-29 23:02:40 +02:00
dfc33a665d patch 8.2.0662: cannot use input() in a channel callback
Problem:    Cannot use input() in a channel callback.
Solution:   Reset vgetc_busy. (closes #6010)
2020-04-29 22:30:13 +02:00
339d60c89b patch 8.2.0661: eval test is still old style
Problem:    Eval test is still old style.
Solution:   Change into new style tests. (Yegappan Lakshmanan, closes #6009)
2020-04-29 22:01:21 +02:00
ed8ce057b7 patch 8.2.0660: the search.c file is a bit big
Problem:    The search.c file is a bit big.
Solution:   Split off the text object code to a separate file. (Yegappan
            Lakshmanan, closes #6007)
2020-04-29 21:04:15 +02:00
939b5db480 patch 8.2.0659: Vim9: no test for equal func type
Problem:    Vim9: no test for equal func type.
Solution:   Add a test.  Improve type check.
2020-04-28 22:49:08 +02:00
affc8fd2cd patch 8.2.0658: HP-UX build fails when setenv() is not defined
Problem:    HP-UX build fails when setenv() is not defined.
Solution:   Change "colors" to "t_colors". (John Marriott)
2020-04-28 21:58:29 +02:00
a0a9f43ab2 patch 8.2.0657: Vim9: no check if called variable is a FuncRef
Problem:    Vim9: no check if called variable is a FuncRef.
Solution:   Add a type check.
2020-04-28 21:29:34 +02:00
7ed8f59ae0 patch 8.2.0656: MS-Windows: redrawing right screen edge may not be needed
Problem:    MS-Windows: redrawing right screen edge may not be needed.
Solution:   Check the build version. (Nobuhiro Takasaki, closes #6002)
2020-04-28 20:44:42 +02:00
224a5f17c6 patch 8.2.0655: search code not sufficiently tested
Problem:    Search code not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5999)
2020-04-28 20:29:07 +02:00
a14bb7e113 patch 8.2.0654: building with Python fails
Problem:    Building with Python fails.
Solution:   Add missing argument.
2020-04-28 00:02:41 +02:00
03afdcf1f4 patch 8.2.0653: using uninitialized pointer
Problem:    using uninitialized pointer.
Solution:   Move assignment up. (John Marriott)
2020-04-27 23:39:30 +02:00
909ed7e902 patch 8.2.0652: compiler warning for char conversion
Problem:    Compiler warning for char conversion.
Solution:   Use unsigned char buffer.
2020-04-27 23:16:41 +02:00
57700ee4ac patch 8.2.0651: old style benchmark test still in list of distributed files
Problem:    Old style benchmark test still in list of distributed files.
Solution:   Remove the files from the list.
2020-04-27 22:51:33 +02:00
4c17ad94ec patch 8.2.0650: Vim9: script function can be deleted
Problem:    Vim9: script function can be deleted.
Solution:   Disallow deleting script function.  Delete functions when sourcing
            a script again.
2020-04-27 22:47:51 +02:00
db93495d27 patch 8.2.0649: undo problem whn an InsertLeave autocommand resets undo
Problem:    Undo problem whn an InsertLeave autocommand resets undo. (Kutsan
            Kaplan)
Solution:   Do not create a new undo block when leaving Insert mode.
2020-04-27 20:18:31 +02:00
0e71704b77 patch 8.2.0648: semicolon search does not work in first line
Problem:    Semicolon search does not work in first line.
Solution:   Allow the cursor to be in line zero. (Christian Brabandt,
            closes #5996)
2020-04-27 19:29:01 +02:00
bc970da807 patch 8.2.0647: MS-Windows: repeat count for events was not used
Problem:    MS-Windows: repeat count for events was not used.
Solution:   Check the repeat count. (Nobuhiro Takasaki, closes #5989)
2020-04-26 19:00:07 +02:00
759d81549c patch 8.2.0646: t_Co uses the value of $COLORS in the GUI
Problem:    t_Co uses the value of $COLORS in the GUI. (Masato Nishihata)
Solution:   Ignore $COLORS for the GUI. (closes #5992)
2020-04-26 16:52:49 +02:00
07b761a012 patch 8.2.0645: MS-Windows terminal: CTRL-C does not get to child job
Problem:    MS-Windows terminal: CTRL-C does not get to child job.
Solution:   Remove CREATE_NEW_PROCESS_GROUP from CreateProcessW(). (Nobuhiro
            Takasaki, closes #5987)
2020-04-26 16:06:01 +02:00
99fa721944 patch 8.2.0644: insufficient testing for invalid function arguments
Problem:    Insufficient testing for invalid function arguments.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5988)
2020-04-26 15:59:55 +02:00
e297802d6d patch 8.2.0643: terminal uses brown instead of dark yellow
Problem:    Terminal uses brown instead of dark yellow. (Romain Lafourcade)
Solution:   Use color index 3 instead of 130. (closes #5993)
2020-04-26 14:47:44 +02:00
7d41aa8874 patch 8.2.0642: Vim9: using invalid index
Problem:    Vim9: using invalid index.
Solution:   Check index for being valid.  Fix memory leak.
2020-04-26 14:29:56 +02:00
6378c4fef3 patch 8.2.0641: Vim9: not expanded in :hardcopy and syn-include
Problem:    Vim9:  not expanded in :hardcopy and "syntax include".
Solution:   Add the EX_EXPAND flag.  Expend "syntax include".
2020-04-26 13:50:41 +02:00
cfe435d7fe patch 8.2.0640: Vim9: expanding does not work
Problem:    Vim9: expanding  does not work.
Solution:   Find wildcards in not compiled commands.  Reorganize test files.
2020-04-25 20:02:55 +02:00
49b2fb36ca patch 8.2.0639: MS-Windows: messages test still fails
Problem:    MS-Windows: messages test still fails.
Solution:   Filter out the maintainer message.
2020-04-25 17:13:56 +02:00
47a1a8baf9 patch 8.2.0638: MS-Windows: messages test fails
Problem:    MS-Windows: messages test fails.
Solution:   Clear environment variables.
2020-04-25 16:41:58 +02:00
333015a46e patch 8.2.0637: incsearch highlighting does not work for ":sort!"
Problem:    Incsearch highlighting does not work for ":sort!".
Solution:   Skip over the exclamation point. (closes #5983)
2020-04-25 15:54:16 +02:00
41f6918bf4 patch 8.2.0636: :messages does not show the maintainer when $LANG is unset
Problem:    :messages does not show the maintainer when $LANG is unset.
Solution:   Call get_mess_lang() if available. (closes #5978)
2020-04-25 15:45:37 +02:00
e93c968f52 patch 8.2.0635: when using 256 colors DarkYellow does not show expected color
Problem:    When using 256 colors DarkYellow does not show expected color.
Solution:   Use color 3 instead of 130. (Romain Lafourcade, closes #5985)
2020-04-25 15:35:32 +02:00
92b83ccfda patch 8.2.0634: crash with null partial and blob
Problem:    Crash with null partial and blob.
Solution:   Check for NULL pointer.  Add more tests. (Yegappan Lakshmanan,
            closes #5984)
2020-04-25 15:24:44 +02:00
9d8d0b5c64 patch 8.2.0633: crash when using null partial in filter()
Problem:    Crash when using null partial in filter().
Solution:   Fix crash.  Add more tests. (Yegappan Lakshmanan, closes #5976)
2020-04-24 22:47:31 +02:00
92c461ef1b patch 8.2.0632: crash when using Haiku
Problem:    Crash when using Haiku.
Solution:   Lock the screen. (closes #5975, closes #5973)
2020-04-24 22:19:00 +02:00
b52575f9cf patch 8.2.0631: Haiku file formatted with wrong tabstop
Problem:    Haiku file formatted with wrong tabstop.
Solution:   Use normal tabstop. Fix white space.
2020-04-24 22:16:13 +02:00
7714d7b31f patch 8.2.0630: "make tags" does not cover Haiku GUI file
Problem:    "make tags" does not cover Haiku GUI file.
Solution:   Add *.cc files.
2020-04-24 21:21:06 +02:00
65d032c779 patch 8.2.0629: setting a boolean option to v:false does not work
Problem:    Setting a boolean option to v:false does not work.
Solution:   Do not use the string representation of the value. (Christian
            Brabandt, closes #5974)
2020-04-24 20:57:01 +02:00
e71ebb46a2 patch 8.2.0628: error in menu translations
Problem:    Error in menu translations.
Solution:   Insert a backslash before a space in one more file. (Shun Bai,
            Emir Sari)
2020-04-23 23:54:04 +02:00
b8ce6b0005 patch 8.2.0627: Vim9: error message does not work
Problem:    Vim9: error message does not work. (Yegappan Lakshmanan)
Solution:   Swap lines.
2020-04-23 22:23:14 +02:00
f93c7fea08 patch 8.2.0626: Vim9: wrong syntax of function in Vim9 script
Problem:    Vim9: wrong syntax of function in Vim9 script.
Solution:   Give error for missing space. Implement :echomsg and :echoerr.
            (closes #5670)
2020-04-23 22:16:53 +02:00
1df8b3fb04 patch 8.2.0625: Vim9: confusing error when calling unknown function
Problem:    Vim9: confusing error when calling unknown function.
Solution:   Give error while compiling.
2020-04-23 18:13:23 +02:00
a72cfb80cd patch 8.2.0624: Vim9: no check for space before #comment
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.  Fix :throw with double quoted string.
2020-04-23 17:07:30 +02:00
f7b398c6a9 patch 8.2.0623: typo in test comment
Problem:    Typo in test comment. (Christ van Willegen)
Solution:   Avoid mixing up a data structure with a body part.
2020-04-23 15:46:35 +02:00
beae4084fd patch 8.2.0622: Haiku: GUI does not compile
Problem:    Haiku: GUI does not compile.
Solution:   Various fixes. (Emir Sari, closes #5961)
2020-04-23 15:41:49 +02:00
95a467e7ee patch 8.2.0621: after running tests asan files may remain
Problem:    After running tests asan files may remain.
Solution:   Clean up asan files with "make testclean".
2020-04-23 14:41:46 +02:00
0d6fe631f7 patch 8.2.0620: error in menu translations
Problem:    Error in menu translations.
Solution:   Insert a backslash before a space.
2020-04-23 13:58:12 +02:00
ea04a6e8ba patch 8.2.0619: null dict is not handled like an empty dict
Problem:    Null dict is not handled like an empty dict.
Solution:   Fix the code and add tests. (Yegappan Lakshmanan, closes #5968)
2020-04-23 13:38:02 +02:00
db950e4c03 patch 8.2.0618: echoing a null list results in no output
Problem:    Echoing a null list results in no output. (Yegappan Lakshmanan)
Solution:   Return "[]" instead of NULL in echo_string_core().
2020-04-22 19:13:19 +02:00
d2662ad2de patch 8.2.0617: new error check triggers in Swedish menu
Problem:    New error check triggers in Swedish menu.
Solution:   Insert backslash. (Mats Tegner, closes #5966)
2020-04-22 14:30:31 +02:00
e770598f31 patch 8.2.0616: build error when disabling the diff feature
Problem:    Build error when disabling the diff feature.
Solution:   Move parenthesis outside of #ifdef. (Tom Ryder)
2020-04-21 22:23:15 +02:00
ad48e6c159 patch 8.2.0615: regexp benchmark stest is old style
Problem:    Regexp benchmark stest is old style.
Solution:   Make it a new style test.  Fix using a NULL list.  Add more tests.
            (Yegappan Lakshmanan, closes #5963)
2020-04-21 22:19:45 +02:00
ff06f283e3 patch 8.2.0614: get ml_get error when deleting a line in 'completefunc'
Problem:    Get ml_get error when deleting a line in 'completefunc'. (Yegappan
            Lakshmanan)
Solution:   Lock the text while evaluating 'completefunc'.
2020-04-21 22:01:14 +02:00
1966c24881 patch 8.2.0613: Vim9: no check for space before #comment
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.
2020-04-20 22:42:32 +02:00
2c7f8c574f Update runtime files 2020-04-20 19:52:53 +02:00
2c5ed4e330 patch 8.2.0612: Vim9: no check for space before #comment
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.
2020-04-20 19:42:10 +02:00
faac410409 patch 8.2.0611: Vim9: no check for space before #comment
Problem:    Vim9: no check for space before #comment.
Solution:   Add space checks.
2020-04-20 17:46:14 +02:00
08f4157c5c patch 8.2.0610: some tests are still old style
Problem:    Some tests are still old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5957)
2020-04-20 16:50:00 +02:00
ad4dc83389 patch 8.2.0609: configure does not detect moonjit correctly
Problem:    Configure does not detect moonjit correctly.
Solution:   Double the brackets. (Ozaki Kiichi)
2020-04-20 16:21:53 +02:00
4da6df40f5 patch 8.2.0608: warning from clang when building message test
Problem:    Warning from clang when building message test.
Solution:   Use a void pointer.  (Dominique Pelle, closes #5958)
2020-04-20 16:12:09 +02:00
2bb76accc6 patch 8.2.0607: gcc warns for using uninitialized variable
Problem:    Gcc warns for using uninitialized variable. (John Marriott)
Solution:   Set name_end also for environment variables.
2020-04-19 22:57:44 +02:00
fbf2122cf9 patch 8.2.0606: several syntax HL errors not checked
Problem:    Several syntax HL errors not checked.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5954)
2020-04-19 18:31:25 +02:00
7bdaea6e0d patch 8.2.0605: Vim9: cannot unlet an environment variable
Problem:    Vim9: cannot unlet an environment variable.
Solution:   Implement unlet for $VAR.
2020-04-19 18:27:26 +02:00
eb58a24658 patch 8.2.0604: :startinsert in a terminal window used later
Problem:    :startinsert in a terminal window used later.
Solution:   Ignore :startinsert in a terminal window. (closes #5952)
2020-04-19 18:13:19 +02:00
f49e564082 patch 8.2.0603: configure does not detect moonjit
Problem:    Configure does not detect moonjit.
Solution:   Add check for moonjit. (Shlomi Fish, closes #5947)
2020-04-19 17:46:53 +02:00
7e0868efcf patch 8.2.0602: :unlet $VAR does not work properly
Problem:    :unlet $VAR does not work properly.
Solution:   Make ":lockvar $VAR" fail.  Check the "skip" flag.
2020-04-19 17:24:53 +02:00
d72c1bf0a6 patch 8.2.0601: Vim9: :unlet is not compiled
Problem:    Vim9: :unlet is not compiled.
Solution:   Implement :unlet instruction and check for errors.
2020-04-19 16:28:59 +02:00
d3aac2917d patch 8.2.0600: Vim9: cannot read or write w:, t: and b: variables
Problem:    Vim9: cannot read or write w:, t: and b: variables.
Solution:   Implement load and store for w:, t: and b: variables.
            (closes #5950)
2020-04-19 14:32:17 +02:00
173d841e86 patch 8.2.0599: Netbeans interface insufficiently tested
Problem:    Netbeans interface insufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5921)
2020-04-19 14:02:26 +02:00
61fbb3371e patch 8.2.0598: test_eval_stuff fails in normal terminal
Problem:    Test_eval_stuff fails in normal terminal.
Solution:   Close the new window.
2020-04-18 23:20:37 +02:00
90455cfa87 patch 8.2.0597: test_eval is old style
Problem:    Test_eval is old style.
Solution:   Change some tests to a new style test.
2020-04-18 21:56:38 +02:00
ec9749f33d patch 8.2.0596: crash in test49
Problem:    Crash in test49.
Solution:   Check the right pointer.
2020-04-18 20:51:40 +02:00
a26b9700d7 patch 8.2.0595: Vim9: not all commands using ends_excmd() tested
Problem:    Vim9: not all commands using ends_excmd() tested.
Solution:   Find # comment after regular commands. Add more tests.  Report
            error for where it was caused.
2020-04-18 19:53:28 +02:00
b6fb0516ec patch 8.2.0594: MS-Windows: cannot build with WINVER set to 0x0501
Problem:    MS-Windows: cannot build with WINVER set to 0x0501.
Solution:   Only use inet_ntop() when available. (Ozaki Kiichi, closes #5946)
2020-04-18 18:24:18 +02:00
a494f56f88 patch 8.2.0593: finding a user command is not optimal
Problem:    Finding a user command is not optimal.
Solution:   Start further down in the list of commands.
2020-04-18 17:45:38 +02:00
2695de63e3 patch 8.2.0592: MS-Windows with VTP: cursor is not made invisible
Problem:    MS-Windows with VTP: cursor is not made invisible.
Solution:   Output the code to make the cursor visible or invisible. (Nobuhiro
            Takasaki, closes #5941)
2020-04-17 21:13:01 +02:00
aa82259fef patch 8.2.0591: MS-Windows: should always support IPv6
Problem:    MS-Windows: should always support IPv6
Solution:   Add build flag. (Ozaki Kiichi, closes #5944)
2020-04-17 20:48:57 +02:00
aa0489e12d patch 8.2.0590: no 'backspace' value allows ignoring the insertion point
Problem:    No 'backspace' value allows ignoring the insertion point.
Solution:   Add the "nostop" and 3 values. (Christian Brabandt, closes #5940)
2020-04-17 19:41:21 +02:00
0fc1288aef patch 8.2.0589: .bsd file type not recognized
Problem:    .bsd file type not recognized.
Solution:   Recognize .bsd as BSDL. (Daniel Kho, closes #5945)
2020-04-17 19:23:06 +02:00
314ca7cbb4 patch 8.2.0588: Putty does not use "sgr" 'ttymouse' by default
Problem:    Putty does not use "sgr" 'ttymouse' by default.
Solution:   Make "sgr" the default for Putty. (Christian Brabandt,
            closes #5942)
2020-04-17 16:40:31 +02:00
21cfe500f3 patch 8.2.0587: compiler warning for unused variable
Problem:    Compiler warning for unused variable.
Solution:   Add UNUSED.
2020-04-16 23:01:50 +02:00
4a8d9f2ed8 patch 8.2.0586: Vim9: # comment not sufficiently tested
Problem:    Vim9: # comment not sufficiently tested
Solution:   Check for preceding white space.
2020-04-16 22:54:32 +02:00
7a09224583 patch 8.2.0585: Vim9: # comment not recognized after :vim9script
Problem:    Vim9: # comment not recognized after :vim9script.
Solution:   Check script type. Make comment after ":echo" work.  And in
            several other places.
2020-04-16 22:10:49 +02:00
c5f33db888 patch 8.2.0584: viminfo file uses obsolete function file_readable()
Problem:    Viminfo file uses obsolete function file_readable().
Solution:   Use filereadable(). (closes #5934)
2020-04-16 21:04:41 +02:00
cb711abf0f patch 8.2.0583: Vim9: # comment not recognized in :def function
Problem:    Vim9: # comment not recognized in :def function.
Solution:   Recognize and skip # comment.
2020-04-16 13:00:29 +02:00
b4a549fb16 patch 8.2.0582: color ramp test does not show text colors
Problem:    Color ramp test does not show text colors.
Solution:   Add a row of 16 text colors and 16 bold text colors.
2020-04-15 21:44:11 +02:00
81ccbf199f patch 8.2.0581: Win32 console: the cursor position is always top-left
Problem:    Win32 console: the cursor position is always top-left.
Solution:   Revert the patch for restoring screen.
2020-04-15 21:05:30 +02:00
edd327cc07 patch 8.2.0580: window size wrong if 'ea' is off and 'splitright' is on
Problem:    Window size wrong if 'ea' is off and 'splitright' is on and
            splitting then closing a window.
Solution:   Put abandoned window space in the right place. (Mark Waggoner)
2020-04-15 20:05:47 +02:00
4d5d0dfe94 patch 8.2.0579: Coverity warns for unused value
Problem:    Coverity warns for unused value.
Solution:   Change order and use "else if".
2020-04-14 20:56:31 +02:00
6c2b7b8055 patch 8.2.0578: heredoc for interfaces does not support "trim"
Problem:    Heredoc for interfaces does not support "trim".
Solution:   Update the script heredoc support to be same as the :let command.
            (Yegappan Lakshmanan, closes #5916)
2020-04-14 20:15:49 +02:00
7a1637f4c0 patch 8.2.0577: not all modifiers supported for :options
Problem:    Not all modifiers supported for :options.
Solution:   Use all cmdmod.split flags. (closes #4401)
2020-04-13 21:16:21 +02:00
067297e16a patch 8.2.0576: some errors are not covered by tests
Problem:    Some errors are not covered by tests.
Solution:   Add a few more tests. (Dominique Pelle, closes #5920)
2020-04-13 19:55:50 +02:00
e3242346cf patch 8.2.0575: :digraph! not tested
Problem:    :digraph! not tested.
Solution:   Add a test. (Dominique Pelle, closes #5925)
2020-04-13 19:46:43 +02:00
352f554b85 patch 8.2.0574: ipv6 feature not shown in :version output
Problem:    Ipv6 feature not shown in :version output.
Solution:   Add ipv6 in :version output. (Ozaki Kiichi, closes #5924)
2020-04-13 19:04:21 +02:00
278e83863b patch 8.2.0573: using :version twice leaks memory
Problem:    using :version twice leaks memory
Solution:   Only initialize variables once. (Dominique Pelle, closes #5917)
2020-04-13 18:25:33 +02:00
df1956075d patch 8.2.0572: using two lines for free and reset
Problem:    Using two lines for free and reset.
Solution:   Use VIM_CLEAR() instead. (Yegappan Lakshmanan)
2020-04-13 18:13:33 +02:00
0015795baa patch 8.2.0571: double free when passing invalid argument to job_start()
Problem:    Double free when passing invalid argument to job_start().
Solution:   Clear the argument when freed. (Masato Nishihata, closes #5926)
2020-04-13 17:44:47 +02:00
6e949784be patch 8.2.0570: Vim9: no error when omitting type from argument
Problem:    Vim9: no error when omitting type from argument.
Solution:   Enforce specifying argument types.
2020-04-13 17:21:00 +02:00
fbda69b309 patch 8.2.0569: build failure with tiny version
Problem:    Build failure with tiny version.
Solution:   Add #ifdef.
2020-04-13 15:06:53 +02:00
55b0fb7001 patch 8.2.0568: the man filetype plugin overwrites the unnamed register
Problem:    The man filetype plugin overwrites the unnamed register.
Solution:   Use the black hole register. (Jason Franklin)
2020-04-13 14:58:37 +02:00
2c330432cf patch 8.2.0567: Vim9: cannot put comments halfway expressions
Problem:    Vim9: cannot put comments halfway expressions.
Solution:   Support # comments in many places.
2020-04-13 14:41:35 +02:00
1a2f4bf6c8 patch 8.2.0566: Vim9: variable can be used uninitialized
Problem:    Vim9: variable can be used uninitialized.
Solution:   Jump to after where variable is used.
2020-04-12 23:09:25 +02:00
675f716efb patch 8.2.0565: Vim9: tests contain superfluous line continuation
Problem:    Vim9: tests contain superfluous line continuation.
Solution:   Remove line continuation no longer needed.  Skip empty lines.
2020-04-12 22:53:54 +02:00
23e032523e patch 8.2.0564: Vim9: calling a def function from non-vim9 may fail
Problem:    Vim9: calling a def function from non-vim9 may fail.
Solution:   Convert varargs to a list.
2020-04-12 22:22:31 +02:00
5e774c7579 patch 8.2.0563: Vim9: cannot split a function line
Problem:    Vim9: cannot split a function line.
Solution:   Continue in next line so long as the function isn't done.
2020-04-12 21:53:00 +02:00
9c7e6dd653 patch 8.2.0562: Vim9: cannot split an expression into multiple lines
Problem:    Vim9: cannot split an expression into multiple lines.
Solution:   Continue in next line after an operator.
2020-04-12 20:55:20 +02:00
e6085c5350 patch 8.2.0561: Vim9: cannot split function call in multiple lines
Problem:    Vim9: cannot split function call in multiple lines.
Solution:   Find more arguments in following lines.
2020-04-12 20:19:16 +02:00
2196bce56f patch 8.2.0560: compiler warning in tiny build
Problem:    Compiler warning in tiny build.
Solution:   Move declaration inside #ifdef. (Dominique Pelle, closes #5915)
2020-04-12 20:01:11 +02:00
a80faa8930 patch 8.2.0559: clearing a struct is verbose
Problem:    Clearing a struct is verbose.
Solution:   Define and use CLEAR_FIELD() and CLEAR_POINTER().
2020-04-12 19:37:17 +02:00
82de464f76 patch 8.2.0558: Vim9: dict code not covered by tests
Problem:    Vim9: dict code not covered by tests.
Solution:   Remove dead code, adjust test case.
2020-04-12 18:02:06 +02:00
bfe13ccc58 patch 8.2.0557: no IPv6 support for channels
Problem:    No IPv6 support for channels.
Solution:   Add IPv6 support. (Ozaki Kiichi, closes #5893)
2020-04-12 17:53:12 +02:00
c5f1ef53c2 patch 8.2.0556: Vim9: memory leak when finding common type
Problem:    Vim9: memory leak when finding common type.
Solution:   Store allocated memory in type growarray.
2020-04-12 17:11:27 +02:00
4fdae9996f patch 8.2.0555: Vim9: line continuation is not always needed
Problem:    Vim9: line continuation is not always needed.
Solution:   Recognize continuation lines automatically in list and dict.
2020-04-12 16:38:57 +02:00
acc770a10f patch 8.2.0554: the GUI doesn't set t_Co
Problem:    The GUI doesn't set t_Co.
Solution:   In the GUI set t_Co to 256 * 256 * 256. (closes #5903)
2020-04-12 15:11:06 +02:00
cd630becc8 patch 8.2.0553: error for unused argument
Problem:    Error for unused argument.
Solution:   Add UNUSED.
2020-04-12 14:50:26 +02:00
99aaf0ce7c patch 8.2.0552: Vim9: some errors not covered by tests
Problem:    Vim9: some errors not covered by tests.
Solution:   Add more tests.  Check Funcref argument types.
2020-04-12 14:39:53 +02:00
1363a30cef patch 8.2.0551: not all code for options is tested
Problem:    Not all code for options is tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5913)
2020-04-12 13:50:26 +02:00
88c1ee84d6 patch 8.2.0550: some changes in the libvterm upstream code
Problem:    Some changes in the libvterm upstream code.
Solution:   Include some changes.
2020-04-12 13:38:57 +02:00
3b922f1138 patch 8.2.0549: user systemd files not recognized
Problem:    User systemd files not recognized.
Solution:   Add filetype patterns. (Kevin Locke, closes #5914)
2020-04-12 12:54:52 +02:00
08938eeba4 patch 8.2.0548: Vim9: not all possible func type errors tested
Problem:    Vim9: not all possible func type errors tested.
Solution:   Add more tests.
2020-04-11 23:17:17 +02:00
e7f234120f patch 8.2.0547: Win32: restoring screen not always done right
Problem:    Win32: restoring screen not always done right.
Solution:   Use a more appropriate method. (Nobuhiro Takasaki, closes #5909)
2020-04-11 22:38:34 +02:00
fe27081724 patch 8.2.0546: Vim9: varargs implementation is inefficient
Problem:    Vim9: varargs implementation is inefficient.
Solution:   Create list without moving the arguments.
2020-04-11 22:31:27 +02:00
d19a8f97ad patch 8.2.0545: unused arguments ignored in non-standard way
Problem:    Unused arguments ignored in non-standard way.
Solution:   Add UNUSED instead of (void).
2020-04-11 21:42:48 +02:00
880e4d9117 patch 8.2.0544: memory leak in search test
Problem:    Memory leak in search test.
Solution:   Free msgbuf. (Dominique Pelle, closes #5912)
2020-04-11 21:31:28 +02:00
1378fbc459 patch 8.2.0543: Vim9: function with varargs does not work properly
Problem:    Vim9: function with varargs does not work properly.
Solution:   Improve function type spec and add tests.  Fix bugs.
2020-04-11 20:50:33 +02:00
8832a34578 patch 8.2.0542: no test for E386
Problem:    No test for E386.
Solution:   Add a test. (Dominique Pelle, closes #5911)
2020-04-11 18:36:38 +02:00
81ea1dfb97 patch 8.2.0541: Travis CI does not give compiler warnings
Problem:    Travis CI does not give compiler warnings.
Solution:   Add flags for warnings.  Fix uncovered problems. (Ozaki Kiichi,
            closes #5898)
2020-04-11 18:01:41 +02:00
004a6781b3 patch 8.2.0540: regexp and other code not tested
Problem:    Regexp and other code not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5904)
2020-04-11 17:09:31 +02:00
d1caa941d8 Update runtime files 2020-04-10 22:10:56 +02:00
7b293c730b patch 8.2.0539: comparing two NULL list fails
Problem:    Comparing two NULL list fails.
Solution:   Change the order of comparing two lists.
2020-04-09 21:33:22 +02:00
9c8bb7c0e2 patch 8.2.0538: Vim9: VAR_PARTIAL is not used during compilation
Problem:    Vim9: VAR_PARTIAL is not used during compilation.
Solution:   Remove VAR_PARTIAL.
2020-04-09 21:08:09 +02:00
cab2767874 patch 8.2.0537: Vim9: no check for sandbox when setting v:var
Problem:    Vim9: no check for sandbox when setting v:var.
Solution:   Check for sandbox.
2020-04-09 20:10:55 +02:00
5da356e073 patch 8.2.0536: Vim9: some compilation code not tested
Problem:    Vim9: some compilation code not tested.
Solution:   Add more test cases.
2020-04-09 19:34:43 +02:00
4d23c52824 patch 8.2.0535: regexp patterns not fully tested
Problem:    Regexp patterns not fully tested.
Solution:   Add more regexp tests and others. (Yegappan Lakshmanan,
            closes #5901)
2020-04-09 18:42:11 +02:00
25d5700952 patch 8.2.0534: client-server test fails under valgrind
Problem:    Client-server test fails under valgrind.
Solution:   Use WaitForAssert().
2020-04-08 22:56:34 +02:00
6a2c5a7dd5 patch 8.2.0533: tests using term_wait() can still be flaky
Problem:    Tests using term_wait() can still be flaky.
Solution:   Increase the wait time when rerunning a test. (James McCoy,
            closes #5899)  Halve the initial times to make tests run faster
            when there is no rerun.
2020-04-08 21:50:25 +02:00
7035fd9d90 patch 8.2.0532: cannot use simplify() as a method
Problem:    Cannot use simplify() as a method.
Solution:   Add FEARG_1. (closes #5996)
2020-04-08 20:03:52 +02:00
476a613135 patch 8.2.0531: various errors not tested
Problem:    Various errors not tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5895)
2020-04-08 19:48:56 +02:00
a65c288134 patch 8.2.0530: test crashes on s390
Problem:    Test crashes on s390. (James McCoy)
Solution:   Explicitly define an 8 big signed type. (closes #5897)
2020-04-08 11:31:48 +02:00
49cf7cc8d2 patch 8.2.0529: Vim9: function argument with default not checked
Problem:    Vim9: function argument with default not checked.
Solution:   Check type of argument with default value.
2020-04-07 22:45:00 +02:00
0b76b42d0a patch 8.2.0528: Vim9: function arguments insufficiently tested
Problem:    Vim9: function arguments insufficiently tested.
Solution:   Check types.  Add more tests.  Fix function with varargs only.
2020-04-07 22:05:08 +02:00
ec5929d0fe patch 8.2.0527: Vim9: function types insufficiently tested
Problem:    Vim9: function types insufficiently tested.
Solution:   Add more tests.  Fix white space check.  Add "test_vim9" target.
2020-04-07 20:53:39 +02:00
86b9a3e8cd patch 8.2.0526: Gcc 9 complains about empty statement
Problem:    Gcc 9 complains about empty statement.
Solution:   Add {}. (Dominique Pelle, closes #5894)
2020-04-07 19:57:29 +02:00
40655d5016 patch 8.2.0525: Win32: typo in assignment and misplaced paren
Problem:    Win32: typo in assignment and misplaced paren.
Solution:   Fix the syntax.
2020-04-06 23:49:50 +02:00
c74fbfedfa patch 8.2.0524: Win32: searching for file matches is slow
Problem:    Win32: searching for file matches is slow.
Solution:   Instead of making another round to find any short filename, check
            for the short name right away. Avoid using an ordinary file like a
            directory.  (Nir Lichtman, closes #5883)
2020-04-06 22:56:28 +02:00
00d253e2b2 patch 8.2.0523: loops are repeated
Problem:    Loops are repeated.
Solution:   Use FOR_ALL_ macros. (Yegappan Lakshmanan, closes #5882)
2020-04-06 22:13:01 +02:00
ee4e0c1e9a patch 8.2.0522: several errors are not tested for
Problem:    Several errors are not tested for.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5892)
2020-04-06 21:35:05 +02:00
15352dc6ec patch 8.2.0521: crash when reading a blob fails
Problem:    Crash when reading a blob fails.
Solution:   Avoid keeping a pointer to a freed blob object. (Dominique Pelle,
            closes #5890)  Adjust error messages.
2020-04-06 21:12:42 +02:00
6c307dcd55 patch 8.2.0520: tests are not listed in sorted order
Problem:    Tests are not listed in sorted order.
Solution:   Move test_ex_mode. (Doug Richardson, closes #5889)
2020-04-05 23:04:57 +02:00
8922860afb patch 8.2.0519: Vim9: return type not properly checked
Problem:    Vim9: return type not properly checked.
Solution:   Check type properly, also at runtime.
2020-04-05 22:14:54 +02:00
5ba8d3578c patch 8.2.0518: a terminal falls back to setting $TERM to "xterm"
Problem:    A terminal falls back to setting $TERM to "xterm".
Solution:   Use "xterm-color" if more than 16 colors are supported and
            "xterm-256color" if at least 256 colors are supported.
            (closes #5887)
2020-04-05 21:42:12 +02:00
4c68375057 patch 8.2.0517: Vim9: cannot separate "func" and "func(): void"
Problem:    Vim9: cannot separate "func" and "func(): void".
Solution:   Use VAR_ANY for "any" and VAR_UNKNOWN for "no type".
2020-04-05 21:38:23 +02:00
f87a0400fd patch 8.2.0516: client-server code is spread out
Problem:    Client-server code is spread out.
Solution:   Move client-server code to a new file. (Yegappan Lakshmanan,
            closes #5885)
2020-04-05 20:21:03 +02:00
b8ed3aa9e7 patch 8.2.0515: some compilers cannot add to "void *"
Problem:    Some compilers cannot add to "void *".
Solution:   Cast to "char *".
2020-04-05 19:09:05 +02:00
bdff012f44 patch 8.2.0514: several global functions are used in only one file
Problem:    Several global functions are used in only one file.
Solution:   Make the functions static. (Yegappan Lakshmanan, closes #5884)
2020-04-05 18:56:05 +02:00
5d905c2b96 patch 8.2.0513: reading past allocate memory when using varargs
Problem:    Reading past allocate memory when using varargs.
Solution:   Fix copying function argument types.
2020-04-05 18:20:45 +02:00
5deeb3f1f9 patch 8.2.0512: Vim9: no optional arguments in func type
Problem:    Vim9: no optional arguments in func type.
Solution:   Check for question mark after type.  Find function reference
            without function().
2020-04-05 17:08:17 +02:00
d7ffc0ba8c patch 8.2.0511: Cscope code not fully tested
Problem:    Cscope code not fully tested.
Solution:   Add more test cases. (Dominique Pelle, closes #5886)
2020-04-05 15:36:16 +02:00
8d4ed11da6 patch 8.2.0510: Coverity complains about using uninitialized variable
Problem:    Coverity complains about using uninitialized variable.
Solution:   Assign a value to "scol".  Move code inside NULL check.
2020-04-04 14:50:32 +02:00
cde0ff39da patch 8.2.0509: various code is not properly tested.
Problem:    various code is not properly tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5871)
2020-04-04 14:00:39 +02:00
d77a8525d5 patch 8.2.0508: Vim9: func and partial types not done yet
Problem:    Vim9: func and partial types not done yet
Solution:   Fill in details about func declaration, drop a separate partial
            declaration.
2020-04-03 21:59:57 +02:00
5259275347 patch 8.2.0507: getbufvar() may get the wrong dictionary
Problem:    Getbufvar() may get the wrong dictionary. (David le Blanc)
Solution:   Check for empty name. (closes #5878)
2020-04-03 18:43:35 +02:00
d1e9dc2723 patch 8.2.0506: Coverity complains about ignoring return value
Problem:    Coverity complains about ignoring return value.
Solution:   Add (void).
2020-04-03 18:13:57 +02:00
01603a9970 patch 8.2.0505: term_getty() not sufficiently tested
Problem:    term_getty() not sufficiently tested.
Solution:   Add more asserts. (Dominique Pelle, closes #5877)
2020-04-03 12:56:17 +02:00
3cca299520 patch 8.2.0504: Vim9: leaking scope memory when compilation fails
Problem:    Vim9: leaking scope memory when compilation fails.
Solution:   Cleanup the scope list.
2020-04-02 22:57:36 +02:00
585fea7b98 patch 8.2.0503: Vim9: some code is not tested
Problem:    Vim9: some code is not tested.
Solution:   Add tests.  Fix uncovered problems.
2020-04-02 22:33:21 +02:00
e8c4abbbd7 patch 8.2.0502: Vim9: some code is not tested
Problem:    Vim9: some code is not tested.
Solution:   Add more tests.  Fix uncovered problems.
2020-04-02 21:13:25 +02:00
2c869deeb7 patch 8.2.0501: Vim9: script test fails when channel feature is missing
Problem:    Vim9: script test fails when channel feature is missing.
Solution:   Add a has() condition.
2020-04-02 19:12:08 +02:00
aeea72151c patch 8.2.0500: using the same loop in many places
Problem:    Using the same loop in many places.
Solution:   Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339)
2020-04-02 18:50:46 +02:00
f10806b250 patch 8.2.0499: calling a lambda is slower than evaluating a string
Problem:    Calling a lambda is slower than evaluating a string.
Solution:   Make calling a lambda faster. (Ken Takata, closes #5727)
2020-04-02 18:34:35 +02:00
4227c789ff patch 8.2.0498: Coverity complains about uninitialized field
Problem:    Coverity complains about uninitialized field.
Solution:   Initialize the whole typval_T.
2020-04-02 16:00:04 +02:00
e5bae13da3 patch 8.2.0497: too verbose output from the asan build in Travis
Problem:    Too verbose output from the asan build in Travis.
Solution:   Filter out suppression messages. (Ozaki Kiichi, closes #5874)
2020-04-02 15:17:32 +02:00
a4d4cf490e patch 8.2.0496: Vim9: disassemble test fails
Problem:    Vim9: disassemble test fails.
Solution:   Separate test cases with recognized constant expressions.
2020-04-02 13:50:27 +02:00
80c34ca312 patch 8.2.0495: Vim9: some code not tested
Problem:    Vim9: some code not tested.
Solution:   Add more tests.  Support more const expressions.
2020-04-01 23:05:18 +02:00
ea94fbe83b patch 8.2.0494: Vim9: asan error
Problem:    Vim9: asan error.
Solution:   Only get the type when there is one.
2020-04-01 22:36:49 +02:00
e69f6d044c patch 8.2.0493: Vim9: some error messages not tested
Problem:    Vim9: some error messages not tested.
Solution:   Add more tests.  Fix uncovered bugs.
2020-04-01 22:11:01 +02:00
a8c1770469 patch 8.2.0492: Vim9: some error messages not tested
Problem:    Vim9: some error messages not tested.
Solution:   Add more tests.  Remove dead code.  Fix uncovered bugs.
2020-04-01 21:17:24 +02:00
2da0f0c445 patch 8.2.0491: cannot recognize a <script> mapping using maparg()
Problem:    Cannot recognize a <script> mapping using maparg().
Solution:   Add the "script" key. (closes #5873)
2020-04-01 19:22:12 +02:00
0afdcf8601 patch 8.2.0490: Win32: VTP doesn't respect 'restorescreen'
Problem:    Win32: VTP doesn't respect 'restorescreen'.
Solution:   Use escape codes to switch to alternate screen. (Nobuhiro
            Takasaki, closes #5872)
2020-04-01 18:29:10 +02:00
25b70c780a patch 8.2.0489: Vim9: memory leaks
Problem:    Vim9: memory leaks.
Solution:   Free memory in the right place.  Add hints for using asan.
2020-04-01 16:34:17 +02:00
05afceeddc patch 8.2.0488: Vim9: compiling can break when using a lambda inside :def
Problem:    Vim9: Compiling can break when using a lambda inside :def.
Solution:   Do not keep a pointer to the dfunc_T for longer time.
2020-03-31 23:32:31 +02:00
bd5da371aa patch 8.2.0487: Vim9: compiling not sufficiently tested
Problem:    Vim9: compiling not sufficiently tested.
Solution:   Add more tests.  Fix bug with PCALL.
2020-03-31 23:13:10 +02:00
9be61bbb17 patch 8.2.0486: Vim9: some code and error messages not tested
Problem:    Vim9: some code and error messages not tested.
Solution:   Add more tests.
2020-03-30 22:51:24 +02:00
01b3862956 patch 8.2.0485: Vim9 script test fails
Problem:    Vim9 script test fails.
Solution:   Stricter condition for adding new local variable.
2020-03-30 21:28:39 +02:00
92dba36fc8 patch 8.2.0484: Vim9: some error messages not tested
Problem:    Vim9: some error messages not tested.
Solution:   Add more tests.
2020-03-30 21:22:56 +02:00
d25ec2cfa0 patch 8.2.0483: Vim9: "let x = x + 1" does not give an error
Problem:    Vim9: "let x = x + 1" does not give an error.
Solution:   Hide the variable when compiling the expression.
2020-03-30 21:05:45 +02:00
ca68ae1311 patch 8.2.0482: channel and sandbox code not sufficiently tested
Problem:    Channel and sandbox code not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5855)
2020-03-30 19:32:53 +02:00
7d333a900d patch 8.2.0481: Travis is still using trusty
Problem:    Travis is still using trusty.
Solution:   Adjust config to use bionic. (Ozaki Kiichi, closes #5868)
2020-03-30 19:13:29 +02:00
0b37a2f379 patch 8.2.0480: Vim9: some code is not tested
Problem:    Vim9: some code is not tested.
Solution:   Add more tests.
2020-03-29 21:38:15 +02:00
2027973b5b patch 8.2.0479: unloading shared libraries on exit has no purpose
Problem:    Unloading shared libraries on exit has no purpose.
Solution:   Do not unload shared libraries on exit.
2020-03-29 20:51:07 +02:00
5908fdf72f patch 8.2.0478: new buffers are not added to the Buffers menu
Problem:    New buffers are not added to the Buffers menu.
Solution:   Turn number into string. (Yee Cheng Chin, closes #5864)
2020-03-29 20:08:45 +02:00
c58164c5cf patch 8.2.0477: Vim9: error messages not tested
Problem:    Vim9: error messages not tested.
Solution:   Add more tests.
2020-03-29 18:40:30 +02:00
52ea92b19d patch 8.2.0476: terminal nasty callback test fails sometimes
Problem:    Terminal nasty callback test fails sometimes.
Solution:   use term_wait() instead of a sleep. (Yee Cheng Chin,closes #5865)
2020-03-29 17:50:48 +02:00
bf54dbeb5c patch 8.2.0475: channel out_cb test still fails sometimes on Mac
Problem:    Channel out_cb test still fails sometimes on Mac.
Solution:   Use an ever longer timeout.
2020-03-29 16:18:58 +02:00
0fff44152d patch 8.2.0474: cannot use :write when using a plugin with BufWriteCmd
Problem:    Cannot use :write when using a plugin with BufWriteCmd.
Solution:   Reset BF_NOTEDITED after BufWriteCmd. (closes #5807)
2020-03-29 16:06:29 +02:00
8601545338 patch 8.2.0473: variables declared in an outer scope
Problem:    Variables declared in an outer scope.
Solution:   Decleare variables only in the scope where they are used.
2020-03-29 15:12:15 +02:00
360bdbda81 patch 8.2.0472: terminal highlight name is set twice, leaking memory
Problem:    Terminal highlight name is set twice, leaking memory.
Solution:   Delete one.
2020-03-28 22:37:14 +01:00
a30590d3e7 patch 8.2.0471: missing change to compile_list()
Problem:    Missing change to compile_list().
Solution:   Add error message.
2020-03-28 22:06:23 +01:00
7b1b36b1cb patch 8.2.0470: Test_confirm_cmd_cancel() can fail on a slow system
Problem:    Test_confirm_cmd_cancel() can fail on a slow system.
Solution:   Use WaitForAssert(). (Ozaki Kiichi, closes #5861)
2020-03-28 21:48:55 +01:00
ee619e5bc0 patch 8.2.0469: Vim9: no error for missing ] after list
Problem:    Vim9: no error for missing ] after list.
Solution:   Add error message. Add more tests.
2020-03-28 21:38:06 +01:00
7c003aa314 patch 8.2.0468: GUI: pixel dust with some fonts and characters
Problem:    GUI: pixel dust with some fonts and characters.
Solution:   Always redraw the character before the cursor. (Nir Lichtman,
            closes #5549, closes #5856)
2020-03-28 20:44:41 +01:00
33fa29cf74 patch 8.2.0467: Vim9: some errors are not tested
Problem:    Vim9: some errors are not tested
Solution:   Add more tests.  Fix that Vim9 script flag is not reset.
2020-03-28 19:41:33 +01:00
09c569038c patch 8.2.0466: not parsing messages recursively breaks the govim plugin
Problem:    Not parsing messages recursively breaks the govim plugin.
Solution:   When called recursively do handle messages but do not close
            channels.
2020-03-28 18:06:31 +01:00
599c89c82f patch 8.2.0465: Vim9: dead code and wrong return type
Problem:    Vim9: dead code and wrong return type.
Solution:   Remove dead code.  Fix return type.  Add more tests.
2020-03-28 14:53:20 +01:00
495282b6e7 Correct list of patch numbers 2020-03-27 20:59:54 +01:00
14285cb801 patch 8.2.0464: typos and other small problems
Problem:    Typos and other small problems.
Solution:   Fix the typos.  Add missing files to the distribution.
2020-03-27 20:58:37 +01:00
2d9d409ad4 patch 8.2.0464: typos and other small problems
Problem:    Typos and other small problems.
Solution:   Fix the typos.  Add missing file to distribution.
2020-03-27 20:52:45 +01:00
191acfdeca Update runtime files 2020-03-27 20:42:43 +01:00
37bb030cd9 patch 8.2.0462: previewwindow test fails on some systems
Problem:    Previewwindow test fails on some systems. (James McCoy)
Solution:   Wait a bit after sending the "o". (closes #5849)
2020-03-27 20:24:14 +01:00
9207d1f523 patch 8.2.0461: confirm test fails on amd64 system
Problem:    Confirm test fails on amd64 system. (Alimar Riesebieter)
Solution:   Add an extra WaitForAssert(). (Dominique Pelle)
2020-03-27 19:41:02 +01:00
bd5e622bfa patch 8.2.0460: build failure because of wrong feature name
Problem:    Build failure because of wrong feature name.
Solution:   Correct feature name.
2020-03-26 23:13:34 +01:00
15c476023f patch 8.2.0459: cannot check if a function name is correct
Problem:    Cannot check if a function name is correct.
Solution:   Add "?funcname" to exists().
2020-03-26 22:16:48 +01:00
bea9023d42 patch 8.2.0458: missing feature check in test function
Problem:    Missing feature check in test function.
Solution:   Add check commands.
2020-03-26 22:09:52 +01:00
26bde6e2eb patch 8.2.0457: Test_quotestar() often fails when run under valgrind
Problem:    Test_quotestar() often fails when run under valgrind.
Solution:   Wait longer for the GUI to start.
2020-03-26 21:11:58 +01:00
72749f062f patch 8.2.0456: Test_confirm_cmd is flaky
Problem:    Test_confirm_cmd is flaky.
Solution:   Add a term_wait() call. (closes #5854)
2020-03-26 20:51:43 +01:00
83d4790a04 patch 8.2.0455: cannot set the highlight group for a specific terminal
Problem:    Cannot set the highlight group for a specific terminal.
Solution:   Add the "highlight" option to term_start(). (closes #5818)
2020-03-26 20:34:00 +01:00
3ed9efc2b1 patch 8.2.0454: some tests fail when the system is slow
Problem:    Some tests fail when the system is slow.
Solution:   Make the run number global, use in the test to increase the
            waiting time. (closes #5841)
2020-03-26 16:50:57 +01:00
7851b1ca99 patch 8.2.0453: trailing space in job_start() command causes empty argument
Problem:    Trailing space in job_start() command causes empty argument.
Solution:   Ignore trailing space. (closes #5851)
2020-03-26 16:27:38 +01:00
a9c3a30891 patch 8.2.0452: channel_parse_messages() fails when called recursively
Problem:    channel_parse_messages() fails when called recursively.
Solution:   Return for a recursive call. (closes #5835)
2020-03-26 16:03:45 +01:00
82e743c5b3 patch 8.2.0451: Win32: double-width character displayed incorrectly
Problem:    Win32: double-width character displayed incorrectly.
Solution:   First move the cursor to the first column. (Nobuhiro Takasaki,
            closes #5848)
2020-03-26 15:39:53 +01:00
7d941ee032 patch 8.2.0450: not enough testing for restricted mode and function calls
Problem:    Not enough testing for restricted mode and function calls.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5847)
2020-03-26 14:11:58 +01:00
cf3f8bf4dd patch 8.2.0449: Vim9: crash if return type is invalid
Problem:    Vim9: crash if return type is invalid. (Yegappan Lakshmanan)
Solution:   Always return some type, not NULL.
2020-03-26 13:15:42 +01:00
0e05de4622 patch 8.2.0448: various functions not properly tested
Problem:    Various functions not properly tested.
Solution:   Add more tests, especially for failures. (Yegappan Lakshmanan,
            closes #5843)
2020-03-25 22:23:46 +01:00
bfcfd5784a patch 8.2.0447: terminal scroll tests fails on some systems
Problem:    Terminal scroll tests fails on some systems.
Solution:   Remove the fixed 100msec wait for Win32.  Add a loop to wait until
            scrolling has finished. (James McCoy, closes #5842)
2020-03-25 21:27:22 +01:00
a07e31af54 patch 8.2.0446: listener with undo of deleting all lines not tested
Problem:    Listener with undo of deleting all lines not tested.
Solution:   Add a test.
2020-03-25 21:13:46 +01:00
f66ca9f1df patch 8.2.0445: png and xpm files not in MS-Windows zip file
Problem:    Png and xpm files not in MS-Windows zip file.
Solution:   Move files to shared between Unix and Windows target.
2020-03-25 20:17:00 +01:00
d36ef573b2 patch 8.2.0444: swap file test fails on some systems
Problem:    Swap file test fails on some systems.
Solution:   Preserve the swap file. Send NL terminated keys.
2020-03-24 21:44:51 +01:00
45fffdf10b patch 8.2.0443: clipboard code is spread out
Problem:    Clipboard code is spread out.
Solution:   Move clipboard code to its own file. (Yegappan Lakshmanan,
            closes #5827)
2020-03-24 21:42:01 +01:00
71658f74ae patch 8.2.0442: channel contents might be used after being freed
Problem:    Channel contents might be used after being freed.
Solution:   Reset the job channel before freeing the channel.
2020-03-24 20:35:19 +01:00
f3710ee22d patch 8.2.0441: terminal noblock test is still failing on BSD
Problem:    Terminal noblock test is still failing on BSD.
Solution:   Reduce the amount of text.
2020-03-24 12:12:30 +01:00
d06dbf3f42 patch 8.2.0440: terminal noblock test is still very flaky on BSD
Problem:    Terminal noblock test is still very flaky on BSD.
Solution:   Increase the waiting time.
2020-03-24 10:33:00 +01:00
1082772f4c patch 8.2.0439: :disassemble has minor flaws
Problem:    :disassemble has minor flaws.
Solution:   Format the code.  Use (int) instead of (char) for %c.
            (also by James McCoy, closes #5831)
2020-03-23 22:53:22 +01:00
d7b7770f11 patch 8.2.0438: terminal noblock test is very flaky on BSD
Problem:    Terminal noblock test is very flaky on BSD.
Solution:   Change WaitFor() to WaitForAssert() to be able to see why it
            failed.  Add a short wait in between sending keys.
2020-03-23 22:46:44 +01:00
0df541963d patch 8.2.0437: MS-Windows installer contains old stuff
Problem:    MS-Windows installer contains old stuff.
Solution:   Rely on Windows NT. (Ken Takata, closes #5832)
2020-03-23 22:17:11 +01:00
db99f9f29a patch 8.2.0436: no warnings for incorrect printf arguments
Problem:    No warnings for incorrect printf arguments.
Solution:   Fix attribute in declaration.  Fix uncovered mistakes. (Dominique
            Pelle, closes #5834)
2020-03-23 22:12:22 +01:00
dbbb0ef729 patch 8.2.0435: channel contents might be freed twice
Problem:    Channel contents might be freed twice.
Solution:   Call either channel_free_channel() or channel_free(), not both.
            (Nobuhiro Takasaki, closes #5835)
2020-03-23 22:01:17 +01:00
a8bd349638 patch 8.2.0434: MS-Windows with VTP: Normal color not working
Problem:    MS-Windows with VTP: Normal color not working.
Solution:   After changing the Normal color update the VTP console color.
            (Nobuhiro Takasaki, closes #5836)
2020-03-23 21:45:29 +01:00
bad8804cdd patch 8.2.0433: INT signal not properly tested
Problem:    INT signal not properly tested.
Solution:   Add a test.  Also clean up some unnecessary lines. (Dominique
            Pelle, closes #5828)
2020-03-23 20:54:32 +01:00
ab505b1a48 patch 8.2.0432: a few tests fail in a huge terminal
Problem:    A few tests fail in a huge terminal.
Solution:   Make the tests pass. (Dominique Pelle, closes #5829)
2020-03-23 19:28:44 +01:00
56ba21a156 patch 8.2.0431: some compilers don't support using \e for Esc
Problem:    Some compilers don't support using \e for Esc. (Yegappan
            Lakshmanan)
Solution:   use \033 instead.
2020-03-23 19:17:29 +01:00
5080b0a047 patch 8.2.0430: window creation failure not properly tested
Problem:    Window creation failure not properly tested.
Solution:   Improve the test. (Yegappan Lakshmanan, closes #5826)
2020-03-22 21:23:47 +01:00
c5a8fdc42d patch 8.2.0429: no warning when test checks for option that never exists
Problem:    No warning when test checks for option that never exists.
Solution:   In tests check that the option can exist.
2020-03-22 20:13:39 +01:00
d5bc32df20 patch 8.2.0428: buffer name may leak
Problem:    Buffer name may leak.
Solution:   Free the buffer name before overwriting it.
2020-03-22 19:25:50 +01:00
7929651e05 patch 8.2.0427: it is not possible to check for a typo in a feature name
Problem:    It is not possible to check for a typo in a feature name.
Solution:   Add an extra argument to has().
2020-03-22 16:17:14 +01:00
9b9be007e7 patch 8.2.0426: some errors were not tested for
Problem:    Some errors were not tested for.
Solution:   Add tests. (Dominique Pelle, closes #5824)
2020-03-22 14:41:22 +01:00
515545e11f patch 8.2.0425: code for modeless selection not sufficiently tested
Problem:    Code for modeless selection not sufficiently tested.
Solution:   Add tests.  Move mouse code functionality to a common script file.
            (Yegappan Lakshmanan, closes #5821)
2020-03-22 14:08:59 +01:00
97acfc781b patch 8.2.0424: checking for wrong return value
Problem:    Checking for wrong return value. (Tom)
Solution:   Invert the check and fix the test.
2020-03-22 13:44:28 +01:00
ce436de5a9 patch 8.2.0423: in some environments a few tests are expected to fail
Problem:    In some environments a few tests are expected to fail.
Solution:   Add $TEST_MAY_FAIL to list tests that should not cause make to
            fail.
2020-03-21 15:17:20 +01:00
0f1563ffee patch 8.2.0422: crash when passing popup window to win_splitmove()
Problem:    Crash when passing popup window to win_splitmove(). (john Devin)
Solution:   Disallow moving a popup window. (closes #5816)
2020-03-20 21:15:51 +01:00
9645e2d9fc patch 8.2.0421: interrupting with CTRL-C does not always work
Problem:    Interrupting with CTRL-C does not always work.
Solution:   Recognize CTRL-C while modifyOtherKeys is set.
2020-03-20 20:48:49 +01:00
f1ec378b01 patch 8.2.0420: Vim9: cannot interrupt a loop with CTRL-C
Problem:    Vim9: cannot interrupt a loop with CTRL-C.
Solution:   Check for CTRL-C once in a while.  Doesn't fully work yet.
2020-03-20 19:37:47 +01:00
20431c9dbb patch 8.2.0419: various memory leaks in Vim9 script code
Problem:    Various memory leaks in Vim9 script code.
Solution:   Fix the leaks. (Ozaki Kiichi, closes #5814)
2020-03-20 18:39:46 +01:00
8b63313510 patch 8.2.0418: code in eval.c not sufficiently covered by tests
Problem:    Code in eval.c not sufficiently covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5815)
2020-03-20 18:20:51 +01:00
98be7fecac patch 8.2.0417: Travis CI config can be improved
Problem:    Travis CI config can be improved.
Solution:   Remove COVERAGE variable. Add load-snd-dummy script. add "-i NONE"
            to avoid messages about viminfo. (Ozaki Kiichi, closes #5813)
2020-03-20 18:12:59 +01:00
ff78155aa1 Update runtime files 2020-03-19 20:37:11 +01:00
95e59a355b patch 8.2.0416: test leaves file behind
Problem:    Test leaves file behind.
Solution:   Delete the file.
2020-03-19 20:33:33 +01:00
40d235e730 patch 8.2.0415: bsdl filetype is not detected
Problem:    Bsdl filetype is not detected.
Solution:   Add an entry in the filetype list. (Daniel Kho, closes #5810)
2020-03-19 20:32:01 +01:00
373a876d0c patch 8.2.0414: channel connect_waittime() test is flaky
Problem:    Channel connect_waittime() test is flaky.
Solution:   Set the test_is_flaky flag.  Use test_is_flaky for more tests.
2020-03-19 19:44:32 +01:00
5e94a29ebb patch 8.2.0413: buffer menu does not handle special buffers properly
Problem:    Buffer menu does not handle special buffers properly.
Solution:   Keep a dictionary with buffer names to reliably keep track of
            entries.
            Also trigger BufFilePre and BufFilePost for command-line and
            terminal buffers when the name changes.
2020-03-19 18:46:57 +01:00
37f471df6e patch 8.2.0412: MS-Windows: cannot use vimtutor from the start menu
Problem:    MS-Windows: cannot use vimtutor from the start menu.
Solution:   Better check for writable directory. Use the right path for the
            executable. (Wu Yongwei, closes #5774, closes #5756)
2020-03-19 17:13:40 +01:00
24e9b6fe4b patch 8.2.0411: Mac: breakcheck is using a value from the stone ages
Problem:    Mac: breakcheck is using a value from the stone ages.
Solution:   Delete BREAKCHECK_SKIP from the Mac header file. (Ben Jackson)
2020-03-19 16:28:44 +01:00
3696839ef1 patch 8.2.0410: channel test fails too often on slow Mac
Problem:    Channel test fails too often on slow Mac.
Solution:   Increase waiting time to 10 seconds.
2020-03-19 16:22:44 +01:00
b68df220c5 patch 8.2.0409: search test leaves file behind
Problem:    Search test leaves file behind.
Solution:   Delete the file.  Also use Check commands.
2020-03-19 15:05:28 +01:00
22da5596d0 patch 8.2.0408: delete() commented out for testing
Problem:    Delete() commented out for testing.
Solution:   Undo commenting-out.
2020-03-19 14:52:20 +01:00
2d10cd4780 patch 8.2.0407: no early check if :find and :sfind have an argument
Problem:    No early check if :find and :sfind have an argument.
Solution:   Add EX_NEEDARG.
2020-03-19 14:37:30 +01:00
e32848780c patch 8.2.0406: FileReadCmd event not well tested
Problem:    FileReadCmd event not well tested.
Solution:   Add a test.
2020-03-19 13:55:03 +01:00
3fa5e13262 patch 8.2.0405: MSVC: build fails with some combination of features
Problem:    MSVC: build fails with some combination of features.
Solution:   Enable CHANNEL if TERMINAL is enabled. (Mike Williams)
2020-03-19 13:36:56 +01:00
18a2b87ca2 patch 8.2.0404: writefile() error does not give a hint
Problem:    Writefile() error does not give a hint.
Solution:   Add remark about first argument.
2020-03-19 13:08:45 +01:00
a3a9c8ef69 patch 8.2.0403: when 'buftype' is "nofile" there is no overwrite check
Problem:    When 'buftype' is "nofile" there is no overwrite check.
Solution:   Also check for existing file when 'buftype' is set.
            (closes #5807)
2020-03-19 12:38:34 +01:00
30d53e2c11 patch 8.2.0402: setting local instead of global flag
Problem:    Setting local instead of global flag.
Solution:   Prepend "g:" to "test_is_flaky".
2020-03-18 21:10:44 +01:00
8dfcce3a78 patch 8.2.0401: not enough test coverage for evalvars.c
Problem:    Not enough test coverage for evalvars.c.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5804)
2020-03-18 19:32:26 +01:00
3cdcb090a6 patch 8.2.0400: not all tests using a terminal are in the list of flaky tests
Problem:    Not all tests using a terminal are in the list of flaky tests.
Solution:   Introduce the test_is_flaky flag.
2020-03-18 19:18:10 +01:00
292b90d4fa patch 8.2.0399: various memory leaks
Problem:    Various memory leaks.
Solution:   Avoid the leaks. (Ozaki Kiichi, closes #5803)
2020-03-18 15:23:16 +01:00
a21df1db3c patch 8.2.0398: profile test fails when two functions take same time
Problem:    Profile test fails when two functions take same time.
Solution:   Add a short sleep in once function. (closes #5797)
2020-03-17 20:57:09 +01:00
5715b3147b patch 8.2.0397: delayed screen update when using undo from Insert mode
Problem:    Delayed screen update when using undo from Insert mode.
Solution:   Update w_topline and cursor shape before sleeping. (closes #5790)
2020-03-16 22:08:45 +01:00
24ebd83e03 patch 8.2.0396: cmdexpand.c insufficiently tested
Problem:    Cmdexpand.c insufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5789)
2020-03-16 21:25:24 +01:00
a2cbdea968 patch 8.2.0395: build fails with FEAT_EVAL but without FEAT_MENU
Problem:    Build fails with FEAT_EVAL but without FEAT_MENU.
Solution:   Add #ifdef. (John Marriott)
2020-03-16 21:08:31 +01:00
7f009dfa06 patch 8.2.0394: Coverity complains about using NULL pointer
Problem:    Coverity complains about using NULL pointer.
Solution:   Use empty string when option value is NULL.
2020-03-16 20:27:38 +01:00
c030063329 patch 8.2.0393: Coverity warns for not using return value
Problem:    Coverity warns for not using return value.
Solution:   Add (void).
2020-03-16 20:07:16 +01:00
56cb337872 patch 8.2.0392: Coverity warns for using array index out of range
Problem:    Coverity warns for using array index out of range.
Solution:   Add extra "if" to avoid warning.
2020-03-16 20:04:41 +01:00
b2e1f8a28f patch 8.2.0391: CI test coverage dropped
Problem:    CI test coverage dropped.
Solution:   Set $DISPLAY also for non-GUI builds. (James McCoy, closes #5788)
2020-03-16 12:09:30 +01:00
ddbfe238a5 patch 8.2.0390: terminal postponed scrollback test is flaky
Problem:    Terminal postponed scrollback test is flaky.
Solution:   Add delay in between sending keys.  Rename dump files.
2020-03-15 20:33:40 +01:00
e4fc746d13 patch 8.2.0389: delayed redraw when shifting text from Insert mode
Problem:    Delayed redraw when shifting text from Insert mode.
Solution:   Use msg_attr_keep() instead of msg(). (closes #5782)
2020-03-15 19:17:50 +01:00
833805a486 patch 8.2.0388: printmbcharset option not tested
Problem:    Printmbcharset option not tested.
Solution:   Add a test.  Enable PostScript for AppVeyor build. (Dominique
            Pelle, closes #5783)
2020-03-15 18:27:43 +01:00
bb65a5690c patch 8.2.0387: error for possible NULL argument to qsort()
Problem:    Error for possible NULL argument to qsort().
Solution:   Don't call qsort() when there is nothing to sort. (Dominique
            Pelle, closes #5780)
2020-03-15 18:15:03 +01:00
0bdbc10e8a patch 8.2.0386: part from unfinished patch got included
Problem:    Part from unfinished patch got included.
Solution:   Undo that part.
2020-03-15 16:51:40 +01:00
0eabd4dc8f patch 8.2.0385: menu functionality insufficiently tested
Problem:    Menu functionality insufficiently tested.
Solution:   Add tests.  Add menu_info(). (Yegappan Lakshmanan, closes #5760)
2020-03-15 16:13:53 +01:00
5e4d1eba95 patch 8.2.0384: Travis CI has warnings
Problem:    Travis CI has warnings.
Solution:   Avoid warnings, clean up the config. (Ozaki Kiichi, closes #5779)
2020-03-15 15:10:11 +01:00
4f32f9c90e patch 8.2.0383: wrong feature check causes test not to be run
Problem:    Wrong feature check causes test not to be run.
Solution:   Use CheckFunction instead of CheckFeature. (Ozaki Kiichi,
            closes #5781)
2020-03-15 14:53:35 +01:00
353c351bd2 patch 8.2.0382: some tests fail when run under valgrind
Problem:    Some tests fail when run under valgrind.
Solution:   Increase timeouts.
2020-03-15 14:19:26 +01:00
2573af3519 patch 8.2.0381: using freed memory with :lvimgrep and autocommand
Problem:    Using freed memory with :lvimgrep and autocommand. (extracted from
            POC by Dominique Pelle)
Solution:   Avoid deleting a dummy buffer used in a window. (closes #5777)
2020-03-14 17:21:34 +01:00
1939826509 patch 8.2.0380: tiny popup when creating a terminal popup without minwidth
Problem:    Tiny popup when creating a terminal popup without minwidth.
Solution:   Use a default mininum size of 5 lines of 20 characters.
2020-03-14 15:28:08 +01:00
b17893aa94 Update runtime files 2020-03-14 08:19:51 +01:00
965fd8d4dc patch 8.2.0379: gcc warns for ambiguous else
Problem:    Gcc warns for ambiguous else.
Solution:   Add braces. (Dominique Pelle, closes #5778)
2020-03-14 07:46:40 +01:00
346f18e5fe patch 8.2.0378: prop_find() does not find all props
Problem:    prop_find() does not find all props.
Solution:   Check being in the start line. (Axel Forsman, closes #5776)
2020-03-13 21:36:40 +01:00
d47e6f0b4c patch 8.2.0377: no CI test for a big-endian system
Problem:    No CI test for a big-endian system.
Solution:   Test with s390x. (James McCoy, closes #5772)
2020-03-13 15:44:49 +01:00
fa5d8a191d patch 8.2.0376: nasty callback test fails on some systems
Problem:    Nasty callback test fails on some systems.
Solution:   Increase the sleep time.
2020-03-13 14:55:23 +01:00
8210693795 patch 8.2.0375: Coverity warning for not using return value
Problem:    Coverity warning for not using return value.
Solution:   Move error message to separate function.
2020-03-13 14:34:38 +01:00
8a677a37d0 patch 8.2.0374: using wrong printf directive for jump location
Problem:    Using wrong printf directive for jump location.
Solution:   Change "%lld" to "%d". (James McCoy, closes #5773)
2020-03-12 19:15:45 +01:00
3a05ce63fe patch 8.2.0373: type of term_sendkeys() is unknown
Problem:    Type of term_sendkeys() is unknown.
Solution:   Just return zero. (closes #5762)
2020-03-11 19:30:01 +01:00
66b98854d8 patch 8.2.0372: prop_find() may not find text property at start of the line
Problem:    Prop_find() may not find text property at start of the line.
Solution:   Adjust the loop to find properties. (Axel Forsman, closes #5761,
            closes #5663)
2020-03-11 19:15:52 +01:00
cee52204ca patch 8.2.0371: crash with combination of terminal popup and autocmd
Problem:    Crash with combination of terminal popup and autocmd.
Solution:   Disallow closing a popup that is the current window.  Add a check
            that the current buffer is valid. (closes #5754)
2020-03-11 14:19:58 +01:00
e49b4bb895 patch 8.2.0370: the typebuf_was_filled flag is sometimes not reset
Problem:    The typebuf_was_filled flag is sometimes not reset, which may
            cause a hang.
Solution:   Make sure typebuf_was_filled is reset when the typeahead buffer is
            empty.
2020-03-11 13:01:40 +01:00
1671f44881 patch 8.2.0369: various Normal mode commands not fully tested
Problem:    Various Normal mode commands not fully tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5751)
2020-03-10 07:48:13 +01:00
5269bd2a72 patch 8.2.0368: Vim9: import that redefines local variable does not fail
Problem:    Vim9: import that redefines local variable does not fail.
Solution:   Check for already defined symbols.
2020-03-09 19:25:27 +01:00
3a2505cc18 patch 8.2.0367: can use :pedit in a popup window
Problem:    Can use :pedit in a popup window.
Solution:   Disallow it.
2020-03-09 16:40:41 +01:00
2e09634a78 patch 8.2.0366: hardcopy command not tested enough
Problem:    Hardcopy command not tested enough.
Solution:   Add tests for printing. (Dominique Pelle, closes #5748)
2020-03-09 12:13:27 +01:00
283e5f4e69 patch 8.2.0365: tag kind can't be a multi-byte character
Problem:    Tag kind can't be a multi-byte character. (Marcin Szamotulski)
Solution:   Recognize multi-byte character. (closes #5724)
2020-03-09 08:17:52 +01:00
693e80e938 patch 8.2.0364: printf test failing on Haiku
Problem:    Printf test failing on Haiku.
Solution:   Make a difference between int and short. (Dominique Pelle,
            closes #5749)
2020-03-08 18:41:09 +01:00
f5f1e10d0d patch 8.2.0363: some Normal mode commands not tested
Problem:    Some Normal mode commands not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5746)
2020-03-08 05:13:15 +01:00
d0d440f702 patch 8.2.0362: MS-Windows: channel test fails if grep is not available
Problem:    MS-Windows: channel test fails if grep is not available.
Solution:   Use another command. (Ken Takata, closes #5739)
2020-03-07 17:24:59 +01:00
14e57909e6 patch 8.2.0361: internal error when using "0" for a callback
Problem:    Internal error when using "0" for a callback.
Solution:   Give a normal error. (closes #5743)
2020-03-07 16:59:25 +01:00
8eab731328 patch 8.2.0360: yaml files are only recognized by the file extension
Problem:    Yaml files are only recognized by the file extension.
Solution:   Check for a line starting with "%YAML". (Jason Franklin)
2020-03-06 22:25:56 +01:00
ba2920fe97 patch 8.2.0359: popup_atcursor() may hang
Problem:    popup_atcursor() may hang. (Yasuhiro Matsumoto)
Solution:   Take the decoration into account. (closes #5728)
2020-03-06 21:43:17 +01:00
bd7206e02c patch 8.2.0358: insufficient testing for indent.c
Problem:    Insufficient testing for indent.c.
Solution:   Add indent tests. (Yegappan Lakshmanan, closes #5736)
2020-03-06 20:36:04 +01:00
49b79bd488 patch 8.2.0357: cannot delete a text property matching both id and type
Problem:    Cannot delete a text property matching both id and type. (Axel
            Forsman)
Solution:   Add the "both" argument.
2020-03-05 21:52:55 +01:00
8f027fe470 patch 8.2.0356: MS-Windows: feedkeys() with VIMDLL cannot handle CSI
Problem:    MS-Windows: feedkeys() with VIMDLL cannot handle CSI correctly.
Solution:   Modify mch_inchar() to encode CSI bytes. (Ozaki Kiichi, Ken
            Takata, closes #5726)
2020-03-04 23:21:35 +01:00
a471eeae75 patch 8.2.0355: Vim9: str_val is confusing, it's a number
Problem:    Vim9: str_val is confusing, it's a number
Solution:   Rename to stnr_val.
2020-03-04 22:20:26 +01:00
a65bb53514 patch 8.2.0354: Python 3.9 does not define _Py_DEC_REFTOTAL
Problem:    Python 3.9 does not define _Py_DEC_REFTOTAL. (Zdenek Dohnal)
Solution:   Remove it, it was only for debugging.
2020-03-04 22:06:07 +01:00
d0df1aacd8 patch 8.2.0353: Vim9: while loop not tested
Problem:    Vim9: while loop not tested.
Solution:   Add test with "while", "break" and "continue"
2020-03-04 21:50:46 +01:00
36ddf93831 patch 8.2.0352: FreeBSD: test for sourcing utf-8 is skipped
Problem:    FreeBSD: test for sourcing utf-8 is skipped.
Solution:   Run the matchadd_conceal test separately to avoid that setting
            'term' to "ansi" causes problems for other tests. (Ozaki Kiichi,
            closes #5721)
2020-03-03 23:06:48 +01:00
3e919d2924 patch 8.2.0351: terminal in popup test is still a bit flaky
Problem:    Terminal in popup test is still a bit flaky.
Solution:   Clear and redraw before opening the popup.
2020-03-03 22:56:39 +01:00
080457c02d patch 8.2.0350: Vim9: expression tests don't use recognized constants
Problem:    Vim9: expression tests don't use recognized constants.
Solution:   Recognize "true" and "false" as constants.  Make skipping work for
            assignment and expression evaluation.
2020-03-03 21:53:32 +01:00
6d69bf602b patch 8.2.0349: Vim9: constant expression not well tested
Problem:    Vim9: constant expression not well tested.
Solution:   Add tests for "if" with constant expression.
2020-03-03 19:02:12 +01:00
5381c7a162 patch 8.2.0348: Vim9: not all code tested
Problem:    Vim9: not all code tested.
Solution:   Add a few more tests. fix using "b:" in literal dictionary.
2020-03-02 22:53:32 +01:00
91ffc8a5f5 patch 8.2.0347: various code not covered by tests
Problem:    Various code not covered by tests.
Solution:   Add more test coverage. (Yegappan Lakshmanan, closes #5720)
2020-03-02 20:54:22 +01:00
61a6d4e48b patch 8.2.0346: Vim9: finding common list type not tested
Problem:    Vim9: finding common list type not tested.
Solution:   Add more tests.  Fix listing function.  Fix overwriting type.
2020-03-01 23:32:25 +01:00
815eb83b09 patch 8.2.0345: compiler warning when building without the float feature
Problem:    Compiler warning when building without the float feature.
Solution:   Add #ifdef. (John Marriott)
2020-03-01 20:34:26 +01:00
ab55c6826f patch 8.2.0344: ":def" not skipped properly
Problem:    ":def" not skipped properly.
Solution:   Add CMD_def to list of commands the require evaluation even when
            not being executed.
2020-03-01 19:41:43 +01:00
eab6dff19f Update runtime files 2020-03-01 19:06:45 +01:00
f51cb4e08e patch 8.2.0343: Vim9: using wrong instruction, limited test coverage
Problem:    Vim9: using wrong instruction, limited test coverage.
Solution:   Use ISN_PUSHJOB.  Add a few more tests.
2020-03-01 17:55:14 +01:00
0546d7df13 patch 8.2.0342: some code in ex_getln.c not covered by tests
Problem:    Some code in ex_getln.c not covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5717)
2020-03-01 16:53:09 +01:00
41fe061753 patch 8.2.0341: using ":for" in Vim9 script gives an error
Problem:    Using ":for" in Vim9 script gives an error.
Solution:   Pass the LET_NO_COMMAND flag. (closes #5715)
2020-03-01 16:22:40 +01:00
087d2e1518 patch 8.2.0340: Vim9: function and partial types not tested
Problem:    Vim9: function and partial types not tested.
Solution:   Support more for partial, add tests.
2020-03-01 15:36:42 +01:00
fbdd08ed9b patch 8.2.0339: Vim9: function return type may depend on arguments
Problem:    Vim9: function return type may depend on arguments.
Solution:   Instead of a fixed return type use a function to figure out the
            return type.
2020-03-01 14:04:46 +01:00
f4f190d821 patch 8.2.0338: build failure without the channel feature
Problem:    Build failure without the channel feature.
Solution:   Add #ifdef
2020-03-01 13:01:16 +01:00
b54b8e0c86 patch 8.2.0337: build fails on a few systems
Problem:    Build fails on a few systems.
Solution:   Use vim_snprintf() instead of snprintf().
2020-03-01 01:05:53 +01:00
42a480bf72 patch 8.2.0336: Vim9: insufficient test coverage for compiling
Problem:    Vim9: insufficient test coverage for compiling.
Solution:   Add more tests.
2020-02-29 23:23:47 +01:00
cc390ff5b2 patch 8.2.0335: no completion for :disassemble
Problem:    No completion for :disassemble.
Solution:   Make completion work.  Also complete script-local functions if the
            name starts with "s:".
2020-02-29 22:06:30 +01:00
dd58923c6b patch 8.2.0334: abort called when using test_void()
Problem:    Abort called when using test_void(). (Dominique Pelle)
Solution:   Only give an error, don't abort.
2020-02-29 17:38:12 +01:00
57c339569e patch 8.2.0333: terminal in popup test is flaky
Problem:    Terminal in popup test is flaky.
Solution:   Make sure redraw is done before opening the popup.
2020-02-29 16:09:16 +01:00
d30ae2fc4a patch 8.2.0332: some code in ex_getln.c not covered by tests
Problem:    Some code in ex_getln.c not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5710)
2020-02-29 14:23:58 +01:00
7c215c5893 patch 8.2.0331: internal error when using test_void() and test_unknown()
Problem:    Internal error when using test_void() and test_unknown().
            (Dominique Pelle)
Solution:   Give a normal error.
2020-02-29 13:43:27 +01:00
57c732ed78 patch 8.2.0330: build error with popup window but without terminal
Problem:    Build error with popup window but without terminal.
Solution:   Add #ifdef.
2020-02-28 22:51:54 +01:00
ec084d3356 patch 8.2.0329: popup filter converts 0x80 bytes
Problem:    Popup filter converts 0x80 bytes.
Solution:   Keep 0x80 bytes as-is. (Ozaki Kiichi, closes #5706)
2020-02-28 22:44:47 +01:00
e52e0c89d1 patch 8.2.0328: no redraw when leaving term-normal mode in popup terminal
Problem:    No redraw when leaving terminal-normal mode in a terminal popup
            window.
Solution:   Redraw the popup window. (closes #5708)
2020-02-28 22:20:10 +01:00
80ae880f5f patch 8.2.0327: crash when opening and closing two popup terminal windows
Problem:    Crash when opening and closing two popup terminal windows.
Solution:   Check that prevwin is valid. (closes #5707)
2020-02-28 19:11:18 +01:00
d5aec0ced1 patch 8.2.0326: compiler warning for using uninitialized variable
Problem:    Compiler warning for using uninitialized variable. (Yegappan
            Lakshmanan)
Solution:   Do not jump to failed but return.
2020-02-27 21:48:51 +01:00
578fe947e3 patch 8.2.0325: ex_getln.c code not covered by tests
Problem:    Ex_getln.c code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5702)
2020-02-27 21:32:51 +01:00
12f2003871 patch 8.2.0324: text property not updated correctly when inserting/deleting
Problem:    Text property not updated correctly when inserting/deleting.
Solution:   Use the right column when deleting. Make zero-width text
            properties respect start_incl and end_incl. (Axel Forsman,
            closes #5696, closes #5679)
2020-02-26 22:06:00 +01:00
7eeefd4a39 patch 8.2.0323: Vim9: calling a function that is defined later is slow
Problem:    Vim9: calling a function that is defined later is slow.
Solution:   Once the function is found update the instruction so it can be
            called directly.
2020-02-26 21:24:23 +01:00
b35efa5ed0 patch 8.2.0322: Vim9: error checks not tested
Problem:    Vim9: error checks not tested.
Solution:   Add more test cases.  Avoid error for function loaded later.
2020-02-26 20:15:18 +01:00
ad39c094d2 patch 8.2.0321: Vim9: ":execute" does not work yet
Problem:    Vim9: ":execute" does not work yet.
Solution:   Add ISN_EXECUTE. (closes #5699) Also make :echo work with more
            than one argument.
2020-02-26 18:23:43 +01:00
b3f740695a patch 8.2.0320: no Haiku support
Problem:    No Haiku support.
Solution:   Add support for Haiku. (Emir Sari, closes #5605)
2020-02-26 16:16:53 +01:00
d672dde584 patch 8.2.0319: file missing in distribution, comments outdated
Problem:    File missing in distribution, comments outdated.
Solution:   Correct path of README file.  Update comments.
2020-02-26 13:43:51 +01:00
bc93cebb69 Update runtime files. 2020-02-26 13:36:21 +01:00
0c2ca58ef0 patch 8.2.0318: Vim9: types not sufficiently tested
Problem:    Vim9: types not sufficiently tested.
Solution:   Add tests with more types.
2020-02-25 22:58:29 +01:00
703ea9eaef patch 8.2.0317: MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build
Problem:    MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build.
Solution:   Move where CFLAGS is updated. (Ken Takata, closes #5692)
2020-02-25 22:04:55 +01:00
8d588ccee5 patch 8.2.0316: ex_getln.c code has insufficient test coverage
Problem:    ex_getln.c code has insufficient test coverage.
Solution:   Add more tests. Fix a problem. (Yegappan Lakshmanan, closes #5693)
2020-02-25 21:47:45 +01:00
c593bec412 patch 8.2.0315: build failure on HP-UX system
Problem:    Build failure on HP-UX system.
Solution:   Use LONG_LONG_MIN instead of LLONG_MIN.  Add type casts for switch
            statement. (John Marriott)
2020-02-25 21:26:49 +01:00
e010c720b2 patch 8.2.0314: short name not set for terminal buffer
Problem:    Short name not set for terminal buffer.
Solution:   Set the short name. (closes #5687)
2020-02-24 21:37:54 +01:00
fa29c8abd6 patch 8.2.0313: Vim9: insufficient script tests
Problem:    Vim9: insufficient script tests.
Solution:   Add tests.  Make import of alphanumeric name work.
2020-02-23 22:35:05 +01:00
f2d5c240a5 patch 8.2.0312: Vim9: insufficient script tests
Problem:    Vim9: insufficient script tests.
Solution:   Add more tests.  Make "import * as Name" work.
2020-02-23 21:25:54 +01:00
750802b55c patch 8.2.0311: Vim9: insufficient script tests
Problem:    Vim9: insufficient script tests.
Solution:   Add tests.  Free imports when re-using a script.
2020-02-23 18:08:33 +01:00
8fb1b47a5e patch 8.2.0310: autocmd test fails on a slow system
Problem:    Autocmd test fails on a slow system.
Solution:   Adjust the expectations. (James McCoy, closes #5685)
2020-02-23 16:16:26 +01:00
b81f56fb57 patch 8.2.0309: window-local values have confusing name
Problem:    Window-local values have confusing name.
Solution:   Rename w_p_bri* to w_briopt_*.
2020-02-23 15:29:46 +01:00
1aa76b8fd0 patch 8.2.0308: 'showbreak' does not work for a very long line
Problem:    'showbreak' does not work for a very long line. (John Little)
Solution:   Check whether 'briopt' contains "sbr". (Ken Takata, closes #5523,
            closes #5684)
2020-02-23 15:17:27 +01:00
026270c01d patch 8.2.0307: Python 3 vim.eval not well tested
Problem:    Python 3 vim.eval not well tested.
Solution:   Add a test. (Dominique Pelle, closes #5680)
2020-02-23 15:10:16 +01:00
83f37b9142 patch 8.2.0306: Vim9: :substitute(pat(repl does not work in Vim9 script
Problem:    Vim9: :substitute(pat(repl does not work in Vim9 script.
Solution:   Remember starting with a colon. (closes #5676)
2020-02-23 14:35:01 +01:00
8040a7147f patch 8.2.0305: relativenumber test fails on some systems
Problem:    Relativenumber test fails on some systems. (James McCoy)
Solution:   Clear the command line.
2020-02-23 13:38:08 +01:00
95ffd43f88 patch 8.2.0304: terminal test if failing on some systems
Problem:    Terminal test if failing on some systems.
Solution:   Wait for the job to finish. (James McCoy)
2020-02-23 13:29:31 +01:00
d28e0b3652 patch 8.2.0303: TermChanged test fails in the GUI
Problem:    TermChanged test fails in the GUI.
Solution:   Skip the test when running the GUI.
2020-02-22 23:08:52 +01:00
0c81d1b112 patch 8.2.0302: setting 'term' may cause error in TermChanged autocommand
Problem:    Setting 'term' may cause error in TermChanged autocommand.
Solution:   Use aucmd_prepbuf() to switch to the buffer where the autocommand
            is to be executed. (closes #5682)
2020-02-22 22:45:55 +01:00
b654103ad1 patch 8.2.0301: insufficient testing for exception handling
Problem:    Insufficient testing for exception handling and the "attention"
            prompt.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5681)
2020-02-22 21:21:27 +01:00
b4d2cb1083 patch 8.2.0300: Vim9: expression test fails without channel support
Problem:    Vim9: expression test fails without channel support.
Solution:   Add has('channel') check.
2020-02-22 20:33:08 +01:00
8ed04587d3 patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Problem:    Vim9: ISN_STORE with argument not tested.  Some cases in tv2bool()
            not tested.
Solution:   Add tests.  Add test_unknown() and test_void().
2020-02-22 19:07:28 +01:00
0c6ceaf903 patch 8.2.0298: Vim9 script: cannot start command with a string constant
Problem:    Vim9 script: cannot start command with a string constant.
Solution:   Recognize expression starting with '('.
2020-02-22 18:36:32 +01:00
8b430b4c1d patch 8.2.0297: compiler warnings for the Ruby interface
Problem:    Compiler warnings for the Ruby interface.
Solution:   Undefine a few macros, fix initialization. (Ozaki Kiichi,
            closes #5677)
2020-02-22 15:01:00 +01:00
f9706e9df0 patch 8.2.0296: mixing up "long long" and __int64 may cause problems
Problem:    Mixing up "long long" and __int64 may cause problems. (John
            Marriott)
Solution:   Pass varnumber_T to vim_snprintf().  Add v:numbersize.
2020-02-22 14:27:04 +01:00
c036e87bd7 patch 8.2.0295: highlighting for :s wrong when using different separator
Problem:    Highlighting for :s wrong when using different separator.
Solution:   Use separat argument for search direction and separator. (Rob
            Pilling, closes #5665)
2020-02-21 21:30:52 +01:00
5b1c8fe3d5 patch 8.2.0294: cannot use Ex command that is also a function name
Problem:    Cannot use Ex command that is also a function name.
Solution:   Recognize an Ex command by a colon prefix.
2020-02-21 18:42:43 +01:00
818fc9ad14 patch 8.2.0293: various Ex commands not sufficiently tested
Problem:    Various Ex commands not sufficiently tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5673)
2020-02-21 17:54:45 +01:00
09f28f49c9 patch 8.2.0292: Vim9: CHECKNR and CHECKTYPE instructions not tested
Problem:    Vim9: CHECKNR and CHECKTYPE instructions not tested.
Solution:   Add tests.
2020-02-20 23:08:34 +01:00
436472f5e0 patch 8.2.0291: Vim9: assigning [] to list<string> doesn't work
Problem:    Vim9: assigning [] to list<string> doesn't work.
Solution:   Use void for empty list and dict. (Ken Takata, closes #5669)
2020-02-20 22:54:43 +01:00
85683ec620 patch 8.2.0290: running individual test differs from all tests
Problem:    Running individual test differs from all tests.
Solution:   Pass on environment variables. (Yee Cheng Chin, closes #5672)
2020-02-20 22:35:02 +01:00
e0807ea4a7 patch 8.2.0289: Vim9: :echo did not clear the rest of the line
Problem:    Vim9: :echo did not clear the rest of the line.
Solution:   Call msg_clr_eos(). (Ken Takata, closes #5668)
2020-02-20 22:18:06 +01:00
0062c2d4f9 patch 8.2.0288: Vim9: some float and blob operators not tested
Problem:    Vim9: some float and blob operators not tested.
Solution:   Add float and blob tests.  Fix addition.
2020-02-20 22:14:31 +01:00
f575adff06 patch 8.2.0287: Vim9: return in try block not tested; catch not tested
Problem:    Vim9: return in try block not tested; catch with pattern not
            tested.
Solution:   Add tests.  Make it work.
2020-02-20 20:41:06 +01:00
11ec807639 patch 8.2.0286: cannot use popup_close() for a terminal popup
Problem:    Cannot use popup_close() for a terminal popup.
Solution:   Allow using popup_close(). (closes #5666)
2020-02-20 20:12:29 +01:00
0bbf722aaa patch 8.2.0285: unused error message; cannot create s:var
Problem:    Unused error message. Cannot create s:var.
Solution:   Remove the error message. Make assignment to s:var work.
2020-02-19 22:31:48 +01:00
c0d656c89d patch 8.2.0284: Vim9: assignment test fails
Problem:    Vim9: assignment test fails.
Solution:   Avoid duplicating "s:".
2020-02-19 21:12:40 +01:00
fd1823e0b7 patch 8.2.0283: Vim9: failing to load script var not tested
Problem:    Vim9: failing to load script var not tested.
Solution:   Add more tests.   Fix using s: in old script.
2020-02-19 20:23:11 +01:00
401d9ffb5a patch 8.2.0282: Vim9: setting number option not tested
Problem:    Vim9: setting number option not tested.
Solution:   Add more tests.   Fix assigning to global variable.
2020-02-19 18:14:44 +01:00
a2f6e42ded patch 8.2.0281: two placed signs in the same line are not combined
Problem:    Two placed signs in the same line are not combined.  E.g. in the
            terminal debugger a breakpoint and the PC cannot be both be
            displayed.
Solution:   Combine the sign column and line highlight attributes.
2020-02-19 17:13:04 +01:00
257cc5ee95 patch 8.2.0280: Vim9: throw in :def function not caught higher up
Problem:    Vim9: throw in :def function not caught higher up.
Solution:   Set "need_rethrow".
2020-02-19 17:06:11 +01:00
63ce4849ef patch 8.2.0279: Vim9: no test for deleted :def function
Problem:    Vim9: no test for deleted :def function.
Solution:   Add a test.  Clear uf_cleared flag when redefining a function.
2020-02-19 15:46:48 +01:00
9ae3bbdb96 patch 8.2.0278: channel test is flaky on Mac
Problem:    Channel test is flaky on Mac.
Solution:   Reset variable before sending message.
2020-02-19 14:31:33 +01:00
ee2e52aa06 patch 8.2.0277: Vim9: not all instructions covered by tests
Problem:    Vim9: not all instructions covered by tests.
Solution:   Add more test cases.
2020-02-19 14:17:18 +01:00
38a5f517a7 patch 8.2.0276: Vim9: not allowing space before ")" in function call
Problem:    Vim9: not allowing space before ")" in function call is too
            restrictive. (Ben Jackson)
Solution:   Skip space before the ")".  Adjust other space checks.
2020-02-19 12:40:39 +01:00
406cd90f19 patch 8.2.0275: some Ex code not covered by tests
Problem:    Some Ex code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5659)
2020-02-18 21:54:41 +01:00
9e2bcb5d23 patch 8.2.0274: hang with combination of feedkeys(), Ex mode and :global
Problem:    Hang with combination of feedkeys(), Ex mode and :global.
            (Yegappan Lakshmanan)
Solution:   Add the pending_exmode_active flag.
2020-02-18 21:33:00 +01:00
1fa8d2c33d patch 8.2.0273: MS-Windows uninstall may delete wrong batch file
Problem:    MS-Windows uninstall may delete wrong batch file.
Solution:   Add specific marker in the generated batch file. (Ken Takata,
            closes #5654)
2020-02-17 22:53:14 +01:00
414b796627 patch 8.2.0272: ":helptags ALL" gives error for some directories
Problem:    ":helptags ALL" gives error for directories without write
            permission. (Matěj Cepl)
Solution:   Ignore errors for ":helptags ALL". (Ken Takata, closes #5026,
            closes #5652)
2020-02-17 22:39:35 +01:00
82f654e092 patch 8.2.0271: the "num64" feature is available everywhere
Problem:    The "num64" feature is available everywhere and building without
            it causes problems.
Solution:   Graduage the "num64" feature. (James McCoy, closes #5650)
2020-02-17 22:12:50 +01:00
bc2b71d44a patch 8.2.0270: some code not covered by tests
Problem:    Some code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5649)
2020-02-17 21:33:30 +01:00
b13af50f73 patch 8.2.0269: Vim9: operator after list index does not work
Problem:    Vim9: operator after list index does not work. (Yasuhiro
            Matsumoto)
Solution:   After indexing a list change the type to the list member type.
            (closes #5651)
2020-02-17 21:12:08 +01:00
40d9da2a43 patch 8.2.0268: trycatch test fails
Problem:    Trycatch test fails.
Solution:   When calling function fails only check for following command, do
            not give another error.
2020-02-17 10:01:24 +01:00
e51bb17dd0 patch 8.2.0267: no check for a following cmd when calling a function fails
Problem:    No check for a following command when calling a function fails.
Solution:   Also check for a following command when inside a try block.
            (closes #5642)
2020-02-16 19:42:23 +01:00
a28be85ccd patch 8.2.0266: terminal in popup test sometimes fails on Mac
Problem:    Terminal in popup test sometimes fails on Mac.
Solution:   Add a short delay.
2020-02-16 17:04:09 +01:00
a76b31542e patch 8.2.0265: "eval" after "if 0" doesn't check for following command
Problem:    "eval" after "if 0" doesn't check for following command.
Solution:   Add "eval" to list of commands that check for a following command.
            (closes #5640)
2020-02-16 16:20:21 +01:00
a36c830a32 patch 8.2.0264: fileformat test still fails on MS-Windows
Problem:    Fileformat test still fails on MS-Windows.
Solution:   Set fileformat of buffer in the right place.
2020-02-16 15:08:28 +01:00
df2ecddf9d patch 8.2.0263: a few new Vim9 messages are not localized
Problem:    A few new Vim9 messages are not localized.
Solution:   Add the gettext wrapper. (Dominique Pelle, closes #5647)
2020-02-16 15:03:48 +01:00
50434bd74c patch 8.2.0262: fileformat test fails on MS-Windows
Problem:    Fileformat test fails on MS-Windows.
Solution:   Set fileformat of buffer.
2020-02-16 14:55:22 +01:00
f0cee1971f patch 8.2.0261: some code not covered by tests
Problem:    Some code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5645)
2020-02-16 13:33:56 +01:00
f4140488c7 patch 8.2.0260: several lines of code are duplicated
Problem:    Several lines of code are duplicated.
Solution:   Move duplicated code to a function. (Yegappan Lakshmanan,
            closes #5330)
2020-02-15 23:06:45 +01:00
ebdf3c964a Update runtime files. 2020-02-15 21:41:42 +01:00
c2adc00fa7 patch 8.2.0259: terminal in popup test sometimes fails
Problem:    Terminal in popup test sometimes fails.
Solution:   Clear the command line.
2020-02-14 17:05:18 +01:00
4132eb505c patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Problem:    ModifyOtherKeys cannot be temporarily disabled.
Solution:   Add echoraw() with an example for modifyOtherKeys.
2020-02-14 16:53:00 +01:00
00f3b4e007 patch 8.2.0257: cannot recognize a terminal in a popup window
Problem:    Cannot recognize a terminal in a popup window.
Solution:   Add the win_gettype() function.
2020-02-14 14:32:22 +01:00
0a8fed6231 patch 8.2.0256: time and timer related code is spread out
Problem:    Time and timer related code is spread out.
Solution:   Move time and timer related code to a new file. (Yegappan
            Lakshmanan, closes #5604)
2020-02-14 13:22:17 +01:00
f2cecb6c10 patch 8.2.0255: VMS: missing files in build
Problem:    VMS: missing files in build.
Solution:   Add the files. (Zoltan Arpadffy)
2020-02-13 21:59:25 +01:00
ae8d2de3a9 patch 8.2.0254: compiler warning for checking size_t to be negative
Problem:    Compiler warning for checking size_t to be negative.
Solution:   Only check for zero. (Zoltan Arpadffy)
2020-02-13 21:42:24 +01:00
21456cdccb patch 8.2.0253: crash when using :disassamble without argument
Problem:    Crash when using :disassamble without argument. (Dhiraj Mishra)
Solution:   Check for missing argument. (Dominique Pelle, closes #5635,
            closes #5637)
2020-02-13 21:29:32 +01:00
3dd64608f6 patch 8.2.0252: Windows compiler warns for using size_t
Problem:    Windows compiler warns for using size_t.
Solution:   Change to int. (Mike Williams)
2020-02-13 20:31:28 +01:00
7306d6b1c9 patch 8.2.0251: a couple of function return types can be more specific
Problem:    A couple of function return types can be more specific.
Solution:   Use a better return type. (Ken Takata, closes #5629)
2020-02-12 22:25:56 +01:00
4f5776c17c patch 8.2.0250: test_clear_search_pat() is unused
Problem:    test_clear_search_pat() is unused.
Solution:   Remove the function. (Yegappan Lakshmanan, closes #5624)
2020-02-12 22:15:19 +01:00
3fb377fa78 patch 8.2.0249: MS-Windows: various warnings
Problem:    MS-Windows: various warnings.
Solution:   Set the charset to utf-8. Add _WIN32_WINNT and _USING_V110_SDK71_.
            (Ken Takata, closes #5625)
2020-02-12 21:52:32 +01:00
2f18975088 patch 8.2.0248: MS-Windows: dealing with deprecation is too complicated
Problem:    MS-Windows: dealing with deprecation is too complicated.
Solution:   Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build
            file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken
            Takata, closes #5626)
2020-02-12 21:15:43 +01:00
3b0ef8cfdb patch 8.2.0247: misleading comment in NSIS installer script
Problem:    Misleading comment in NSIS installer script.
Solution:   Negate the meaning of the comment. (Ken Takata, closes #5627)
2020-02-12 21:03:32 +01:00
49c99fcca0 patch 8.2.0246: MSVC: deprecation warnings with Ruby
Problem:    MSVC: deprecation warnings with Ruby.
Solution:   Move _CRT_SECURE_NO_DEPRECATE to build file. (Ken Takata,
            closes #5622)
2020-02-11 23:01:39 +01:00
5489eab345 patch 8.2.0245: MSVC: error message if the auto directory already exists
Problem:    MSVC: error message if the auto directory already exists.
Solution:   Add "if not exists". (Ken Takata, closes #5620)
2020-02-11 22:49:18 +01:00
5f1d3ae8a8 patch 8.2.0244: compiler warning in Lua interface
Problem:    Compiler warning in Lua interface.
Solution:   Add type cast. (Ken Takata, closes #5621)
2020-02-11 22:37:35 +01:00
9f6277bdde patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Problem:    Insufficient code coverage for ex_docmd.c functions.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5618)
2020-02-11 22:04:02 +01:00
799439a5d8 patch 8.2.0242: preview popup window test fails with long directory name
Problem:    Preview popup window test fails with long directory name. (Jakub
            Kądziołka)
Solution:   Use "silent cd". (closes #5615)
2020-02-11 21:44:17 +01:00
99234f29aa patch 8.2.0241: crash when setting 'buftype' to "quickfix"
Problem:    Crash when setting 'buftype' to "quickfix".
Solution:   Check that error list is not NULL. (closes #5613)
2020-02-10 22:56:54 +01:00
408030e8d0 patch 8.2.0240: using memory after it was freed
Problem:    Using memory after it was freed. (Dominique Pelle)
Solution:   Do not mix converion buffer with other buffer.
2020-02-10 22:44:32 +01:00
355757aed6 patch 8.2.0239: MS-Windows: 'env' job option does not override existing vars
Problem:    MS-Windows: 'env' job option does not override existing
            environment variables.  (Tim Pope)
Solution:   Set the environment variables later. (Yasuhiro Matsumoto,
            closes #5485, closes #5608)
2020-02-10 22:06:32 +01:00
b3e195cca7 patch 8.2.0238: MS-Windows: job_stop() results in exit value zero
Problem:    MS-Windows: job_stop() results in exit value zero.
Solution:   Call TerminateJobObject() with -1 instead of 0. (Yasuhiro
            Matsumoto, closes #5150, closes #5614)
2020-02-10 21:32:19 +01:00
7ba3b91e03 patch 8.2.0237: crash when setting 'wincolor' on finished terminal window
Problem:    Crash when setting 'wincolor' on finished terminal window.
            (Bakudankun)
Solution:   Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes
            #5607, closes #5610)
2020-02-10 20:34:04 +01:00
57ea2924e5 patch 8.2.0236: MS-Windows unintall doesn't delete vimtutur.bat
Problem:    MS-Windows unintall doesn't delete vimtutur.bat.
Solution:   Change directory before deletion. (Ken Takata, closes #5603)
2020-02-09 14:27:20 +01:00
dbe5d361fe patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Problem:    Draw error when an empty group is removed from 'statusline'.
Solution:   Do not use highlighting from a removed group.
2020-02-08 18:35:31 +01:00
d5b9914938 patch 8.2.0234: message test fails on SunOS
Problem:    Message test fails on SunOS.
Solution:   Adjust expectation for printf "%p". (Ozaki Kiichi, closes #5595)
2020-02-08 17:14:46 +01:00
4f645c54ef patch 8.2.0233: crash when using garbagecollect() in between rand()
Problem:    Crash when using garbagecollect() in between rand().
Solution:   Redesign the rand() and srand() implementation. (Yasuhiro
            Matsumoto, closes #5587, closes #5588)
2020-02-08 16:40:39 +01:00
165315584d patch 8.2.0232: the :compiler command causes a crash
Problem:    The :compiler command causes a crash. (Daniel Steinberg)
Solution:   Do not use the script index if it isn't set.
2020-02-08 16:00:46 +01:00
d02e508a18 patch 8.2.0231: silent system command may clear the screen
Problem:    Silent system command may clear the screen.
Solution:   Do not clear the screen in t_te.
2020-02-08 14:22:53 +01:00
670218839a patch 8.2.0230: terminal popup test is flaky
Problem:    Terminal popup test is flaky.
Solution:   Increase wait time a bit.
2020-02-07 22:20:53 +01:00
f2460a3aec patch 8.2.0229: compare instructions not tested
Problem:    Compare instructions not tested.
Solution:   Add test cases.  Fix disassemble with line continuation.
2020-02-07 22:09:54 +01:00
348808f7c0 patch 8.2.0228: configure does not recognize gcc version on BSD
Problem:    Configure does not recognize gcc version on BSD.
Solution:   Do not use "\+" in the pattern matching the version number. (Ozaki
            Kiichi, closes #5590)
2020-02-07 20:50:07 +01:00
c2a4b35b86 patch 8.2.0227: compiling a few instructions not tested
Problem:    Compiling a few instructions not tested.
Solution:   Add more test cases.
2020-02-06 22:41:16 +01:00
04d0522046 patch 8.2.0226: compiling for loop not tested
Problem:    Compiling for loop not tested.
Solution:   Add a test.  Make variable initialization work for more types.
2020-02-06 22:06:54 +01:00
777770fbb0 patch 8.2.0225: compiling lambda not tested yet
Problem:    compiling lambda not tested yet.
Solution:   Add test for lambda and funcref. Drop unused instruction arg.
2020-02-06 21:27:08 +01:00
158906cffc patch 8.2.0224: compiling :elseif not tested yet
Problem:    compiling :elseif not tested yet.
Solution:   Add test for :elseif.  Fix generating jumps.
2020-02-06 20:39:45 +01:00
5cab73f8cc patch 8.2.0223: some instructions not yet tested
Problem:    Some instructions not yet tested.
Solution:   Disassemble more instructions.  Move tests to a new file.  Compile
            call to s:function().
2020-02-06 19:25:19 +01:00
170fcfcf25 patch 8.2.0222: Vim9: optional function arguments don't work yet
Problem:    Vim9: optional function arguments don't work yet.
Solution:   Implement optional function arguments.
2020-02-06 17:51:35 +01:00
6e587dcbf3 patch 8.2.0221: no test for Vim9 += and ..=
Problem:    No test for Vim9 += and ..=.
Solution:   Add tests.
2020-02-06 13:15:52 +01:00
1af5ce01c3 patch 8.2.0220: terminal test did pass on Mac
Problem:    Terminal test did pass on Mac.
Solution:   Remove the skip again.
2020-02-06 11:54:35 +01:00
4af11174f7 patch 8.2.0219: terminal test still fails on Mac
Problem:    Terminal test still fails on Mac.
Solution:   Skip part of the test on Mac.
2020-02-05 23:01:34 +01:00
0de50864a7 patch 8.2.0218: several Vim9 instructions are not tested
Problem:    Several Vim9 instructions are not tested.
Solution:   Add more tests.
2020-02-05 22:55:48 +01:00
adbc11c2ee patch 8.2.0217: terminal test fails on Mac
Problem:    Terminal test fails on Mac.
Solution:   Add a short wait.
2020-02-05 22:21:08 +01:00
ff80cb6807 patch 8.2.0216: several Vim9 instructions are not tested
Problem:    Several Vim9 instructions are not tested.
Solution:   Add more tests. Fix :disassamble output. Make catch with pattern
            work.
2020-02-05 22:10:05 +01:00
a78e9c61a0 patch 8.2.0215: wrong file name shortening
Problem:    Wrong file name shortening. (Ingo Karkat)
Solution:   Better check for path separator. (Yasuhiro Matsumoto,
            closes #5583, closes #5584)
2020-02-05 21:14:00 +01:00
2e6638d5f0 patch 8.2.0214: a popup window with a terminal can be made hidden
Problem:    A popup window with a terminal can be made hidden.
Solution:   Disallow hiding a terminal popup.
2020-02-05 21:07:18 +01:00
7077892a79 patch 8.2.0213: configure does not recognize gcc 10.0 and later
Problem:    Configure does not recognize gcc 10.0 and later.
Solution:   Adjust the pattern matching the version number. (Sergei
            Trofimovich, closes #5580)
2020-02-05 20:44:24 +01:00
07ada5ff2f patch 8.2.0212: missing search/substitute pattern hardly tested
Problem:    Missing search/substitute pattern hardly tested.
Solution:   Add test_clear_search_pat() and tests. (Yegappan Lakshmanan,
            closes #5579)
2020-02-05 20:38:22 +01:00
94255df057 patch 8.2.0211: test for ANSI colors fails without an "ls" command
Problem:    Test for ANSI colors fails without an "ls" command.
Solution:   Use "dir". (Ken Takata, closes #5582)
2020-02-05 20:10:33 +01:00
eed3571fe0 patch 8.2.0210: Coverity complains about uninitialized field
Problem:    Coverity complains about uninitialized field.
Solution:   Initialize the field.
2020-02-04 23:08:14 +01:00
560979ed4f Update runtime files. 2020-02-04 22:53:05 +01:00
80147dda4f patch 8.2.0209: function a bit far away from where it's used
Problem:    Function a bit far away from where it's used.
Solution:   Move function close to where it's used. (Ken Takata, closes #5569)
2020-02-04 22:32:59 +01:00
d816cd94d8 patch 8.2.0208: fnamemodify() does not apply ":~" when followed by ":."
Problem:    Fnamemodify() does not apply ":~" when followed by ":.".
Solution:   Don't let a failing ":." cause the ":~" to be skipped. (Yasuhiro
            Matsumoto, closes #5577)
2020-02-04 22:23:09 +01:00
bfe1204312 patch 8.2.0207: crash when missing member type on list argument
Problem:    Crash when missing member type on list argument.
Solution:   Check for invalid type. (closes #5572)
2020-02-04 21:54:07 +01:00
26e117e9bc patch 8.2.0206: calling Vim9 function using default argument fails
Problem:    Calling Vim9 function using default argument fails.
Solution:   Give an appropriate error. (closes #5572)
2020-02-04 21:24:15 +01:00
a5edb670dc patch 8.2.0205: error code E899 used twice
Problem:    Error code E899 used twice.
Solution:   Use E863 for the terminal in popup error.
2020-02-03 22:58:48 +01:00
631ebc4814 patch 8.2.0204: crash when using winnr('j') in a popup window
Problem:    Crash when using winnr('j') in a popup window.
Solution:   Do not search for neighbors in a popup window. (closes #5568)
2020-02-03 22:15:26 +01:00
e20b9ececa patch 8.2.0203: :helptags and some other functionality not tested
Problem:    :helptags and some other functionality not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5567)
2020-02-03 21:40:04 +01:00
e7ddf4e337 patch 8.2.0202: when 'lazyredraw' is set the window title may not be updated
Problem:    When 'lazyredraw' is set the window title may not be updated.
Solution:   Set "do_redraw" before entering the main loop. (Jason Franklin)
2020-02-03 21:29:30 +01:00
4e12a5df37 patch 8.2.0201: cannot assign to an imported variable
Problem:    Cannot assign to an imported variable.
Solution:   Make it work.
2020-02-03 20:50:59 +01:00
b283a8a680 patch 8.2.0200: Vim9 script commands not sufficiently tested
Problem:    Vim9 script commands not sufficiently tested.
Solution:   Add more tests.  Fix storing global variable.  Make script
            variables work.
2020-02-02 22:24:04 +01:00
0f18b6d17b patch 8.2.0199: Vim9 script commands not sufficiently tested
Problem:    Vim9 script commands not sufficiently tested.
Solution:   Add more tests.  Fix script-local function use.
2020-02-02 17:22:27 +01:00
43c60eda2a patch 8.2.0198: no tests for y/n prompt
Problem:    No tests for y/n prompt.
Solution:   Add tests. (Dominique Pelle, closes #5564)
2020-02-02 15:55:19 +01:00
ea3db914c0 patch 8.2.0197: some Ex commands not sufficiently tested
Problem:    Some Ex commands not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5565)
2020-02-02 15:32:13 +01:00
d98c0b63ab patch 8.2.0196: blocking commands for a finished job in a popup window
Problem:    Blocking commands for a finished job in a popup window.
Solution:   Do not block commands if the job has finished.  Adjust test.
2020-02-02 15:25:16 +01:00
3180fe6c6d patch 8.2.0195: some tests fail when run in the GUI
Problem:    Some tests fail when run in the GUI.
Solution:   Make sure the window width is enough.  In the GUI run terminal Vim
            in the terminal, if possible.
2020-02-02 13:47:06 +01:00
3c01c4a028 patch 8.2.0194: some commands can cause problems in terminal popup
Problem:    Some commands can cause problems in terminal popup.
Solution:   Disallow more commands.
2020-02-01 23:04:24 +01:00
284d1c24e2 patch 8.2.0193: still build failure without +terminal feature
Problem:    Still build failure without +terminal feature.
Solution:   Add more #ifdefs.
2020-02-01 22:39:32 +01:00
91cd59a0a2 patch 8.2.0192: build failure without +terminal feature
Problem:    Build failure without +terminal feature.
Solution:   Add #ifdefs.
2020-02-01 22:18:37 +01:00
219c7d0638 patch 8.2.0191: cannot put a terminal in a popup window
Problem:    Cannot put a terminal in a popup window.
Solution:   Allow opening a terminal in a popup window.  It will always have
            keyboard focus until closed.
2020-02-01 21:57:29 +01:00
ab067a21b9 patch 8.2.0190: Kotlin files are not recognized
Problem:    Kotlin files are not recognized.
Solution:   Detect Kotlin files. (Alkeryn, closes #5560)
2020-01-31 22:57:59 +01:00
7cc96923c4 patch 8.2.0189: cd() with NULL argument crashes
Problem:    cd() with NULL argument crashes.
Solution:   Check for NULL. (Ken Takata, closes #5558)
2020-01-31 22:41:38 +01:00
7f829cab35 patch 8.2.0188: Check commands don't work well with Vim9 script
Problem:    Check commands don't work well with Vim9 script.
Solution:   Improve constant expression handling.
2020-01-31 22:12:41 +01:00
0b76ad53b3 patch 8.2.0187: reduntant code
Problem:    Reduntant code.
Solution:   Remove unused assignments. (Dominique Pelle, closes #5557)
2020-01-31 21:20:51 +01:00
705724e430 patch 8.2.0186: a couple of tests may fail when features are missing
Problem:    A couple of tests may fail when features are missing.
Solution:   Check for features. (Dominique Pelle, closes #5561)
2020-01-31 21:13:42 +01:00
a259d8d30b patch 8.2.0185: Vim9 script: cannot use "if has()" to skip lines
Problem:    Vim9 script: cannot use "if has()" to skip lines.
Solution:   Evaluate constant expression at runtime.
2020-01-31 20:10:50 +01:00
92be6e3f46 patch 8.2.0184: blob test fails
Problem:    Blob test fails.
Solution:   Check for different error when float feature is missing.
2020-01-30 19:39:04 +01:00
5feabe00c4 patch 8.2.0183: tests fail when the float feature is disabled
Problem:    Tests fail when the float feature is disabled.
Solution:   Skip tests that don't work without float support.
2020-01-30 18:24:53 +01:00
9f2d020d39 patch 8.2.0182: min() and max() materialize a range() list
Problem:    Min() and max() materialize a range() list.
Solution:   Compute the result without materializing the list. (#5541)
2020-01-30 16:40:10 +01:00
21109272f5 patch 8.2.0181: problems parsing :term arguments
Problem:    Problems parsing :term arguments.
Solution:   Improve parsing, fix memory leak, add tests. (Ozaki Kiichi,
            closes #5536)
2020-01-30 16:27:20 +01:00
0c3064b39b patch 8.2.0180: test for wrapmargin fails if terminal is not 80 columns
Problem:    Test for wrapmargin fails if terminal is not 80 columns.
Solution:   Vertical split the window. (Ken Takata, closes #5554)
2020-01-30 16:09:25 +01:00
b09920203a patch 8.2.0179: still a few places where range() does not work
Problem:    Still a few places where range() does not work.
Solution:   Fix using range() causing problems.
2020-01-30 14:55:42 +01:00
df54382eac patch 8.2.0178: with VTP the screen may not be restored properly
Problem:    With VTP the screen may not be restored properly.
Solution:   Add another set of saved RGB values. (Nobuhiro Takasaki,
            closes #5548)
2020-01-30 11:53:59 +01:00
70b3e706b4 patch 8.2.0177: memory leak in get_tags()
Problem:    Memory leak in get_tags().
Solution:   Free matches when finding a pseudo-tag line. (Dominique Pelle,
            closes #5553)
2020-01-29 22:38:45 +01:00
e258368b4f patch 8.2.0176: generating os headers does not work for Swedish
Problem:    Generating os headers does not work for Swedish.
Solution:   Set the locale to C. (Christian Brabandt, closes #5258)
2020-01-29 22:29:40 +01:00
db661fb95d patch 8.2.0175: crash when removing list element in map()
Problem:    Crash when removing list element in map().
Solution:   Lock the list. (closes #2652)
2020-01-29 22:17:16 +01:00
5d98dc2a48 patch 8.2.0174: various commands not completely tested
Problem:    Various commands not completely tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5551)
2020-01-29 21:57:34 +01:00
0ff6aad393 patch 8.2.0173: build fails with old compiler
Problem:    Build fails with old compiler.
Solution:   Do not use anonymous unions. (John Marriott)
2020-01-29 21:27:21 +01:00
4549ece47c patch 8.2.0172: Coverity warning for not restoring character
Problem:    Coverity warning for not restoring character.
Solution:   Restore the character also in case of failure.
2020-01-28 23:13:42 +01:00
9a5e5a3e33 patch 8.2.0171: Coverity warning for using uninitialized buffer
Problem:    Coverity warning for using uninitialized buffer.
Solution:   Check the skip flag.
2020-01-28 23:09:23 +01:00
a6d536829a patch 8.2.0170: Coverity warning for ignoring return value
Problem:    Coverity warning for ignoring return value.
Solution:   Check the return value and return if failed.
2020-01-28 23:04:06 +01:00
8cbd6dfc0c patch 8.2.0169: Coverity warning for dead code
Problem:    Coverity warning for dead code.
Solution:   Check if inside try-finally.
2020-01-28 22:59:45 +01:00
97a2af39cd patch 8.2.0168: Coverity warning for assigning NULL to an option
Problem:    Coverity warning for assigning NULL to an option.
Solution:   Use empty string instead of NULL.
2020-01-28 22:52:48 +01:00
58ceca5cae patch 8.2.0167: Coverity warning for ignoring return value
Problem:    Coverity warning for ignoring return value.
Solution:   Check the return value and jump if failed.
2020-01-28 22:46:22 +01:00
07da94b0f0 patch 8.2.0166: Coverity warning for using uninitialized variable
Problem:    Coverity warning for using uninitialized variable.
Solution:   Check for failure.
2020-01-28 22:39:19 +01:00
5b18c248d3 patch 8.2.0165: Coverity warning for using NULL pointer
Problem:    Coverity warning for using NULL pointer.
Solution:   Add missing "else".
2020-01-28 22:30:32 +01:00
842931cd7a patch 8.2.0164: test_alot takes too long
Problem:    Test_alot takes too long.
Solution:   Run several tests individually.
2020-01-28 21:53:28 +01:00
272ca95fc3 patch 8.2.0163: test hangs on MS-Windows console
Problem:    Test hangs on MS-Windows console.
Solution:   use feedkeys() instead of test_feedinput(). (Ken Takata)
2020-01-28 20:49:11 +01:00
7d8ea0b241 patch 8.2.0162: balloon test fails in the GUI
Problem:    Balloon test fails in the GUI.
Solution:   Skip test in the GUI.
2020-01-27 23:01:30 +01:00
f8ddb25789 patch 8.2.0161: not recognizing .gv file as dot filetype
Problem:    Not recognizing .gv file as dot filetype.
Solution:   Add *.gv to dot pattern. (closes #5544)
2020-01-27 22:47:09 +01:00
89bfc8218c patch 8.2.0160: range test fails
Problem:    Range test fails.
Solution:   Include change in list code. (#5541)
2020-01-27 22:37:23 +01:00
50985eb1f0 patch 8.2.0159: non-materialized range() list causes problems
Problem:    Non-materialized range() list causes problems. (Fujiwara Takuya)
Solution:   Materialize the list where needed.
2020-01-27 22:09:39 +01:00
3f169ce17e patch 8.2.0158: triggering CompleteDone earlier is not backwards compatible
Problem:    Triggering CompleteDone earlier is not backwards compatible.
            (Daniel Hahler)
Solution:   Add CompleteDonePre instead.
2020-01-26 22:43:31 +01:00
318e7a9c03 patch 8.2.0157: Vim9 script files not in list of distributed files
Problem:    Vim9 script files not in list of distributed files.
Solution:   Add the entries.
2020-01-26 22:05:06 +01:00
4b96df5a01 patch 8.2.0156: various typos in source files and tests
Problem:    Various typos in source files and tests.
Solution:   Fix the typos. (Emir Sari, closes #5532)
2020-01-26 22:00:26 +01:00
a5d5953d59 patch 8.2.0155: warnings from MinGW compiler; tests fail without +float
Problem:    Warnings from MinGW compiler. (John Marriott) Json test fails when
            building without +float feature.
Solution:   Init variables. Fix Json parsing. Skip a few tests that require
            the +float feature.
2020-01-26 21:42:03 +01:00
21b9e9773d patch 8.2.0154: reallocating the list of scripts is inefficient
Problem:    Reallocating the list of scripts is inefficient.
Solution:   Instead of using a growarray of scriptitem_T, store pointers and
            allocate each scriptitem_T separately.  Also avoids that the
            growarray pointers change when sourcing a new script.
2020-01-26 19:26:46 +01:00
b3de5114ac patch 8.2.0153: warning shows when listing version info
Problem:    Warning shows when listing version info.
Solution:   Use "-u NONE". (Ozaki Kiichi, closes #5534)
2020-01-26 18:56:34 +01:00
da812e282a patch 8.2.0152: restoring ctrl_x_mode is not needed
Problem:    Restoring ctrl_x_mode is not needed.
Solution:   Remove restoring the old value, it's changed again soon.
2020-01-26 18:35:31 +01:00
978d170bdc patch 8.2.0151: detecting a script was already sourced is unreliable
Problem:    Detecting a script was already sourced is unreliable.
Solution:   Do not use the inode number.
2020-01-26 17:38:12 +01:00
673660ab00 patch 8.2.0150: cannot define python function when using :execute
Problem:    Cannot define python function when using :execute. (Yasuhiro
            Matsumoto)
Solution:   Do not recognize "def" inside "function.
2020-01-26 16:50:05 +01:00
8a7d6542b3 patch 8.2.0149: maintaining a Vim9 branch separately is more work
Problem:    Maintaining a Vim9 branch separately is more work.
Solution:   Merge the Vim9 script changes.
2020-01-26 15:56:19 +01:00
1d9215b9aa Update runtime files. 2020-01-25 13:27:42 +01:00
7f51bbe0d1 patch 8.2.0148: mapping related function in wrong source file
Problem:    Mapping related function in wrong source file.
Solution:   Move the function.  Add a few more test cases. (Yegappan
            Lakshmanan, closes #5528)
2020-01-24 20:21:19 +01:00
03c3bd9fd0 patch 8.2.0147: block Visual mode operators not correct when 'linebreak' set
Problem:    Block Visual mode operators not correct when 'linebreak' set.
Solution:   Set w_p_lbr to lbr_saved more often. (Ken Takata, closes #5524)
2020-01-23 20:58:09 +01:00
dfede9a70b patch 8.2.0146: wrong indent when 'showbreak' and 'breakindent' are set
Problem:    Wrong indent when 'showbreak' and 'breakindent' are set and
            'briopt' includes "sbr".
Solution:   Reset "need_showbreak" where needed. (Ken Takata, closes #5523)
2020-01-23 19:59:22 +01:00
2c02d3843a patch 8.2.0145: using #error for compilation errors should be OK now
Problem:    Using #error for compilation errors should be OK now.
Solution:   Use #error. (Ken Takata, closes #5299)
2020-01-23 16:52:01 +01:00
c2a60ae10e patch 8.2.0144: some mapping code is not fully tested
Problem:    Some mapping code is not fully tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5519)
2020-01-23 16:19:54 +01:00
81c3ea7496 patch 8.2.0143: Coverity warning for possible use of NULL pointer
Problem:    Coverity warning for possible use of NULL pointer.
Solution:   Check argv is not NULL.
2020-01-23 15:48:42 +01:00
8bf716cdba patch 8.2.0142: possible to enter popup window with CTRL-W p
Problem:    Possible to enter popup window with CTRL-W p. (John Devin)
Solution:   Check entered window is not a popup window. (closes #5515)
2020-01-23 15:33:54 +01:00
0d76683e09 patch 8.2.0141: no swift filetype detection
Problem:    No swift filetype detection.
Solution:   Add swift, swiftgyb and sil. (Emir Sarı, closes #5517)
2020-01-22 22:10:54 +01:00
ade0d39468 Update runtime files. 2020-01-21 22:33:58 +01:00
2387773d93 patch 8.2.0140: CI does not test building doc tags
Problem:    CI does not test building doc tags.
Solution:   Add the vimtags/gcc build. Cleanup showing version. (Ozaki Kiichi,
            closes #5513)
2020-01-21 22:13:42 +01:00
f0764e8bb6 patch 8.2.0139: MS-Windows: default for IME is inconsistent
Problem:    MS-Windows: default for IME is inconsistent.
Solution:   Also make IME default enabled with MVC. (Ken Takata, closes #5508)
2020-01-20 22:05:34 +01:00
538feb56e8 patch 8.2.0138: memory leak when starting a job fails
Problem:    Memory leak when starting a job fails.
Solution:   Free the list of arguments. (Ozaki Kiichi, closes #5510)
2020-01-20 21:59:39 +01:00
a44b3eeafa patch 8.2.0137: crash when using win_execute() from a new tab
Problem:    Crash when using win_execute() from a new tab.
Solution:   Set the tp_*win pointers. (Ozaki Kiichi, closes #5512)
2020-01-20 21:44:31 +01:00
ed5adff1e6 patch 8.2.0136: stray ch_logfile() call
Problem:    Stray ch_logfile() call.
Solution:   Remove it. (closes #5503)
2020-01-20 21:32:51 +01:00
fe4bbac116 patch 8.2.0135: bracketed paste can still cause invalid memory access
Problem:    Bracketed paste can still cause invalid memory access. (Dominique
            Pelle)
Solution:   Check for NULL pointer.
2020-01-20 21:12:20 +01:00
8ba6bb7c94 patch 8.2.0134: some map functionality not covered by tests
Problem:    Some map functionality not covered by tests.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5504)
2020-01-20 20:41:42 +01:00
98a336dd49 patch 8.2.0133: invalid memory access with search command
Problem:    Invalid memory access with search command.
Solution:   When :normal runs out of characters in bracketed paste mode break
            out of the loop.(closes #5511)
2020-01-20 20:22:30 +01:00
ca33eb256e patch 8.2.0132: script may be re-used when deleting and creating a new one
Problem:    Script may be re-used when deleting and creating a new one.
Solution:   When the inode matches, also check the file name.
2020-01-19 20:18:09 +01:00
479950f6c9 patch 8.2.0131: command line is not cleared when switching tabs
Problem:    Command line is not cleared when switching tabs and the command
            line height differs.
Solution:   Set the "clear_cmdline" flag when needed. (Naruhiko Nishino,
            closes #5495)
2020-01-19 15:45:17 +01:00
904edabb64 patch 8.2.0130: Python3 ranges are not tested
Problem:    Python3 ranges are not tested.
Solution:   Add test. (Dominique Pelle, closes #5498)
2020-01-19 13:57:54 +01:00
1a928c2099 patch 8.2.0129: MS-Windows installer doesn't use Turkish translations
Problem:    MS-Windows installer doesn't use Turkish translations.
Solution:   Enable the Turkish translations and fix a few. (Emir Sarı,
            closes #5493)
2020-01-18 16:10:40 +01:00
6b915c0c0e patch 8.2.0128: cannot list options one per line
Problem:    Cannot list options one per line.
Solution:   Use ":set!" to list one option per line.
2020-01-18 15:53:19 +01:00
3029bcc094 patch 8.2.0127: some buffer commands work in a popup window
Problem:    Some buffer commands work in a popup window.
Solution:   Disallow :bnext, :bprev, etc. (Naruhiko Nishino, closes #5494)
2020-01-18 15:06:19 +01:00
94b6fb78c5 patch 8.2.0126: textprop test fails
Problem:    Textprop test fails.
Solution:   Fix sign in computation.
2020-01-17 21:00:59 +01:00
3c71aec696 patch 8.2.0125: :mode no longer works for any system
Problem:    :mode no longer works for any system.
Solution:   Always give an error message.
2020-01-17 19:32:20 +01:00
109ef128bd patch 8.2.0124: compiler warnings for variable types
Problem:    Compiler warnings for variable types.
Solution:   Change type, add type cast. (Mike Williams)
2020-01-17 19:12:03 +01:00
17e04781f2 patch 8.2.0123: complete_info() does not work when CompleteDone is triggered
Problem:    complete_info() does not work when CompleteDone is triggered.
Solution:   Trigger CompleteDone before clearing the info.
2020-01-17 18:58:59 +01:00
f2a44e5c48 patch 8.2.0122: readme files still mention MS-DOS
Problem:    Readme files still mention MS-DOS.
Solution:   Update readme files. (Ken Takata, closes #5486)
2020-01-16 19:40:38 +01:00
49c57ce500 patch 8.2.0121: filter() and map() on blob don't work
Problem:    filter() and map() on blob don't work.
Solution:   Correct the code. (closes #5483)
2020-01-15 20:51:34 +01:00
b3d33d8570 patch 8.2.0120: virtcol() does not check arguments to be valid
Problem:    virtcol() does not check arguments to be valid, which may lead to
            a crash.
Solution:   Check the column to be valid.  Do not decrement MAXCOL.
            (closes #5480)
2020-01-15 20:36:55 +01:00
1470dc35c4 patch 8.2.0119: message test fails on some platforms
Problem:    Message test fails on some platforms. (Elimar Riesebieter)
Solution:   Add type cast to vim_snprintf() argument. (Dominique Pelle)
2020-01-14 22:02:14 +01:00
ca7c078b79 patch 8.2.0118: crash when cycling to buffers involving popup window
Problem:    Crash when cycling to buffers involving popup window .
Solution:   Do not decrement buffer reference count.
2020-01-14 20:42:48 +01:00
8024f93636 Update runtime files. 2020-01-14 19:29:13 +01:00
ee93b737aa patch 8.2.0117: crash when using gettabwinvar() with invalid arguments
Problem:    Crash when using gettabwinvar() with invalid arguments. (Yilin
            Yang)
Solution:   Use "curtab" if "tp" is NULL. (closes #5475)
2020-01-14 19:05:39 +01:00
c10b521628 patch 8.2.0116: BufEnter autocmd not triggered on ":tab drop"
Problem:    BufEnter autocmd not triggered on ":tab drop". (Andy Stewart)
Solution:   Decrement autocmd_no_enter for the last file. (closes #1660,
            closes #5473)
2020-01-13 20:54:51 +01:00
9df53b62de patch 8.2.0115: byte2line() does not work correctly with text properties
Problem:    Byte2line() does not work correctly with text properties. (Billie
            Cleek)
Solution:   Take the bytes of the text properties into account.
            (closes #5334)
2020-01-13 20:40:51 +01:00
7ebcba61b2 patch 8.2.0114: info about sourced scripts is scattered
Problem:    Info about sourced scripts is scattered.
Solution:   Use scriptitem_T for info about a script, including s: variables.
            Drop ga_scripts.
2020-01-12 17:42:55 +01:00
9b24dfcb9f patch 8.2.0113: "make cmdidxs" fails
Problem:    "make cmdidxs" fails.
Solution:   Allow address for ":cquit".  Add --not-a-term to avoid a delay.
2020-01-12 15:46:08 +01:00
02ad46394e patch 8.2.0112: illegal memory access when using 'cindent'
Problem:    Illegal memory access when using 'cindent'.
Solution:   Check for NUL byte. (Dominique Pelle, closes #5470)
2020-01-12 13:48:18 +01:00
9b4a15d5db patch 8.2.0111: VAR_SPECIAL is also used for booleans
Problem:    VAR_SPECIAL is also used for booleans.
Solution:   Add VAR_BOOL for better type checking.
2020-01-11 16:05:23 +01:00
e05a89ac63 patch 8.2.0110: prop_find() is not implemented
Problem:    prop_find() is not implemented.
Solution:   Implement prop_find(). (Ryan Hackett, closes #5421, closes #4970)
2020-01-10 19:56:46 +01:00
2963456ff2 Update runtime files. 2020-01-09 21:46:04 +01:00
ac15fd8c67 patch 8.2.0109: corrupted text properties when expanding spaces
Problem:    Corrupted text properties when expanding spaces.
Solution:   Reallocate the line. (Nobuhiro Takasaki, closes #5457)
2020-01-09 21:35:48 +01:00
bf0acff012 patch 8.2.0108: when sign text is changed a manual redraw is needed
Problem:    When sign text is changed a manual redraw is needed. (Pontus
            Lietzler)
Solution:   Redraw automatically. (closes #5455)
2020-01-09 21:01:59 +01:00
4ba6441818 patch 8.2.0107: hgignore is out of sync from gitignore
Problem:    Hgignore is out of sync from gitignore.
Solution:   Add lines to hgignore. (Ken Takata)
2020-01-09 16:25:52 +01:00
b16ad96849 patch 8.2.0106: printf formats are not exactly right
Problem:    Printf formats are not exactly right.
Solution:   Adjust signed/unsigned conversions. (Frazer Clews, closes #5456)
2020-01-08 22:06:14 +01:00
c838626fea patch 8.2.0105: Vim license not easy to find on github
Problem:    Vim license not easy to find on github.
Solution:   Add a separate LICENCE file. (closes #5458)
2020-01-08 21:43:02 +01:00
b662591e50 patch 8.2.0104: using channel or job with ":execute" has strange effects
Problem:    Using channel or job with ":execute" has strange effects.
Solution:   Give an error message for Job and Channel.
2020-01-08 20:09:01 +01:00
e2a8f0773e patch 8.2.0103: using null object with execute() has strange effects
Problem:    Using null object with execute() has strange effects.
Solution:   Give an error message ofr Job and Channel.
2020-01-08 19:32:18 +01:00
da292b07af patch 8.2.0102: messages test fails in small version
Problem:    Messages test fails in small version.
Solution:   Only use test_null_job() when available.
2020-01-08 19:27:40 +01:00
9db2afe46d patch 8.2.0101: crash when passing null object to ":echomsg"
Problem:    Crash when passing null object to ":echomsg".
Solution:   Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460)
2020-01-08 18:56:20 +01:00
41a4141ecb patch 8.2.0100: macros for Ruby are too complicated
Problem:    Macros for Ruby are too complicated.
Solution:   Do not use DYNAMIC_RUBY_VER, use RUBY_VERSION. (Ken Takata,
            closes #5452)
2020-01-07 21:32:19 +01:00
8b7aa2f9b2 patch 8.2.0099: use of NULL pointer when out of memory
Problem:    Use of NULL pointer when out of memory.
Solution:   Check for NULL pointer. (Dominique Pelle, closes #5449)
2020-01-07 21:05:49 +01:00
e31ee86859 patch 8.2.0098: exe stack length can be wrong without being detected
Problem:    Exe stack length can be wrong without being detected.
Solution:   Add a check when ABORT_ON_INTERNAL_ERROR is defined.
2020-01-07 20:59:34 +01:00
ce6db0273f patch 8.2.0097: crash with autocommand and spellfile
Problem:    Crash with autocommand and spellfile. (Tim Pope)
Solution:   Do not pop exestack when not pushed. (closes #5450)
2020-01-07 20:11:42 +01:00
fbcdf671f0 patch 8.2.0096: cannot create tiny popup window in last column
Problem:    Cannot create tiny popup window in last column. (Daniel Steinberg)
Solution:   Remove position limit. (closes #5447)
2020-01-06 23:07:48 +01:00
1860bde9d3 patch 8.2.0095: cannot specify exit code for :cquit
Problem:    Cannot specify exit code for :cquit.
Solution:   Add optional argument. (Thinca, Yegappan Lakshmanan, closes #5442)
2020-01-06 21:47:21 +01:00
e73b38f8e1 patch 8.2.0094: MS-Windows: cannot build with Strawberry Perl 5.30
Problem:    MS-Windows: cannot build with Strawberry Perl 5.30.
Solution:   Define __builtin_expect() as a workaround. (Ken Takata,
            closes #5267)
2020-01-06 21:22:09 +01:00
7b94e77132 patch 8.2.0093: win_splitmove() can make Vim hang
Problem:    win_splitmove() can make Vim hang.
Solution:   Check windows exists in the current tab page. (closes #5444)
2020-01-06 21:03:24 +01:00
a1353b5352 patch 8.2.0092: tags functionality insufficiently tested
Problem:    Tags functionality insufficiently tested.
Solution:   Add more tags tests. (Yegappan Lakshmanan, closes #5446)
2020-01-06 20:09:13 +01:00
4d7a248b64 patch 8.2.0091: compiler warnings for size_t / int types
Problem:    Compiler warnings for size_t / int types.
Solution:   Change type to size_t. (Mike Williams)
2020-01-06 19:53:43 +01:00
b376ace1ae patch 8.2.0090: generated files show up in git status
Problem:    Generated files show up in git status.
Solution:   Ignore a few more files.
2020-01-05 22:10:31 +01:00
f0f8055102 patch 8.2.0089: crash when running out of memory in :setfiletype completion
Problem:    Crash when running out of memory in :setfiletype completion.
Solution:   Do not allocate memory. (Dominique Pelle, closes #5438)
2020-01-05 22:05:49 +01:00
830c1afc9d patch 8.2.0088: insufficient tests for tags; bug in using extra tag field
Problem:    Insufficient tests for tags; bug in using extra tag field when
            using an ex command to position the cursor.
Solution:   Fix the bug, add more tests. (Yegappan Lakshmanan, closes #5439)
2020-01-05 20:35:44 +01:00
61d7c0d52c patch 8.2.0087: crash in command line expansion when out of memory
Problem:    Crash in command line expansion when out of memory.
Solution:   Check for NULL pointer.  Also make ExpandGeneric() static.
            (Dominique Pelle, closes #5437)
2020-01-05 14:38:40 +01:00
ab782c5b6f patch 8.2.0086: build error for small version
Problem:    Build error for small version. (Tony Mechelynck)
Solution:   Only use "user_data" with the +eval feature. Remove unused
            variable.
2020-01-04 19:00:11 +01:00
3d8a513b46 patch 8.2.0085: dead code in builtin functions
Problem:    Dead code in builtin functions.
Solution:   Clean up the code.
2020-01-04 16:13:49 +01:00
0892832bb6 patch 8.2.0084: complete item "user_data" can only be a string
Problem:    Complete item "user_data" can only be a string.
Solution:   Accept any type of variable. (closes #5412)
2020-01-04 14:32:48 +01:00
5cb0b93d52 patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Problem:    Text properties wrong when tabs and spaces are exchanged.
Solution:   Take text properties into account. (Nobuhiro Takasaki,
            closes #5427)
2020-01-03 21:25:59 +01:00
f10997a154 patch 8.2.0082: when reusing a buffer listeners are not cleared
Problem:    When reusing a buffer listeners are not cleared. (Axel Forsman)
Solution:   Clear listeners when reusing a buffer. (closes #5431)
2020-01-03 21:00:02 +01:00
467c32bd72 patch 8.2.0081: MS-Windows also need the change to support INIT4()
Problem:    MS-Windows also need the change to support INIT4().
Solution:   Add the ctags arguments. (Ken Takata)
2020-01-03 19:12:09 +01:00
509ff0688d patch 8.2.0080: globals using INIT4() are not in the tags file
Problem:    Globals using INIT4() are not in the tags file.
Solution:   Adjust the tags command.
2020-01-02 22:38:49 +01:00
d7df279808 Update a few runtime files. 2020-01-02 21:34:42 +01:00
7fc4785ea1 patch 8.2.0079: Python 3 unicode test still fails on MS-Windows
Problem:    Python 3 unicode test still fails on MS-Windows.
Solution:   Do not set 'encoding' to "euc-tw" on MS-Windows.
2020-01-02 16:38:07 +01:00
b9adef79ec patch 8.2.0078: expanding <sfile> works differently the second time
Problem:    Expanding <sfile> works differently the second time.
Solution:   Keep the expanded name when redefining a function. (closes #5425)
2020-01-02 14:31:22 +01:00
271fa08a35 patch 8.2.0077: settagstack() cannot truncate at current index
Problem:    settagstack() cannot truncate at current index.
Solution:   Add the "t" action. (Yegappan Lakshmanan, closes #5417)
2020-01-02 14:02:16 +01:00
955f4e6f36 patch 8.2.0076: Python 3 unicode test fails on MS-Windows
Problem:    Python 3 unicode test fails on MS-Windows.
Solution:   Do not set 'encoding' to "debug" on MS-Windows.
2020-01-01 17:44:56 +01:00
2466aea508 patch 8.2.0075: Python 3 unicode test still sometimes fails
Problem:    Python 3 unicode test still sometimes fails.
Solution:   Skip the test when 'termencoding' is not empty.
2020-01-01 17:09:11 +01:00
4b7cdca230 patch 8.2.0074: Python 3 unicode test someitmes fails
Problem:    Python 3 unicode test someitmes fails.
Solution:   Make 'termencoding' empty.  Correct number of error message.
2020-01-01 16:18:38 +01:00
ea8b7aecab patch 8.2.0073: initializing globals with COMMA is clumsy
Problem:    Initializing globals with COMMA is clumsy.
Solution:   Use INIT2(), INIT3(), etc.
2020-01-01 15:46:47 +01:00
bb062c1588 patch 8.2.0072: memory test still fails on Cirrus CI
Problem:    Memory test still fails on Cirrus CI.
Solution:   Allow for a tiny bit more tolerance in the upper limit.
2020-01-01 15:26:32 +01:00
1832d12aea patch 8.2.0071: memory test often fails on Cirrus CI
Problem:    Memory test often fails on Cirrus CI.
Solution:   Allow for more tolerance in the upper limit.  Remove sleep.
2020-01-01 15:17:25 +01:00
d518f952f0 patch 8.2.0070: crash when using Python 3 with "debug" encoding
Problem:    Crash when using Python 3 with "debug" encoding. (Dominique Pelle)
Solution:   Use "euc-jp" whenever enc_dbcs is set.
2020-01-01 15:04:17 +01:00
87396072c5 patch 8.2.0069: ETYPE_ is used for two different enums
Problem:    ETYPE_ is used for two different enums.
Solution:   Rename one to use EXPR_.
2019-12-31 22:36:18 +01:00
556684ff71 patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Problem:    Crash when using Python 3 with "utf32" encoding. (Dominique Pelle)
Solution:   Use "utf-8" whenever enc_utf8 is set. (closes #5423)
2019-12-31 21:59:01 +01:00
ef140544f6 patch 8.2.0067: ERROR_UNKNOWN clashes on some systems
Problem:    ERROR_UNKNOWN clashes on some systems.
Solution:   Rename ERROR_ to FCERR_. (Ola Söder, closes #5415)
2019-12-31 21:27:13 +01:00
d2c946bacf patch 8.2.0066: some corners of vim_snprintf() are not tested
Problem:    Some corners of vim_snprintf() are not tested.
Solution:   Add a test in C. (Dominique Pelle, closes #5422)
2019-12-31 19:24:51 +01:00
dba7c85b61 patch 8.2.0065: Amiga and alikes: autoopen only used on Amiga OS4
Problem:    Amiga and alikes: autoopen only used on Amiga OS4.
Solution:   Adjust #ifdefs. (Ola Söder, closes #5413)
2019-12-30 22:33:17 +01:00
efcc329020 patch 8.2.0064: diffmode completion doesn't use per-window setting
Problem:    Diffmode completion doesn't use per-window setting.
Solution:   Check if a window is in diff mode. (Dominique Pell, closes #5419)
2019-12-30 21:59:03 +01:00
08b28b7ad5 patch 8.2.0063: wrong size argument to vim_snprintf()
Problem:    Wrong size argument to vim_snprintf(). (Dominique Pelle)
Solution:   Reduce the size by the length. (related to #5410)
2019-12-30 20:42:39 +01:00
e7538ae997 patch 8.2.0062: memory test is flaky on FreeBSD
Problem:    Memory test is flaky on FreeBSD.
Solution:   Add a short sleep before getting the first size.
2019-12-30 19:59:24 +01:00
3fbcc128cb patch 8.2.0061: the execute stack can grow big and never shrinks
Problem:    The execute stack can grow big and never shrinks.
Solution:   Reduce the size in gargage collect.
2019-12-30 19:19:53 +01:00
d0337e360e patch 8.2.0060: message test only runs with one encoding
Problem:    Message test only runs with one encoding. (Dominique Pelle)
Solution:   Run the test with "utf-8" and "latin1".  Fix underflow. (related
            to #5410)
2019-12-30 17:55:34 +01:00
85b0957616 patch 8.2.0059: compiler warnings for unused variables in small build
Problem:    Compiler warnings for unused variables in small build. (Tony
            Mechelynck)
Solution:   Add #ifdef.
2019-12-30 10:57:00 +01:00
eb698d0b32 patch 8.2.0058: running tests changes ~/.viminfo
Problem:    Running tests changes ~/.viminfo.
Solution:   Make 'viminfo' empty when summarizing tests results. (closes #5414)
2019-12-30 00:07:57 +01:00
09d4640f6c patch 8.2.0057: cannot build with small features
Problem:    Cannot build with small features.
Solution:   Add #ifdefs.
2019-12-29 23:53:01 +01:00
1a47ae32cd patch 8.2.0056: execution stack is incomplete and inefficient
Problem:    Execution stack is incomplete and inefficient.
Solution:   Introduce a proper execution stack and use it instead of
            sourcing_name/sourcing_lnum.  Create a string only when used.
2019-12-29 23:04:25 +01:00
257a396879 patch 8.2.0055: cannot use ":gui" in vimrc with VIMDLL enabled
Problem:    Cannot use ":gui" in vimrc with VIMDLL enabled.
Solution:   Change the logic, check "gui.starting". (Ken Takata, closes #5408)
2019-12-29 15:19:03 +01:00
ae7dba8969 patch 8.2.0054: :diffget and :diffput don't have good completion
Problem:    :diffget and :diffput don't have good completion.
Solution:   Add proper completion. (Dominique Pelle, closes #5409)
2019-12-29 13:56:33 +01:00
e20e68b40d patch 8.2.0053: windowsversion() does not always return the right value
Problem:    windowsversion() does not always return the right value.
Solution:   Add a compatibility section in the manifest. (Ken Takata,
            closes #5407)
2019-12-29 13:43:54 +01:00
c6d539b671 patch 8.2.0052: more-prompt not properly tested
Problem:    More-prompt not properly tested.
Solution:   Add a test case. (Dominique Pelle, closes #5404)
2019-12-28 17:10:46 +01:00
731a799bb9 patch 8.2.0051: command line completion test skipped
Problem:    Command line completion test skipped. (Christian Brabandt)
Solution:   Invert condition.
2019-12-28 14:06:50 +01:00
8cd6cd8087 patch 8.2.0050: after deleting a file mark it is still in viminfo
Problem:    After deleting a file mark it is still in viminfo.
Solution:   When a file mark was deleted more recently than the mark in the
            merged viminfo file was updated, do not store the mark. (Pavol
            Juhas, closes #5401, closes #1339)
2019-12-27 17:33:26 +01:00
297610ba4b patch 8.2.0049: command line completion not fully tested
Problem:    Command line completion not fully tested.
Solution:   Add more test cases.  Make help sorting stable. (Dominique Pelle,
            closes #5402)
2019-12-27 17:20:55 +01:00
5c463a28ff patch 8.2.0048: another timers test is flaky on Travis for Mac
Problem:    Another timers test is flaky on Travis for Mac.
Solution:   Increase maximum expected time.
2019-12-27 17:14:33 +01:00
0c1e3744ff patch 8.2.0047: cannot skip tests for specific MS-Windows platform
Problem:    Cannot skip tests for specific MS-Windows platform.
Solution:   Add windowsversion().
2019-12-27 13:49:24 +01:00
5666fcd0bd Update runtime files. 2019-12-26 14:35:26 +01:00
767340574b patch 8.2.0046: tests for spell suggestions are slow
Problem:    Tests for spell suggestions are slow.
Solution:   Use shorter words. Test with latin1 and utf-8 to cover more code.
            (Dominique Pelle, closes #5399)
2019-12-26 14:30:15 +01:00
ec57ec692e patch 8.2.0045: script test fails
Problem:    Script test fails.
Solution:   For numbers "is" and "isnot" work like "==" and "!=".
2019-12-25 19:33:22 +01:00
07a3db89b8 patch 8.2.0044: expression type is used inconsistently
Problem:    Expression type is used inconsistently.
Solution:   Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values.  Rename
            "TYPE_" to "ETYPE_" to avoid confusion.
2019-12-25 18:14:14 +01:00
818fed7a5e patch 8.2.0043: timers test is still flaky on Travis for Mac
Problem:    Timers test is still flaky on Travis for Mac.
Solution:   Increase maximum expected time.
2019-12-25 15:47:14 +01:00
eac7ce01e9 patch 8.2.0042: clearing funccal values twice
Problem:    Clearing funccal values twice.
Solution:   Remove clearing individual fields.
2019-12-25 15:04:03 +01:00
6c52f82371 patch 8.2.0041: leaking memory when selecting spell suggestion
Problem:    Leaking memory when selecting spell suggestion.
Solution:   Free previous value at the right time.
2019-12-25 14:13:03 +01:00
03af01f1cb patch 8.2.0040: timers test is still flaky on Travis for Mac
Problem:    Timers test is still flaky on Travis for Mac.
Solution:   Run separately instead of as part of test_alot.
2019-12-25 13:59:51 +01:00
569fea2c31 patch 8.2.0039: memory access error when "z=" has no suggestions
Problem:    Memory access error when "z=" has no suggestions.
Solution:   Check for negative index.
2019-12-25 13:55:24 +01:00
e9a8d1f9ad patch 8.2.0038: spell suggestions insufficiently tested
Problem:    Spell suggestions insufficiently tested.
Solution:   Add spell suggestion tests. (Dominique Pelle, closes #5398)
2019-12-25 13:36:36 +01:00
1500a42c42 patch 8.2.0037: missing renamed message
Problem:    Missing renamed message.
Solution:   Now really add the error number.
2019-12-24 15:38:21 +01:00
49d68bf5e4 patch 8.2.0036: not enough test coverage for match functions
Problem:    Not enough test coverage for match functions.
Solution:   Add a few more test cases.  (Dominique Pelle, closes #5394)
            Add error number.
2019-12-24 15:17:00 +01:00
53989554a4 patch 8.2.0035: saving and restoring called_emsg is clumsy
Problem:    Saving and restoring called_emsg is clumsy.
Solution:   Count the number of error messages.
2019-12-23 22:59:18 +01:00
70188f5b23 patch 8.2.0034: missing check for out of memory
Problem:    Missing check for out of memory.
Solution:   Check for NULL after vim_strsave(). (Dominique Pelle,
            closes #5393)
2019-12-23 18:18:52 +01:00
7c77b34967 patch 8.2.0033: crash when make_extmatch() runs out of memory
Problem:    Crash when make_extmatch() runs out of memory.
Solution:   Check for NULL. (Dominique Pelle, closs #5392)
2019-12-22 19:40:40 +01:00
7c2a2f869b patch 8.2.0032: MS-Windows: test for blank job fails
Problem:    MS-Windows: test for blank job fails
Solution:   Check before escaping.
2019-12-22 18:28:51 +01:00
ba0a7475c5 patch 8.2.0031: MS-Windows: test for empty job fails
Problem:    MS-Windows: test for empty job fails
Solution:   Check for error message, make it also fail on Unix.
2019-12-22 16:09:06 +01:00
64e74c9cc7 patch 8.2.0030: "gF" does not work on output of "verbose command"
Problem:    "gF" does not work on output of "verbose command".
Solution:   Recognize " line " and translations. (closes #5391)
2019-12-22 15:38:06 +01:00
a27655ef6d patch 8.2.0029: MS-Windows: crash with empty job command
Problem:    MS-Windows: crash with empty job command.
Solution:   Check for NULL result. (Yasuhiro Matsumoto, closes #5390)
2019-12-21 22:22:01 +01:00
3ba35409a6 patch 8.2.0028: searchpairpos() is not tested
Problem:    Searchpairpos() is not tested.
Solution:   Add tests.  Also improve searchpair() testing. (Dominique Pelle,
            closes #5388)
2019-12-21 22:00:50 +01:00
aa2f0ee639 patch 8.2.0027: still some /* */ comments
Problem:    Still some /* */ comments.
Solution:   Convert to // comments.
2019-12-21 18:47:26 +01:00
85a2002adb patch 8.2.0026: still some /* */ comments
Problem:    Still some /* */ comments.
Solution:   Convert to // comments.
2019-12-21 18:25:54 +01:00
fe72d08400 patch 8.2.0025: repeated word in comment
Problem:    Repeated word in comment.
Solution:   Remove one. (Rene Nyffenegger, closes #5384)
2019-12-20 19:07:00 +01:00
95a9dd1efc Update runtime files. 2019-12-19 22:12:03 +01:00
a4ce82fe2e patch 8.2.0024: filetype Rego not recognized
Problem:    Filetype Rego not recognized.
Solution:   Add *.rego. (Matt Dunford, closes #5376)
2019-12-19 15:57:42 +01:00
59cb041d0a patch 8.2.0023: command line editing not sufficiently tested
Problem:    Command line editing not sufficiently tested.
Solution:   Add more tests. (Dominique Pelle, closes #5374)
2019-12-18 22:26:31 +01:00
0ce3733f78 patch 8.2.0022: click in popup window doesn't close it in the GUI
Problem:    Click in popup window doesn't close it in the GUI. (Sergey Vlasov)
Solution:   When processing the selection also send a button release event.
            (closes #5367)
2019-12-18 21:33:22 +01:00
bc28e9f15b patch 8.2.0021: timer test fails too often on Travis with MacOS
Problem:    Timer test fails too often on Travis with MacOS.
Solution:   Be less strict with the time.
2019-12-18 20:10:23 +01:00
f19f8d1a4b patch 8.2.0020: mouse clicks in the command line not tested
Problem:    Mouse clicks in the command line not tested.
Solution:   Add tests. (Dominique Pelle, closes #5366)
2019-12-18 19:36:23 +01:00
a9e9679de3 patch 8.2.0019: cannot number of lines of another buffer
Problem:    Cannot number of lines of another buffer.
Solution:   Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto,
            closes #5370)
2019-12-17 22:40:15 +01:00
91b65e4944 patch 8.2.0018: :join does not add white space where it should
Problem:    :join does not add white space where it should. (Zdenek Dohnal)
Solution:   Handle joining multiple lines propely.
2019-12-17 22:10:58 +01:00
6f345a1458 patch 8.2.0017: OS/2 and MS-DOS are still mentioned
Problem:    OS/2 and MS-DOS are still mentioned, even though support was
            removed long ago.
Solution:   Update documentation. (Yegappan Lakshmanan, closes #5368)
2019-12-17 21:27:18 +01:00
a48e78e11f patch 8.2.0016: test name used twice, option not restored properly
Problem:    Test name used twice, option not restored properly.
Solution:   Rename function, restore option with "&".
2019-12-17 20:29:26 +01:00
e74331db4b patch 8.2.0015: not all modeline variants are tested
Problem:    Not all modeline variants are tested.
Solution:   Add modeline tests. (Dominique Pelle, closes #5369)
2019-12-17 19:22:40 +01:00
afc13bd827 patch 8.2.0014: test69 and test95 are old style
Problem:    Test69 and test95 are old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5365)
2019-12-16 22:43:31 +01:00
ddef129160 patch 8.2.0013: not using a typedef for condstack
Problem:    Not using a typedef for condstack.
Solution:   Add a typedef.
2019-12-16 17:10:33 +01:00
559b9c68fe patch 8.2.0012: some undo functionality is not tested
Problem:    Some undo functionality is not tested.
Solution:   Add a few more test cases. (Dominique Pelle, closes #5364)
2019-12-15 18:09:19 +01:00
5e5a98d7de patch 8.2.0011: screen updating wrong when opeing preview window
Problem:    Screen updating wrong when opeing preview window.
Solution:   Redraw the window when the preview window opens.
2019-12-15 14:55:33 +01:00
f9cb05c147 patch 8.2.0010: test64 is old style
Problem:    Test64 is old style.
Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5363)
2019-12-15 13:39:22 +01:00
95f0b6e5a5 patch 8.2.0009: VMS: terminal version doesn't build
Problem:    VMS: terminal version doesn't build.
Solution:   Move MIN definition.  Adjust #ifdefs. (Zoltan Arpadffy)
2019-12-15 12:54:18 +01:00
3e2d1c8cd6 patch 8.2.0008: test72 is old style
Problem:    Test72 is old style.
Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5362)
2019-12-14 20:35:01 +01:00
09dd2bb336 patch 8.2.0007: popup menu positioned wrong with folding in two tabs
Problem:    Popup menu positioned wrong with folding in two tabs.
Solution:   Update the cursor line height. (closes #5353)
2019-12-14 18:42:15 +01:00
6e43b30a85 patch 8.2.0006: test using long file name may fail
Problem:    Test using long file name may fail. (Vladimir Lomov)
Solution:   Limit the name length. (Christian Brabandt, closes #5358)
2019-12-14 17:53:27 +01:00
5021225656 patch 8.2.0005: duplication in version info
Problem:    Duplication in version info.
Solution:   Use preprocessor string concatenation. (Ken Takata, closes #5357)
2019-12-14 17:24:53 +01:00
a6e8f888e7 patch 8.2.0004: get E685 and E931 if buffer reload is interrupted
Problem:    Get E685 and E931 if buffer reload is interrupted.
Solution:   Do not abort deleting a dummy buffer. (closes #5361)
2019-12-14 16:18:15 +01:00
f5f4b6cb5f patch 8.2.0003: Build file dependencies are incomplete
Problem:    Build file dependencies are incomplete.
Solution:   Fix the dependencies. (Ken Takata, closes #5356)
2019-12-14 13:17:11 +01:00
3b68123cd2 patch 8.2.0002: "dj" only deletes first line of closed fold
Problem:    "dj" only deletes first line of closed fold.
Solution:   Adjust last line of operator for linewise motion. (closes #5354)
2019-12-13 19:35:55 +01:00
74ee5e2384 patch 8.2.0001: #endif comments do reflect corresponding #ifdef
Problem:    #endif comments do reflect corresponding #ifdef.
Solution:   Update the comments. (Rene Nyffenegger, closes #5351)
2019-12-13 18:13:22 +01:00
98056533b9 Vim 8.2 release 2019-12-12 14:18:35 +01:00
469bdbde1e Minor runtime file updates. 2019-12-11 23:05:48 +01:00
36698e34aa patch 8.1.2424: MS-Windows: console buffer is resized unnecessarily
Problem:    MS-Windows: console buffer is resized unnecessarily.
Solution:   Only call ResizeConBuf() when the size differs. (Nobuhiro
            Takasaki, closes #5343)
2019-12-11 22:57:40 +01:00
e24437b643 patch 8.1.2423: MS-Windows properties shows version as "8, 1, 0"
Problem:    MS-Windows properties shows version as "8, 1, 0".
Solution:   Use "8.1.0". (Ken Takata, closes #5342)
2019-12-11 22:41:29 +01:00
9810cfbe55 patch 8.1.2422: "make depend" does not work correctly for libvterm
Problem:    "make depend" does not work correctly for libvterm.
Solution:   Fix build dependencies. And a few minor improvements.
2019-12-11 21:23:00 +01:00
213ed008bb patch 8.1.2421: test88 is old style
Problem:    Test88 is old style.
Solution:   Turn into a new style test. (Yegappan Lakshmanan, closes #5347)
2019-12-11 20:12:26 +01:00
4954019c93 patch 8.1.2420: crash when calling popup_close() in win_execute()
Problem:    Crash when calling popup_close() in win_execute().
Solution:   Disallow popup_close() in popup window. (Yasuhiro Matsumoto,
            closes #5345)
2019-12-11 19:34:54 +01:00
0efd1bdcf4 patch 8.1.2419: with a long file name the hit-enter prompt appears
Problem:    With a long file name the hit-enter prompt appears. (J. Lewis
            Muir)
Solution:   When checking for text to wrap don't do this when outputing a CR.
2019-12-11 19:00:04 +01:00
99ebf22c52 patch 8.1.2418: bufnr('$') is wrong after recycling popup buffer
Problem:    bufnr('$') is wrong after recycling popup buffer.
Solution:   Sort the buffer list by buffer number. (closes #5335)
2019-12-10 23:44:48 +01:00
1e46705a83 patch 8.1.2417: MinGW/Cygwin build does not clean up all files
Problem:    MinGW/Cygwin build does not clean up all files.
Solution:   Delete *.map files. (Michael Soyka)
2019-12-10 22:48:15 +01:00
e24c5b3332 patch 8.1.2416: loading menus sets v:errmsg
Problem:    Loading menus sets v:errmsg.
Solution:   Avoid setting v:errmsg and add a test for that. (Jason Franklin)
2019-12-10 22:11:53 +01:00
04357fbb87 patch 8.1.2415: popup menu flickers if an info popup is used
Problem:    Popup menu flickers if an info popup is used. (Nick Spoons)
Solution:   Set the pum_skip_redraw flag.
2019-12-10 21:50:56 +01:00
2ed639abdc Update a few runtime files. 2019-12-09 23:11:18 +01:00
661ed8b4b6 patch 8.1.2414: MS-Windows: properties dialog box shows wrong character
Problem:    MS-Windows: properties dialog box shows wrong character.
Solution:   Explicitly specify encoding. (Ken Takata, closes #5338)
2019-12-09 22:22:49 +01:00
0ba89ec47c patch 8.1.2413: cannot update ex_cmdidxs.h on MS-Windows
Problem:    Cannot update ex_cmdidxs.h on MS-Windows.
Solution:   Add build rules and dependencies. (Ken Takata, closes #5337)
2019-12-09 21:48:11 +01:00
0ff822d2eb patch 8.1.2412: crash when evaluating expression with error
Problem:    Crash when evaluating expression with error. (Dhiraj Mishra)
Solution:   Check parsing failed. (closes #5329)
2019-12-08 18:41:34 +01:00
1b03a193b3 patch 8.1.2411: function argument copied unnecessarily
Problem:    Function argument copied unnecessarily.
Solution:   Use the argument directly.
2019-12-08 17:08:29 +01:00
32b364fcc0 Runtime file updates. 2019-12-08 15:07:48 +01:00
e2a3f36bf2 patch 8.1.2410: MS-Windows: test_iminsert fails without IME support
Problem:    MS-Windows: test_iminsert fails without IME support.
Solution:   Skip the test when imgetstatus() doesn't work.
2019-12-07 21:40:48 +01:00
5f1920ada2 patch 8.1.2409: creating the distribution doesn't work as documented
Problem:    Creating the distribution doesn't work as documented.
Solution:   Adjust name of uninstall binary. Create src/auto directory if
            needed.
2019-12-07 21:01:43 +01:00
bfd3433330 patch 8.1.2408: syntax menu and build instructions outdated
Problem:    Syntax menu and build instructions outdated.
Solution:   Update build instructions and syntax menu.
2019-12-07 19:24:34 +01:00
d283e89138 patch 8.1.2407: proto files, dependencies and build instructions outdated
Problem:    proto file, dependenciess and Build instructions outdated.
Solution:   Update proto files, dependencies and build instructions.
2019-12-07 18:50:29 +01:00
6b649ac4fd patch 8.1.2406: leaking memory in test_paste and test_registers
Problem:    Leaking memory in test_paste and test_registers.
Solution:   Free the old title.  Don't copy expr_line.
2019-12-07 17:47:22 +01:00
1f9a028def patch 8.1.2405: matchadd_conceal test fails under valgrind
Problem:    matchadd_conceal test fails under valgrind.
Solution:   Use WaitForAssert() and wait a bit longer.
2019-12-07 17:22:04 +01:00
08d2e795e7 patch 8.1.2404: channel test fails under valgrind
Problem:    Channel test fails under valgrind.
Solution:   Sleep a bit longer.
2019-12-07 17:10:25 +01:00
3c47e8384d patch 8.1.2403: autocmd test fails under valgrind
Problem:    Autocmd test fails under valgrind.
Solution:   Wait a bit longer.
2019-12-07 17:05:31 +01:00
664f3cf3f2 Runtime file updates. 2019-12-07 16:03:51 +01:00
f48ee3c284 patch 8.1.2402: typos and other small things
Problem:    Typos and other small things.
Solution:   Small fixes.
2019-12-06 22:18:20 +01:00
88a3e2b2ac patch 8.1.2401: :cexpr does not handle | in expression
Problem:    :cexpr does not handle | in expression.
Solution:   Remove EX_TRLBAR and set nextcmd pointer.
2019-12-06 21:11:39 +01:00
1f3e7d3bf0 patch 8.1.2400: test39 is old style
Problem:    Test39 is old style.
Solution:   Convert the test cases into new style. (Yegappan Lakshmanan,
            closes #5324)
2019-12-06 20:43:36 +01:00
bef93ac9db patch 8.1.2399: info popup on top of cursor if it doesn't fit
Problem:    Info popup on top of cursor if it doesn't fit.
Solution:   Hide the popup if it doesn't fit.
2019-12-06 20:17:35 +01:00
9a838fe543 patch 8.1.2398: strptime() test fails on Japanese Mac
Problem:    strptime() test fails on Japanese Mac.
Solution:   Use %T instead of %X.
2019-12-06 12:45:01 +01:00
e7dd0deb3c patch 8.1.2397: should not define __USE_XOPEN
Problem:    Should not define __USE_XOPEN. _XOPEN_SOURCE is not needed for
            Android.
Solution:   Remove __USE_XOPEN and adjust #ifdefs. (Ozaki Kiichi,
            closes #5322)
2019-12-05 23:07:06 +01:00
c08ee7476b Update runtime files. 2019-12-05 22:47:25 +01:00
e38eab22c1 patch 8.1.2396: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-05 21:50:01 +01:00
0d6f5d9740 patch 8.1.2395: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-05 21:33:15 +01:00
63d9e730f7 patch 8.1.2394: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-05 21:10:38 +01:00
0f8737355d patch 8.1.2393: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-05 20:28:46 +01:00
6e0ce171e1 patch 8.1.2392: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-05 20:12:41 +01:00
c95e8d6490 patch 8.1.2391: cannot build when __QNXNTO__ is defined
Problem:    Cannot build when __QNXNTO__ is defined. (Ian Wayne Larson)
Solution:   Move the check for "qansi". (Ken Takata, closes #5317)
2019-12-05 18:35:44 +01:00
309976ec1f patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Problem:    Test94 is old style, fix 7.4.441 not tested.
Solution:   Turn test94 into a new style test.  Add tests for the fix in patch
            7.4.441. (Yegappan Lakshmanan, closes #5316)
2019-12-05 18:16:33 +01:00
707d226ac5 patch 8.1.2389: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-04 22:16:54 +01:00
4ba37b5833 patch 8.1.2388: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-04 21:57:43 +01:00
2ab2e8608f patch 8.1.2387: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-04 21:24:53 +01:00
9834b96820 Update version 8.2 notes and make syntax. 2019-12-04 20:43:03 +01:00
42e931b0f5 patch 8.1.2386: 'wincolor' is not used for 'listchars'
Problem:    'wincolor' is not used for 'listchars'.
Solution:   Combine the colors. (closes #5308)
2019-12-04 19:08:50 +01:00
85db547598 patch 8.1.2385: opening cmdline window with feedkeys() does not work
Problem:    Opening cmdline window with feedkeys() does not work. (Yegappan
            Lakshmanan)
Solution:   Recognize K_CMDWIN also when ex_normal_busy is set.
2019-12-04 15:11:08 +01:00
079119babe patch 8.1.2384: test 48 is old style
Problem:    Test 48 is old style.
Solution:   Merge test cases into new style test. (Yegappan Lakshmanan,
            closes #5307)
2019-12-03 22:59:23 +01:00
4ceaa3a6e0 Update a few runtime files 2019-12-03 22:49:09 +01:00
734a867ffe patch 8.1.2383: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-02 22:49:38 +01:00
a050b9471c patch 8.1.2382: MS-Windows: When using VTP bold+inverse doesn't work
Problem:    MS-Windows: When using VTP bold+inverse doesn't work.
Solution:   Compare with the default colors. (Nobuhiro Takasaki, closes #5303)
2019-12-02 21:35:31 +01:00
54c8d229f5 patch 8.1.2381: not all register related code is covered by tests
Problem:    Not all register related code is covered by tests.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5301)
2019-12-02 20:41:39 +01:00
306139005c patch 8.1.2380: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-01 22:11:18 +01:00
217e1b8359 patch 8.1.2379: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-01 21:41:28 +01:00
5d18efecfd patch 8.1.2378: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-12-01 21:11:22 +01:00
fa5612c7d8 patch 8.1.2377: GUI: when losing focus a pending operator is executed
Problem:    GUI: when losing focus a pending operator is executed.
Solution:   Do not execute an operator when getting K_IGNORE. (closes #5300)
2019-12-01 19:37:07 +01:00
912bc4a51a patch 8.1.2376: preprocessor indents are incorrect
Problem:    Preprocessor indents are incorrect.
Solution:   Fix the indents. (Ken Takata, closes #5298)
2019-12-01 18:58:11 +01:00
6f1f0ca3ed patch 8.1.2375: no suffucient testing for registers
Problem:    No suffucient testing for registers.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5296)
            Fix that "p" on last virtual column of tab inserts spaces.
2019-12-01 18:16:18 +01:00
269e4bd9d2 patch 8.1.2374: unused parts of libvterm are included
Problem:    Unused parts of libvterm are included.
Solution:   Delete the unused files.
2019-12-01 15:31:12 +01:00
5a4c3082d7 patch 8.1.2373: cannot build with +popupwin but without +quickfix
Problem:    Cannot build with +popupwin but without +quickfix. (John Marriott)
Solution:   Adjust #ifdefs.
2019-12-01 15:23:11 +01:00
9625d3d92d patch 8.1.2372: VMS: failing realloc leaks memory
Problem:    VMS: failing realloc leaks memory. (Chakshu Gupta)
Solution:   Free the memory. (partly fixes #5292)
2019-11-30 22:57:53 +01:00
05ad5ff0ab patch 8.1.2371: FEAT_TEXT_PROP is a confusing name
Problem:    FEAT_TEXT_PROP is a confusing name.
Solution:   Use FEAT_PROP_POPUP. (Naruhiko Nishino, closes #5291)
2019-11-30 22:48:27 +01:00
0c5c3faef2 patch 8.1.2370: build problems on VMS
Problem:    Build problems on VMS.
Solution:   Adjust the build file. (Zoltan Arpadffy)
2019-11-30 22:38:16 +01:00
a2c2ae473a patch 8.1.2369: cannot build with quickfix and without text properties
Problem:    Cannot build with quickfix and without text properties.
Solution:   Fix typo. (Naruhiko Nishino)
2019-11-30 20:58:46 +01:00
c667da5185 patch 8.1.2368: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-11-30 20:52:27 +01:00
71136db1bf patch 8.1.2367: registers are not sufficiently tested
Problem:    Registers are not sufficiently tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #5288)
2019-11-30 19:48:46 +01:00
9bf703d46a patch 8.1.2366: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
2019-11-30 19:44:38 +01:00
20ebbeac46 patch 8.1.2365: missing tests for recent popupwin changes
Problem:    Missing tests for recent popupwin changes.
Solution:   Add test cases.
2019-11-30 17:58:27 +01:00
91359014b3 Update runtime files. 2019-11-30 17:57:03 +01:00
e219f73ed5 patch 8.1.2364: termwinscroll test is flaky on FreeBSD
Problem:    Termwinscroll test is flaky on FreeBSD.
Solution:   Add to list of flaky tests.  Rename function.
2019-11-30 15:34:08 +01:00
dee50a5180 patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Problem:    ml_get error when accessing Visual area in 'statusline'.
Solution:   Disable Visual mode when using another window. (closes #5278)
2019-11-30 15:05:22 +01:00
7257073043 patch 8.1.2362: cannot place signs in a popup window
Problem:    Cannot place signs in a popup window. (Maxim Kim)
Solution:   Use the group prefix "PopUp" to specify which signs should show up
            in a popup window. (closes #5277)
2019-11-30 14:21:53 +01:00
310c32e892 patch 8.1.2361: MS-Windows: test failures related to VIMDLL
Problem:    MS-Windows: test failures related to VIMDLL.
Solution:   Adjust code and tests. (Ken Takata, closes #5283)
2019-11-29 23:15:25 +01:00
15a7bdcb77 patch 8.1.2360: quickfix test coverage can still be improved
Problem:    Quickfix test coverage can still be improved.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5276)
2019-11-29 22:06:47 +01:00
0387cae15c patch 8.1.2359: cannot build without FEAT_FLOAT
Problem:    Cannot build without FEAT_FLOAT. (John Marriott)
Solution:   Fix #ifdefs around f_srand().
2019-11-29 21:07:58 +01:00
9134f1ecd4 patch 8.1.2358: tests fail on Cirrus CI for FreeBSD
Problem:    Tests fail on Cirrus CI for FreeBSD.
Solution:   Fix a test and skip some. (Christian Brabandt, closes #5281)
2019-11-29 20:26:13 +01:00
68e9e5f7fc patch 8.1.2357: no test with wrong argument for rand()
Problem:    No test with wrong argument for rand().
Solution:   Add a test case.
2019-11-28 22:55:43 +01:00
f8c1f9200c patch 8.1.2356: rand() does not use the best algorithm
Problem:    rand() does not use the best algorithm.
Solution:   use xoshiro128** instead of xorshift. (Kaito Udagawa,
            closes #5279)
2019-11-28 22:13:14 +01:00
c7d2a57b3a patch 8.1.2355: test with "man" fails on FreeBSD
Problem:    Test with "man" fails on FreeBSD.
Solution:   Use "-P" instead of "--pager".
2019-11-28 21:16:06 +01:00
31ff2e1b43 patch 8.1.2354: Cirrus CI runs on another repository
Problem:    Cirrus CI runs on another repository.
Solution:   Run Cirrus CI on vim/vim.
2019-11-28 20:53:08 +01:00
5708079a6b patch 8.1.2353: build failure on FreeBSD
Problem:    Build failure on FreeBSD.
Solution:   Change #ifdef to only check for Linux-like systems.
2019-11-28 20:09:58 +01:00
424e98baab Merge branch 'master' of github.com:vim/vim 2019-11-27 21:57:45 +01:00
7a212c6253 Merge pull request #5275 from vim/revert-5273-cirrus_ci
Revert "Cirrus CI: add a simple CI using BSD"
2019-11-27 21:57:06 +01:00
d52986e7be Revert "Cirrus CI: add a simple CI using BSD" 2019-11-27 21:56:28 +01:00
ea599a65ee patch 8.1.2352: CI doesn't cover FreeBSD
Problem:    CI doesn't cover FreeBSD.
Solution:   Configure Cirrus-CI. (Christian Brabandt, closes #5273)
2019-11-27 21:55:41 +01:00
8fbd6723af Merge pull request #5273 from chrisbra/cirrus_ci
Cirrus CI: add a simple CI using BSD
2019-11-27 16:08:29 +01:00
e307073680 Cirrus CI: add a simple CI using BSD
Cirrus CI allows to run CI tests in a wide variety of systems, such as
Mac, Windows and FreeBSD. For a starter, add a Cirrus-CI test just for
FreeBSD using version 12, assuming Windows and Linux are already tested
using appveyor and Travis CI
2019-11-27 15:59:06 +01:00
92e25ab2df patch 8.1.2351: 'wincolor' not used for > for not fitting double width char
Problem:    'wincolor' not used for > for not fitting double width char.
            Also: popup drawn on right half of double width character looks
            wrong.
Solution:   Adjust color for > character.  Clear left half of double width
            character if right half is being overwritten.
2019-11-26 22:39:10 +01:00
0c0734d527 Update runtime files 2019-11-26 21:44:46 +01:00
fc4ea2a72d patch 8.1.2350: other text for CTRL-V in Insert mode with modifyOtherKeys
Problem:    Other text for CTRL-V in Insert mode with modifyOtherKeys.
Solution:   Convert the Escape sequence back to key as if modifyOtherKeys is
            not set, and use CTRL-SHIFT-V to get the Escape sequence itself.
            (closes #5254)
2019-11-26 19:33:22 +01:00
cc4423ae13 patch 8.1.2349: :lockvar and :unlockvar cannot be followed by "| endif"
Problem:    :lockvar and :unlockvar cannot be followed by "| endif".
Solution:   Check for following commands. (closes #5269)
2019-11-26 17:05:00 +01:00
8f76e6b12b patch 8.1.2348: :const cannot be followed by "| endif"
Problem:    :const cannot be followed by "| endif".
Solution:   Check following command for :const. (closes #5269)
            Also fix completion after :const.
2019-11-26 16:50:30 +01:00
84f903326d patch 8.1.2347: MacOS: build fails
Problem:    MacOS: build fails.
Solution:   Don't define _XOPEN_SOURCE for Mac.
2019-11-26 14:48:00 +01:00
38571a04b4 patch 8.1.2346: CTRL-R CTRL-R doesn't work with modifyOtherKeys
Problem:    CTRL-R CTRL-R doesn't work with modifyOtherKeys.
Solution:   Allow key codes when fetching argument for CTRL-R. (closes #5266)
            Also fix CTRL-G in Insert mode.
2019-11-26 14:28:15 +01:00
c1faf3dc38 patch 8.1.2345: .cjs files are not recognized as Javascript
Problem:    .cjs files are not recognized as Javascript.
Solution:   Add the *.cjs pattern. (closes #5268)
2019-11-26 13:43:40 +01:00
6a228c6463 patch 8.1.2344: Cygwin: warning for using strptime()
Problem:    Cygwin: warning for using strptime().
Solution:   Move defining _XOPEN_SOURCE and __USE_XOPEN to vim.h. (Ken Takata,
            closes #5265)  Use 700 for _XOPEN_SOURCE for mkdtemp().
2019-11-26 13:29:01 +01:00
07e4a19795 patch 8.1.2343: using time() for srand() is not very random
Problem:    Using time() for srand() is not very random.
Solution:   use /dev/urandom if available
2019-11-26 12:23:30 +01:00
06b0b4bc27 patch 8.1.2342: random number generator in Vim script is slow
Problem:    Random number generator in Vim script is slow.
Solution:   Add rand() and srand(). (Yasuhiro Matsumoto, closes #1277)
2019-11-25 15:40:55 +01:00
67a2deb9cb patch 8.1.2341: not so easy to interrupt a script programatically
Problem:    Not so easy to interrupt a script programatically.
Solution:   Add the interrupt() function. (Yasuhiro Matsumoto, closes #2834)
2019-11-25 00:05:32 +01:00
a106e6cde6 patch 8.1.2340: quickfix test fails under valgrind and asan
Problem:    Quickfix test fails under valgrind and asan.
Solution:   Make sure long line does not overflow IObuff. (Dominique Pelle,
            closes #5263)  Put back fix for large terminals. (Yegappan
            Lakshmanan, closes #5264)
2019-11-24 22:13:58 +01:00
70077dd1ca patch 8.1.2339: insufficient testing for quickfix
Problem:    Insufficient testing for quickfix.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5261)
2019-11-24 12:12:42 +01:00
c672525b48 patch 8.1.2338: using Visual mark sith :s gives E20 if not set
Problem:    Using Visual mark sith :s gives E20 if not set.
Solution:   Ignore errors when handling 'incsearch'. (closes #3837)
2019-11-23 21:56:46 +01:00
85c3502ef5 patch 8.1.2337: double-click time sometimes miscomputed
Problem:    Double-click time sometimes miscomputed.
Solution:   Correct time computation. (Dominique Pelle, closes #5259)
2019-11-22 22:21:59 +01:00
4ebe0e62d0 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Problem:    When an expr mapping moves the cursor it is not restored.
Solution:   Position the cursor after an expr mapping. (closes #5256)
2019-11-22 20:55:40 +01:00
2118a30295 patch 8.1.2335: error message for function arguments may use NULL pointer
Problem:    Error message for function arguments may use NULL pointer.
            (Coverity)
Solution:   Use the original function name.
2019-11-22 19:29:45 +01:00
fd318115a5 patch 8.1.2334: possible NULL pointer dereference in popup_locate()
Problem:    Possible NULL pointer dereference in popup_locate(). (Coverity)
Solution:   Check for NULL pointer.
2019-11-22 19:22:08 +01:00
828ffd5963 patch 8.1.2333: with modifyOtherKeys CTRL-^ doesn't work
Problem:    With modifyOtherKeys CTRL-^ doesn't work.
Solution:   Handle the exception.
2019-11-21 23:24:00 +01:00
556ae8ea28 patch 8.1.2332: missing file in refactoring
Problem:    Missing file in refactoring.
Solution:   Update missing file.
2019-11-21 22:27:22 +01:00
7bae0b1bc8 patch 8.1.2331: the option.c file is still very big
Problem:    The option.c file is still very big.
Solution:   Move a few functions to where they fit better. (Yegappan
            Lakshmanan, closes #4895)
2019-11-21 22:14:18 +01:00
94d9f4fa65 patch 8.1.2330: vi' does not always work when 'selection' is exclusive
Problem:    vi' does not always work when 'selection' is exclusive.
Solution:   Adjust start position.
2019-11-21 20:55:26 +01:00
44f0bd878a patch 8.1.2329: mouse multiple click test is a bit flaky
Problem:    Mouse multiple click test is a bit flaky.
Solution:   Add it to the list of flaky tests.
2019-11-21 18:27:01 +01:00
bd3bc0314e patch 8.1.2328: a few hangul input pieces remain
Problem:    A few hangul input pieces remain.
Solution:   Update VMS makefile.
2019-11-21 17:34:51 +01:00
546125869f patch 8.1.2327: cannot build with Hangul input
Problem:    Cannot build with Hangul input.
Solution:   Remove Hangul input support.
2019-11-21 17:13:31 +01:00
10455d43fe patch 8.1.2326: cannot parse a date/time string
Problem:    Cannot parse a date/time string.
Solution:   Add strptime(). (Stephen Wall, closes #)
2019-11-21 15:36:18 +01:00
9ae862ebba patch 8.1.2325: crash when using balloon with empty line
Problem:    Crash when using balloon with empty line.
Solution:   Handle empty lines. (Markus Braun)
2019-11-21 13:27:06 +01:00
202c3f7e3e patch 8.1.2324: with of scrollbar in popup menu not taken into account
Problem:    With of scrollbar in popup menu not taken into account.
Solution:   Add the width of the scrollbar.
2019-11-21 12:12:35 +01:00
403f3eb4c1 Update runtime files. 2019-11-20 22:31:13 +01:00
a075490082 patch 8.1.2323: Old MSVC version no longer tested.
Problem:    Old MSVC version no longer tested.
Solution:   Drop support for MSCV 2008 and older. (Ken Takata, closes #5248)
2019-11-19 23:01:28 +01:00
ffc4fb8fee patch 8.1.2322: quickfix test fails in very big terminal
Problem:    Quickfix test fails in very big terminal.
Solution:   Adjust the expected result for the width. (Masato Nishihata,
            closes #5244)
2019-11-19 22:38:48 +01:00
0a5aa7b28a patch 8.1.2321: cannot select all text with the mouse
Problem:    Cannot select all text with the mouse. (John Marriott)
Solution:   Move limiting the mouse column to f_getmousepos(). (closes #5242)
2019-11-18 23:31:48 +01:00
f9ae154c51 patch 8.1.2320: insufficient test coverage for quickfix
Problem:    Insufficient test coverage for quickfix.
Solution:   Add more tests.  Fix uncovered problem. (Yegappan Lakshmanan,
            closes #5238)
2019-11-18 22:02:16 +01:00
07a63d8633 patch 8.1.2319: compiler warning for int size
Problem:    Compiler warning for int size.
Solution:   Add typecast. (Mike Williams)
2019-11-18 21:38:37 +01:00
5f76334818 patch 8.1.2318: MS-Windows GUI: main background shows in toolbar
Problem:    MS-Windows GUI: main background shows in toolbar.
Solution:   Remove transparency from the toolbar. (Simon Sadler)
2019-11-17 22:54:10 +01:00
37ff4cf870 patch 8.1.2317: no test for spell affix file with flag on suffix
Problem:    No test for spell affix file with flag on suffix.
Solution:   Add a test case.
2019-11-17 20:10:20 +01:00
91b992c387 patch 8.1.2316: FORTIFY_SOURCE can also be present in CPPFLAGS
Problem:    FORTIFY_SOURCE can also be present in CPPFLAGS.
Solution:   Remove it in configure. (Benedikt Morbach, closes #2786)
2019-11-17 19:07:42 +01:00
539aa6b25e patch 8.1.2315: not always using the right window when jumping to an error
Problem:    Not always using the right window when jumping to an error.
Solution:   Add the "uselast" flag in 'switchbuf'. (closes #1652)
2019-11-17 18:09:38 +01:00
7170b295b0 patch 8.1.2314: vi' sometimes does not select anything
Problem:    vi' sometimes does not select anything.
Solution:   Recognize an empty selection. (Christian Brabandt, closes #5183)
2019-11-17 17:32:28 +01:00
eda1da0c9a patch 8.1.2313: debugging where a delay comes from is not easy
Problem:    Debugging where a delay comes from is not easy.
Solution:   Use different values when calling ui_delay().
2019-11-17 17:06:33 +01:00
077b9dd354 patch 8.1.2312: "line:" field in tags file not used
Problem:    "line:" field in tags file not used.
Solution:   Recognize the field and use the value. (Andy Massimino, Daniel
            Hahler, closes #5232, closes #2546, closes #1057)
2019-11-17 16:18:31 +01:00
09c6f265b2 Update runtime files. 2019-11-17 15:55:14 +01:00
0324f9ea0a patch 8.1.2311: warning for missing function prototype
Problem:    Warning for missing function prototype.
Solution:   Add the proto. (Dominique Pelle, closes #5233)
2019-11-16 22:49:40 +01:00
d8a8c4ca08 patch 8.1.2310: no proper test for directory changes in quickfix
Problem:    No proper test for directory changes in quickfix.
Solution:   Add a test that uses multiple directories. (Yegappan Lakshmanan,
            closes #5230)
2019-11-16 21:04:57 +01:00
abe12a1a4f patch 8.1.2309: compiler warning for argument type
Problem:    Compiler warning for argument type.
Solution:   Use linenr_T and cast to varnumber_T. (John Marriott)
2019-11-16 20:49:18 +01:00
ecafcc15ca patch 8.1.2308: deleting text before zero-width textprop removes it
Problem:    Deleting text before zero-width textprop removes it.
Solution:   Keep zero-width textprop when deleting text.
2019-11-16 20:41:51 +01:00
a37cb55da6 patch 8.1.2307: positioning popup doesn't work for buffer-local textprop
Problem:    Positioning popup doesn't work for buffer-local textprop.
Solution:   Make it work. (closes #5225)
2019-11-16 20:03:31 +01:00
f36a2c7e60 patch 8.1.2306: double and triple clicks are not tested
Problem:    Double and triple clicks are not tested.
Solution:   Test mouse clicks to select text. (closes #5226)
2019-11-16 18:57:16 +01:00
e53ec39270 patch 8.1.2305: no warning for wrong entry in translations
Problem:    No warning for wrong entry in translations.
Solution:   Check semicolons in keywords entry of desktop file.
2019-11-16 18:49:50 +01:00
db3a205147 patch 8.1.2304: cannot get the mouse position when getting a mouse click
Problem:    Cannot get the mouse position when getting a mouse click.
Solution:   Add getmousepos().
2019-11-16 18:22:41 +01:00
08f23636ae patch 8.1.2303: cursor in wrong position after horizontal scroll
Problem:    Cursor in wrong position after horizontal scroll.
Solution:   Set w_valid_leftcol.  (closes #5214, closes #5224)
2019-11-16 14:19:33 +01:00
f4a1d1c054 patch 8.1.2302: :lockmarks does not work for '[ and ']
Problem:    :lockmarks does not work for '[ and '].
Solution:   save and restore '[ and '] marks. (James McCoy, closes #5222)
2019-11-16 13:50:25 +01:00
ab85ca4e6a patch 8.1.2301: MS-Windows GUI: drawing error when background color changes
Problem:    MS-Windows GUI: drawing error when background color changes.
Solution:   Implement gui_mch_new_colors(). (Simon Sadler)
2019-11-15 22:41:14 +01:00
1ebbb6ee45 Fix vim.desktop generation. 2019-11-14 21:39:32 +01:00
574ee7bc12 Update runtime files 2019-11-13 23:04:29 +01:00
afe45b68a6 patch 8.1.2300: redraw breaks going through list of popup windows
Problem:    Redraw breaks going through list of popup windows.
Solution:   Use different flags for popup_reset_handled(). (closes #5216)
2019-11-13 22:35:19 +01:00
36e7a823c6 patch 8.1.2299: ConPTY in MS-Windows 1909 is still wrong
Problem:    ConPTY in MS-Windows 1909 is still wrong.
Solution:   Use same solution as for 1903. (Nobuhiro Takasaki, closes #5217)
2019-11-13 21:49:24 +01:00
0743ef9f8a patch 8.1.2298: missing part of 8.1.2296
Problem:    Missing part of 8.1.2296.
Solution:   s/test/text/
2019-11-13 16:37:31 +01:00
d6a98a3a97 patch 8.1.2297: the ex_vimgrep() function is too long
Problem:    The ex_vimgrep() function is too long.
Solution:   Split it in three parts. (Yegappan Lakshmanan, closes #5211)
2019-11-12 22:59:51 +01:00
58e32ab503 patch 8.1.2296: text properties are not combined with syntax by default
Problem:    Text properties are not combined with syntax by default.
Solution:   Make it work as documented. (closes #5190)
2019-11-12 22:44:22 +01:00
4eb7dae255 patch 8.1.2295: if buffer of popup is in another window cursorline sign shows
Problem:    If buffer of popup is in another window cursorline sign shows.
Solution:   Check the group of the sign.
2019-11-12 22:33:45 +01:00
cbee635eee patch 8.1.2294: cursor pos wrong with concealing and search causes a scroll
Problem:    Cursor position wrong when characters are concealed and asearch
            causes a scroll.
Solution:   Fix the cursor column in a concealed line after window scroll.
            (closes #5215, closes #5012)
2019-11-12 20:49:15 +01:00
cc184cfb09 patch 8.1.2293: join adds trailing space when second line is empty
Problem:    Join adds trailing space when second line is empty. (Brennan
            Vincent)
Solution:   Do not add a trailing space.
2019-11-12 20:31:20 +01:00
d002e411c6 patch 8.1.2292: v:mouse_winid not set on click in popup window
Problem:    v:mouse_winid not set on click in popup window.
Solution:   Set v:mouse_winid. (closes #5171)
2019-11-11 21:45:05 +01:00
adf4aa200b patch 8.1.2291: memory leak when executing command in a terminal
Problem:    Memory leak when executing command in a terminal.
Solution:   Free "argv". (Dominique Pelle, closes #5208)
2019-11-10 22:36:44 +01:00
5ef1c6a483 Update runtime files 2019-11-10 22:09:11 +01:00
a9aa86ff95 patch 8.1.2290: autocommand test fails
Problem:    Autocommand test fails.
Solution:   Remove 'closeoff' from 'diffopt'.
2019-11-10 21:25:45 +01:00
c823477979 patch 8.1.2289: after :diffsplit closing the window does not disable diff
Problem:    After :diffsplit closing the window does not disable diff.
Solution:   Add "closeoff" to 'diffopt' and add it to the default.
2019-11-10 21:00:27 +01:00
5c6b6187ac patch 8.1.2288: not using all space when popup with "topleft" flips to above
Problem:    Not using all space when popup with "topleft" flips to above.
Solution:   Recompute the height when a popup flips from below to above.
            (closes #5151)
2019-11-10 17:51:38 +01:00
1666ac9c56 patch 8.1.2287: using EndOfBuffer highlight in popup does not look good
Problem:    Using EndOfBuffer highlight in popup does not look good.
Solution:   Do not EndOfBuffer highlight. (closes #5204)
2019-11-10 17:22:31 +01:00
622b646037 patch 8.1.2286: using border highlight in popup window leaks memory
Problem:    Using border highlight in popup window leaks memory.
Solution:   Free memory before overwriting. (Dominique Pelle, closes #5203)
2019-11-10 15:16:54 +01:00
d6beab0248 patch 8.1.2285: padding in structures wastes memory
Problem:    Padding in structures wastes memory.
Solution:   Move fields to avoid padding. (Dominique Pelle, closes #5202)
2019-11-10 15:07:19 +01:00
439b3aca37 patch 8.1.2284: compiler warning for unused variable
Problem:    Compiler warning for unused variable. (Tony Mechelynck)
Solution:   Add #ifdef.
2019-11-10 01:32:12 +01:00
91e22eb6e0 patch 8.1.2283: missed on use of p_sbr
Problem:    Missed on use of p_sbr.
Solution:   Add missing p_sbr change.
2019-11-10 00:19:12 +01:00
4c054e9fb2 patch 8.1.2282: crash when passing many arguments through a partial
Problem:    Crash when passing many arguments through a partial. (Andy
            Massimino)
Solution:   Check the number of arguments. (closes #5186)
2019-11-10 00:13:50 +01:00
ee85702c10 patch 8.1.2281: 'showbreak' cannot be set for one window
Problem:    'showbreak' cannot be set for one window.
Solution:   Make 'showbreak' global-local.
2019-11-09 23:26:40 +01:00
b0745b221d patch 8.1.2280: crash when passing partial to substitute()
Problem:    Crash when passing partial to substitute().
Solution:   Take extra arguments into account. (closes #5186)
2019-11-09 22:28:11 +01:00
dbd4316806 patch 8.1.2279: computation of highlight attributes is too complicated
Problem:    Computation of highlight attributes is too complicated.
Solution:   Simplify the attribute computation and make it more consistent.
            (closes #5190)  Fix that 'combine' set to zero doesn't work.
2019-11-09 21:28:14 +01:00
3503d7c94a patch 8.1.2278: using "cd" with "exe" may fail
Problem:    Using "cd" with "exe" may fail.
Solution:   Use chdir() instead.
2019-11-09 20:10:17 +01:00
b73e439606 patch 8.1.2277: terminal window is not updated when info popup changes
Problem:    Terminal window is not updated when info popup changes.
Solution:   Redraw windows when re-using an info popup. (closes #5192)
2019-11-09 20:00:35 +01:00
5bf46e9786 patch 8.1.2276: MS-Windows: session test leaves files behind
Problem:    MS-Windows: session test leaves files behind.
Solution:   Wipe out buffers before deleting the directory. (closes #5187)
2019-11-09 18:06:04 +01:00
1e15e61188 patch 8.1.2275: using "seesion" looks like a mistake
Problem:    Using "seesion" looks like a mistake.
Solution:   Use an underscore to make the function sort first.
2019-11-09 17:18:52 +01:00
d1c1c82389 patch 8.1.2274: newlines in 'balloonexpr' result only work in the GUI
Problem:    Newlines in 'balloonexpr' result only work in the GUI.
Solution:   Also recognize newlines in the terminal. (closes #5193)
2019-11-09 16:59:14 +01:00
4dd8fe0b4f patch 8.1.2273: wrong default when "pos" is changed with popup_atcursor()
Problem:    Wrong default when "pos" is changed with popup_atcursor().
Solution:   Adjust the default line and col when "pos" is not the default
            value. (#5151)
2019-11-09 15:33:31 +01:00
34059e7b67 patch 8.1.2272: test may hang at more prompt
Problem:    Test may hang at more prompt.
Solution:   Reset 'more' after resetting 'compatible'. (Michael Soyka)
2019-11-08 23:00:25 +01:00
398a59b6a5 patch 8.1.2271: build error if FEAT_TAG_BINS is not defined
Problem:    Build error if FEAT_TAG_BINS is not defined. (John Marriott)
Solution:   Add #ifdef.
2019-11-08 21:56:57 +01:00
0208b6b771 patch 8.1.2270: "gf" is not tested in Visual mode
Problem:    "gf" is not tested in Visual mode.
Solution:   Add Visual mode test and test errors. (Dominique Pelle,
            closes #5197)
2019-11-08 21:49:48 +01:00
dc9ef26845 patch 8.1.2269: tags file with very long line stops using binary search
Problem:    Tags file with very long line stops using binary search.
Solution:   Reallocate the buffer if needed.
2019-11-07 23:08:42 +01:00
3d2a47c782 patch 8.1.2268: spell file flag zero is not recognized
Problem:    Spell file flag zero is not recognized.
Solution:   Use -1 as an error value, so that zero can be used as a valid flag
            number.
2019-11-07 20:48:42 +01:00
3b991527e8 patch 8.1.2267: compiler warning for uninitialized variable
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Rearrange the code.
2019-11-06 23:26:20 +01:00
f8b036bcae patch 8.1.2266: position unknown for a mouse click in a popup window
Problem:    Position unknown for a mouse click in a popup window.
Solution:   Set v:mouse_col and v:mouse_lnum. (closes #5171)
2019-11-06 21:09:17 +01:00
638a4a7508 patch 8.1.2265: when popup with "botleft" does not fit it flips incorrectly
Problem:    When popup with "botleft" does not fit it flips incorrectly.
Solution:   Only flip when there is more space on the other side.  Add the
            "posinvert" option to disable flipping and do it in both
            directions if enabled.  (closes #5151)
2019-11-06 19:25:22 +01:00
fcf8a8743b patch 8.1.2264: there are two test files for :let
Problem:    There are two test files for :let.
Solution:   Merge the two files.
2019-11-06 15:22:00 +01:00
215ba3b636 patch 8.1.2263: 'noesckeys' test fails in GUI
Problem:    'noesckeys' test fails in GUI.
Solution:   Skip the test in the GUI.
2019-11-06 15:07:07 +01:00
1e673b9eb6 patch 8.1.2262: unpack assignment in function not recognized
Problem:    Unpack assignment in function not recognized.
Solution:   Skip over "[a, b]". (closes #5051)
2019-11-06 15:02:50 +01:00
177c9f2f06 patch 8.1.2261: with modifyOtherKeys set 'noesckeys' doesn't work
Problem:    With modifyOtherKeys set 'noesckeys' doesn't work. (James McCoy)
Solution:   Disable modifyOtherKeys while in Insert mode when 'noesckeys' is
            set. (closes #5180)
2019-11-06 13:59:16 +01:00
36ec6f6953 patch 8.1.2260: terminal test may fail on MS-Windows
Problem:    Terminal test may fail on MS-Windows.
Solution:   Catch the situation that "term dir" fails with a CreateProcess
            error.
2019-11-05 22:38:47 +01:00
7d2320414f patch 8.1.2259: running tests may leave XfakeHOME behind
Problem:    Running tests may leave XfakeHOME behind.
Solution:   Source summarize.vim without using setup.vim. (closes #5177)
            Also fix that on MS-Windows the test log isn't echoed.
2019-11-05 22:37:20 +01:00
dc968e7a45 patch 8.1.2258: may get hit-enter prompt after entering a number
Problem:    May get hit-enter prompt after entering a number. (Malcolm Rowe)
Solution:   Put back accidentally deleted lines. (closes #5176)
2019-11-05 21:53:20 +01:00
ae20f340ad patch 8.1.2257: MS-Windows GUI: scroll wheel always uses current window
Problem:    MS-Windows GUI: scroll wheel always uses current window.
Solution:   Add the 'scrollfocus' option for MS-Windows.
2019-11-05 21:09:23 +01:00
e5a3272d32 patch 8.1.2256: test for ":term ++shell" fails on MS-Windows
Problem:    Test for ":term ++shell" fails on MS-Windows.
Solution:   Accept failure of "dir" executable.
2019-11-04 23:36:29 +01:00
2d6d76f9cd patch 8.1.2255: ":term ++shell" does not work on MS-Windows
Problem:    ":term ++shell" does not work on MS-Windows.
Solution:   Add MS-Windows support.
2019-11-04 23:18:35 +01:00
0630bb6580 patch 8.1.2254: MS-Windows: mouse scroll wheel doesn't work in popup
Problem:    MS-Windows: mouse scroll wheel doesn't work in popup.
Solution:   Handle mouse wheel events separately. (closes #5138)
2019-11-04 22:52:12 +01:00
ad4de52510 patch 8.1.2253: using "which" to check for an executable is not reliable
Problem:    Using "which" to check for an executable is not reliable.
Solution:   Use "command -v" instead.  Also exit with error code when
            generating tags has an error. (closes #5174)
2019-11-04 21:24:48 +01:00
2ade714728 patch 8.1.2252: compiler warning for int size
Problem:    Compiler warning for int size.
Solution:   Add type cast. (Mike Williams)
2019-11-04 20:36:50 +01:00
197c6b7da3 patch 8.1.2251: ":term command" may not work without a shell
Problem:    ":term command" may not work without a shell.
Solution:   Add the ++shell option to :term. (closes #3340)
2019-11-03 23:37:12 +01:00
30efcf3d26 patch 8.1.2250: CTRL-U and CTRL-D don't work in popup window
Problem:    CTRL-U and CTRL-D don't work in popup window.
Solution:   Initialize 'scroll'.  Add "lastline" in popup_getpos().
            (closes #5170)
2019-11-03 22:29:38 +01:00
d047840ce4 patch 8.1.2249: "make vimtags" does not print any message
Problem:    "make vimtags" does not print any message.
Solution:   Add a message that the tags have been updated.
2019-11-03 21:46:19 +01:00
1e814bc017 patch 8.1.2248: CTRL-W dot does not work when modifyOtherKeys is enabled
Problem:    CTRL-W dot does not work in a terminal when modifyOtherKeys is
            enabled.
Solution:   Use the modifier when needed.  Pass the modifier along with the
            key to avoid mistakes.
2019-11-03 21:19:41 +01:00
e890b9f5dd patch 8.1.2247: "make vimtags" does not work in runtime/doc
Problem:    "make vimtags" does not work in runtime/doc.
Solution:   Test existence with "which" instead of "test -x". (Ken Takata)
2019-11-03 18:38:47 +01:00
1f068233c1 patch 8.1.2246: some tests are still in old style
Problem:    Some tests are still in old style.
Solution:   Change a few tests to new style. (Yegappan Lakshmanan)
2019-11-03 16:17:26 +01:00
2f7b7b1e12 patch 8.1.2245: third character of 'listchars' tab shows in wrong place
Problem:    Third character of 'listchars' tab shows in wrong place when
            'breakindent' is set.
Solution:   Set c_final to NUL. (Naruhiko Nishino, closes #5165)
2019-11-03 15:46:48 +01:00
82cf7f6df7 patch 8.1.2244: 'wrapscan' is not used for "gn"
Problem:    'wrapscan' is not used for "gn".
Solution:   Only reset 'wrapscan' for the first search round. (closes #5164)
2019-11-02 23:22:47 +01:00
32aa10203b patch 8.1.2243: typos in comments
Problem:    Typos in comments.
Solution:   Fix the typos. (Dominique Pelle, closes #5160)  Also adjust
            formatting a bit.
2019-11-02 22:54:41 +01:00
70def98a95 patch 8.1.2242: creating docs tags uses user preferences
Problem:    Creating docs tags uses user preferences. (Tony Mechelynck)
Solution:   Add "--clean".
2019-11-02 22:45:31 +01:00
024dbd229f patch 8.1.2241: match highlight does not combine with 'wincolor'
Problem:    Match highlight does not combine with 'wincolor'.
Solution:   Apply 'wincolor' last on top of any other attribute. (closes #5159)
2019-11-02 22:00:15 +01:00
f2885d3fb7 patch 8.1.2240: popup window width changes when scrolling
Problem:    Popup window width changes when scrolling.
Solution:   Also adjust maxwidth when applying minwidth and there is a
            scrollbar.  Fix off-by-one error. (closes #5162)
2019-11-02 20:21:25 +01:00
1a577433ac patch 8.1.2239: CI fails when running tests without building Vim
Problem:    CI fails when running tests without building Vim.
Solution:   Skip creating doc tags if the execute does not exist.
2019-11-02 18:22:08 +01:00
1ff14ba24c Update runtime files. 2019-11-02 14:09:23 +01:00
757bd2ea49 patch 8.1.2238: error in docs tags goes unnoticed
Problem:    Error in docs tags goes unnoticed.
Solution:   Adjust tags build command. (Ken Takata, closes #5158)
2019-11-01 19:46:22 +01:00
7a641ca1e1 patch 8.1.2237: mode() result depends on whether CURSOR_SHAPE is defined
Problem:    Mode() result after usign "r" depends on whether CURSOR_SHAPE is
            defined. (Christian Brabandt)
Solution:   Move the #ifdef to only skip ui_cursor_shape().
2019-10-31 19:55:55 +01:00
bb26596242 patch 8.1.2236: ml_get error if pattern matches beyond last line
Problem:    Ml_get error if pattern matches beyond last line.
Solution:   Adjust position if needed. (Christian Brabandt, closes #5139)
2019-10-31 04:38:36 +01:00
77ccc00340 patch 8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Problem:    "C" with 'virtualedit' set does not include multi-byte char.
Solution:   Include the whole multi-byte char. (Nobuhiro Takasaki,
            closes #5152)
2019-10-31 03:21:25 +01:00
3f39697b73 patch 8.1.2234: get_short_pathname() fails depending on encoding
Problem:    get_short_pathname() fails depending on encoding.
Solution:   Use the wide version of the library function. (closes #5129)
2019-10-30 04:10:06 +01:00
69bf634858 patch 8.1.2233: cannot get the Vim command line arguments
Problem:    Cannot get the Vim command line arguments.
Solution:   Add v:argv. (Dmitri Vereshchagin, closes #1322)
2019-10-29 04:16:57 +01:00
8b530c1ff9 patch 8.1.2231: not easy to move to the middle of a text line
Problem:    Not easy to move to the middle of a text line.
Solution:   Add the gM command. (Yasuhiro Matsumoto, closes #2070)
2019-10-28 02:13:05 +01:00
077ff436a7 patch 8.1.2230: MS-Windows: testing external commands can be improved
Problem:    MS-Windows: testing external commands can be improved.
Solution:   Adjust tests, remove duplicate test. (closes #4928)
2019-10-28 00:42:21 +01:00
efae76ab1a patch 8.1.2229: cannot color number column above/below cursor differently
Problem:    Cannot color number column above/below cursor differently.
Solution:   Add LineNrAbove and LineNrBelow. (Shaun Brady, closes #624)
2019-10-27 22:54:58 +01:00
38ba4dce4a patch 8.1.2228: screenpos() returns wrong values when 'number' is set
Problem:    screenpos() returns wrong values when 'number' is set. (Ben
            Jackson)
Solution:   Compare the column with the window width. (closes #5133)
2019-10-27 21:39:09 +01:00
1c329c04be patch 8.1.2227: layout wrong if 'lines' changes while cmdline window is open
Problem:    Layout wrong if 'lines' changes while cmdline window is open.
Solution:   Do not restore the window layout if 'lines' changed.
            (closes #5130)
2019-10-27 20:37:35 +01:00
5b418992cf patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Problem:    Cannot use system copy/paste in non-xterm terminals.
Solution:   Instead of setting 'mouse' to "a" set it to "nvi" in defaults.vim.
2019-10-27 18:50:25 +01:00
52410575be patch 8.1.2225: the "last used" info of a buffer is under used
Problem:    The "last used" info of a buffer is under used.
Solution:   Add "lastused" to getbufinfo(). List buffers sorted by last-used
            field. (Andi Massimino, closes #4722)
2019-10-27 05:12:45 +01:00
dfded98f87 patch 8.1.2224: cannot build Amiga version
Problem:    Cannot build Amiga version.
Solution:   Add dummy mch_setmouse(). (Ola Söder, closes #5126)
2019-10-26 21:33:19 +02:00
cb86893114 patch 8.1.2223: cannot see what buffer an ml_get error is for
Problem:    Cannot see what buffer an ml_get error is for.
Solution:   Add the buffer number and name in the message
2019-10-26 20:56:21 +02:00
7ab5d77666 patch 8.1.2222: accessing invalid memory
Problem:    Accessing invalid memory. (Dominique Pelle)
Solution:   Reset highlight_match every time.  (closes #5125)
2019-10-26 20:45:24 +02:00
96f45c0b6f Update runtime files 2019-10-26 19:53:45 +02:00
8fc4296436 patch 8.1.2221: cannot filter :disp output
Problem:    Cannot filter :disp output.
Solution:   Support filtereing :disp output. (Andi Massimino, closes #5117)
2019-10-26 17:33:13 +02:00
6a0cc916bd patch 8.1.2220: :cfile does not abort like other quickfix commands
Problem:    :cfile does not abort like other quickfix commands.
Solution:   Abort when desired. Add tests for aborting. (Yegappan Lakshmanan,
            closes #5121)
2019-10-26 16:48:44 +02:00
28ed4dfe1f patch 8.1.2219: no autocommand for open window with terminal
Problem:    No autocommand for open window with terminal.
Solution:   Add TerminalWinOpen. (Christian Brabandt)
2019-10-26 16:21:40 +02:00
453c19257f patch 8.1.2218: "gN" is off by one in Visual mode
Problem:    "gN" is off by one in Visual mode.
Solution:   Check moving forward. (Christian Brabandt, #5075)
2019-10-26 14:42:09 +02:00
c7488a7fc8 patch 8.1.2217: compiler warning for unused variable
Problem:    Compiler warning for unused variable.
Solution:   Move variable inside #ifdef. (John Marriott)
2019-10-26 12:23:04 +02:00
1fd30d7bae patch 8.1.2216: text property in wrong place after :substitute
Problem:    Text property in wrong place after :substitute.
Solution:   Pass the new column instead of the old one. (Christian Brabandt,
            closes #4427)
2019-10-25 22:13:29 +02:00
7aee6876eb patch 8.1.2215: unreachable code in adjusting text prop columns
Problem:    Unreachable code in adjusting text prop columns.
Solution:   Remove the code. (Christian Brabandt)
2019-10-25 21:49:38 +02:00
11a58af66f patch 8.1.2214: too much is redrawn when 'cursorline' is set
Problem:    Too much is redrawn when 'cursorline' is set.
Solution:   Don't do a complete redraw. (closes #5079)
2019-10-24 22:32:31 +02:00
aa1f04d092 patch 8.1.2213: popup_textprop tests fail
Problem:    Popup_textprop tests fail.
Solution:   Adjust the column and line positioning.
2019-10-24 22:12:54 +02:00
3691f1ee72 patch 8.1.2212: cannot see the selection type in :reg output
Problem:    Cannot see the selection type in :reg output. (Ayberk Aydın)
Solution:   Add c/l/b. (Christian Brabandt, closes #5110, closes #4546)
2019-10-24 20:17:00 +02:00
336bf2b8b2 patch 8.1.2211: listener callback "added" argument is not the total
Problem:    Listener callback "added" argument is not the total. (Andy
            Massimino)
Solution:   Compute the total. (closes #5105)
2019-10-24 20:07:07 +02:00
b754b5bf6d patch 8.1.2210: using negative offset for popup_create() does not work
Problem:    Using negative offset for popup_create() does not work.
Solution:   Use -1 instead of zero. (closes #5111)
2019-10-24 19:25:00 +02:00
ec6f735012 patch 8.1.2209: LF in escape codes may be expanded to CR-LF
Problem:    LF in escape codes may be expanded to CR-LF.
Solution:   Do not expand LF in escape codes to CR-LF. (closes #5107)
2019-10-24 17:49:27 +02:00
faf626e5d1 patch 8.1.2208: Unix: Tabs in output might be expanded to spaces
Problem:    Unix: Tabs in output might be expanded to spaces.
Solution:   Reset the XTABS flag. (closes #5108)
2019-10-24 17:43:25 +02:00
edaad6e0a0 patch 8.1.2207: "gn" doesn't work quite right
Problem:    "gn" doesn't work quite right. (Jaehwang Jerry Jung)
Solution:   Improve and simplify the search logic. (Christian Brabandt,
            closes #5103, closes #5075)
2019-10-24 15:23:37 +02:00
28686682e7 patch 8.1.2206: no test for fixed issue #3893
Problem:    No test for fixed issue #3893.
Solution:   Add a test. (Christian Brabandt, #3893)
2019-10-24 15:12:37 +02:00
6656c2ec4c patch 8.1.2205: sign entry structure has confusing name
Problem:    Sign entry structure has confusing name.
Solution:   Rename signlist_T to sign_entry_T and prefix se_ to the fields.
2019-10-24 15:00:04 +02:00
8f7ab4bd1e patch 8.1.2204: crash on exit when closing terminals
Problem:    Crash on exit when closing terminals. (Corey Hickey)
Solution:   Actually wait for the job to stop. (closes #5100)
2019-10-23 23:16:45 +02:00
823edd1eed patch 8.1.2203: running libvterm tests without the +terminal feature
Problem:    Running libvterm tests without the +terminal feature.
Solution:   Only add the libvterm test target when building libvterm.
2019-10-23 22:35:36 +02:00
93bbf33ceb patch 8.1.2202: MS-Windows: build failure with GUI and small features
Problem:    MS-Windows: build failure with GUI and small features.
Solution:   Add #ifdef. (Michael Soyka, closes #5097)
2019-10-23 21:43:16 +02:00
13a1f3fb0c patch 8.1.2201: cannot build with dynamically linked Python 3.8
Problem:    Cannot build with dynamically linked Python 3.8.
Solution:   Implement py3__Py_DECREF() and py3__Py_XDECREF(). (Ken Takata,
            closes #4080)
2019-10-23 21:37:25 +02:00
1cac70953d patch 8.1.2200: crash when memory allocation fails
Problem:    Crash when memory allocation fails.
Solution:   Check for NULL curwin and curbuf. (Christian Brabandt,
            closes #4839)
2019-10-22 21:54:31 +02:00
a720be78d7 patch 8.1.2199: build failure when using normal features without GUI
Problem:    Build failure when using normal features without GUI and EXITFREE
            defined.
Solution:   Add #ifdef. (Dominique Pelle, closes #5106)
2019-10-22 21:45:19 +02:00
396b7c78c0 patch 8.1.2198: crash when using :center in autocommand
Problem:    Crash when using :center in autocommand.
Solution:   Bail out early for an empty line. (Dominique pelle, closes #5095)
2019-10-21 23:08:59 +02:00
34ba06b6e6 patch 8.1.2197: ExitPre autocommand may cause accessing freed memory
Problem:    ExitPre autocommand may cause accessing freed memory.
Solution:   Check the window pointer is still valid. (closes #5093)
2019-10-20 22:27:10 +02:00
d53ebfc624 patch 8.1.2196: MS-Windows: running tests with MSVC lacks updates
Problem:    MS-Windows: running tests with MSVC lacks updates.
Solution:   Improve running individual tests on MS-Windows. (closes #4922)
2019-10-20 21:47:20 +02:00
4d14bac8e7 patch 8.1.2195: Vim does not exit when the terminal window is last window
Problem:    Vim does not exit when closing a terminal window and it is the
            last window.
Solution:   Exit Vim if the closed terminal window is the last one.
            (closes #4539)
2019-10-20 21:15:15 +02:00
4b57018ee4 patch 8.1.2194: modifyOtherKeys is not enabled by default
Problem:    ModifyOtherKeys is not enabled by default.
Solution:   Add t_TI and t_TE to the builtin xterm termcap.
2019-10-20 19:53:22 +02:00
a13961536e patch 8.1.2193: popup_setoptions(popup_getoptions()) does not work
Problem:    Popup_setoptions(popup_getoptions()) does not work.
Solution:   Also accept a list with three entries for "moved" and
            "mousemoved". (closes #5081)
2019-10-20 18:46:05 +02:00
dca7abe79c patch 8.1.2192: cannot easily fill the info popup asynchronously
Problem:    Cannot easily fill the info popup asynchronously.
Solution:   Add the "popuphidden" value to 'completeopt'. (closes #4924)
2019-10-20 18:17:57 +02:00
88d3d09e07 patch 8.1.2191: when using modifyOtherKeys CTRL-X mode may not work
Problem:    When using modifyOtherKeys CTRL-X mode may not work.
Solution:   Recognize a control character also in the form with a modifier.
2019-10-20 16:00:47 +02:00
83e9a1ce75 patch 8.1.2190: syntax test fails on Mac
Problem:    Syntax test fails on Mac.
Solution:   Limit the window size to 20 rows.
2019-10-20 14:51:23 +02:00
82260afb0e patch 8.1.2189: syntax highlighting wrong for tab
Problem:    Syntax highlighting wrong for tab.
Solution:   Don't clear syntax attribute n_extra is non-zero.
2019-10-20 13:16:22 +02:00
2b78ab5d0c patch 8.1.2188: build error for missing define
Problem:    Build error for missing define.
Solution:   Add missing change.
2019-10-19 22:50:20 +02:00
b40c2576d4 patch 8.1.2187: error for bad regexp even though regexp is not used
Problem:    Error for bad regexp even though regexp is not used when writing
            a file. (Arseny Nasokin)
Solution:   Ignore regexp errors. (closes #5059)
2019-10-19 21:01:05 +02:00
7eed964b41 patch 8.1.2186: error for bad regexp even though regexp is not used
Problem:    Error for bad regexp even though regexp is not used, when writing
            a file. (Arseny Nasokin)
Solution:   Ignore regexp errors. (closes #5059)
2019-10-19 20:57:28 +02:00
bbfd1562ae patch 8.1.2185: syntax test fails
Problem:    Syntax test fails.
Solution:   Add missing file patch.
2019-10-19 20:38:15 +02:00
cfb381421f patch 8.1.2184: option context is not copied when splitting a window
Problem:    Option context is not copied when splitting a window. (Daniel
            Hahler)
Solution:   Copy the option context, so that ":verbose set" works.
            (closes #5066)
2019-10-19 20:18:47 +02:00
ba089307bb patch 8.1.2183: running a test is a bit verbose
Problem:    Running a test is a bit verbose.
Solution:   Silence some messages. (Daniel Hahler, closes #5070)
2019-10-19 18:56:58 +02:00
5b39d7adb0 patch 8.1.2182: test42 seen as binary by git diff
Problem:    Test42 seen as binary by git diff.
Solution:   Add .gitattributes file.  Make explicit that 'cpo' does not
            contain 'S'. (Daniel Hahler, closes #5072)
2019-10-19 18:37:53 +02:00
a74fda6f4d patch 8.1.2181: highlighting wrong when item follows tab
Problem:    Highlighting wrong when item follows tab.
Solution:   Don't use syntax attribute when n_extra is non-zero.
            (Christian Brabandt, closes #5076)
2019-10-19 17:38:03 +02:00
00e192becd patch 8.1.2180: Error E303 is not useful when 'directory' is empty
Problem:    Error E303 is not useful when 'directory' is empty.
Solution:   Skip the error message. (Daniel Hahler, #5067)
2019-10-19 17:01:28 +02:00
b98678a974 patch 8.1.2179: pressing "q" at the more prompt doesn't stop Python output
Problem:    Pressing "q" at the more prompt doesn't stop Python output. (Daniel
            Hahler)
Solution:   Check for got_int in writer(). (closes #5053)
            Also do this for Lua.
2019-10-19 15:18:44 +02:00
15ee567809 patch 8.1.2178: accessing uninitialized memory in test
Problem:    Accessing uninitialized memory in test.
Solution:   Check if there was a match before using the match position.
            (Dominique Pelle, closes #5088)
2019-10-19 14:35:02 +02:00
afbdb905c3 patch 8.1.2177: Dart files are not recognized
Problem:    Dart files are not recognized.
Solution:   Add a filetype rule. (Eugene Ciurana, closes #5087)
2019-10-19 14:10:21 +02:00
8459006af5 patch 8.1.2176: syntax attributes not combined with Visual highlighting
Problem:    Syntax attributes not combined with Visual highlighting. (Arseny
            Nasokin)
Solution:   Combine the attributes. (closes #5083)
2019-10-18 23:12:20 +02:00
c3bf7b56f2 patch 8.1.2175: meson files are not recognized
Problem:    Meson files are not recognized.
Solution:   Add the meson filetype. (Liam Beguin , Nirbheek Chauhan,
            closes #5056)  Also recognize hollywood.
2019-10-18 22:09:34 +02:00
89577b3b3e patch 8.1.2174: screen not recognized as supporting "sgr" mouse codes
Problem:    Screen not recognized as supporting "sgr" mouse codes.
Solution:   Recognize screen 4.7. (Jordan Christiansen, closes #5042)
2019-10-18 21:26:05 +02:00
92ea26b925 patch 8.1.2173: searchit() has too many arguments
Problem:    Searchit() has too many arguments.
Solution:   Move optional arguments to a struct.  Add the "wrapped" argument.
2019-10-18 20:53:34 +02:00
7751d1d1a3 patch 8.1.2172: spell highlight is wrong at start of the line
Problem:    Spell highlight is wrong at start of the line.
Solution:   Fix setting the "v" variable. (closes #5078)
2019-10-18 20:37:08 +02:00
a1cb1d1dce patch 8.1.2171: mouse support not always available
Problem:    Mouse support not always available.
Solution:   Enable mouse support also in tiny version.  Do not define
            FEAT_MOUSE_XTERM on MS-Windows (didn't really work).
2019-10-17 23:00:07 +02:00
0d2c4bf171 patch 8.1.2170: cannot build without the +termresponse feature
Problem:    Cannot build without the +termresponse feature.
Solution:   Add #ifdef.
2019-10-17 22:17:02 +02:00
3cea8a9a51 patch 8.1.2169: terminal flags are never reset
Problem:    Terminal flags are never reset.
Solution:   Reset the flags when setting 'term'.
2019-10-17 21:55:24 +02:00
b1ba9abcb3 patch 8.1.2168: heredoc assignment not skipped in if block
Problem:    Heredoc assignment not skipped in if block.
Solution:   Check if "skip" is set. (closes #5063)
2019-10-16 23:34:42 +02:00
2559a47823 patch 8.1.2167: mapping test fails on MS-Windows
Problem:    Mapping test fails on MS-Windows.
Solution:   Remove all the existing Insert-mode mappings.
2019-10-16 23:33:12 +02:00
4a4981b7cd patch 8.1.2166: rubyeval() not tested as a method
Problem:    Rubyeval() not tested as a method.
Solution:   Change a test case.
2019-10-16 22:36:11 +02:00
2e693a88b2 Update runtime files. 2019-10-16 22:35:02 +02:00
4f2f61a014 patch 8.1.2165: mapping test fails on Mac
Problem:    Mapping test fails on Mac.
Solution:   Remove the default Mac mapping.
2019-10-16 22:27:49 +02:00
7b3d939667 patch 8.1.2164: stuck when using "j" in a popupwin with popup_filter_menu
Problem:    Stuck when using "j" in a popupwin with popup_filter_menu if a
            line wraps.
Solution:   Check the cursor line is visible. (closes #4577)
2019-10-16 22:17:07 +02:00
b2fe1d676f patch 8.1.2163: cannot build with +spell but without +syntax
Problem:    Cannot build with +spell but without +syntax.
Solution:   Add #ifdef. (John Marriott)
2019-10-16 21:33:40 +02:00
4e03933726 patch 8.1.2162: popup resize test is flaky
Problem:    Popup resize test is flaky. (Christian Brabandt)
Solution:   Add the function to the list of flaky tests.
2019-10-16 21:13:35 +02:00
4bd88d568a patch 8.1.2161: mapping test fails
Problem:    Mapping test fails.
Solution:   Run the test separately.
2019-10-16 19:27:26 +02:00
a6cc5beb17 patch 8.1.2160: cannot build with +syntax but without +terminal
Problem:    Cannot build with +syntax but without +terminal.
Solution:   Add #ifdef.
2019-10-16 18:42:26 +02:00
fafb4b18cd patch 8.1.2159: some mappings are listed twice
Problem:    Some mappings are listed twice.
Solution:   Skip mappings duplicated for modifyOtherKeys. (closes #5064)
2019-10-16 18:34:57 +02:00
17efc7fa05 patch 8.1.2158: terminal attributes missing in Terminal-normal mode
Problem:    Terminal attributes missing in Terminal-normal mode.
Solution:   Use "syntax_attr".
2019-10-16 18:11:31 +02:00
8f7b29f033 patch 8.1.2157: libvterm source files missing from distribution
Problem:    Libvterm source files missing from distribution.
Solution:   Rename source files. (closes #5065)
2019-10-16 17:15:18 +02:00
9115c611db patch 8.1.2156: first character after Tab is not highlighted
Problem:    First character after Tab is not highlighted.
Solution:   Remember the syntax attribute for a column.
2019-10-16 16:57:06 +02:00
a3817730c0 patch 8.1.2155: in a terminal window 'cursorlineopt' does not work properly
Problem:    In a terminal window 'cursorlineopt' does not work properly.
Solution:   Check the 'cursorlineopt' value. (closes #5055)
2019-10-16 16:31:44 +02:00
1142a31b8c patch 8.1.2154: quickfix window height wrong when there is a tabline
Problem:    Quickfix window height wrong when there is a tabline. (Daniel
            Hahler)
Solution:   Take the tabline height into account. (closes #5058)
2019-10-16 14:51:39 +02:00
3439028c89 patch 8.1.2153: combining text property and syntax highlight is wrong
Problem:    Combining text property and syntax highlight is wrong. (Nick
            Jensen)
Solution:   Compute the syntax highlight attribute much earlier.
            (closes #5057)
2019-10-16 14:38:26 +02:00
27fc8cab22 patch 8.1.2152: problems navigating tags file on MacOS Catalina
Problem:    Problems navigating tags file on MacOS Catalina.
Solution:   Use fseek instead of lseek. (John Lamb, fixes #5061)
2019-10-15 22:23:37 +02:00
3c8cd4a1dc patch 8.1.2151: state test is a bit flaky
Problem:    State test is a bit flaky.
Solution:   Add to the list of flaky tests.
2019-10-14 22:26:20 +02:00
03b00476ee patch 8.1.2150: no test for 'ttymouse' set from xterm version response
Problem:    No test for 'ttymouse' set from xterm version response.
Solution:   Test the three possible values.
2019-10-14 22:22:03 +02:00
e3a22cb1ba patch 8.1.2149: crash when running out of memory very early
Problem:    Crash when running out of memory very early.
Solution:   Do not use IObuff when it's NULL. (closes #5052)
2019-10-14 22:01:57 +02:00
6aa7523b96 patch 8.1.2148: no test for right click extending Visual area
Problem:    No test for right click extending Visual area.
Solution:   Add a test. (Dominique Pelle, closes #5018)
2019-10-13 21:01:34 +02:00
53efb18530 patch 8.1.2147: crash when allocating memory fails
Problem:    Crash when allocating memory fails. (Zu-Ming Jiang)
Solution:   Check that 'spellcapcheck' is not NULL. (closes #5048)
2019-10-13 19:49:26 +02:00
1e7b52ad8a patch 8.1.2146: build failure
Problem:    Build failure.
Solution:   Include omitted changed file.
2019-10-13 16:59:08 +02:00
459fd785e4 patch 8.1.2145: cannot map <C-H> when modifyOtherKeys is enabled
Problem:    Cannot map <C-H> when modifyOtherKeys is enabled.
Solution:   Add the <C-H> mapping twice, both with modifier and as 0x08.  Use
            only the first one when modifyOtherKeys has been detected.
2019-10-13 16:43:39 +02:00
171a921b51 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Problem:    Side effects when using t_ti to enable modifyOtherKeys.
Solution:   Add t_TI and t_TE.
2019-10-12 21:08:59 +02:00
4facea310c patch 8.1.2143: cannot see each command even when 'verbose' is set
Problem:    Cannot see each command even when 'verbose' is set.
Solution:   List each command when 'verbose' is at least 16.
2019-10-12 20:17:40 +02:00
d1e2f3984a patch 8.1.2142: some key mappings do not work with modifyOtherKeys
Problem:    Some key mappings do not work with modifyOtherKeys.
Solution:   Remove the Shift modifier if it is already included in the key.
2019-10-12 18:22:50 +02:00
e8070987c6 patch 8.1.2141: :tselect has an extra hit-enter prompt
Problem:    :tselect has an extra hit-enter prompt.
Solution:   Do not set need_wait_return when only moving the cursor.
            (closes #5040)
2019-10-12 17:07:06 +02:00
ceba3dd518 patch 8.1.2140: "gk" and "gj" do not work correctly in number column
Problem:    "gk" and "gj" do not work correctly in number column.
Solution:   Allow for a negative "curswant". (Zach Wegner, closes #4969)
2019-10-12 16:12:54 +02:00
18a79a6841 patch 8.1.2139: the modifyOtherKeys codes are not tested
Problem:    The modifyOtherKeys codes are not tested.
Solution:   Add a test case.
2019-10-12 15:36:11 +02:00
4cdbed33e4 patch 8.1.2138: including the build number in the Win32 binary is confusing
Problem:    Including the build number in the Win32 binary is confusing.
Solution:   Only use the patchlevel.
2019-10-12 15:02:47 +02:00
1a4cbb19de patch 8.1.2137: parsing the termresponse is not tested
Problem:    Parsing the termresponse is not tested.
Solution:   Add a first test. (related to #5042)
2019-10-12 13:25:44 +02:00
ec66c41d84 patch 8.1.2136: using freed memory with autocmd from fuzzer
Problem:    using freed memory with autocmd from fuzzer. (Dhiraj Mishra,
            Dominique Pelle)
Solution:   Avoid using "wp" after autocommands. (closes #5041)
2019-10-11 21:19:13 +02:00
00eab7f128 patch 8.1.2135: with modifyOtherKeys Alt-a does not work properly
Problem:    With modifyOtherKeys Alt-a does not work properly.
Solution:   Remove the ALT modifier.  Get multi-byte after applying ALT.
2019-10-10 21:49:28 +02:00
6a0299d8f4 patch 8.1.2134: modifier keys are not always recognized
Problem:    Modifier keys are not always recognized.
Solution:   Handle key codes generated by xterm with modifyOtherKeys set.
            Add this to libvterm so we can debug it.
2019-10-10 21:14:03 +02:00
07282f01da patch 8.1.2133: some tests fail when run as root
Problem:    Some tests fail when run as root.
Solution:   Add CheckNotRoot and use it. (James McCoy, closes #5020)
2019-10-10 16:46:17 +02:00
a129974bc7 patch 8.1.2132: MS-Windows: screen mess when not recognizing insider build
Problem:    MS-Windows: screen mess when not recognizing insider build.
Solution:   Always move the cursor to the first column first. (Nobuhiro
            Takasaki, closes #5036)
2019-10-10 16:36:00 +02:00
c25e702dee patch 8.1.2131: MSVC tests fail
Problem:    MSVC tests fail.
Solution:   Replace backslashes with slashes.
2019-10-10 14:08:26 +02:00
073e779640 patch 8.1.2130: MSVC build fails
Problem:    MSVC build fails.
Solution:   Add the source file name explicitly.
2019-10-10 13:39:08 +02:00
1ac41a5c13 patch 8.1.2129: using hard coded executable path in test
Problem:    Using hard coded executable path in test.
Solution:   Use v:progpath. Use $VIMRUNTIME instead of "runtime". (James
            McCoy, closes #5025)
2019-10-10 13:30:12 +02:00
9326805442 patch 8.1.2128: renamed libvterm sources makes merging difficult
Problem:    Renamed libvterm sources makes merging difficult.
Solution:   Rename back to the original name and only rename the .o files.
            Also clean the libvterm build artifacts. (James McCoy,
            closes #5027)
2019-10-10 13:22:54 +02:00
14c01f8348 patch 8.1.2127: the indent.c file is a bit big
Problem:    The indent.c file is a bit big.
Solution:   Move C-indent code a a new cindent.c file.  Move other
            indent-related code to indent.c. (Yegappan Lakshmanan,
            closes #5031)
2019-10-09 22:53:08 +02:00
6bd1d77067 patch 8.1.2126: viminfo not sufficiently tested
Problem:    Viminfo not sufficiently tested.
Solution:   Add more test cases.  Clean up comments. (Yegappan Lakshmanan,
            closes #5032)
2019-10-09 22:01:25 +02:00
b189295b72 patch 8.1.2125: fnamemodify() fails when repeating :e
Problem:    Fnamemodify() fails when repeating :e.
Solution:   Do not go before the tail. (Rob Pilling, closes #5024)
2019-10-08 23:26:50 +02:00
345f28df54 patch 8.1.2124: ruler is not updated if win_execute() moves cursor
Problem:    Ruler is not updated if win_execute() moves cursor.
Solution:   Update the status line. (closes #5022)
2019-10-08 22:20:35 +02:00
c3e555b22f patch 8.1.2123: parsing CSI sequence is messy
Problem:    Parsing CSI sequence is messy.
Solution:   Generalize parsing a CSI sequence.
2019-10-08 20:15:39 +02:00
fbbd102be0 patch 8.1.2122: cannot build without terminal feature
Problem:    Cannot build without terminal feature.
Solution:   Add #ifdef.
2019-10-07 22:38:58 +02:00
a27e1dcddc patch 8.1.2121: mode is not updated when switching to terminal
Problem:    Mode is not updated when switching to terminal in Insert mode.
Solution:   Redraw the mode when entering a terminal window. (Jason Franklin)
2019-10-07 22:27:36 +02:00
1614a14901 patch 8.1.2120: some MB_ macros are more complicated than necessary
Problem:    Some MB_ macros are more complicated than necessary. (Dominique
            Pelle)
Solution:   Simplify the macros.  Expand inline.
2019-10-06 22:00:13 +02:00
524f3b19ae patch 8.1.2119: memory access error for empty string
Problem:    memory access error for empty string when 'encoding' is a single
            byte encoding.
Solution:   Check for empty string when getting the length. (Dominique Pelle,
            closes #5021, closes #5007)
2019-10-06 20:08:38 +02:00
eb66328bd7 patch 8.1.2118: termcodes test fails when $TERM is "dumb"
Problem:    Termcodes test fails when $TERM is "dumb".
Solution:   Skip the test. (James McCoy, closes #5019)
2019-10-06 12:02:15 +02:00
49474ca122 patch 8.1.2117: CursorLine highlight used while 'cursorline' is off
Problem:    CursorLine highlight used while 'cursorline' is off.
Solution:   Check 'cursorline' is set. (cloes #5017)
2019-10-05 21:57:12 +02:00
1671de3098 patch 8.1.2116: no check for out of memory
Problem:    No check for out of memory.
Solution:   Check for NULL pointer.
2019-10-05 21:35:16 +02:00
2efc44b3f0 patch 8.1.2115: MS-Windows: shell commands fail if &shell contains a space
Problem:    MS-Windows: shell commands fail if &shell contains a space.
Solution:   Use quotes instead of escaping. (closes #4920)
2019-10-05 12:09:32 +02:00
fd00c042af patch 8.1.2114: when a popup is closed with CTRL-C the callback aborts
Problem:    When a popup is closed with CTRL-C the callback aborts.
Solution:   Reset got_int when invoking the callback. (closes #5008)
2019-10-05 11:56:54 +02:00
9ca250855b patch 8.1.2113: ":help expr-!~?" only works after searching
Problem:    ":help expr-!~?" only works after searching.
Solution:   Escape "~" after "expr-". (closes #5015)
2019-10-05 11:30:09 +02:00
4c063dde73 patch 8.1.2112: build number for ConPTY is outdated
Problem:    Build number for ConPTY is outdated.
Solution:   Update to new build number. (Nobuhiro Takasaki, closes #5014)
2019-10-04 21:29:12 +02:00
2a8d3b8997 patch 8.1.2111: viminfo file not sufficiently tested
Problem:    Viminfo file not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5009)
2019-10-04 21:20:25 +02:00
e8a7dfedfc patch 8.1.2110: CTRL-C closes two popups instead of one
Problem:    CTRL-C closes two popups instead of one.
Solution:   Reset got_int when the filter consumed the key.
2019-10-03 22:35:52 +02:00
1824f45883 patch 8.1.2109: popup_getoptions() hangs with tab-local popup
Problem:    popup_getoptions() hangs with tab-local popup.
Solution:   Correct pointer name. (Marko Mahnič, closes #5006)
2019-10-02 23:06:46 +02:00
23324a0b35 patch 8.1.2108: cannot close the cmdline window from CmdWinEnter
Problem:    Cannot close the cmdline window from CmdWinEnter. (George Brown)
Solution:   Reset cmdwin_result earlier. (Christian Brabandt, closes #4980)
2019-10-01 17:39:04 +02:00
8617348e21 patch 8.1.2107: various memory leaks reported by asan
Problem:    Various memory leaks reported by asan.
Solution:   Free the memory. (Ozaki Kiichi, closes #5003)
2019-10-01 17:02:16 +02:00
b4367b7fb6 patch 8.1.2106: no tests for dragging the mouse beyond the window
Problem:    No tests for dragging the mouse beyond the window.
Solution:   Add a test. (Dominique Pelle, closes #5004)
2019-10-01 14:19:07 +02:00
2886dcceba patch 8.1.2105: MS-Windows: system() may crash
Problem:    MS-Windows: system() may crash.
Solution:   Do not use "itmp" when it is NULL. (Yasuhiro Matsumoto,
            closes #5005)
2019-10-01 12:10:25 +02:00
792cf5e1be patch 8.1.2104: the normal.c file is too big
Problem:    The normal.c file is too big.
Solution:   Move do_pending_operator() to ops.c. (Yegappan Lakshmanan,
            closes #4999).
2019-09-30 23:12:16 +02:00
18223a592e patch 8.1.2103: wrong error message if "termdebugger" is not executable
Problem:    wrong error message if "termdebugger" is not executable.
Solution:   Check if "termdebugger" is executable and give a clear error
            message. (Ozaki Kiichi, closes #5000)  Fix indents.
2019-09-30 20:47:54 +02:00
d17a57a433 patch 8.1.2102: can't build with GTK and FEAT_GUI_GNOME
Problem:    Can't build with GTK and FEAT_GUI_GNOME. (Tony Mechelynck)
Solution:   Adjust the #ifdef. (Yegappan Lakshmanan)
2019-09-29 20:53:55 +02:00
ac02a638b4 patch 8.1.2101: write_session_file() often defined but not used
Problem:    write_session_file() often defined but not used.
Solution:   Adjust the #ifdef. (Yegappan Lakshmanan, closes #4998)
2019-09-29 19:02:46 +02:00
ee1a2b5a2a patch 8.1.2100: :mksession is not sufficiently tested
Problem:    :mksession is not sufficiently tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #4993)
2019-09-29 14:23:39 +02:00
b7a97ef340 patch 8.1.2099: state() test fails on some Mac systems
Problem:    state() test fails on some Mac systems.
Solution:   Increase the wait time. (closes #4983)
2019-09-28 22:11:56 +02:00
37ac4a531c patch 8.1.2098: mksession test fails on MS-Windows
Problem:    mksession test fails on MS-Windows.
Solution:   Skip testing with backslashes on MS-Windows.
2019-09-28 19:29:04 +02:00
66f0e6c6e2 patch 8.1.2097: :mksession is not sufficiently tested
Problem:    :mksession is not sufficiently tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #4992)
2019-09-28 19:08:45 +02:00
8c96af9c05 patch 8.1.2096: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_COMMENTS.
2019-09-28 19:05:57 +02:00
a893194d91 patch 8.1.2095: leaking memory when getting item from dict
Problem:    Leaking memory when getting item from dict.
Solution:   Also free the key when not evaluating.
2019-09-28 17:25:10 +02:00
473952e852 patch 8.1.2094: the fileio.c file is too big
Problem:    The fileio.c file is too big.
Solution:   Move buf_write() to bufwrite.c. (Yegappan Lakshmanan,
            closes #4990)
2019-09-28 16:30:04 +02:00
9be0e0b9d3 patch 8.1.2093: MS-Windows: system() test fails
Problem:    MS-Windows: system() test fails.
Solution:   Expect CR when using systemlist().
2019-09-28 16:25:00 +02:00
1a61339806 patch 8.1.2092: MS-Windows: redirect in system() does not work
Problem:    MS-Windows: redirect in system() does not work.
Solution:   Handle 'shellxescape' and 'shellxquote' better. (Yasuhiro
            Matsumoto, closes #2054)
2019-09-28 15:51:37 +02:00
0f1c6708fd patch 8.1.2091: double free when memory allocation fails
Problem:    Double free when memory allocation fails. (Zu-Ming Jiang)
Solution:   Use VIM_CLEAR() instead of vim_free(). (closes #4991)
2019-09-28 15:24:00 +02:00
2e47cab715 patch 8.1.2090: not clear why channel log file ends
Problem:    Not clear why channel log file ends.
Solution:   Add a "closing" line.
2019-09-27 23:12:45 +02:00
7b666c7883 patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Problem:    Do not get a hint that $TEST_FILTER was active.
Solution:   Mention $TEST_FILTER if no functions were executed.
2019-09-27 21:25:00 +02:00
383f387d9d patch 8.1.2088: renamed libvterm mouse.c file not in distributed file list
Problem:    Renamed libvterm mouse.c file not in distributed file list.
Solution:   Rename the file in the file list.
2019-09-27 19:35:48 +02:00
5be4ceecea Update runtime files. 2019-09-27 19:34:08 +02:00
a7f6c3cf07 patch 8.1.2087: cannot easily select one test function to execute
Problem:    Cannot easily select one test function to execute.
Solution:   Support the $TEST_FILTER environment variable. (Ozaki Kiichi,
            closes #2695)
2019-09-27 15:34:16 +02:00
38f1eeac3d patch 8.1.2086: missing a few changes for the renamed files
Problem:    Missing a few changes for the renamed files.
Solution:   Rename in a few more places. (Ken Takata)
2019-09-27 14:19:09 +02:00
2313b61257 patch 8.1.2085: MS-Windows: draw error moving cursor over double-cell char
Problem:    MS-Windows: draw error moving cursor over double-cell character.
Solution:   Move the cursor to the left edge if needed. (Nobuhiro Takasaki,
            closes #4986)
2019-09-27 14:14:32 +02:00
5e8e967f25 patch 8.1.2084: Amiga: cannot get the user name
Problem:    Amiga: cannot get the user name.
Solution:   Use getpwuid() if available. (Ola Söder, closes #4985)
2019-09-27 13:38:56 +02:00
ce0fac2897 patch 8.1.2083: multi-byte chars do not work properly with "%.*S" in printf()
Problem:    Multi-byte chars do not work properly with "%.*S" in printf().
Solution:   Use mb_ptr2cells(). Daniel Hahler, closes #4989)
2019-09-27 13:32:06 +02:00
30e8e73506 patch 8.1.2082: some files have a weird name to fit in 8.3 characters
Problem:    Some files have a weird name to fit in 8.3 characters.
Solution:   Use a nicer names.
2019-09-27 13:08:36 +02:00
46a426c9ac patch 8.1.2081: the spell.c file is too big
Problem:    The spell.c file is too big.
Solution:   Move the code for spell suggestions to a separate file. (Yegappan
            Lakshmanan, closes #4988)
2019-09-27 12:41:56 +02:00
d2842ea60b patch 8.1.2080: the terminal API is limited and can't be disabled
Problem:    The terminal API is limited and can't be disabled.
Solution:   Add term_setapi() to set the function prefix. (Ozaki Kiichi,
            closes #2907)
2019-09-26 23:08:54 +02:00
d2c1fb476d patch 8.1.2079: popup window test fails without +terminal
Problem:    Popup window test fails without +terminal.
Solution:   Check for the +terminal feature.
2019-09-25 23:06:40 +02:00
f21118e4a9 patch 8.1.2078: build error with +textprop but without +terminal
Problem:    Build error with +textprop but without +terminal. (Tony Mechelynck)
Solution:   Add #ifdef.
2019-09-25 22:45:45 +02:00
4aea03eb87 patch 8.1.2077: the ops.c file is too big
Problem:    The ops.c file is too big.
Solution:   Move code for dealing with registers to a new file. (Yegappan
            Lakshmanan, closes #4982)
2019-09-25 22:37:17 +02:00
e0d749a496 patch 8.1.2076: crash when trying to put a terminal in a popup window
Problem:    Crash when trying to put a terminal buffer in a popup window.
Solution:   Check for NULL buffer.  Do not allow putting a terminal in a popup
            window.
2019-09-25 22:14:48 +02:00
101e99207f patch 8.1.2075: get many log messages when waiting for a typed character
Problem:    Get many log messages when waiting for a typed character.
Solution:   Do not repeat the repeated messages when nothing happens.
2019-09-25 21:43:11 +02:00
0d0c3ca007 patch 8.1.2074: test for SafeState autocommand is a bit flaky
Problem:    Test for SafeState autocommand is a bit flaky.
Solution:   Add to list of flaky tests.
2019-09-25 21:16:15 +02:00
010ee9657a patch 8.1.2073: when editing a buffer 'colorcolumn' may not work
Problem:    When editing a buffer 'colorcolumn' may not work.
Solution:   Set the buffer before copying option values. Call
            check_colorcolumn() after copying window options.
2019-09-25 20:37:36 +02:00
03ac52fc02 patch 8.1.2072: "gk" moves to start of line instead of upwards
Problem:    "gk" moves to start of line instead of upwards.
Solution:   Fix off-by-one error. (Christian Brabandt, closes #4969)
2019-09-24 22:47:46 +02:00
053f712ef2 patch 8.1.2071: when 'wincolor' is set text property changes highlighting
Problem:    When 'wincolor' is set text property changes highlighting. (Andy
            Stewart)
Solution:   Fix combining colors. (closes #4968)
2019-09-23 22:17:15 +02:00
b8ff5c271e patch 8.1.2070: mouse code is spread out
Problem:    Mouse code is spread out.
Solution:   Move mouse terminal code parsing to mouse.c. (Yegappan Lakshmanan,
            closes #4966)
2019-09-23 21:16:54 +02:00
0f6629a08a patch 8.1.2069: test for SafeStateAgain may still fail
Problem:    Test for SafeStateAgain may still fail.
Solution:   Send another message to trigger SafeStateAgain.
2019-09-22 23:24:13 +02:00
513537bfff patch 8.1.2068: test for SafeState and SafeStateAgain may fail
Problem:    Test for SafeState and SafeStateAgain may fail.
Solution:   Accept more possible responses
2019-09-22 23:03:58 +02:00
cadbe1b1fb patch 8.1.2067: no tests for SafeState and SafeStateAgain
Problem:    No tests for SafeState and SafeStateAgain.
Solution:   Add tests.
2019-09-22 21:50:09 +02:00
c258549032 patch 8.1.2066: no tests for state()
Problem:    No tests for state().
Solution:   Add tests.  Clean up some feature checks.  Make "a" flag work.
2019-09-22 21:29:53 +02:00
910c378d93 patch 8.1.2065: compiler warning building non-GUI with MinGW.
Problem:    Compiler warning building non-GUI with MinGW.
Solution:   Adjust #ifdefs. (Yegappan Lakshmanan, closes #4964)
2019-09-22 14:11:50 +02:00
bd67aac279 patch 8.1.2064: MS-Windows: compiler warnings for unused arguments
Problem:    MS-Windows: compiler warnings for unused arguments.
Solution:   Add UNUSED. (Yegappan Lakshmanan, closes #4963)
2019-09-21 23:09:04 +02:00
1e82a784ac patch 8.1.2063: some tests fail when +balloon_eval_term is missing
Problem:    Some tests fail when +balloon_eval_term is missing but
            _balloon_eval is present. (Dominique Pelle)
Solution:   Check the right feature in the test. (closes #4962)
2019-09-21 22:57:06 +02:00
b20b9e14dd patch 8.1.2062: the mouse code is spread out
Problem:    The mouse code is spread out.
Solution:   Move all the mouse code to mouse.c. (Yegappan Lakshmanan,
            closes #4959)
2019-09-21 20:48:04 +02:00
4d5c12626c patch 8.1.2061: MS-Windows GUI: ":sh" crashes when trying to use a terminal
Problem:    MS-Windows GUI: ":sh" crashes when trying to use a terminal.
Solution:   Check for a NULL command. (Yasuhiro Matsumoto, closes #4958)
2019-09-20 17:20:02 +02:00
bffba7f704 patch 8.1.2060: "precedes" in 'listchars' not used properly
Problem:    "precedes" in 'listchars' not used properly.
Solution:   Correctly handle the "precedes" char in list mode for long lines.
            (Christian Brabandt, closes #4953)
2019-09-20 17:00:17 +02:00
589edb3404 Updte runtime files 2019-09-20 14:38:13 +02:00
56ebbabea1 patch 8.1.2059: fix for "x" deleting a fold has side effects
Problem:    Fix for "x" deleting a fold has side effects.
Solution:   Fix it where the fold is included.
2019-09-20 13:40:14 +02:00
4bd782339e patch 8.1.2058: function for ex command is named inconsistently
Problem:    Function for ex command is named inconsistently.
Solution:   Rename do_marks() to ex_marks().
2019-09-19 23:21:55 +02:00
7528d1f6b5 patch 8.1.2057: the screen.c file is much too big
Problem:    The screen.c file is much too big.
Solution:   Split it in three parts. (Yegappan Lakshmanan, closes #4943)
2019-09-19 23:06:20 +02:00
cd67059c0c patch 8.1.2056: "make test" for indent files doesn't cause make to fail
Problem:    "make test" for indent files doesn't cause make to fail.
Solution:   Exit the script with ":cquit". (Daniel Hahler, closes #4949)
2019-09-18 22:14:43 +02:00
181d4f58cc patch 8.1.2055: not easy to jump to function line from profile
Problem:    Not easy to jump to function line from profile.
Solution:   Use "file:99" instead of "file line 99" so that "gf" works.
            (Daniel Hahler, closes #4951)
2019-09-18 22:04:56 +02:00
cebfcffa40 patch 8.1.2054: compiler test for Perl may fail
Problem:    Compiler test for Perl may fail.
Solution:   Accept any error line number. (James McCoy, closes #4944)
2019-09-18 21:42:38 +02:00
d103ee7843 patch 8.1.2053: SafeStateAgain not triggered if callback uses feedkeys()
Problem:    SafeStateAgain not triggered if callback uses feedkeys().
Solution:   Check for safe state in the input loop.  Make log messages easier
            to find. Add 'S' flag to state().
2019-09-18 21:15:31 +02:00
7a9bd7c1e0 patch 8.1.2052: using "x" before a closed fold may delete that fold
Problem:    Using "x" before a closed fold may delete that fold.
Solution:   Do not translate 'x' do "dl". (Christian Brabandt, closes #4927)
2019-09-17 22:42:55 +02:00
705918f9f7 patch 8.1.2051: double-click test is a bit flaky
Problem:    Double-click test is a bit flaky.
Solution:   Correct entry in list of flaky tests.
2019-09-17 21:27:49 +02:00
7e0f462db5 patch 8.1.2050: popup window test fails in some configurations
Problem:    Popup window test fails in some configurations. (James McCoy)
Solution:   Clear the command line.
2019-09-17 21:23:39 +02:00
397c6a1438 patch 8.1.2049: cannot build tiny version
Problem:    Cannot build tiny version.
Solution:   Add #ifdefs.
2019-09-17 20:54:31 +02:00
37d1807a80 patch 8.1.2048: not clear why SafeState and SafeStateAgain are not triggered
Problem:    Not clear why SafeState and SafeStateAgain are not triggered.
Solution:   Add log statements.
2019-09-17 20:28:38 +02:00
0e57dd859e patch 8.1.2047: cannot check the current state
Problem:    Cannot check the current state.
Solution:   Add the state() function.
2019-09-16 22:56:03 +02:00
69198cb8c0 patch 8.1.2046: SafeState may be triggered at the wrong moment
Problem:    SafeState may be triggered at the wrong moment.
Solution:   Move it up higher to after where messages are processed.  Add a
            SafeStateAgain event to tigger there.
2019-09-16 21:58:13 +02:00
dac1347b4d patch 8.1.2045: the option.c file is too big
Problem:    The option.c file is too big.
Solution:   Split off the code dealing with strings. (Yegappan Lakshmanan,
            closes #4937)
2019-09-16 21:06:21 +02:00
8aeec40207 patch 8.1.2044: no easy way to process postponed work
Problem:    No easy way to process postponed work. (Paul Jolly)
Solution:   Add the SafeState autocommand event.
2019-09-15 23:02:04 +02:00
ea8dcf8346 patch 8.1.2043: not sufficient testing for quoted numbers
Problem:    Not sufficient testing for quoted numbers.
Solution:   Add a few more test cases.
2019-09-15 21:12:22 +02:00
9c658c9eac patch 8.1.2042: the evalfunc.c file is too big
Problem:    The evalfunc.c file is too big.
Solution:   Move getchar() and parse_queued_messages() to getchar.c.
2019-09-15 21:00:54 +02:00
248fdb3332 patch 8.1.2041: no test for diff mode with syntax highlighting
Problem:    No test for diff mode with syntax highlighting.
Solution:   Add a test case.
2019-09-15 19:31:28 +02:00
e00fdf35d0 patch 8.1.2040: no highlighting of current line in quickfix window
Problem:    No highlighting of current line in quickfix window.
Solution:   Combine with line_attr.
2019-09-15 19:09:42 +02:00
8ae54375ca patch 8.1.2039: character from 'showbreak' does not use 'wincolor'
Problem:    Character from 'showbreak' does not use 'wincolor'. (Nick Jensen)
Solution:   Mix with 'wincolor'. (closes #4938)
2019-09-15 18:11:16 +02:00
af91438338 patch 8.1.2038: has('vimscript-4') is always 0
Problem:    has('vimscript-4') is always 0.
Solution:   Add "vimscript-4" to the feature table. (Naruhiko Nishino,
            closes #4941)
2019-09-15 17:49:10 +02:00
a046b37c22 patch 8.1.2037: can call win_gotoid() in cmdline window
Problem:    Can call win_gotoid() in cmdline window.
Solution:   Disallow switching windows. (Yasuhiro Matsumoto, closes #4940)
2019-09-15 17:26:07 +02:00
1ac90b4fa6 patch 8.1.2036: the str2nr() tests fail
Problem:    The str2nr() tests fail.
Solution:   Add missing part of patch.
2019-09-15 14:49:52 +02:00
60a8de28d1 patch 8.1.2035: recognizing octal numbers is confusing
Problem:    Recognizing octal numbers is confusing.
Solution:   Introduce scriptversion 4: do not use octal and allow for single
            quote inside numbers.
2019-09-15 14:33:22 +02:00
50bf7ce0c9 patch 8.1.2034: dark them of GTK 3 not supported
Problem:    Dark them of GTK 3 not supported.
Solution:   Add the "d" flag in 'guioptions'. (Jonathan Conder, closes #4934)
2019-09-15 13:17:00 +02:00
0571f3d6f9 patch 8.1.2033: cannot build with tiny features
Problem:    Cannot build with tiny features.
Solution:   Add #ifdef.
2019-09-14 22:33:47 +02:00
076d98839c patch 8.1.2032: scrollbar thumb wrong in popup window
Problem:    Scrollbar thumb wrong in popup window.
Solution:   Adjust thumb size and position when scrolled.
2019-09-14 22:23:29 +02:00
5babc6e858 patch 8.1.2031: cursor position wrong when resizing and using conceal
Problem:    Cursor position wrong when resizing and using conceal.
Solution:   Set the flags that the cursor position is valid when setting the
            row and column during redrawing. (closes #4931)
2019-09-14 21:55:51 +02:00
997d42427e patch 8.1.2030: tests fail when build with normal features and terminal
Problem:    Tests fail when build with normal features and terminal.
            (Dominique Pelle)
Solution:   Disable tests that won't work. (closes #4932)
2019-09-14 21:23:40 +02:00
017ba07fa2 patch 8.1.2029: cannot control 'cursorline' highlighting well
Problem:    Cannot control 'cursorline' highlighting well.
Solution:   Add "screenline". (Christian Brabandt, closes #4933)
2019-09-14 21:01:23 +02:00
d9b0d83b13 patch 8.1.2028: options test script does not work
Problem:    Options test script does not work.
Solution:   Use optiondefs.h for input.
2019-09-14 15:46:32 +02:00
57da698168 patch 8.1.2027: MS-Windows: problem with ambiwidth characters
Problem:    MS-Windows: problem with ambiwidth characters.
Solution:   handle ambiguous width characters in ConPTY on Windows 10 (1903).
            (Nobuhiro Takasaki, closes #4411)
2019-09-13 22:30:11 +02:00
dbec74907e patch 8.1.2026: possibly using uninitialized memory
Problem:    Possibly using uninitialized memory.
Solution:   Check if "dict" is NULL. (closes #4925)
2019-09-13 22:16:21 +02:00
1946de140a patch 8.1.2025: MS-Windows: Including shlguid.h causes problems for msys2
Problem:    MS-Windows: Including shlguid.h causes problems for msys2.
Solution:   Do not include shlguid.h. (closes #4913)
2019-09-13 22:03:19 +02:00
9283f92008 patch 8.1.2024: delete call commented out for debugging
Problem:    Delete call commented out for debugging.
Solution:   Restore the delete call. (Christian Brabandt)
2019-09-13 21:48:34 +02:00
dcb2b9cb08 patch 8.1.2023: no test for synIDattr() returning "strikethrough"
Problem:    No test for synIDattr() returning "strikethrough".
Solution:   Extend the synIDattr() test. (Jaskaran Singh, closes #4929)
2019-09-13 21:26:39 +02:00
0eddca40a6 patch 8.1.2022: the option.c file is too big
Problem:    The option.c file is too big.
Solution:   Move option definitions to a separate file. (Yegappan Lakshmanan,
            closes #4918)
2019-09-12 22:26:43 +02:00
8fe1000e9c Update runtime files 2019-09-11 22:56:44 +02:00
840d16fd36 patch 8.1.2021: some global functions can be local to the file
Problem:    Some global functions can be local to the file.
Solution:   Add "static". (Yegappan Lakshmanan, closes #4917)
2019-09-10 21:27:18 +02:00
d20dcb3d01 patch 8.1.2020: it is not easy to change the window layout
Problem:    It is not easy to change the window layout.
Solution:   Add win_splitmove(). (Andy Massimino, closes #4561)
2019-09-10 21:22:58 +02:00
410e98a70b patch 8.1.2019: 'cursorline' always highlights the whole line
Problem:    'cursorline' always highlights the whole line.
Solution:   Add 'cursorlineopt' to specify what is highlighted.
            (closes #4693)
2019-09-09 22:05:49 +02:00
e5fbd73930 patch 8.1.2018: using freed memory when out of memory and displaying message
Problem:    Using freed memory when out of memory and displaying message.
Solution:   Make a copy of the message first.
2019-09-09 20:04:13 +02:00
96e38a86a7 patch 8.1.2017: cannot execute commands after closing the cmdline window
Problem:    Cannot execute commands after closing the cmdline window.
Solution:   Also trigger BufEnter and WinEnter. (closes #4762)
2019-09-09 18:35:33 +02:00
adbde3fbed patch 8.1.2016: terminal altscreen test now fails on MS-Windows
Problem:    Terminal altscreen test now fails on MS-Windows.
Solution:   Skip the test on MS-Windows
2019-09-08 22:57:14 +02:00
bf9a3b0164 patch 8.1.2015: terminal altscreen test still fails sometimes
Problem:    Terminal altscreen test still fails sometimes.
Solution:   Write the escape sequence in a file.
2019-09-08 22:35:48 +02:00
b9c79cf5cc patch 8.1.2014: terminal altscreen test fails sometimes
Problem:    Terminal altscreen test fails sometimes.
Solution:   Use WaitFor().
2019-09-08 22:09:52 +02:00
f92e58cadb patch 8.1.2013: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
2019-09-08 21:51:41 +02:00
7ee80f7661 patch 8.1.2012: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make terminal functions usable as a method.  Fix term_getattr().
2019-09-08 20:55:06 +02:00
ce90e36f59 patch 8.1.2011: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.  Make the window
            command test faster.
2019-09-08 18:58:44 +02:00
9490b9a61c patch 8.1.2010: new file uses old style comments
Problem:    New file uses old style comments.
Solution:   Change to new style comments. (Yegappan Lakshmanan, closes #4910)
2019-09-08 17:20:12 +02:00
3d2a3cbce8 patch 8.1.2009: cursorline highlighting not updated in popup window
Problem:    Cursorline highlighting not updated in popup window. (Marko
            Mahnič)
Solution:   Check if the cursor position changed. (closes #4912)
2019-09-08 17:12:01 +02:00
4544bd2f24 patch 8.1.2008: error for invalid range when using listener and undo
Problem:    Error for invalid range when using listener and undo. (Paul Jolly)
Solution:   Do not change the cursor before the lines are restored.
            (closes #4908)
2019-09-08 15:27:21 +02:00
fca068b977 patch 8.1.2007: no test for what 8.1.1926 fixes
Problem:    No test for what 8.1.1926 fixes.
Solution:   Add a test case.
2019-09-08 14:07:47 +02:00
6cdce2a003 patch 8.1.2006: build failure with huge features but without channel feature
Problem:    Build failure with huge features but without channel feature.
Solution:   Add #ifdef. (Dominique Pelle, closes #4906)
2019-09-07 23:25:09 +02:00
6d7d7cf750 patch 8.1.2005: the regexp.c file is too big
Problem:    The regexp.c file is too big.
Solution:   Move the backtracking engine to a separate file. (Yegappan
            Lakshmanan, closes #4905)
2019-09-07 23:16:33 +02:00
f6ed61e148 patch 8.1.2004: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
2019-09-07 19:05:09 +02:00
30e9b3c425 Update runtime files 2019-09-07 16:24:12 +02:00
fa90d70884 patch 8.1.2003: MS-Windows: code page 65001 is not recognized
Problem:    MS-Windows: code page 65001 is not recognized.
Solution:   Use utf-8 for code page 65001. (Dan Thompson, closes #4902)
2019-09-07 16:07:47 +02:00
9b1cd65d8b patch 8.1.2002: version number 2000 missing
Problem:    Version number 2000 missing.
Solution:   Add the number in the list of patches.
2019-09-07 15:51:28 +02:00
261f346f81 patch 8.1.2001: some source files are too big
Problem:    Some source files are too big.
Solution:   Move buffer and window related functions to evalbuffer.c and
            evalwindow.c. (Yegappan Lakshmanan, closes #4898)
2019-09-07 15:45:32 +02:00
a3a124627d patch 8.1.2000: plugin cannot get the current IME status
Problem:    Plugin cannot get the current IME status.
Solution:   Add the getimstatus() function. (closes #4904)
2019-09-07 15:08:38 +02:00
1b33bee35e patch 8.1.1999: calling both PlaySoundW() and PlaySoundA()
Problem:    Calling both PlaySoundW() and PlaySoundA().
Solution:   Only use PlaySoundW(). (Dan Thompson, closes #4903)
2019-09-07 14:50:49 +02:00
fbb3bc89b3 patch 8.1.1998: redraw even when no popup window filter was invoked
Problem:    Redraw even when no popup window filter was invoked.
Solution:   Only redraw when must_redraw was set to a larger value.
2019-09-07 14:33:36 +02:00
bcb4c8f905 patch 8.1.1997: no redraw after a popup window filter is invoked
Problem:    No redraw after a popup window filter is invoked.
Solution:   Redraw if needed.
2019-09-07 14:06:52 +02:00
aad222c9c9 patch 8.1.1996: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
2019-09-06 22:46:09 +02:00
93476fd634 patch 8.1.1995: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make sign functions usable as a method.
2019-09-06 22:00:54 +02:00
5ec849896f patch 8.1.1994: MS-Windows: cannot build with eval but without cscope
Problem:    MS-Windows: cannot build with eval but without cscope
Solution:   Adjust the makefiles to always build if_cscope.obj.
2019-09-06 21:46:15 +02:00
196b466443 patch 8.1.1993: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
2019-09-06 21:34:30 +02:00
16b58ae9f3 patch 8.1.1992: the search stat moves when wrapping at the end of the buffer
Problem:    The search stat moves when wrapping at the end of the buffer.
Solution:   Put the "W" in front instead of at the end.
2019-09-06 20:40:21 +02:00
6f72e90dd8 patch 8.1.1991: still cannot build with eval but without cscope
Problem:    Still cannot build with eval but without cscope.
Solution:   Move f_cscope_connection() outside of #ifdef.
2019-09-05 23:04:02 +02:00
a546b21b24 patch 8.1.1990: cannot build with eval but without cscope
Problem:    Cannot build with eval but without cscope.
Solution:   Always include if_cscope.pro.
2019-09-05 22:50:11 +02:00
af7645d373 patch 8.1.1989: the evalfunc.c file is still too big
Problem:    The evalfunc.c file is still too big.
Solution:   Move f_pathshorten() to filepath.c.  Move f_cscope_connection() to
            if_cscope.c.  Move diff_ functions to diff.c.  Move timer_
            functions to ex_cmds2.c.  move callback functions to evalvars.c.
2019-09-05 22:33:28 +02:00
8d3b51084a patch 8.1.1988: :startinsert! does not work the same way as "A"
Problem:    :startinsert! does not work the same way as "A".
Solution:   Use the same code to move the cursor. (closes #4896)
2019-09-05 21:29:01 +02:00
a0d1fef4eb patch 8.1.1987: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
2019-09-04 22:29:14 +02:00
a5a7882ea4 patch 8.1.1986: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make textprop functions usable as a method.
2019-09-04 21:57:18 +02:00
26262f8777 patch 8.1.1985: code for dealing with paths is spread out
Problem:    Code for dealing with paths is spread out.
Solution:   Move path related functions from misc1.c to filepath.c.
            Remove NO_EXPANDPATH.
2019-09-04 20:59:15 +02:00
3f4f3d8e7e patch 8.1.1984: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
2019-09-04 20:05:59 +02:00
ea781459b9 patch 8.1.1983: compiler nags for uninitialized variable and unused function
Problem:    Compiler nags for uninitialized variable and unused function.
Solution:   Add unnecessary initialization.  Move function inside #ifdef.
2019-09-04 18:53:12 +02:00
6a124e622c patch 8.1.1982: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make popup functions usable as a method.
2019-09-04 18:15:19 +02:00
08c308aeb5 patch 8.1.1981: the evalfunc.c file is too big
Problem:    The evalfunc.c file is too big.
Solution:   Move undo functions to undo.c.  Move cmdline functions to
            ex_getln.c.  Move some container functions to list.c.
2019-09-04 17:48:15 +02:00
0f63ed33fd patch 8.1.1980: fix for search stat not tested
Problem:    Fix for search stat not tested.
Solution:   Add a screenshot test. (Christian Brabandt)
2019-09-04 16:32:36 +02:00
b005cd80cf patch 8.1.1979: code for handling file names is spread out
Problem:    Code for handling file names is spread out.
Solution:   Move code to new filepath.c file.  Graduate FEAT_MODIFY_FNAME.
2019-09-04 15:54:55 +02:00
1e1d30048e patch 8.1.1978: the eval.c file is too big
Problem:    The eval.c file is too big.
Solution:   Move filter() and map() to list.c.
2019-09-04 14:41:14 +02:00
19c8fe1925 patch 8.1.1977: terminal debugger plugin may hang
Problem:    Terminal debugger plugin may hang.
Solution:   Wait longer when still reading symbols.
2019-09-04 14:24:24 +02:00
2b43f7f9f4 patch 8.1.1976: Travis log always shows test output
Problem:    Travis log always shows test output.
Solution:   Change script to avoid if/else. (Ozaki Kiichi, closes #4892)
2019-09-04 14:11:16 +02:00
89c0003331 patch 8.1.1975: MS-Windows GUI responds slowly to timer
Problem:    MS-Windows GUI responds slowly to timer.
Solution:   Break out of wait loop when timer was added or input is available.
            (closes #4893)
2019-09-04 13:53:21 +02:00
1f3165bc34 patch 8.1.1974: Coverity warns for using pointer as array
Problem:    Coverity warns for using pointer as array.
Solution:   Call var2fpos() directly instead of using f_line().
2019-09-04 13:21:26 +02:00
61c18652c9 patch 8.1.1973: cannot build without the quickfix feature
Problem:    Cannot build without the quickfix feature.
Solution:   Remove #ifdef for qf_info_T.
2019-09-04 11:51:17 +02:00
5d712e4672 patch 8.1.1972: no proper test for getchar()
Problem:    No proper test for getchar().
Solution:   Add a test with special characters.
2019-09-03 23:37:01 +02:00
d570ab95d9 patch 8.1.1971: manually enabling features causes build errors
Problem:    Manually enabling features causes build errors. (John Marriott)
Solution:   Adjust #ifdefs.
2019-09-03 23:20:05 +02:00
19e8ac72e9 patch 8.1.1970: search stat space wrong, no test for 8.1.1965
Problem:    Search stat space wrong, no test for 8.1.1965.
Solution:   Fix check for cmd_silent.  Add a test. (Christian Brabandt)
2019-09-03 22:23:38 +02:00
581ba39aef patch 8.1.1969: popup window filter is used in all modes
Problem:    Popup window filter is used in all modes.
Solution:   Add the "filtermode" property.
2019-09-03 22:08:33 +02:00
27da7de7c5 patch 8.1.1968: crash when using nested map()
Problem:    Crash when using nested map().
Solution:   Clear the pointer in prepare_vimvar(). (Ozaki Kiichi,
            closes #4890, closes #4891)
2019-09-03 17:13:37 +02:00
8e0a8e7eb7 patch 8.1.1967: line() only works for the current window
Problem:    Line() only works for the current window.
Solution:   Add an optional argument for the window to use.
2019-09-02 22:56:24 +02:00
e677df8d93 patch 8.1.1966: some code in options.c fits better elsewhere
Problem:    Some code in options.c fits better elsewhere.
Solution:   Move functions from options.c to other files. (Yegappan
            Lakshmanan, closes #4889)
2019-09-02 22:31:11 +02:00
359ad1a6f9 patch 8.1.1965: search count message is not displayed when using a mapping
Problem:    The search count message is not displayed when using a mapping.
            (Gary Johnson)
Solution:   Ignore cmd_silent for showing the search count. (Christian
            Brabandt)
2019-09-02 21:44:59 +02:00
c36350bca3 patch 8.1.1964: crash when using nested map() and filter()
Problem:    Crash when using nested map() and filter().
Solution:   Do not set the v:key type to string without clearing the pointer.
2019-09-02 20:44:07 +02:00
934470e562 patch 8.1.1963: popup window filter may be called recursively
Problem:    Popup window filter may be called recursively when using a Normal
            mode command.
Solution:   Prevent recursiveness. (closes #4887)  Also restore KeyTyped.
2019-09-01 23:27:05 +02:00
55008aad50 patch 8.1.1962: leaking memory when using tagfunc()
Problem:    Leaking memory when using tagfunc().
Solution:   Free the user_data. (Dominique Pelle, closes #4886)
2019-09-01 20:21:56 +02:00
a144983633 patch 8.1.1961: more functions can be used as a method
Problem:    More functions can be used as a method.
Solution:   Allow more functions to be used as a method.  Add a test for
            mapcheck().
2019-09-01 20:16:52 +02:00
db022f3ffb patch 8.1.1960: fold code is spread out
Problem:    Fold code is spread out.
Solution:   Move fold functions to fold.c.
2019-09-01 17:52:32 +02:00
a112f2d003 patch 8.1.1959: when using "firstline" in popup window text may jump
Problem:    When using "firstline" in popup window text may jump when
            redrawing it. (Nick Jensen)
Solution:   Set 'scrolloff' to zero in a popup window. (closes #4882)
2019-09-01 17:38:09 +02:00
c330835928 patch 8.1.1958: old style comments taking up space
Problem:    Old style comments taking up space.
Solution:   Change to new style comments.
2019-09-01 16:24:56 +02:00
da6c033421 patch 8.1.1957: more code can be moved to evalvars.c
Problem:    More code can be moved to evalvars.c.
Solution:   Move code to where it fits better. (Yegappan Lakshmanan,
            closes #4883)
2019-09-01 16:01:30 +02:00
0fdddeeb66 patch 8.1.1956: screenshot tests may use a different encoding
Problem:    Screenshot tests may use a different encoding. (Dominique Pelle)
Solution:   Always set 'encoding' to "utf-8" when running Vim in a terminal.
            (closes #4884)
2019-09-01 15:26:23 +02:00
1bc353b6f1 patch 8.1.1955: tests contain typos
Problem:    Tests contain typos.
Solution:   Correct the typos. (Dominique Pelle)
2019-09-01 14:45:28 +02:00
02b31110d3 patch 8.1.1954: more functions can be used as a method
Problem:    More functions can be used as a method.
Solution:   Allow more functions to be used as a method.
2019-08-31 22:16:38 +02:00
f9f24ce7a0 patch 8.1.1953: more functions can be used as a method
Problem:    More functions can be used as a method.
Solution:   Allow more functions to be used as a method.
2019-08-31 21:17:39 +02:00
5d69fdb7c4 patch 8.1.1952: more functions can be used as a method
Problem:    More functions can be used as a method.
Solution:   Allow more functions to be used as a method.
2019-08-31 19:13:58 +02:00
f1699968ba patch 8.1.1951: mouse double click test is a bit flaky
Problem:    Mouse double click test is a bit flaky.
Solution:   Add to list of flaky tests.  Update a couple of comments.
2019-08-31 17:48:19 +02:00
06fe74aef7 Runtime files update. 2019-08-31 16:20:32 +02:00
4bbfb0f3cc patch 8.1.1950: using NULL pointer after an out-of-memory
Problem:    Using NULL pointer after an out-of-memory.
Solution:   Check for NULL pointer. (Dominique Pelle, closes #4881)
2019-08-31 15:28:02 +02:00
8c6173c7d3 patch 8.1.1949: cannot scroll a popup window to the very bottom
Problem:    Cannot scroll a popup window to the very bottom.
Solution:   Scroll to the bottom when the "firstline" property was set to -1.
            (closes #4577)  Allow resetting min/max width/height.
2019-08-30 22:08:34 +02:00
b5432d8968 patch 8.1.1948: mouse doesn't work in Linux console
Problem:    Mouse doesn't work in Linux console and causes 100% CPU. (James P.
            Harvey)
Solution:   Loop in WaitForCharOrMouse() when gpm_process_wanted is set.
            (closes #4828)
2019-08-30 19:28:25 +02:00
60b1bcfe92 patch 8.1.1947: when executing one test the report doesn't show it
Problem:    When executing one test the report doesn't show it.
Solution:   Adjust the regexp. (Daniel Hahler, closes #4879)
2019-08-30 19:05:32 +02:00
163588005d patch 8.1.1946: memory error when profiling a function without a script ID
Problem:    Memory error when profiling a function without a script ID.
Solution:   Check for missing script ID.  (closes #4877)
2019-08-30 18:37:26 +02:00
9e67b6a6a1 patch 8.1.1945: popup window "firstline" cannot be reset
Problem:    Popup window "firstline" cannot be reset.
Solution:   Allow for setting "firstline" to zero.  Fix that the text jumps to
            the top when using win_execute(). (closes #4876)
2019-08-30 17:34:08 +02:00
821d771e86 patch 8.1.1944: leaking memory when using sound callback
Problem:    Leaking memory when using sound callback.
Solution:   src/sound.c
2019-08-30 16:30:00 +02:00
8d71b54409 patch 8.1.1943: more code can be moved to evalvars.c
Problem:    More code can be moved to evalvars.c.
Solution:   Move it, clean up comments.  Also move some window related
            functions to window.c. (Yegappan Lakshmanan, closes #4874)
2019-08-30 15:46:30 +02:00
58a297b28d patch 8.1.1942: shadow directory gets outdated when files are added
Problem:    Shadow directory gets outdated when files are added.
Solution:   Add the "shadowupdate" target and add a few comments.
2019-08-30 13:59:29 +02:00
ad5db44c01 patch 8.1.1941: getftype() test fails on Mac
Problem:    getftype() test fails on Mac.
Solution:   Skip /dev/fd/.
2019-08-30 13:12:25 +02:00
34ed68d40e patch 8.1.1940: script tests fail
Problem:    Script tests fail.
Solution:   Don't set vimvars type in set_vim_var_nr().
2019-08-29 22:48:24 +02:00
e5cdf153bc patch 8.1.1939: code for handling v: variables in generic eval file
Problem:    Code for handling v: variables in generic eval file.
Solution:   Move v: variables to evalvars.c. (Yegappan Lakshmanan,
            closes #4872)
2019-08-29 22:09:46 +02:00
c507a2d164 patch 8.1.1938: may crash when out of memory
Problem:    May crash when out of memory.
Solution:   Initialize v_type to VAR_UNKNOWN. (Dominique Pelle, closes #4871)
2019-08-29 21:32:55 +02:00
4fb15c6476 patch 8.1.1937: errors when using javascriptreact
Problem:    Errors when using javascriptreact.
Solution:   Use ":runtime" instead of ":source". (closes #4875)
2019-08-29 21:24:21 +02:00
1fb0831a0e patch 8.1.1936: not enough tests for text property popup window
Problem:    Not enough tests for text property popup window.
Solution:   Add a few more tests.  Make negative offset work.  Close all
            popups when window closes.
2019-08-29 20:02:11 +02:00
57441d6fa0 patch 8.1.1935: test for text property popup window is flaky
Problem:    Test for text property popup window is flaky.
Solution:   Remove the undo message
2019-08-28 22:38:07 +02:00
bc2d4c1db6 patch 8.1.1934: not enough tests for text property popup window
Problem:    Not enough tests for text property popup window.
Solution:   Add a few more tests.
2019-08-28 22:18:30 +02:00
0522ba0359 patch 8.1.1933: the eval.c file is too big
Problem:    The eval.c file is too big.
Solution:   Move code related to variables to evalvars.c. (Yegappan
            Lakshmanan, closes #4868)
2019-08-27 22:48:30 +02:00
d20070274c patch 8.1.1932: ml_get errors after using append()
Problem:    Ml_get errors after using append(). (Alex Genco)
Solution:   Do not update the cursor twice. (closes #1737)
2019-08-27 21:56:06 +02:00
ea7a08a53e patch 8.1.1931: syntax test fails
Problem:    Syntax test fails.
Solution:   Add new javascriptreact type to completions.
2019-08-26 22:38:22 +02:00
92852cee3f patch 8.1.1930: cannot recognize .jsx and .tsx files
Problem:    Cannot recognize .jsx and .tsx files.
Solution:   Recognize them as javascriptreact and typescriptreact.
            (closes #4830)
2019-08-26 21:28:15 +02:00
8e95636a28 patch 8.1.1929: no tests for text property popup window
Problem:    No tests for text property popup window.
Solution:   Add a few tests.
2019-08-25 23:08:17 +02:00
12034e22dd patch 8.1.1928: popup windows don't move with the text when making changes
Problem:    Popup windows don't move with the text when making changes.
Solution:   Add the 'textprop" property to the popup window options, position
            the popup relative to a text property. (closes #4560)
            No tests yet.
2019-08-25 22:25:02 +02:00
307c5a5bb7 patch 8.1.1927: code for dealing with script files is spread out
Problem:    Code for dealing with script files is spread out.
Solution:   Move the code to scriptfile.c. (Yegappan Lakshmanan, closes #4861)
2019-08-25 15:41:00 +02:00
c2b97643a8 patch 8.1.1926: cursorline not redrawn when putting a line above the cursor
Problem:    Cursorline not redrawn when putting a line above the cursor.
Solution:   Redraw when the curor line is below a change. (closes #4862)
2019-08-25 14:48:37 +02:00
4c313b13fb patch 8.1.1925: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
2019-08-24 22:58:31 +02:00
a8eee21e75 patch 8.1.1924: using empty string for current buffer is unexpected
Problem:    Using empty string for current buffer is unexpected.
Solution:   Make the argument optional for bufname() and bufnr().
2019-08-24 22:14:58 +02:00
4119309d70 patch 8.1.1923: some source files are not in a normal encoding
Problem:    Some source files are not in a normal encoding.
Solution:   Convert hangulin.c from euc-kr to utf-8 and digraph.c from latin1
            to utf-8. (Daniel Hahler, closes #4731)
2019-08-24 21:53:31 +02:00
4f57eefe1e patch 8.1.1922: in diff mode global operations can be very slow
Problem:    In diff mode global operations can be very slow.
Solution:   Do not call diff_redraw() many times, call it once when redrawing.
            And also don't update folds multiple times.
2019-08-24 20:54:19 +02:00
a4208966fb patch 8.1.1921: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
2019-08-24 20:50:19 +02:00
f63962378d patch 8.1.1920: cannot always close a popup when filter consumes all events
Problem:    Cannot close a popup by the X when a filter consumes all events.
Solution:   Check for a click on the close button before invoking filters.
            (closes #4858)
2019-08-24 19:36:00 +02:00
4645104be4 patch 8.1.1919: using window options when passing a buffer to popup_create()
Problem:    Using current window option values when passing a buffer to
            popup_create().
Solution:   Clear the window-local options. (closes #4857)
2019-08-24 15:50:46 +02:00
e9a891f255 patch 8.1.1918: redrawing popups is inefficient
Problem:    Redrawing popups is inefficient.
Solution:   Fix the logic to compute what window lines to redraw.  Make it
            work below the last line.  Remove redrawing all windows.
2019-08-24 15:26:24 +02:00
356375fbf8 patch 8.1.1917: non-current window is not redrawn when moving popup
Problem:    Non-current window is not redrawn when moving popup. (Ben Jackson)
Solution:   Redraw all windows under a popup. (closes #4860)
2019-08-24 14:46:29 +02:00
741ea17038 patch 8.1.1916: trying to allocate negative amount of memory closing popup
Problem:    Trying to allocate negative amount of memory when closing a popup.
Solution:   Check the rows are not out of bounds.  Don't finish a selection if
            it was never started.
2019-08-24 14:16:32 +02:00
1a3a89168d patch 8.1.1915: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
2019-08-23 22:31:37 +02:00
d019039ccd patch 8.1.1914: command line expansion code is spread out
Problem:    Command line expansion code is spread out.
Solution:   Move set_one_cmd_context(). (Yegappan Lakshmanan, closes #4855)
2019-08-23 21:17:35 +02:00
37f4cbd46f patch 8.1.1913: not easy to compute the space on the command line
Problem:    Not easy to compute the space on the command line.
Solution:   Add v:echospace. (Daniel Hahler, closes #4732)
2019-08-23 20:58:45 +02:00
570497ac40 patch 8.1.1912: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make channel and job functions usable as a method.
2019-08-22 22:55:13 +02:00
64b4d73524 patch 8.1.1911: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make a few more functions usable as a method.
2019-08-22 22:18:17 +02:00
448262176b patch 8.1.1910: redrawing too much when toggling 'relativenumber'
Problem:    Redrawing too much when toggling 'relativenumber'.
Solution:   Only clear when 'signcolumn' is set to "number". (Yegappan
            Lakshmanan, closes #4852)
2019-08-22 21:23:20 +02:00
e49fbff384 patch 8.1.1909: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make a few more functions usable as a method.
2019-08-21 22:50:07 +02:00
00b0d6d8dc patch 8.1.1908: every popup window consumes a buffer number
Problem:    Every popup window consumes a buffer number.
Solution:   Recycle buffers only used for popup windows.  Do not list popup
            window buffers.
2019-08-21 22:25:30 +02:00
fe6e7618b4 patch 8.1.1907: wrong position for info popup with scrollbar on the left
Problem:    Wrong position for info popup with scrollbar on the left.
Solution:   Take the scrollbar into account.
2019-08-21 20:57:20 +02:00
c1f87c9a31 patch 8.1.1906: info popup size is sometimes incorrect
Problem:    Info popup size is sometimes incorrect.
Solution:   Compute the position and size after setting the content.
2019-08-21 19:33:16 +02:00
c7c5f10a36 patch 8.1.1905: cannot set all properties of the info popup
Problem:    Cannot set all properties of the info popup.
Solution:   Add popup_findinfo().  Rename popup_getpreview() to
            popup_findpreview().
2019-08-21 18:31:03 +02:00
258cef59d8 patch 8.1.1904: cannot have an info popup align with the popup menu
Problem:    Cannot have an info popup align with the popup menu.
Solution:   Add the "align" item to 'completepopup'.
2019-08-21 17:29:29 +02:00
9cb698d564 patch 8.1.1903: cannot build without the +eval feature
Problem:    Cannot build without the +eval feature.
Solution:   Add missing #ifdefs
2019-08-21 15:30:45 +02:00
bd483b3f57 patch 8.1.1902: cannot have an info popup without a border
Problem:    Cannot have an info popup without a border.
Solution:   Add the "border" item to 'completepopup'.
2019-08-21 15:13:41 +02:00
e2c453d38f patch 8.1.1901: the +insert_expand feature is not always available
Problem:    The +insert_expand feature is not always available.
Solution:   Graduate the +insert_expand feature.
2019-08-21 14:37:09 +02:00
d933c82ff4 patch 8.1.1900: sign test fails in the GUI
Problem:    Sign test fails in the GUI.
Solution:   Catch and ignore the exception.
2019-08-21 13:45:16 +02:00
42aff46d97 patch 8.1.1899: sign_place() does not work as documented
Problem:    sign_place() does not work as documented.
Solution:   Make accept line numbers like line(). (Yegappan Lakshmanan,
            closes #4848)
2019-08-21 13:20:29 +02:00
4dc8f498aa patch 8.1.1898: crash when out of memory during startup
Problem:    Crash when out of memory during startup.
Solution:   When out of memory message given during initialisation bail out.
            (closes #4842)
2019-08-21 13:06:55 +02:00
f1552d07d7 patch 8.1.1897: may free memory twice when out of memory
Problem:    May free memory twice when out of memory.
Solution:   Check that backslash_halve_save() returns a different pointer.
            (Dominique Pelle, closes #4847)
2019-08-21 12:54:18 +02:00
eaf3524119 patch 8.1.1896: compiler warning for unused variable
Problem:    Compiler warning for unused variable.
Solution:   Add #ifdef. (John Marriott)  Missing part of 8.1.1892.
2019-08-20 23:14:15 +02:00
6f10c70b59 patch 8.1.1895: using NULL pointer when out of memory
Problem:    Using NULL pointer when out of memory.
Solution:   Bail out or skip the code using the pointer. (Zu-Ming Jiang,
            closes #4805, closes #4843, closes #4939, closes #4844)
2019-08-20 22:58:37 +02:00
1058c9d9b5 patch 8.1.1894: not checking for out-of-memory of autoload_name()
Problem:    Not checking for out-of-memory of autoload_name().
Solution:   Check for NULL. (Dominique Pelle, closes #4846)
2019-08-20 21:58:00 +02:00
f1e0544d41 patch 8.1.1893: script to summarize test results can be improved
Problem:    Script to summarize test results can be improved.
Solution:   Use "silent" for substitute to avoid reporting number of matches.
            Remove duplicate "set nocp". (Daniel Hahler, closes #4845)
2019-08-20 21:25:46 +02:00
36e4d985f0 patch 8.1.1892: missing index entry and option menu for 'completepopup'
Problem:    Missing index entry and option menu for 'completepopup'.
Solution:   Add the entries.  Adjust #ifdefs to avoid dead code.
2019-08-20 21:12:16 +02:00
5843f5f37b patch 8.1.1891: functions used in one file are global
Problem:    Functions used in one file are global.
Solution:   Add "static". (Yegappan Lakshmanan, closes #4840)
2019-08-20 20:13:45 +02:00
9a4a8c4d59 patch 8.1.1890: ml_get error when deleting fold marker
Problem:    Ml_get error when deleting fold marker.
Solution:   Check that the line number is not below the last line.  Adjust the
            fold when deleting the empty line.  (Christian Brabandt,
            closes #4834)
2019-08-19 22:48:30 +02:00
ea7ecfe2a0 patch 8.1.1889: Coverity warns for using a NULL pointer
Problem:    Coverity warns for using a NULL pointer.
Solution:   Use zero for column if pos is NULL.
2019-08-19 20:08:15 +02:00
073e4b92e6 patch 8.1.1888: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
2019-08-18 23:01:56 +02:00
0a52df50a0 patch 8.1.1887: the +cmdline_compl feature is not in the tiny version
Problem:    The +cmdline_compl feature is not in the tiny version.
Solution:   Graduate the +cmdline_compl feature.
2019-08-18 22:26:31 +02:00
66b51420e0 patch 8.1.1886: command line expansion code is spread out
Problem:    Command line expansion code is spread out.
Solution:   Move the code to cmdexpand.c. (Yegappan Lakshmanan, closes #4831)
2019-08-18 21:44:12 +02:00
db1085a563 patch 8.1.1885: comments in libvterm are inconsistent
Problem:    Comments in libvterm are inconsistent.
Solution:   Use // comments.  Als update the table of combining characters.
2019-08-18 20:41:38 +02:00
f0bc15c769 patch 8.1.1884: cannot use mouse scroll wheel in popup in Insert mode
Problem:    Cannot use mouse scroll wheel in popup in Insert mode.  Mouse
            clicks in popup close the popup menu.
Solution:   Check if the mouse is in a popup window. Do not let mouse events
            close the popup menu.  (closes #4544)
2019-08-18 19:23:45 +02:00
9513d91be0 patch 8.1.1883: options test fails
Problem:    Options test fails.
Solution:   Add entry for 'completepopup'.
2019-08-18 17:58:11 +02:00
62a0cb443c patch 8.1.1882: cannot specify properties of the info popup window
Problem:    Cannot specify properties of the info popup window.
Solution:   Add the 'completepopup' option.  Default to PmenuSel highlight.
2019-08-18 16:35:23 +02:00
f4665e78f2 patch 8.1.1881: popup window test fails in some configurations
Problem:    Popup window test fails in some configurations.
Solution:   Check that screendumps can be made.
2019-08-18 15:42:10 +02:00
576a4a6ff1 patch 8.1.1880: cannot show extra info for completion in a popup window
Problem:    Cannot show extra info for completion in a popup window.
Solution:   Add the "popup" entry in 'completeopt'.
2019-08-18 15:25:17 +02:00
93cf85f9ef patch 8.1.1879: more functions can be used as methods
Problem:    More functions can be used as methods.
Solution:   Make float functions usable as a method.
2019-08-17 21:36:28 +02:00
9cfe8f6e68 patch 8.1.1878: negative float before method not parsed correctly
Problem:    Negative float before method not parsed correctly.
Solution:   Apply "!" and "-" in front of expression before using ->.
2019-08-17 21:04:16 +02:00
ffc0716af8 patch 8.1.1877: graduated features scattered
Problem:    Graduated features scattered.
Solution:   Put graduated and obsolete features together.
2019-08-17 20:17:51 +02:00
f8b055d170 patch 8.1.1876: proto file missing from distribution
Problem:    proto file missing from distribution
Solution:   Add the file.
2019-08-17 20:10:42 +02:00
56c860c315 Update runtime files. 2019-08-17 20:09:31 +02:00
e9bd57286a patch 8.1.1875: cannot get size and position of the popup menu
Problem:    Cannot get size and position of the popup menu.
Solution:   Add pum_getpos(). (Ben Jackson, closes #4827)
2019-08-17 19:36:06 +02:00
4dd751b956 patch 8.1.1874: modeless selection in popup window overlaps scrollbar
Problem:    Modeless selection in popup window overlaps scrollbar.
Solution:   Subtract scrollbar from max_col. (closes #4773)
2019-08-17 19:10:53 +02:00
df70775555 patch 8.1.1873: cannot build tiny version
Problem:    Cannot build tiny version.
Solution:   Remove #ifdef for is_autocmd_blocked().
2019-08-17 17:50:07 +02:00
c7226684c8 patch 8.1.1872: when Vim exits because of a signal, VimLeave is not triggered
Problem:    When Vim exits because of a signal, VimLeave is not triggered.
            (Daniel Hahler)
Solution:   Unblock autocommands when triggering VimLeave. (closes #4818)
2019-08-17 16:33:23 +02:00
ff9f27cdc7 patch 8.1.1871: modeless selection in GUI still not correct
Problem:    Modeless selection in GUI still not correct.
Solution:   Fix max_col.
2019-08-17 16:15:53 +02:00
026587b35c patch 8.1.1870: using :pedit from a help file sets help filetype
Problem:    Using :pedit from a help file sets the preview window to help
            filetype. (Wang Shidong)
Solution:   Do not set "keep_help_flag". (closes #3536)
2019-08-17 15:08:00 +02:00
4ad62155a1 patch 8.1.1869: code for the argument list is spread out
Problem:    Code for the argument list is spread out.
Solution:   Put argument list code in arglist.c. (Yegappan Lakshmanan,
            closes #4819)
2019-08-17 14:38:55 +02:00
69cbbecf54 patch 8.1.1868: multi-byte chars in 'listchars' fail with 'linebreak' set
Problem:    Multibyte characters in 'listchars' don't work correctly if
            'linebreak' is also enabled. (Martin Tournoij)
Solution:   Make it work correctly. (Christian Brabandt, closes #4822,
            closes #4812)
2019-08-17 14:10:56 +02:00
315244d85b patch 8.1.1867: still a timer test that is flaky on Mac
Problem:    Still a timer test that is flaky on Mac.
Solution:   Loop with a sleep instead of one fixed sleep.
2019-08-17 13:18:16 +02:00
d5cf89872e patch 8.1.1866: modeless selection in GUI does not work properly
Problem:    Modeless selection in GUI does not work properly.
Solution:   Avoid going beyond the end of the line. (closes #4783)
2019-08-16 23:09:11 +02:00
a3891681f7 patch 8.1.1865: spellrare and spellrepall in the wrong order
Problem:    Spellrare and spellrepall in the wrong order.
Solution:   Put spellrare below spellrepall. (closes #4820)
2019-08-16 22:42:13 +02:00
413c04e8d5 patch 8.1.1864: still a timer test that is flaky on Mac
Problem:    Still a timer test that is flaky on Mac.
Solution:   Adjust the sleep times.
2019-08-16 22:29:18 +02:00
9174639a82 patch 8.1.1863: confusing error when using a builtin function as method
Problem:    Confusing error when using a builtin function as method while it
            does not support that.
Solution:   Add a specific error message.
2019-08-16 22:22:31 +02:00
9c272a9e52 patch 8.1.1862: Coverity warns for not using return value
Problem:    Coverity warns for not using return value.
Solution:   Add "(void)" to avoid the warning.
2019-08-16 21:54:27 +02:00
24278d2407 patch 8.1.1861: only some assert functions can be used as a method
Problem:    Only some assert functions can be used as a method.
Solution:   Allow using most assert functions as a method.
2019-08-16 21:49:22 +02:00
ea94c85516 patch 8.1.1860: map timeout test is flaky
Problem:    Map timeout test is flaky.
Solution:   Add test to list of flaky tests.  Increase timeout.
2019-08-16 21:47:27 +02:00
427dddf014 patch 8.1.1859: timer test sometimes fails on Mac
Problem:    Timer test sometimes fails on Mac.
Solution:   Show more info when it fails.
2019-08-16 21:22:41 +02:00
2f710afe7f patch 8.1.1858: test for multi-byte mapping fails on some systems
Problem:    Test for multi-byte mapping fails on some systems.
Solution:   Test in another way.
2019-08-16 20:56:03 +02:00
c8fd33d18b patch 8.1.1857: cannot use modifier with multi-byte character
Problem:    Cannot use modifier with multi-byte character.
Solution:   Allow using a multi-byte character, although it doesn't work
            everywhere.
2019-08-16 20:33:05 +02:00
78d629a385 patch 8.1.1856: popup preview test fails sometimes
Problem:    popup preview test fails sometimes. (Christian Brabandt)
Solution:   Clear the command line.
2019-08-16 17:31:15 +02:00
9a2fddcf04 patch 8.1.1855: another failing timer test
Problem:    Another failing timer test.
Solution:   Assert that timers are finished by the end of the test.  Rename
            test functions to make them easier to find.
2019-08-16 11:26:06 +02:00
973d5304a4 patch 8.1.1854: now another timer test is flaky
Problem:    Now another timer test is flaky.
Solution:   Add test to list of flaky tests.
2019-08-16 10:51:10 +02:00
52953194af patch 8.1.1853: timers test is still flaky
Problem:    Timers test is still flaky.
Solution:   Compute the time to sleep more accurately.
2019-08-16 10:27:13 +02:00
7e6feb9eeb patch 8.1.1852: timers test is flaky
Problem:    Timers test is flaky.
Solution:   Accept a larger count.  Add test to list of flaky tests.
2019-08-15 23:42:21 +02:00
28e67e0c14 patch 8.1.1851: crash when sound_playfile() callback plays sound
Problem:    Crash when sound_playfile() callback plays sound.
Solution:   Invoke callback later from event loop.
2019-08-15 23:05:49 +02:00
5dd143e223 patch 8.1.1850: focus may remain in popup window
Problem:    Focus may remain in popup window.
Solution:   Change focus if needed.
2019-08-15 21:34:34 +02:00
9bca58f36d patch 8.1.1849 2019-08-15 21:31:52 +02:00
a4b2699e28 patch 8.1.1848: 'langmap' is not used for CTRL-W command in terminal
Problem:    'langmap' is not used for CTRL-W command in terminal.
Solution:   Push the command in the typeahead buffer instead of the stuff
            buffer. (closes #4814)
2019-08-15 20:58:54 +02:00
185d68a9d0 patch 8.1.1847: suspend test is failing
Problem:    Suspend test is failing.
Solution:   Do not use GetVimCommandClean().
2019-08-15 11:21:15 +02:00
93344c2d70 patch 8.1.1846: inconsistently using GetVimCommand() and v:progpath
Problem:    Inconsistently using GetVimCommand() and v:progpath. (Daniel
            Hahler)
Solution:   Use GetVimCommand(). (closes #4806)
2019-08-14 21:12:05 +02:00
6ace95e981 patch 8.1.1845: may use NULL pointer when running out of memory
Problem:    May use NULL pointer when running out of memory.
Solution:   Do not clear popup buffers when NULL. (closes #4802)
2019-08-13 23:09:49 +02:00
45311b5274 patch 8.1.1844: buffer no longer unloaded when adding text properties
Problem:    Buffer no longer unloaded when adding text properties to it.
Solution:   Do not create the memfile. (closes #4808)
2019-08-13 22:27:32 +02:00
f077db2423 patch 8.1.1843: might be freeing memory that was not allocated
Problem:    Might be freeing memory that was not allocated.
Solution:   Have next_fenc() set the fenc_alloced flag. (closes #4804)
2019-08-13 00:18:24 +02:00
9570aacdb8 patch 8.1.1842: test listed as flaky should no longer be flaky
Problem:    Test listed as flaky should no longer be flaky.
Solution:   Remove Test_popup_and_window_resize from the list of flaky tests.
            (Daniel Hahler, close #4807)
2019-08-12 23:56:20 +02:00
d5e3cc11d3 patch 8.1.1841: no test for Ex shift commands
Problem:    No test for Ex shift commands.
Solution:   Add a test. (Dominique Pelle, closes #4801)
2019-08-12 14:38:02 +02:00
52992feafe patch 8.1.1840: Testing: WorkingClipboard() is not accurate
Problem:    Testing: WorkingClipboard() is not accurate.
Solution:   Check feature clipboard_working instead.
2019-08-12 14:20:33 +02:00
0b5dc64446 patch 8.1.1839: insufficient info when test fails because of screen size
Problem:    Insufficient info when test fails because of screen size.
Solution:   Report the detected screen size.
2019-08-11 22:56:15 +02:00
1323 changed files with 225505 additions and 141734 deletions

16
.cirrus.yml Normal file
View File

@ -0,0 +1,16 @@
env:
CIRRUS_CLONE_DEPTH: 3
FEATURES: huge
freebsd_12_task:
freebsd_instance:
image: freebsd-12-1-release-amd64
install_script:
pkg install -y gettext
build_script:
- NPROC=$(getconf _NPROCESSORS_ONLN)
- ./configure --with-features=${FEATURES}
- make -j${NPROC}
- src/vim --version
test_script:
- make test

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
src/testdir/test42.in diff

View File

@ -8,7 +8,7 @@ labels: enhancement
_Instructions: Replace the template text and remove irrelevant text (including this line)_ _Instructions: Replace the template text and remove irrelevant text (including this line)_
**Is your feature request related something that is currently hard to do? Please describe.** **Is your feature request about something that is currently impossible or hard to do? Please describe the problem.**
A clear and concise description of what is hard to do. Ex. It is difficult to [...] when [...] A clear and concise description of what is hard to do. Ex. It is difficult to [...] when [...]
(If it is related to runtime files, please check their header for where to discuss enhancements.) (If it is related to runtime files, please check their header for where to discuss enhancements.)

5
.gitignore vendored
View File

@ -5,9 +5,11 @@ src/xxd/xxd
src/auto/if_perl.c src/auto/if_perl.c
src/auto/gui_gtk_gresources.c src/auto/gui_gtk_gresources.c
src/auto/gui_gtk_gresources.h src/auto/gui_gtk_gresources.h
src/auto/os_haiku.rdef
src/objects/.dirstamp src/objects/.dirstamp
src/objects src/objects
src/tags src/tags
src/types.vim
# We do need src/auto/configure. # We do need src/auto/configure.
src/auto/config.cache src/auto/config.cache
@ -50,6 +52,7 @@ nbproject/*
# Mac OSX # Mac OSX
src/xxd/xxd.dSYM src/xxd/xxd.dSYM
.DS_Store
# All platforms # All platforms
*.rej *.rej
@ -77,6 +80,7 @@ src/testdir/messages
src/testdir/viminfo src/testdir/viminfo
src/testdir/opt_test.vim src/testdir/opt_test.vim
runtime/indent/testdir/*.out runtime/indent/testdir/*.out
runtime/indent/testdir/*.fail
src/memfile_test src/memfile_test
src/json_test src/json_test
src/message_test src/message_test
@ -84,6 +88,7 @@ src/kword_test
# Generated by "make install" # Generated by "make install"
runtime/doc/tags runtime/doc/tags
runtime/doc/doctags
# Generated by "make shadow". The directory names could be anything but we # Generated by "make shadow". The directory names could be anything but we
# restrict them to shadow (the default) or shadow-* # restrict them to shadow (the default) or shadow-*

View File

@ -10,6 +10,7 @@ src/auto/gui_gtk_gresources.h
src/objects/.dirstamp src/objects/.dirstamp
src/objects src/objects
src/tags src/tags
src/types.vim
# We do need src/auto/configure. # We do need src/auto/configure.
src/auto/config.cache src/auto/config.cache
@ -86,6 +87,7 @@ src/kword_test
# Generated by "make install" # Generated by "make install"
runtime/doc/tags runtime/doc/tags
runtime/doc/doctags
# Generated by "make shadow". The directory names could be anything but we # Generated by "make shadow". The directory names could be anything but we
# restrict them to shadow (the default) or shadow-* # restrict them to shadow (the default) or shadow-*

View File

@ -1,35 +1,34 @@
language: c language: c
anchors: _anchors:
envs: envs:
- &tiny-nogui - &tiny-nogui
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no BUILD=yes TEST=test FEATURES=tiny CONFOPT="--disable-gui" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &tiny - &tiny
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no BUILD=yes TEST=test FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &small - &small
BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no BUILD=yes TEST=test FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &normal - &normal
BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no BUILD=yes TEST=test FEATURES=normal CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- &linux-huge - &linux-huge
BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no BUILD=yes TEST="scripttests test_libvterm" CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
- &osx-huge # macOS build - &osx-huge # macOS build
BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no BUILD=yes TEST=test FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
- &unittests - &unittests
BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes BUILD=no TEST=unittests CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
- &asan # ASAN build - &asan # ASAN build
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer" SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt" ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
- &shadowopt
SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow
linux: &linux linux: &linux
os: linux os: linux
dist: trusty dist: bionic
addons: addons:
apt: apt:
sources:
# Need msgfmt 0.19.8 to be able to generate .desktop files
- sourceline: 'ppa:ricotz/toolchain'
packages: packages:
- autoconf - autoconf
- clang - clang
@ -39,46 +38,41 @@ anchors:
- libperl-dev - libperl-dev
- python-dev - python-dev
- python3-dev - python3-dev
- liblua5.2-dev - liblua5.3-dev
- lua5.2 - lua5.3
- ruby-dev - ruby-dev
- tcl-dev - tcl-dev
- cscope - cscope
- libgtk2.0-dev - libgtk2.0-dev
- desktop-file-utils - desktop-file-utils
- libtool-bin
services:
- xvfb
before_install: before_install:
- rvm reset - rvm reset
# Remove /opt/python/3.x.x/bin from $PATH for using system python3.
# ("pyenv global system" doesn't seem to work.)
- |
if [[ "$(which python3)" =~ ^/opt/python/ ]]; then
export PATH=$(py3=$(which python3); echo ${PATH//${py3%/python3}:/})
fi
- |
if [[ "${COVERAGE}" = "yes" ]]; then
pip install --user cpp-coveralls
fi
# needed for https support for coveralls
# building cffi only works with gcc, not with clang
- |
if [[ "${COVERAGE}" = "yes" ]]; then
CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1
fi
# Use llvm-cov instead of gcov when compiler is clang. # Use llvm-cov instead of gcov when compiler is clang.
- | - |
if [[ "${CC}" = "clang" ]]; then if [[ "${CC}" = "clang" ]]; then
ln -sf "$(which llvm-cov)" /home/travis/bin/gcov ln -sf "$(command -v llvm-cov)" /home/travis/bin/gcov
fi
# Setup lua5.3 manually since its package doesn't provide alternative.
# https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
- |
if [[ "${CONFOPT}" =~ luainterp ]]; then
sudo update-alternatives --install /usr/bin/lua lua /usr/bin/lua5.3 10
fi fi
before_script: before_script:
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X. - sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
- export DISPLAY=:99.0 - sudo bash ci/load-snd-dummy.sh || true
- sh -e /etc/init.d/xvfb start && sleep 3
- sudo modprobe snd-dummy
- sudo usermod -a -G audio $USER - sudo usermod -a -G audio $USER
- do_test() { sg audio "sg $(id -gn) '$*'"; } - do_test() { sg audio "sg $(id -gn) '$*'"; }
osx: &osx osx: &osx
os: osx os: osx
before_script:
- do_test() { "$@"; }
homebrew: &osx-homebrew
addons: addons:
homebrew: homebrew:
packages: packages:
@ -87,25 +81,24 @@ anchors:
cache: cache:
directories: directories:
- /usr/local/Homebrew/Library/Homebrew/vendor/ - /usr/local/Homebrew/Library/Homebrew/vendor/
- /usr/local/Homebrew/Library/Taps/ - /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
before_install: before_install:
- rvm reset - rvm reset
# Lua is not installed on Travis OSX # Lua is not installed on macOS
- export LUA_PREFIX=/usr/local - export LUA_PREFIX=/usr/local
before_script:
- do_test() { "$@"; }
coverage: &coverage coverage: &coverage
- ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8 latin-1 EUC-KR # needed for https support for coveralls building cffi only works with gcc,
# not with clang
- CC=gcc pip install --user cpp-coveralls pyopenssl ndg-httpsclient pyasn1
- ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
- (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash)) - (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash))
asan_symbolize: &asan_symbolize asan_symbolize: &asan_symbolize
- | # Update pyenv to fix the error "/opt/pyenv/libexec/pyenv: line 43: cd: asan_symbolize-6.0: Not a directory".
while read log; do # https://github.com/pyenv/pyenv/issues/580
asan_symbolize < "${log}" - (cd "${PYENV_ROOT}" && git fetch -p origin && git checkout "$(git rev-list --tags -n1)") &>/dev/null || true
done < <(find . -type f -name 'asan.*' -size +0) - find . -type f -name 'asan.*' -size +0 2>/dev/null | xargs grep -l '^==[[:digit:]]*==ERROR:' | xargs -I{} -n1 -t asan_symbolize -l{}
sudo: false
branches: branches:
except: except:
@ -129,32 +122,35 @@ script:
- echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K" - echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K"
- | - |
if [[ "${BUILD}" = "yes" ]]; then if [[ "${BUILD}" = "yes" ]]; then
# Append various warning flags to CFLAGS.
# BSD sed needs backup extension specified.
sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
if [[ "${TRAVIS_OS_NAME}" = "osx" ]]; then
# On macOS, the entity of gcc is clang.
sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk
else
sed -i.bak -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk
fi
make ${SHADOWOPT} -j${NPROC} make ${SHADOWOPT} -j${NPROC}
fi fi
- echo -en "travis_fold:end:build\\r\\033[0K" - echo -en "travis_fold:end:build\\r\\033[0K"
- set +o errexit - set +o errexit
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
# Show Vim version and also if_xx versions. # Show Vim version and also if_xx versions.
- | - |
if [[ "${BUILD}" = "yes" ]]; then if [[ "${BUILD}" = "yes" ]]; then
"${SRCDIR}"/vim --version "${SRCDIR}"/vim --version
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-1.vim -c quit > /dev/null "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-2.vim -c quit > /dev/null "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
cat if_ver.txt
fi
- |
if do_test make ${SHADOWOPT} ${TEST}; then
echo -en "travis_fold:end:test\\r\\033[0K"
else
exit 1
fi fi
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
- do_test make ${SHADOWOPT} ${TEST} && FOLD_MARKER=travis_fold
- echo -en "${FOLD_MARKER}:end:test\\r\\033[0K"
# Instead of using all environments with both compilers on both systems,
# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env), # exclude some builds on mac os x and linux.
# exclude some builds on mac os x and linux # On mac os x "tiny" is always without GUI, use 2 compilers in 2 environments.
# on mac os x "tiny" is always without GUI # Linux: 2 compilers on some of the environments + gcc on os390
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env jobs:
matrix:
include: include:
- <<: *osx - <<: *osx
name: tiny-nogui/clang name: tiny-nogui/clang
@ -165,10 +161,12 @@ matrix:
compiler: gcc compiler: gcc
env: *tiny-nogui env: *tiny-nogui
- <<: *osx - <<: *osx
<<: *osx-homebrew
name: huge/clang name: huge/clang
compiler: clang compiler: clang
env: *osx-huge env: *osx-huge
- <<: *osx - <<: *osx
<<: *osx-homebrew
name: huge/gcc name: huge/gcc
compiler: gcc compiler: gcc
env: *osx-huge env: *osx-huge
@ -195,26 +193,34 @@ matrix:
- <<: *linux - <<: *linux
name: normal/clang name: normal/clang
compiler: clang compiler: clang
env: *normal env:
- *normal
- *shadowopt
- <<: *linux - <<: *linux
name: normal/gcc name: normal/gcc
compiler: gcc compiler: gcc
env: *normal env:
- *normal
- *shadowopt
- <<: *linux
arch: s390x
name: huge/gcc-s390x
compiler: gcc
env: *linux-huge
services: []
- <<: *linux - <<: *linux
name: huge+coverage/clang name: huge+coverage/clang
compiler: clang compiler: clang
env: *linux-huge env:
- *linux-huge
# Clang cannot compile test_libvterm with "--coverage" flag.
- TEST=scripttests
after_success: *coverage after_success: *coverage
- <<: *linux - <<: *linux
name: huge+coverage/gcc name: huge+coverage/gcc
compiler: gcc compiler: gcc
env: *linux-huge env: *linux-huge
after_success: *coverage after_success: *coverage
- <<: *linux
name: unittests+coverage/gcc
compiler: gcc
env: *unittests
after_success: *coverage
- <<: *linux # ASAN - <<: *linux # ASAN
name: huge+asan/gcc name: huge+asan/gcc
compiler: gcc compiler: gcc
@ -229,5 +235,16 @@ matrix:
- *linux-huge - *linux-huge
- TEST="-C src testgui" - TEST="-C src testgui"
after_success: *coverage after_success: *coverage
- <<: *linux
name: unittests+coverage/gcc
compiler: gcc
env: *unittests
after_success: *coverage
- <<: *linux
name: vimtags/gcc
compiler: gcc
env:
- *normal
- TEST="-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
# vim:set sts=2 sw=2 tw=0 et: # vim:set sts=2 sw=2 tw=0 et:

View File

@ -65,6 +65,9 @@ If the maintainer does not respond, contact the vim-dev maillist.
# Translations # Translations
Translations of this CONTRIBUTING file:
[Korean](https://github.com/cjw1359/opensource/blob/master/Vim/CONTRIBUTING_ko.md)
Translating messages and runtime files is very much appreciated! These things Translating messages and runtime files is very much appreciated! These things
can be translated: can be translated:
* Messages in Vim, see [src/po/README.txt][1] * Messages in Vim, see [src/po/README.txt][1]

157
Filelist
View File

@ -4,15 +4,21 @@
# source files for all source archives # source files for all source archives
SRC_ALL = \ SRC_ALL = \
.gitignore \ .gitignore \
.gitattributes \
.hgignore \ .hgignore \
.lgtm.yml \ .lgtm.yml \
.travis.yml \ .travis.yml \
.cirrus.yml \
appveyor.yml \ appveyor.yml \
ci/appveyor.bat \ ci/appveyor.bat \
ci/if_ver*.vim \
ci/load-snd-dummy.sh \
ci/config.mk*.sed \
src/Make_all.mak \ src/Make_all.mak \
src/README.md \ src/README.md \
src/alloc.h \ src/alloc.h \
src/arabic.c \ src/arabic.c \
src/arglist.c \
src/ascii.h \ src/ascii.h \
src/autocmd.c \ src/autocmd.c \
src/beval.c \ src/beval.c \
@ -20,9 +26,14 @@ SRC_ALL = \
src/blob.c \ src/blob.c \
src/blowfish.c \ src/blowfish.c \
src/buffer.c \ src/buffer.c \
src/bufwrite.c \
src/change.c \ src/change.c \
src/channel.c \ src/channel.c \
src/charset.c \ src/charset.c \
src/cindent.c \
src/clientserver.c \
src/clipboard.c \
src/cmdexpand.c \
src/cmdhist.c \ src/cmdhist.c \
src/crypt.c \ src/crypt.c \
src/crypt_zip.c \ src/crypt_zip.c \
@ -30,9 +41,14 @@ SRC_ALL = \
src/dict.c \ src/dict.c \
src/diff.c \ src/diff.c \
src/digraph.c \ src/digraph.c \
src/drawline.c \
src/drawscreen.c \
src/edit.c \ src/edit.c \
src/eval.c \ src/eval.c \
src/evalbuffer.c \
src/evalfunc.c \ src/evalfunc.c \
src/evalvars.c \
src/evalwindow.c \
src/ex_cmdidxs.h \ src/ex_cmdidxs.h \
src/ex_cmds.c \ src/ex_cmds.c \
src/ex_cmds.h \ src/ex_cmds.h \
@ -42,6 +58,7 @@ SRC_ALL = \
src/ex_getln.c \ src/ex_getln.c \
src/feature.h \ src/feature.h \
src/fileio.c \ src/fileio.c \
src/filepath.c \
src/findfile.c \ src/findfile.c \
src/fold.c \ src/fold.c \
src/getchar.c \ src/getchar.c \
@ -72,6 +89,7 @@ SRC_ALL = \
src/message_test.c \ src/message_test.c \
src/misc1.c \ src/misc1.c \
src/misc2.c \ src/misc2.c \
src/mouse.c \
src/move.c \ src/move.c \
src/mysign \ src/mysign \
src/nbdebug.c \ src/nbdebug.c \
@ -81,13 +99,18 @@ SRC_ALL = \
src/ops.c \ src/ops.c \
src/option.c \ src/option.c \
src/option.h \ src/option.h \
src/popupmnu.c \ src/optiondefs.h \
src/optionstr.c \
src/popupmenu.c \
src/popupwin.c \ src/popupwin.c \
src/profiler.c \ src/profiler.c \
src/quickfix.c \ src/quickfix.c \
src/regexp.c \ src/regexp.c \
src/regexp_bt.c \
src/regexp_nfa.c \ src/regexp_nfa.c \
src/regexp.h \ src/regexp.h \
src/register.c \
src/scriptfile.c \
src/screen.c \ src/screen.c \
src/search.c \ src/search.c \
src/session.c \ src/session.c \
@ -97,6 +120,7 @@ SRC_ALL = \
src/spell.c \ src/spell.c \
src/spell.h \ src/spell.h \
src/spellfile.c \ src/spellfile.c \
src/spellsuggest.c \
src/structs.h \ src/structs.h \
src/syntax.c \ src/syntax.c \
src/tag.c \ src/tag.c \
@ -105,7 +129,11 @@ SRC_ALL = \
src/term.h \ src/term.h \
src/termlib.c \ src/termlib.c \
src/testing.c \ src/testing.c \
src/textformat.c \
src/textobject.c \
src/textprop.c \ src/textprop.c \
src/time.c \
src/typval.c \
src/ui.c \ src/ui.c \
src/undo.c \ src/undo.c \
src/usercmd.c \ src/usercmd.c \
@ -113,6 +141,10 @@ SRC_ALL = \
src/version.c \ src/version.c \
src/version.h \ src/version.h \
src/vim.h \ src/vim.h \
src/vim9.h \
src/vim9compile.c \
src/vim9execute.c \
src/vim9script.c \
src/viminfo.c \ src/viminfo.c \
src/winclip.c \ src/winclip.c \
src/window.c \ src/window.c \
@ -125,20 +157,22 @@ SRC_ALL = \
src/testdir/*.py \ src/testdir/*.py \
src/testdir/lsan-suppress.txt \ src/testdir/lsan-suppress.txt \
src/testdir/sautest/autoload/*.vim \ src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \ src/testdir/testluaplugin/lua/testluaplugin/*.lua \
src/testdir/summarize.vim \
src/testdir/check.vim \ src/testdir/check.vim \
src/testdir/shared.vim \
src/testdir/screendump.vim \
src/testdir/view_util.vim \
src/testdir/term_util.vim \
src/testdir/setup.vim \
src/testdir/gui_init.vim \ src/testdir/gui_init.vim \
src/testdir/setup_gui.vim \
src/testdir/gui_preinit.vim \ src/testdir/gui_preinit.vim \
src/testdir/mouse.vim \
src/testdir/runtest.vim \
src/testdir/screendump.vim \
src/testdir/setup.vim \
src/testdir/setup_gui.vim \
src/testdir/shared.vim \
src/testdir/vim9.vim \
src/testdir/summarize.vim \
src/testdir/term_util.vim \
src/testdir/view_util.vim \
src/testdir/test[0-9]*.ok \ src/testdir/test[0-9]*.ok \
src/testdir/test[0-9]*a.ok \ src/testdir/test[0-9]*a.ok \
src/testdir/test_[a-z]*.ok \
src/testdir/test49.vim \ src/testdir/test49.vim \
src/testdir/test83-tags? \ src/testdir/test83-tags? \
src/testdir/test77a.com \ src/testdir/test77a.com \
@ -153,41 +187,51 @@ SRC_ALL = \
src/testdir/python_after/*.py \ src/testdir/python_after/*.py \
src/testdir/python_before/*.py \ src/testdir/python_before/*.py \
src/testdir/pyxfile/*.py \ src/testdir/pyxfile/*.py \
src/testdir/bench*.in \
src/testdir/bench*.vim \
src/testdir/dumps/*.dump \ src/testdir/dumps/*.dump \
src/testdir/samples/*.txt \ src/testdir/samples/*.txt \
src/testdir/samples/test000 \ src/testdir/samples/test000 \
src/testdir/if_ver*.vim \
src/testdir/color_ramp.vim \ src/testdir/color_ramp.vim \
src/testdir/silent.wav \ src/testdir/silent.wav \
src/testdir/popupbounce.vim \ src/testdir/popupbounce.vim \
src/proto.h \ src/proto.h \
src/protodef.h \ src/protodef.h \
src/proto/arabic.pro \ src/proto/arabic.pro \
src/proto/arglist.pro \
src/proto/autocmd.pro \ src/proto/autocmd.pro \
src/proto/beval.pro \ src/proto/beval.pro \
src/proto/blob.pro \ src/proto/blob.pro \
src/proto/blowfish.pro \ src/proto/blowfish.pro \
src/proto/buffer.pro \ src/proto/buffer.pro \
src/proto/bufwrite.pro \
src/proto/change.pro \ src/proto/change.pro \
src/proto/channel.pro \ src/proto/channel.pro \
src/proto/charset.pro \ src/proto/charset.pro \
src/proto/cindent.pro \
src/proto/clientserver.pro \
src/proto/clipboard.pro \
src/proto/cmdexpand.pro \
src/proto/cmdhist.pro \
src/proto/crypt.pro \ src/proto/crypt.pro \
src/proto/crypt_zip.pro \ src/proto/crypt_zip.pro \
src/proto/debugger.pro \ src/proto/debugger.pro \
src/proto/dict.pro \ src/proto/dict.pro \
src/proto/diff.pro \ src/proto/diff.pro \
src/proto/digraph.pro \ src/proto/digraph.pro \
src/proto/drawline.pro \
src/proto/drawscreen.pro \
src/proto/edit.pro \ src/proto/edit.pro \
src/proto/eval.pro \ src/proto/eval.pro \
src/proto/evalbuffer.pro \
src/proto/evalfunc.pro \ src/proto/evalfunc.pro \
src/proto/evalvars.pro \
src/proto/evalwindow.pro \
src/proto/ex_cmds.pro \ src/proto/ex_cmds.pro \
src/proto/ex_cmds2.pro \ src/proto/ex_cmds2.pro \
src/proto/ex_docmd.pro \ src/proto/ex_docmd.pro \
src/proto/ex_eval.pro \ src/proto/ex_eval.pro \
src/proto/ex_getln.pro \ src/proto/ex_getln.pro \
src/proto/fileio.pro \ src/proto/fileio.pro \
src/proto/filepath.pro \
src/proto/findfile.pro \ src/proto/findfile.pro \
src/proto/fold.pro \ src/proto/fold.pro \
src/proto/getchar.pro \ src/proto/getchar.pro \
@ -210,16 +254,20 @@ SRC_ALL = \
src/proto/message.pro \ src/proto/message.pro \
src/proto/misc1.pro \ src/proto/misc1.pro \
src/proto/misc2.pro \ src/proto/misc2.pro \
src/proto/mouse.pro \
src/proto/move.pro \ src/proto/move.pro \
src/proto/netbeans.pro \ src/proto/netbeans.pro \
src/proto/normal.pro \ src/proto/normal.pro \
src/proto/ops.pro \ src/proto/ops.pro \
src/proto/option.pro \ src/proto/option.pro \
src/proto/popupmnu.pro \ src/proto/optionstr.pro \
src/proto/popupmenu.pro \
src/proto/popupwin.pro \ src/proto/popupwin.pro \
src/proto/profiler.pro \ src/proto/profiler.pro \
src/proto/quickfix.pro \ src/proto/quickfix.pro \
src/proto/regexp.pro \ src/proto/regexp.pro \
src/proto/register.pro \
src/proto/scriptfile.pro \
src/proto/screen.pro \ src/proto/screen.pro \
src/proto/search.pro \ src/proto/search.pro \
src/proto/session.pro \ src/proto/session.pro \
@ -228,18 +276,26 @@ SRC_ALL = \
src/proto/sound.pro \ src/proto/sound.pro \
src/proto/spell.pro \ src/proto/spell.pro \
src/proto/spellfile.pro \ src/proto/spellfile.pro \
src/proto/spellsuggest.pro \
src/proto/syntax.pro \ src/proto/syntax.pro \
src/proto/tag.pro \ src/proto/tag.pro \
src/proto/term.pro \ src/proto/term.pro \
src/proto/terminal.pro \ src/proto/terminal.pro \
src/proto/termlib.pro \ src/proto/termlib.pro \
src/proto/testing.pro \ src/proto/testing.pro \
src/proto/textformat.pro \
src/proto/textobject.pro \
src/proto/textprop.pro \ src/proto/textprop.pro \
src/proto/time.pro \
src/proto/typval.pro \
src/proto/ui.pro \ src/proto/ui.pro \
src/proto/undo.pro \ src/proto/undo.pro \
src/proto/usercmd.pro \ src/proto/usercmd.pro \
src/proto/userfunc.pro \ src/proto/userfunc.pro \
src/proto/version.pro \ src/proto/version.pro \
src/proto/vim9compile.pro \
src/proto/vim9execute.pro \
src/proto/vim9script.pro \
src/proto/viminfo.pro \ src/proto/viminfo.pro \
src/proto/winclip.pro \ src/proto/winclip.pro \
src/proto/window.pro \ src/proto/window.pro \
@ -248,13 +304,12 @@ SRC_ALL = \
src/libvterm/LICENSE \ src/libvterm/LICENSE \
src/libvterm/Makefile \ src/libvterm/Makefile \
src/libvterm/README \ src/libvterm/README \
src/libvterm/CONTRIBUTING \
src/libvterm/tbl2inc_c.pl \ src/libvterm/tbl2inc_c.pl \
src/libvterm/vterm.pc.in \ src/libvterm/vterm.pc.in \
src/libvterm/bin/unterm.c \
src/libvterm/bin/vterm-ctrl.c \
src/libvterm/bin/vterm-dump.c \
src/libvterm/doc/URLs \ src/libvterm/doc/URLs \
src/libvterm/doc/seqs.txt \ src/libvterm/doc/seqs.txt \
src/libvterm/find-wide-chars.pl \
src/libvterm/include/vterm.h \ src/libvterm/include/vterm.h \
src/libvterm/include/vterm_keycodes.h \ src/libvterm/include/vterm_keycodes.h \
src/libvterm/src/encoding.c \ src/libvterm/src/encoding.c \
@ -262,12 +317,13 @@ SRC_ALL = \
src/libvterm/src/encoding/DECdrawing.tbl \ src/libvterm/src/encoding/DECdrawing.tbl \
src/libvterm/src/encoding/uk.inc \ src/libvterm/src/encoding/uk.inc \
src/libvterm/src/encoding/uk.tbl \ src/libvterm/src/encoding/uk.tbl \
src/libvterm/src/fullwidth.inc \
src/libvterm/src/keyboard.c \ src/libvterm/src/keyboard.c \
src/libvterm/src/mouse.c \ src/libvterm/src/mouse.c \
src/libvterm/src/parser.c \ src/libvterm/src/parser.c \
src/libvterm/src/pen.c \ src/libvterm/src/pen.c \
src/libvterm/src/rect.h \ src/libvterm/src/rect.h \
src/libvterm/src/termscreen.c \ src/libvterm/src/screen.c \
src/libvterm/src/state.c \ src/libvterm/src/state.c \
src/libvterm/src/unicode.c \ src/libvterm/src/unicode.c \
src/libvterm/src/utf8.h \ src/libvterm/src/utf8.h \
@ -292,16 +348,18 @@ SRC_ALL = \
src/libvterm/t/27state_reset.test \ src/libvterm/t/27state_reset.test \
src/libvterm/t/28state_dbl_wh.test \ src/libvterm/t/28state_dbl_wh.test \
src/libvterm/t/29state_fallback.test \ src/libvterm/t/29state_fallback.test \
src/libvterm/t/30pen.test \ src/libvterm/t/30state_pen.test \
src/libvterm/t/40screen_ascii.test \ src/libvterm/t/31state_rep.test \
src/libvterm/t/41screen_unicode.test \ src/libvterm/t/32state_flow.test \
src/libvterm/t/42screen_damage.test \ src/libvterm/t/60screen_ascii.test \
src/libvterm/t/43screen_resize.test \ src/libvterm/t/61screen_unicode.test \
src/libvterm/t/44screen_pen.test \ src/libvterm/t/62screen_damage.test \
src/libvterm/t/45screen_protect.test \ src/libvterm/t/63screen_resize.test \
src/libvterm/t/46screen_extent.test \ src/libvterm/t/64screen_pen.test \
src/libvterm/t/47screen_dbl_wh.test \ src/libvterm/t/65screen_protect.test \
src/libvterm/t/48screen_termprops.test \ src/libvterm/t/66screen_extent.test \
src/libvterm/t/67screen_dbl_wh.test \
src/libvterm/t/68screen_termprops.test \
src/libvterm/t/90vttest_01-movement-1.test \ src/libvterm/t/90vttest_01-movement-1.test \
src/libvterm/t/90vttest_01-movement-2.test \ src/libvterm/t/90vttest_01-movement-2.test \
src/libvterm/t/90vttest_01-movement-3.test \ src/libvterm/t/90vttest_01-movement-3.test \
@ -361,13 +419,13 @@ SRC_UNIX = \
src/gui_gtk_x11.c \ src/gui_gtk_x11.c \
src/gui_gtk_res.xml \ src/gui_gtk_res.xml \
src/gui_motif.c \ src/gui_motif.c \
src/gui_xim.c \
src/gui_xmdlg.c \ src/gui_xmdlg.c \
src/gui_xmebw.c \ src/gui_xmebw.c \
src/gui_xmebw.h \ src/gui_xmebw.h \
src/gui_xmebwp.h \ src/gui_xmebwp.h \
src/gui_x11.c \ src/gui_x11.c \
src/gui_x11_pm.h \ src/gui_x11_pm.h \
src/hangulin.c \
src/if_xcmdsrv.c \ src/if_xcmdsrv.c \
src/link.sh \ src/link.sh \
src/installman.sh \ src/installman.sh \
@ -385,9 +443,9 @@ SRC_UNIX = \
src/proto/gui_gtk_x11.pro \ src/proto/gui_gtk_x11.pro \
src/proto/gui_gtk_gresources.pro \ src/proto/gui_gtk_gresources.pro \
src/proto/gui_motif.pro \ src/proto/gui_motif.pro \
src/proto/gui_xim.pro \
src/proto/gui_xmdlg.pro \ src/proto/gui_xmdlg.pro \
src/proto/gui_x11.pro \ src/proto/gui_x11.pro \
src/proto/hangulin.pro \
src/proto/if_xcmdsrv.pro \ src/proto/if_xcmdsrv.pro \
src/proto/os_unix.pro \ src/proto/os_unix.pro \
src/proto/pty.pro \ src/proto/pty.pro \
@ -488,10 +546,9 @@ SRC_DOS = \
src/testdir/Make_dos.mak \ src/testdir/Make_dos.mak \
src/testdir/Make_ming.mak \ src/testdir/Make_ming.mak \
src/testdir/dos.vim \ src/testdir/dos.vim \
src/uninstal.c \ src/uninstall.c \
src/vim.def \ src/vim.def \
src/vim.rc \ src/vim.rc \
src/vimio.h \
src/gvim.exe.mnf \ src/gvim.exe.mnf \
src/vimrun.c \ src/vimrun.c \
src/xpm_w32.c \ src/xpm_w32.c \
@ -503,7 +560,7 @@ SRC_DOS = \
nsis/gvim_version.nsh \ nsis/gvim_version.nsh \
nsis/README.txt \ nsis/README.txt \
nsis/lang/*.nsi \ nsis/lang/*.nsi \
uninstal.txt \ uninstall.txt \
src/VisVim/Commands.cpp \ src/VisVim/Commands.cpp \
src/VisVim/Commands.h \ src/VisVim/Commands.h \
src/VisVim/DSAddIn.cpp \ src/VisVim/DSAddIn.cpp \
@ -561,6 +618,15 @@ SRC_AMI = \
src/testdir/amiga.vim \ src/testdir/amiga.vim \
src/xxd/Make_amiga.mak \ src/xxd/Make_amiga.mak \
# source files for Haiku (also in the extra archive)
SRC_HAIKU = \
README_haiku.txt \
src/os_haiku.h \
src/os_haiku.rdef.in \
src/gui_haiku.cc \
src/gui_haiku.h \
src/proto/gui_haiku.pro \
# source files for the Mac (also in the extra archive) # source files for the Mac (also in the extra archive)
SRC_MAC = \ SRC_MAC = \
src/INSTALLmac.txt \ src/INSTALLmac.txt \
@ -596,13 +662,13 @@ SRC_QNX = \
src/proto/gui_photon.pro \ src/proto/gui_photon.pro \
src/proto/os_qnx.pro \ src/proto/os_qnx.pro \
# source files for the extra archive (all sources that are not for Unix) # source files for the extra archive (all sources that are not for Unix)
SRC_EXTRA = \ SRC_EXTRA = \
$(SRC_AMI) \ $(SRC_AMI) \
$(SRC_AMI_DOS) \ $(SRC_AMI_DOS) \
$(SRC_DOS) \ $(SRC_DOS) \
$(SRC_DOS_BIN) \ $(SRC_DOS_BIN) \
$(SRC_HAIKU) \
$(SRC_MAC) \ $(SRC_MAC) \
$(SRC_QNX) \ $(SRC_QNX) \
$(SRC_VMS) \ $(SRC_VMS) \
@ -610,10 +676,6 @@ SRC_EXTRA = \
src/Make_mint.mak \ src/Make_mint.mak \
src/infplist.xml \ src/infplist.xml \
src/link.390 \ src/link.390 \
src/os_beos.c \
src/os_beos.h \
src/os_beos.rsrc \
src/proto/os_beos.pro \
src/os_mint.h \ src/os_mint.h \
src/os_vms_fix.com \ src/os_vms_fix.com \
src/toolbar.phi \ src/toolbar.phi \
@ -622,6 +684,8 @@ SRC_EXTRA = \
RT_ALL = \ RT_ALL = \
README.txt \ README.txt \
README.md \ README.md \
README_VIM9.md \
LICENSE \
CONTRIBUTING.md \ CONTRIBUTING.md \
runtime/bugreport.vim \ runtime/bugreport.vim \
runtime/doc/*.awk \ runtime/doc/*.awk \
@ -629,6 +693,7 @@ RT_ALL = \
runtime/doc/*.txt \ runtime/doc/*.txt \
runtime/doc/Makefile \ runtime/doc/Makefile \
runtime/doc/doctags.c \ runtime/doc/doctags.c \
runtime/doc/doctags.vim \
runtime/doc/test_urls.vim \ runtime/doc/test_urls.vim \
runtime/doc/vim.1 \ runtime/doc/vim.1 \
runtime/doc/evim.1 \ runtime/doc/evim.1 \
@ -735,20 +800,20 @@ RT_UNIX = \
README_unix.txt \ README_unix.txt \
runtime/hi16-action-make.png \ runtime/hi16-action-make.png \
runtime/hi22-action-make.png \ runtime/hi22-action-make.png \
runtime/vim16x16.png \
runtime/vim16x16.xpm \
runtime/vim32x32.png \
runtime/vim32x32.xpm \
runtime/vim48x48.png \
runtime/vim48x48.xpm \
runtime/gvim.desktop \ runtime/gvim.desktop \
runtime/vim.desktop \ runtime/vim.desktop \
# Unix and DOS runtime without CR-LF translation # Unix and DOS runtime without CR-LF translation
RT_UNIX_DOS_BIN = \ RT_UNIX_DOS_BIN = \
runtime/vim16x16.gif \ runtime/vim16x16.gif \
runtime/vim16x16.png \
runtime/vim16x16.xpm \
runtime/vim32x32.gif \ runtime/vim32x32.gif \
runtime/vim32x32.png \
runtime/vim32x32.xpm \
runtime/vim48x48.gif \ runtime/vim48x48.gif \
runtime/vim48x48.png \
runtime/vim48x48.xpm \
# runtime not for unix or extra # runtime not for unix or extra
RT_NO_UNIX = \ RT_NO_UNIX = \
@ -823,7 +888,7 @@ BIN_AMI = \
# files for DOS binary (also in extra archive) # files for DOS binary (also in extra archive)
BIN_DOS = \ BIN_DOS = \
README_bindos.txt \ README_bindos.txt \
uninstal.txt \ uninstall.txt \
# files for Win32 OLE binary (also in extra archive) # files for Win32 OLE binary (also in extra archive)
BIN_OLE = \ BIN_OLE = \
@ -907,6 +972,8 @@ LANG_GEN = \
runtime/doc/*-pl.UTF-8.1 \ runtime/doc/*-pl.UTF-8.1 \
runtime/doc/*-ru.1 \ runtime/doc/*-ru.1 \
runtime/doc/*-ru.UTF-8.1 \ runtime/doc/*-ru.UTF-8.1 \
runtime/doc/*-tr.1 \
runtime/doc/*-tr.UTF-8.1 \
runtime/lang/README.txt \ runtime/lang/README.txt \
runtime/lang/menu_*.vim \ runtime/lang/menu_*.vim \
runtime/keymap/README.txt \ runtime/keymap/README.txt \

78
LICENSE Normal file
View File

@ -0,0 +1,78 @@
VIM LICENSE
I) There are no restrictions on distributing unmodified copies of Vim except
that they must include this license text. You can also distribute
unmodified parts of Vim, likewise unrestricted except that they must
include this license text. You are also allowed to include executables
that you made from the unmodified Vim sources, plus your own usage
examples and Vim scripts.
II) It is allowed to distribute a modified (or extended) version of Vim,
including executables and/or source code, when the following four
conditions are met:
1) This license text must be included unmodified.
2) The modified Vim must be distributed in one of the following five ways:
a) If you make changes to Vim yourself, you must clearly describe in
the distribution how to contact you. When the maintainer asks you
(in any way) for a copy of the modified Vim you distributed, you
must make your changes, including source code, available to the
maintainer without fee. The maintainer reserves the right to
include your changes in the official version of Vim. What the
maintainer will do with your changes and under what license they
will be distributed is negotiable. If there has been no negotiation
then this license, or a later version, also applies to your changes.
The current maintainer is Bram Moolenaar <Bram@vim.org>. If this
changes it will be announced in appropriate places (most likely
vim.sf.net, www.vim.org and/or comp.editors). When it is completely
impossible to contact the maintainer, the obligation to send him
your changes ceases. Once the maintainer has confirmed that he has
received your changes they will not have to be sent again.
b) If you have received a modified Vim that was distributed as
mentioned under a) you are allowed to further distribute it
unmodified, as mentioned at I). If you make additional changes the
text under a) applies to those changes.
c) Provide all the changes, including source code, with every copy of
the modified Vim you distribute. This may be done in the form of a
context diff. You can choose what license to use for new code you
add. The changes and their license must not restrict others from
making their own changes to the official version of Vim.
d) When you have a modified Vim which includes changes as mentioned
under c), you can distribute it without the source code for the
changes if the following three conditions are met:
- The license that applies to the changes permits you to distribute
the changes to the Vim maintainer without fee or restriction, and
permits the Vim maintainer to include the changes in the official
version of Vim without fee or restriction.
- You keep the changes for at least three years after last
distributing the corresponding modified Vim. When the maintainer
or someone who you distributed the modified Vim to asks you (in
any way) for the changes within this period, you must make them
available to him.
- You clearly describe in the distribution how to contact you. This
contact information must remain valid for at least three years
after last distributing the corresponding modified Vim, or as long
as possible.
e) When the GNU General Public License (GPL) applies to the changes,
you can distribute the modified Vim under the GNU GPL version 2 or
any later version.
3) A message must be added, at least in the output of the ":version"
command and in the intro screen, such that the user of the modified Vim
is able to see that it was modified. When distributing as mentioned
under 2)e) adding the message is only required for as far as this does
not conflict with the license used for the changes.
4) The contact information as required under 2)a) and 2)d) must not be
removed or changed, except that the person himself can make
corrections.
III) If you distribute a modified version of Vim, you are encouraged to use
the Vim license for your changes and make them available to the
maintainer, including the source code. The preferred way to do this is
by e-mail or by uploading the files to a server and e-mailing the URL.
If the number of changes is small (e.g., a modified Makefile) e-mailing a
context diff will do. The e-mail address to be used is
<maintainer@vim.org>
IV) It is not allowed to remove this license from the distribution of the Vim
sources, parts of it or from a modified version. You may use this
license for previous Vim releases instead of the license that they came
with, at your option.

View File

@ -85,19 +85,19 @@ indenttest:
# Before creating an archive first delete all backup files, *.orig, etc. # Before creating an archive first delete all backup files, *.orig, etc.
MAJOR = 8 MAJOR = 8
MINOR = 1 MINOR = 2
# CHECKLIST for creating a new version: # CHECKLIST for creating a new version:
# #
# - Update Vim version number. For a test version in: src/version.h, # - Update Vim version number. For a test version in: src/version.h,
# READMEdir/Contents, MAJOR/MINOR above, VIMMAJOR and VIMMINOR in # READMEdir/Contents, MAJOR/MINOR above, VIMMAJOR and VIMMINOR in
# src/Makefile, README.txt, README.md, READMEdir/README*.txt, # src/Makefile, README.txt, README.md, src/README.md, READMEdir/README*.txt,
# runtime/doc/*.txt and make nsis/gvim_version.nsh. # runtime/doc/*.txt and make nsis/gvim_version.nsh.
# For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, # For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def,
# src/gvim.exe.mnf. # src/gvim.exe.mnf.
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if # - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, Lua, Cscope and
# you can make it all work), Cscope and "huge" features. Exclude workshop # "huge" features. Add MZscheme if you can make it work.
# and SNiFF. # Use "make reconfig" after selecting the configure arguments.
# - With these features: "make proto" (requires cproto and Motif installed; # - With these features: "make proto" (requires cproto and Motif installed;
# ignore warnings for missing include files, fix problems for syntax errors). # ignore warnings for missing include files, fix problems for syntax errors).
# - With these features: "make depend" (works best with gcc). # - With these features: "make depend" (works best with gcc).
@ -106,9 +106,6 @@ MINOR = 1
# - If you have valgrind, enable it in src/testdir/Makefile and run "make # - If you have valgrind, enable it in src/testdir/Makefile and run "make
# test". Enable EXITFREE, disable GUI, scheme and tcl to avoid false alarms. # test". Enable EXITFREE, disable GUI, scheme and tcl to avoid false alarms.
# Check the valgrind output. # Check the valgrind output.
# - If you have the efence library, enable it in "src/Makefile" and run "make
# test". Disable Python and Ruby to avoid trouble with threads (efence is
# not threadsafe).
# - Adjust the date and other info in src/version.h. # - Adjust the date and other info in src/version.h.
# - Correct included_patches[] in src/version.c. # - Correct included_patches[] in src/version.c.
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script). # - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
@ -148,7 +145,7 @@ MINOR = 1
# - > make dossrc # - > make dossrc
# > make dosrt # > make dosrt
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC. # Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
# This creates the directory vim/vim81 and puts all files in there. # This creates the directory vim/vim82 and puts all files in there.
# Win32 console version build: # Win32 console version build:
# - See src/INSTALLpc.txt for installing the compiler and SDK. # - See src/INSTALLpc.txt for installing the compiler and SDK.
# - Set environment for Visual C++ 2015: # - Set environment for Visual C++ 2015:
@ -156,7 +153,7 @@ MINOR = 1
# > msvc2015.bat # > msvc2015.bat
# - Build the console binary: # - Build the console binary:
# > nmake -f Make_mvc.mak # > nmake -f Make_mvc.mak
# - Run the tests and check the ouput: # - Run the tests and check the output:
# > nmake -f Make_mvc.mak testclean # > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak test # > nmake -f Make_mvc.mak test
# - Rename (using ../tools/rename.bat): # - Rename (using ../tools/rename.bat):
@ -165,7 +162,7 @@ MINOR = 1
# xxd/xxd.exe to xxdw32.exe # xxd/xxd.exe to xxdw32.exe
# vim.pdb to vimw32.pdb # vim.pdb to vimw32.pdb
# install.exe to installw32.exe # install.exe to installw32.exe
# uninstal.exe to uninstalw32.exe # uninstall.exe to uninstallw32.exe
# Win32 GUI version build: # Win32 GUI version build:
# - > cd src # - > cd src
# > nmake -f Make_mvc.mak GUI=yes # > nmake -f Make_mvc.mak GUI=yes
@ -175,7 +172,7 @@ MINOR = 1
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it). # - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move gvim.pdb to here. # - Move gvim.pdb to here.
# - Copy "GvimExt/gvimext.dll" to here. # - Copy "GvimExt/gvimext.dll" to here.
# - Delete vimrun.exe, install.exe and uninstal.exe. # - Delete vimrun.exe, install.exe and uninstall.exe.
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME: # Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
# - Install the interfaces you want, see src/INSTALLpc.txt # - Install the interfaces you want, see src/INSTALLpc.txt
# Adjust bigvim.bat to match the version of each interface you want. # Adjust bigvim.bat to match the version of each interface you want.
@ -188,7 +185,7 @@ MINOR = 1
# - check the output. # - check the output.
# - Rename "gvim.exe" to "gvim_ole.exe". # - Rename "gvim.exe" to "gvim_ole.exe".
# - Rename gvim.pdb to "gvim_ole.pdb". # - Rename gvim.pdb to "gvim_ole.pdb".
# - Delete install.exe and uninstal.exe. # - Delete install.exe and uninstall.exe.
# Create the archives: # Create the archives:
# - Copy all the "*.exe" files to where this Makefile is. # - Copy all the "*.exe" files to where this Makefile is.
# - Copy all the "*.pdb" files to where this Makefile is. # - Copy all the "*.pdb" files to where this Makefile is.
@ -197,7 +194,7 @@ MINOR = 1
# NSIS self installing exe: # NSIS self installing exe:
# - To get NSIS see http://nsis.sourceforge.net # - To get NSIS see http://nsis.sourceforge.net
# - Make sure gvim_ole.exe, vimw32.exe, installw32.exe, # - Make sure gvim_ole.exe, vimw32.exe, installw32.exe,
# uninstalw32.exe, teew32.exe and xxdw32.exe have been build as mentioned # uninstallw32.exe, teew32.exe and xxdw32.exe have been build as mentioned
# above. # above.
# - copy these files (get them from a binary archive or build them): # - copy these files (get them from a binary archive or build them):
# gvimext.dll in src/GvimExt # gvimext.dll in src/GvimExt
@ -206,7 +203,7 @@ MINOR = 1
# Note: VisVim needs to be build with MSVC 5, newer versions don't work. # Note: VisVim needs to be build with MSVC 5, newer versions don't work.
# gvimext64.dll can be obtained from: # gvimext64.dll can be obtained from:
# https://github.com/vim/vim-win32-installer/releases # https://github.com/vim/vim-win32-installer/releases
# It is part of gvim_8.0.*_x64.zip as vim/vim80/GvimExt/gvimext64.dll. # It is part of gvim_8.2.*_x64.zip as vim/vim82/GvimExt/gvimext64.dll.
# - Make sure there is a diff.exe two levels up (get it from a previous Vim # - Make sure there is a diff.exe two levels up (get it from a previous Vim
# version). Also put winpty32.dll and winpty-agent.exe there. # version). Also put winpty32.dll and winpty-agent.exe there.
# - go to ../nsis and do: # - go to ../nsis and do:
@ -518,7 +515,7 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe cp uninstallw32.exe dist/vim/$(VIMRTDIR)/uninstall.exe
mkdir dist/vim/$(VIMRTDIR)/GvimExt32 mkdir dist/vim/$(VIMRTDIR)/GvimExt32
cp gvimext.dll dist/vim/$(VIMRTDIR)/GvimExt32/gvimext.dll cp gvimext.dll dist/vim/$(VIMRTDIR)/GvimExt32/gvimext.dll
mkdir dist/vim/$(VIMRTDIR)/GvimExt64 mkdir dist/vim/$(VIMRTDIR)/GvimExt64
@ -539,7 +536,7 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe cp uninstallw32.exe dist/vim/$(VIMRTDIR)/uninstall.exe
cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32) cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32)
cp vimw32.pdb dist/vim$(VERSION)w32.pdb cp vimw32.pdb dist/vim$(VERSION)w32.pdb
@ -557,7 +554,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe cp uninstallw32.exe dist/vim/$(VIMRTDIR)/uninstall.exe
cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
cp README_ole.txt dist/vim/$(VIMRTDIR) cp README_ole.txt dist/vim/$(VIMRTDIR)
cp src/VisVim/VisVim.dll dist/vim/$(VIMRTDIR)/VisVim.dll cp src/VisVim/VisVim.dll dist/vim/$(VIMRTDIR)/VisVim.dll

View File

@ -1,12 +1,14 @@
![Vim Logo](https://github.com/vim/vim/blob/master/runtime/vimlogo.gif) ![Vim Logo](https://github.com/vim/vim/blob/master/runtime/vimlogo.gif)
[![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim) [![Travis Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
[![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim) [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim)
[![Cirrus Build Status](https://api.cirrus-ci.com/github/vim/vim.svg)](https://cirrus-ci.com/github/vim/vim)
[![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master) [![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master)
[![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim) [![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim)
[![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/vim/vim.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/vim/vim/context:cpp) [![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/vim/vim.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/vim/vim/context:cpp)
[![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim) [![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim)
[![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim) [![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim)
For translations of this README see the end.
## What is Vim? ## ## What is Vim? ##
@ -24,11 +26,12 @@ All commands are given with normal keyboard characters, so those who can type
with ten fingers can work very fast. Additionally, function keys can be with ten fingers can work very fast. Additionally, function keys can be
mapped to commands by the user, and the mouse can be used. mapped to commands by the user, and the mouse can be used.
Vim runs under MS-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh, VMS and Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, Haiku, VMS and almost
almost all flavours of UNIX. Porting to other systems should not be very all flavours of UNIX. Porting to other systems should not be very difficult.
difficult. Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me, Amiga Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained. Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
For Vim9 script see [README_VIM9](README_VIM9.md).
## Distribution ## ## Distribution ##
@ -69,6 +72,7 @@ archive):
README_unix.txt Unix README_unix.txt Unix
README_dos.txt MS-DOS and MS-Windows README_dos.txt MS-DOS and MS-Windows
README_mac.txt Macintosh README_mac.txt Macintosh
README_haiku.txt Haiku
README_vms.txt VMS README_vms.txt VMS
There are other `README_*.txt` files, depending on the distribution you used. There are other `README_*.txt` files, depending on the distribution you used.
@ -140,4 +144,9 @@ Send any other comments, patches, flowers and suggestions to:
Bram Moolenaar <Bram@vim.org> Bram Moolenaar <Bram@vim.org>
This is `README.md` for version 8.1 of Vim: Vi IMproved. This is `README.md` for version 8.2 of Vim: Vi IMproved.
## Translations of this README ##
[Korean](https://github.com/cjw1359/opensource/blob/master/Vim/README_ko.md)

View File

@ -1,4 +1,4 @@
README.txt for version 8.1 of Vim: Vi IMproved. README.txt for version 8.2 of Vim: Vi IMproved.
WHAT IS VIM? WHAT IS VIM?
@ -16,10 +16,10 @@ All commands are given with normal keyboard characters, so those who can type
with ten fingers can work very fast. Additionally, function keys can be with ten fingers can work very fast. Additionally, function keys can be
mapped to commands by the user, and the mouse can be used. mapped to commands by the user, and the mouse can be used.
Vim runs under MS-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh, VMS and Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, VMS and almost all
almost all flavours of UNIX. Porting to other systems should not be very flavours of UNIX. Porting to other systems should not be very difficult.
difficult. Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me, Amiga Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained. Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
DISTRIBUTION DISTRIBUTION

344
README_VIM9.md Normal file
View File

@ -0,0 +1,344 @@
![Vim Logo](https://github.com/vim/vim/blob/master/runtime/vimlogo.gif)
# What is Vim9?
This is an experimental side of [Vim](https://github.com/vim/vim).
It explores ways of making Vim script faster and better.
WARNING: The Vim9 script features are in the early stages of development,
anything can break!
# Why Vim9?
## 1. FASTER VIM SCRIPT
The third item on the poll results of 2018, after popup windows and text
properties, is faster Vim script. So how do we do that?
I have been throwing some ideas around, and soon came to the conclusion
that the current way functions are called and executed, with
dictionaries for the arguments and local variables, is never going to be
very fast. We're lucky if we can make it twice as fast. The overhead
of a function call and executing every line is just too high.
So what then? We can only make something fast by having a new way of
defining a function, with similar but different properties of the old
way:
* Arguments are only available by name, not through the a: dictionary or
the a:000 list.
* Local variables are not available in an l: dictionary.
* A few more things that slow us down, such as exception handling details.
I Implemented a "proof of concept" and measured the time to run a simple
for loop with an addition (Justin used this example in his presentation,
full code is below):
``` vim
let sum = 0
for i in range(1, 2999999)
let sum += i
endfor
```
| how | time in sec |
| --------| -------- |
| Vim old | 5.018541 |
| Python | 0.369598 |
| Lua | 0.078817 |
| Vim new | 0.073595 |
That looks very promising! It's just one example, but it shows how much
we can gain, and also that Vim script can be faster than builtin
interfaces.
In practice the script would not do something useless as counting but change
the text. For example, re-indent all the lines:
``` vim
let totallen = 0
for i in range(1, 100000)
call setline(i, ' ' .. getline(i))
let totallen += len(getline(i))
endfor
```
| how | time in sec |
| --------| -------- |
| Vim old | 0.853752 |
| Python | 0.304584 |
| Lua | 0.286573 |
| Vim new | 0.190276 |
The differences are smaller, but Vim 9 script is clearly the fastest.
How does Vim9 script work? The function is first compiled into a sequence of
instructions. Each instruction has one or two parameters and a stack is
used to store intermediate results. Local variables are also on the
stack, space is reserved during compilation. This is a fairly normal
way of compilation into an intermediate format, specialized for Vim,
e.g. each stack item is a typeval_T. And one of the instructions is
"execute Ex command", for commands that are not compiled.
## 2. PHASING OUT INTERFACES
Attempts have been made to implement functionality with built-in script
languages such as Python, Perl, Lua, Tcl and Ruby. This never gained much
foothold, for various reasons.
Instead of using script language support in Vim:
* Encourage implementing external tools in any language and communicate
with them. The job and channel support already makes this possible.
Really any language can be used, also Java and Go, which are not
available built-in.
* Phase out the built-in language interfaces, make maintenance a bit easier
and executables easier to build. They will be kept for backwards
compatibility, no new features.
* Improve the Vim script language, it is used to communicate with the external
tool and implements the Vim side of the interface. Also, it can be used when
an external tool is undesired.
All together this creates a clear situation: Vim with the +eval feature
will be sufficient for most plugins, while some plugins require
installing a tool that can be written in any language. No confusion
about having Vim but the plugin not working because some specific
language is missing. This is a good long term goal.
Rationale: Why is it better to run a tool separately from Vim than using a
built-in interface and interpreter? Take for example something that is
written in Python:
* The built-in interface uses the embedded python interpreter. This is less
well maintained than the python command. Building Vim with it requires
installing developer packages. If loaded dynamically there can be a version
mismatch.
* When running the tool externally the standard python command can be used,
which is quite often available by default or can be easily installed.
* The built-in interface has an API that is unique for Vim with Python. This is
an extra API to learn.
* A .py file can be compiled into a .pyc file and execute much faster.
* Inside Vim multi-threading can cause problems, since the Vim core is single
threaded. In an external tool there are no such problems.
* The Vim part is written in .vim files, the Python part is in .py files, this
is nicely separated.
* Disadvantage: An interface needs to be made between Vim and Python.
JSON is available for this, and it's fairly easy to use. But it still
requires implementing asynchronous communication.
## 3. BETTER VIM SCRIPT
To make Vim faster a new way of defining a function needs to be added.
While we are doing that, since the lines in this function won't be fully
backwards compatible anyway, we can also make Vim script easier to use.
In other words: "less weird". Making it work more like modern
programming languages will help. No surprises.
A good example is how in a function the arguments are prefixed with
"a:". No other language I know does that, so let's drop it.
Taking this one step further is also dropping "s:" for script-local variables;
everything at the script level is script-local by default. Since this is not
backwards compatible it requires a new script style: Vim9 script!
It should be possible to convert code from other languages to Vim
script. We can add functionality to make this easier. This still needs
to be discussed, but we can consider adding type checking and a simple
form of classes. If you look at JavaScript for example, it has gone
through these stages over time, adding real class support and now
TypeScript adds type checking. But we'll have to see how much of that
we actually want to include in Vim script. Ideally a conversion tool
can take Python, JavaScript or TypeScript code and convert it to Vim
script, with only some things that cannot be converted.
Vim script won't work the same as any specific language, but we can use
mechanisms that are commonly known, ideally with the same syntax. One
thing I have been thinking of is assignments without ":let". I often
make that mistake (after writing JavaScript especially). I think it is
possible, if we make local variables shadow commands. That should be OK,
if you shadow a command you want to use, just rename the variable.
Using "let" and "const" to declare a variable, like in JavaScript and
TypeScript, can work:
``` vim
def MyFunction(arg: number): number
let local = 1
let todo = arg
const ADD = 88
while todo > 0
local += ADD
--todo
endwhile
return local
enddef
```
The similarity with JavaScript/TypeScript can also be used for dependencies
between files. Vim currently uses the `:source` command, which has several
disadvantages:
* In the sourced script, is not clear what it provides. By default all
functions are global and can be used elsewhere.
* In a script that sources other scripts, it is not clear what function comes
from what sourced script. Finding the implementation is a hassle.
* Prevention of loading the whole script twice must be manually implemented.
We can use the `:import` and `:export` commands from the JavaScript standard to
make this much better. For example, in script "myfunction.vim" define a
function and export it:
``` vim
vim9script " Vim9 script syntax used here
let local = 'local variable is not exported, script-local'
export def MyFunction() " exported function
...
def LocalFunction() " not exported, script-local
...
```
And in another script import the function:
``` vim
vim9script " Vim9 script syntax used here
import MyFunction from 'myfunction.vim'
```
This looks like JavaScript/TypeScript, thus many users will understand the
syntax.
These are ideas, this will take time to design, discuss and implement.
Eventually this will lead to Vim 9!
## Code for sum time measurements
Vim was build with -O2.
``` vim
func VimOld()
let sum = 0
for i in range(1, 2999999)
let sum += i
endfor
return sum
endfunc
func Python()
py3 << END
sum = 0
for i in range(1, 3000000):
sum += i
END
return py3eval('sum')
endfunc
func Lua()
lua << END
sum = 0
for i = 1, 2999999 do
sum = sum + i
end
END
return luaeval('sum')
endfunc
def VimNew()
let sum = 0
for i in range(1, 2999999)
let sum += i
endfor
return sum
enddef
let start = reltime()
echo VimOld()
echo 'Vim old: ' .. reltimestr(reltime(start))
let start = reltime()
echo Python()
echo 'Python: ' .. reltimestr(reltime(start))
let start = reltime()
echo Lua()
echo 'Lua: ' .. reltimestr(reltime(start))
let start = reltime()
echo VimNew()
echo 'Vim new: ' .. reltimestr(reltime(start))
```
## Code for indent time measurements
``` vim
def VimNew(): number
let totallen = 0
for i in range(1, 100000)
setline(i, ' ' .. getline(i))
totallen += len(getline(i))
endfor
return totallen
enddef
func VimOld()
let totallen = 0
for i in range(1, 100000)
call setline(i, ' ' .. getline(i))
let totallen += len(getline(i))
endfor
return totallen
endfunc
func Lua()
lua << END
b = vim.buffer()
totallen = 0
for i = 1, 100000 do
b[i] = " " .. b[i]
totallen = totallen + string.len(b[i])
end
END
return luaeval('totallen')
endfunc
func Python()
py3 << END
cb = vim.current.buffer
totallen = 0
for i in range(0, 100000):
cb[i] = ' ' + cb[i]
totallen += len(cb[i])
END
return py3eval('totallen')
endfunc
new
call setline(1, range(100000))
let start = reltime()
echo VimOld()
echo 'Vim old: ' .. reltimestr(reltime(start))
bwipe!
new
call setline(1, range(100000))
let start = reltime()
echo Python()
echo 'Python: ' .. reltimestr(reltime(start))
bwipe!
new
call setline(1, range(100000))
let start = reltime()
echo Lua()
echo 'Lua: ' .. reltimestr(reltime(start))
bwipe!
new
call setline(1, range(100000))
let start = reltime()
echo VimNew()
echo 'Vim new: ' .. reltimestr(reltime(start))
bwipe!
```

View File

@ -9,10 +9,10 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful
messages, shows current file name in window title, on-line messages, shows current file name in window title, on-line
help, rectangular cut/paste, etc., etc., etc... help, rectangular cut/paste, etc., etc., etc...
Version 8.1. Also runs under UNIX, MS-Windows, Mac, etc. Version 8.2. Also runs under UNIX, MS-Windows, Mac, etc.
vim81rt.tgz contains the documentation and syntax files. vim82rt.tgz contains the documentation and syntax files.
vim81bin.tgz contains the binaries. vim82bin.tgz contains the binaries.
vim81src.tgz contains the sources. vim82src.tgz contains the sources.
Author: Bram Moolenaar et al. Author: Bram Moolenaar et al.

View File

@ -1,4 +1,4 @@
README_ami.txt for version 8.1 of Vim: Vi IMproved. README_ami.txt for version 8.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Amiga systems. This file explains the installation of Vim on Amiga systems.
See README.txt for general information about Vim. See README.txt for general information about Vim.
@ -16,8 +16,8 @@ easily upgrade to a new version. For example:
You would then unpack the archives like this: You would then unpack the archives like this:
cd dh0:editors cd dh0:editors
tar xf t:vim81bin.tar tar xf t:vim82bin.tar
tar xf t:vim81rt.tar tar xf t:vim82rt.tar
Set the $VIM environment variable to point to the top directory of your Vim Set the $VIM environment variable to point to the top directory of your Vim
files. For the above example: files. For the above example:

View File

@ -1,8 +1,8 @@
README_amibin.txt for version 8.1 of Vim: Vi IMproved. README_amibin.txt for version 8.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga. See "README_ami.txt" for installation instructions for the Amiga.
These files are in the runtime archive (vim81rt.tgz). These files are in the runtime archive (vim82rt.tgz).
The Amiga "bin" archive contains the Vim executable for the Amiga. It was The Amiga "bin" archive contains the Vim executable for the Amiga. It was

View File

@ -1,8 +1,8 @@
README_amisrc.txt for version 8.1 of Vim: Vi IMproved. README_amisrc.txt for version 8.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga. See "README_ami.txt" for installation instructions for the Amiga.
These files are in the runtime archive (vim81rt.tgz). These files are in the runtime archive (vim82rt.tgz).
The Amiga source archive contains the files needed to compile Vim on the The Amiga source archive contains the files needed to compile Vim on the

View File

@ -1,16 +1,16 @@
README_bindos.txt for version 8.1 of Vim: Vi IMproved. README_bindos.txt for version 8.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim81rt.zip). These files are in the runtime archive (vim82rt.zip).
There are several binary distributions of Vim for the PC. You would normally There are several binary distributions of Vim for the PC. You would normally
pick only one of them, but it's also possible to install several. pick only one of them, but it's also possible to install several.
These ones are available (the version number may differ): These ones are available (the version number may differ):
vim81w32.zip Windows 95/98/NT/etc. console version vim82w32.zip Windows 95/98/NT/etc. console version
gvim81.zip Windows 95/98/NT/etc. GUI version gvim82.zip Windows 95/98/NT/etc. GUI version
gvim81ole.zip Windows 95/98/NT/etc. GUI version with OLE gvim82ole.zip Windows 95/98/NT/etc. GUI version with OLE
You MUST also get the runtime archive (vim81rt.zip). You MUST also get the runtime archive (vim82rt.zip).
The sources are also available (vim81src.zip). The sources are also available (vim82src.zip).

View File

@ -1,6 +1,6 @@
README_dos.txt for version 8.1 of Vim: Vi IMproved. README_dos.txt for version 8.2 of Vim: Vi IMproved.
This file explains the installation of Vim on MS-DOS and MS-Windows systems. This file explains the installation of Vim on MS-Windows systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
There are two ways to install Vim: There are two ways to install Vim:
@ -41,19 +41,19 @@ These are the normal steps to install Vim from the .zip archives:
located. Check the $VIM setting to see where it points to: located. Check the $VIM setting to see where it points to:
set VIM set VIM
For example, if you have For example, if you have
C:\vim\vim81 C:\vim\vim82
do do
cd C:\ cd C:\
Binary and runtime Vim archives are normally unpacked in the same location, Binary and runtime Vim archives are normally unpacked in the same location,
on top of each other. on top of each other.
2. Unpack the zip archives. This will create a new directory "vim\vim81", 2. Unpack the zip archives. This will create a new directory "vim\vim82",
in which all the distributed Vim files are placed. Since the directory in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite name includes the version number, it is unlikely that you overwrite
existing files. existing files.
Examples: Examples:
pkunzip -d gvim81.zip pkunzip -d gvim82.zip
unzip vim81w32.zip unzip vim82w32.zip
You need to unpack the runtime archive and at least one of the binary You need to unpack the runtime archive and at least one of the binary
archives. When using more than one binary version, be careful not to archives. When using more than one binary version, be careful not to
@ -64,12 +64,8 @@ These are the normal steps to install Vim from the .zip archives:
to another location. That is where they will stay, the install program to another location. That is where they will stay, the install program
won't move or copy the runtime files. won't move or copy the runtime files.
Only for the 32 bit DOS version on MS-DOS without DPMI support (trying to
run install.exe will produce an error message): Unpack the CSDPMI4B.ZIP
archive and follow the instructions in the documentation.
3. Change to the new directory: 3. Change to the new directory:
cd vim\vim81 cd vim\vim82
Run the "install.exe" program. It will ask you a number of questions about Run the "install.exe" program. It will ask you a number of questions about
how you would like to have your Vim setup. Among these are: how you would like to have your Vim setup. Among these are:
- You can tell it to write a "_vimrc" file with your preferences in the - You can tell it to write a "_vimrc" file with your preferences in the
@ -80,8 +76,8 @@ These are the normal steps to install Vim from the .zip archives:
console or in a shell. You can select one of the directories in your console or in a shell. You can select one of the directories in your
$PATH. If you skip this, you can add Vim to the search path manually: $PATH. If you skip this, you can add Vim to the search path manually:
The simplest is to add a line to your autoexec.bat. Examples: The simplest is to add a line to your autoexec.bat. Examples:
set path=%path%;C:\vim\vim81 set path=%path%;C:\vim\vim82
set path=%path%;D:\editors\vim\vim81 set path=%path%;D:\editors\vim\vim82
- Create entries for Vim on the desktop and in the Start menu. - Create entries for Vim on the desktop and in the Start menu.
That's it! That's it!
@ -93,8 +89,8 @@ Remarks:
won't show a menubar. Then you need to set the $VIM environment variable to won't show a menubar. Then you need to set the $VIM environment variable to
point to the top directory of your Vim files. Example: point to the top directory of your Vim files. Example:
set VIM=C:\editors\vim set VIM=C:\editors\vim
Vim version 8.1 will look for your vimrc file in $VIM, and for the runtime Vim version 8.2 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim81. See ":help $VIM" for more information. files in $VIM/vim82. See ":help $VIM" for more information.
- To avoid confusion between distributed files of different versions and your - To avoid confusion between distributed files of different versions and your
own modified vim scripts, it is recommended to use this directory layout: own modified vim scripts, it is recommended to use this directory layout:
@ -105,14 +101,14 @@ Remarks:
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
C:\vim\... Other files you made. C:\vim\... Other files you made.
Distributed files: Distributed files:
C:\vim\vim81\vim.exe The Vim version 8.1 executable. C:\vim\vim82\vim.exe The Vim version 8.2 executable.
C:\vim\vim81\doc\*.txt The version 8.1 documentation files. C:\vim\vim82\doc\*.txt The version 8.2 documentation files.
C:\vim\vim81\bugreport.vim A Vim version 8.1 script. C:\vim\vim82\bugreport.vim A Vim version 8.2 script.
C:\vim\vim81\... Other version 8.1 distributed files. C:\vim\vim82\... Other version 8.2 distributed files.
In this case the $VIM environment variable would be set like this: In this case the $VIM environment variable would be set like this:
set VIM=C:\vim set VIM=C:\vim
Then $VIMRUNTIME will automatically be set to "$VIM\vim81". Don't add Then $VIMRUNTIME will automatically be set to "$VIM\vim82". Don't add
"vim81" to $VIM, that won't work. "vim82" to $VIM, that won't work.
- You can put your Vim executable anywhere else. If the executable is not - You can put your Vim executable anywhere else. If the executable is not
with the other Vim files, you should set $VIM. The simplest is to add a line with the other Vim files, you should set $VIM. The simplest is to add a line
@ -121,7 +117,7 @@ Remarks:
set VIM=d:\editors\vim set VIM=d:\editors\vim
- If you have told the "install.exe" program to add the "Edit with Vim" menu - If you have told the "install.exe" program to add the "Edit with Vim" menu
entry, you can remove it by running the "uninstal.exe". See entry, you can remove it by running the "uninstall.exe". See
":help win32-popup-menu". ":help win32-popup-menu".
- In Windows 95/98/NT you can create a shortcut to Vim. This works for all - In Windows 95/98/NT you can create a shortcut to Vim. This works for all
@ -136,8 +132,8 @@ Remarks:
Select Properties. Select Properties.
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the 5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
Vim executable. Examples: Vim executable. Examples:
C:\command.com /c C:\vim\vim81\vim.exe C:\command.com /c C:\vim\vim82\vim.exe
C:\command.com /c D:\editors\vim\vim81\vim.exe C:\command.com /c D:\editors\vim\vim82\vim.exe
6. Select the font, window size, etc. that you like. If this isn't 6. Select the font, window size, etc. that you like. If this isn't
possible, select "Advanced" in the Program tab, and deselect "MS-DOS possible, select "Advanced" in the Program tab, and deselect "MS-DOS
mode". mode".
@ -150,5 +146,4 @@ Remarks:
For further information, type one of these inside Vim: For further information, type one of these inside Vim:
:help dos :help dos
:help msdos
:help win32 :help win32

View File

@ -1,4 +1,4 @@
README_extra.txt for version 8.1 of Vim: Vi IMproved. README_extra.txt for version 8.2 of Vim: Vi IMproved.
These extra files of Vim are for special purposes. This README explains what These extra files of Vim are for special purposes. This README explains what
the files are for. For general information about Vim, see the "README.txt" the files are for. For general information about Vim, see the "README.txt"
@ -13,9 +13,6 @@ src/if_sniff.* Interface to SNiFF. If you don't know what SNiFF is,
src/os_amiga.* Files for the Amiga port. src/os_amiga.* Files for the Amiga port.
src/gui_beos.*
src/os_beos.* Files for the BeOS port.
src/os_msdos.* src/os_msdos.*
src/os_dos.* Files for the MS-DOS port. src/os_dos.* Files for the MS-DOS port.
@ -24,9 +21,6 @@ src/os_mac.* Files for the Mac port.
src/os_mint.8 Files for the Atari Mint port. src/os_mint.8 Files for the Atari Mint port.
src/os_os2* Files for the OS/2 port.
src/tee/* Extra program for OS/2.
src/os_vms* Files for the VMS port. src/os_vms* Files for the VMS port.
src/os_w32* src/os_w32*

View File

@ -0,0 +1,13 @@
README_haiku.txt for version 8.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Haiku operating system.
See "README.txt" for general information about Vim.
Preferred (and easy) way to get Vim on Haiku is to use default Haiku
software repository HaikuPorts. To get Vim:
- Open HaikuDepot application and search for "vim" package, then install,
- Open a Terminal and type "pkgman install vim", then follow instructions.
If you prefer to install Vim from source, follow the instructions on
"runtime/doc/os_haiku.txt", "Compiling Vim" section.

View File

@ -1,4 +1,4 @@
README_mac.txt for version 8.1 of Vim: Vi IMproved. README_mac.txt for version 8.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Macintosh systems. This file explains the installation of Vim on Macintosh systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.

View File

@ -1,4 +1,4 @@
README_ole.txt for version 8.1 of Vim: Vi IMproved. README_ole.txt for version 8.2 of Vim: Vi IMproved.
This archive contains gvim.exe with OLE interface and VisVim. This archive contains gvim.exe with OLE interface and VisVim.
This version of gvim.exe can also load a number of interface dynamically (you This version of gvim.exe can also load a number of interface dynamically (you

View File

@ -1,4 +1,4 @@
README_os2.txt for version 8.1 of Vim: Vi IMproved. README_os2.txt for version 8.2 of Vim: Vi IMproved.
This file used to explain the installation of Vim on OS/2 systems. This file used to explain the installation of Vim on OS/2 systems.
However, support for OS/2 has been removed in patch 7.4.1008. However, support for OS/2 has been removed in patch 7.4.1008.

View File

@ -1,4 +1,4 @@
README_os390.txt for version 8.1 of Vim: Vi IMproved. README_os390.txt for version 8.2 of Vim: Vi IMproved.
This readme explains how to build Vim on z/OS. Formerly called OS/390. This readme explains how to build Vim on z/OS. Formerly called OS/390.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
@ -11,8 +11,8 @@ Getting the source to z/OS:
First get the source code in one big tar file and ftp it a binary to z/OS. If First get the source code in one big tar file and ftp it a binary to z/OS. If
the tar file is initially compressed with gzip (tar.gz) or bzip2 (tar.bz2) the tar file is initially compressed with gzip (tar.gz) or bzip2 (tar.bz2)
uncompress it on your PC, as this tools are (most likely) not available on the uncompress it on your PC, as these tools are (most likely) not available on
mainframe. the mainframe.
To reduce the size of the tar file you might compress it into a zip file. On To reduce the size of the tar file you might compress it into a zip file. On
z/OS Unix you might have the command "jar" from java to uncompress a zip. Use: z/OS Unix you might have the command "jar" from java to uncompress a zip. Use:
@ -82,8 +82,8 @@ WARNING: This instruction was not tested with Vim 7.4 or later.
There are two ways for building VIM with X11 support. The first way is simple There are two ways for building VIM with X11 support. The first way is simple
and results in a big executable (~13 Mb), the second needs a few additional and results in a big executable (~13 Mb), the second needs a few additional
steps and results in a much smaller executable (~4.5 Mb). This examples assume steps and results in a much smaller executable (~4.5 Mb). These examples
you want Motif. assume you want Motif.
The easy way: The easy way:
$ export CC=cc $ export CC=cc

View File

@ -1,8 +1,8 @@
README_src.txt for version 8.1 of Vim: Vi IMproved. README_src.txt for version 8.2 of Vim: Vi IMproved.
The source archive contains the files needed to compile Vim on Unix systems. The source archive contains the files needed to compile Vim on Unix systems.
It is packed for Unix systems (NL line separator). It is packed for Unix systems (NL line separator).
For more information, see the README.txt file that comes with the runtime For more information, see the README.txt file that comes with the runtime
archive (vim-8.1-rt.tar.gz). To be able to run Vim you MUST get the runtime archive (vim-8.2-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive too! archive too!

View File

@ -1,12 +1,12 @@
README_srcdos.txt for version 8.1 of Vim: Vi IMproved. README_srcdos.txt for version 8.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. See "README_dos.txt" for installation instructions for MS-Windows.
These files are in the runtime archive (vim81rt.zip). These files are in the runtime archive (vim82rt.zip).
The DOS source archive contains the files needed to compile Vim on MS-DOS or The DOS source archive contains the files needed to compile Vim on MS-Windows.
MS-Windows. It is packed for DOS systems, with CR-LF. It also includes the It is packed for MS-Windows systems, with CR-LF. It also includes the VisVim
VisVim sources. sources.
See "src/INSTALLpc.txt" for instructions on how to compile Vim on the PC. See "src/INSTALLpc.txt" for instructions on how to compile Vim on the PC.

View File

@ -1,4 +1,4 @@
README_unix.txt for version 8.1 of Vim: Vi IMproved. README_unix.txt for version 8.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Unix systems. This file explains the installation of Vim on Unix systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.

View File

@ -1,4 +1,4 @@
README_vms.txt for version 8.1 of Vim: Vi IMproved. README_vms.txt for version 8.2 of Vim: Vi IMproved.
This file explains the installation of Vim on VMS systems. This file explains the installation of Vim on VMS systems.
See "README.txt" in the runtime archive for information about Vim. See "README.txt" in the runtime archive for information about Vim.

View File

@ -1,15 +1,6 @@
README_w32s.txt for version 8.1 of Vim: Vi IMproved. README_w32s.txt for version 8.2 of Vim: Vi IMproved.
This archive contains the gvim.exe that was specifically compiled for use in This file used to explain the installation of Vim on MS-Windows 3.1 and 3.11
the Win32s subsystem in MS-Windows 3.1 and 3.11. systems. However, support for MS-Windows 3.1 and 3.11 has been removed in
patch 7.4.1364.
Also see the README_bindos.txt, README_dos.txt and README.txt files. See "README.txt" for general information about Vim.
Be careful not to overwrite the Win32s gvim.exe with the another gvim.exe when
unpacking another binary archive! Check the output of ":version":
Win32s - "MS-Windows 16/32 bit GUI version"
Win32 - "MS-Windows 32 bit GUI version"
Win32 with OLE - "MS-Windows 32 bit GUI version with OLE support"
For further information, type this inside Vim:
:help win32s

View File

@ -25,9 +25,9 @@ test_script:
- cd src/testdir - cd src/testdir
# Testing with MSVC gvim # Testing with MSVC gvim
- path C:\Python35-x64;%PATH% - path C:\Python35-x64;%PATH%
- nmake -f Make_dos.mak VIMPROG=..\gvim - nmake -f Make_dos.mak POSTSCRIPT=yes VIMPROG=..\gvim
- nmake -f Make_dos.mak clean - nmake -f Make_dos.mak clean
# Testing with MingW console version # Testing with MingW console version
- nmake -f Make_dos.mak VIMPROG=..\vim - nmake -f Make_dos.mak POSTSCRIPT=yes VIMPROG=..\vim
# vim: sw=2 sts=2 et ts=8 sr # vim: sw=2 sts=2 et ts=8 sr

View File

@ -8,6 +8,7 @@ cd src
echo "Building MinGW 32bit console version" echo "Building MinGW 32bit console version"
set PATH=c:\msys64\mingw32\bin;%PATH% set PATH=c:\msys64\mingw32\bin;%PATH%
mingw32-make.exe -f Make_ming.mak GUI=no OPTIMIZE=speed IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1 mingw32-make.exe -f Make_ming.mak GUI=no OPTIMIZE=speed IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
.\vim -u NONE -c "redir @a | ver |0put a | wq" ver_ming.txt
:: Save vim.exe before Make clean, moved back below. :: Save vim.exe before Make clean, moved back below.
copy vim.exe testdir copy vim.exe testdir
mingw32-make.exe -f Make_ming.mak clean mingw32-make.exe -f Make_ming.mak clean
@ -20,13 +21,14 @@ if "%FEATURE%" == "HUGE" (
) ELSE ( ) ELSE (
mingw32-make.exe -f Make_ming.mak OPTIMIZE=speed GUI=yes IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1 mingw32-make.exe -f Make_ming.mak OPTIMIZE=speed GUI=yes IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
) )
.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_ming.txt .\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_ming_gui.txt
:: Filter out the progress bar from the build log :: Filter out the progress bar from the build log
sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
echo "Building MSVC 64bit console Version" echo "Building MSVC 64bit console Version"
nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=no IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1 nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=no IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
:: The executable is not used
nmake -f Make_mvc2.mak clean nmake -f Make_mvc2.mak clean
:: build MSVC huge version with python and channel support :: build MSVC huge version with python and channel support
@ -43,6 +45,8 @@ if "%FEATURE%" == "HUGE" (
move /Y testdir\vim.exe . move /Y testdir\vim.exe .
echo "version output MinGW" echo "version output MinGW"
type ver_ming.txt type ver_ming.txt
echo "version output MinGW GUI"
type ver_ming_gui.txt
echo "version output MVC" echo "version output MVC"
type ver_msvc.txt type ver_msvc.txt
cd .. cd ..

2
ci/config.mk.clang.sed Normal file
View File

@ -0,0 +1,2 @@
/^CFLAGS[[:blank:]]*=/s/$/ -Wno-error=missing-field-initializers/
/^RUBY_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=unknown-attributes -Wno-error=ignored-attributes/

1
ci/config.mk.gcc.sed Normal file
View File

@ -0,0 +1 @@
/^CFLAGS[[:blank:]]*=/s/$/ -Wno-error=maybe-uninitialized/

2
ci/config.mk.sed Normal file
View File

@ -0,0 +1,2 @@
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror/
/^PERL_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=unused-function/

25
ci/if_ver-1.vim Normal file
View File

@ -0,0 +1,25 @@
" Print all interface versions for Ubuntu. Part 1.
if 1
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
echo "*** Interface versions ***\n"
echo 'Lua:'
PrintVer lua print(_VERSION)
echo 'MzScheme:'
PrintVer mzscheme (display (version))
echo 'Perl:'
PrintVer perl print $^V
echo 'Ruby:'
PrintVer ruby print RUBY_VERSION
echo 'Tcl:'
PrintVer tcl puts [info patchlevel]
echo 'Python 2:'
PrintVer python print sys.version
endif

8
ci/if_ver-2.vim Normal file
View File

@ -0,0 +1,8 @@
" Print py3 interface versions for Ubuntu. Part 2.
if 1
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
echo 'Python 3:'
PrintVer python3 print(sys.version)
endif

12
ci/if_ver-cmd.vim Normal file
View File

@ -0,0 +1,12 @@
" Provide 'PrintVer' command to print the interface versions.
func s:print_ver(lang, ...)
if has(a:lang)
exec a:lang join(a:000)
else
echo 'N/A'
endif
echo ''
endfunc
command -nargs=+ PrintVer call <SID>print_ver(<f-args>)

8
ci/load-snd-dummy.sh Normal file
View File

@ -0,0 +1,8 @@
#!/bin/bash
set -e
if ! modprobe snd-dummy; then
# snd-dummy is contained in linux-modules-extra (if exists)
apt install -y "linux-modules-extra-$(uname -r)"
modprobe snd-dummy
fi

View File

@ -14,7 +14,7 @@ To build the installable .exe:
gvim.exe (the OLE version), gvim.exe (the OLE version),
vimrun.exe, vimrun.exe,
install.exe, install.exe,
uninstal.exe, uninstall.exe,
tee/tee.exe, tee/tee.exe,
xxd/xxd.exe, xxd/xxd.exe,
@ -32,12 +32,12 @@ To build the installable .exe:
5. Get a "diff.exe" program. If you skip this the built-in diff will always 5. Get a "diff.exe" program. If you skip this the built-in diff will always
be used (which is fine for most users). If you do have your own be used (which is fine for most users). If you do have your own
"diff.exe" put it in the "../.." directory (above the "vim81" directory, "diff.exe" put it in the "../.." directory (above the "vim82" directory,
it's the same for all Vim versions). it's the same for all Vim versions).
You can find one in previous Vim versions or in this archive: You can find one in previous Vim versions or in this archive:
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
6 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim81" 6 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim82"
directory). This is required for the terminal window. directory). This is required for the terminal window.
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have 7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have

View File

@ -39,7 +39,7 @@ Unicode true
# Uncomment the next line if you want to include VisVim extension: # Uncomment the next line if you want to include VisVim extension:
#!define HAVE_VIS_VIM #!define HAVE_VIS_VIM
# Comment the following line to create a multilanguage installer: # Comment the following line to create an English-only installer:
!define HAVE_MULTI_LANG !define HAVE_MULTI_LANG
# Uncomment the next line if you want to create a 64-bit installer. # Uncomment the next line if you want to create a 64-bit installer.
@ -176,6 +176,7 @@ Page custom SetCustom ValidateCustom
!include "lang\japanese.nsi" !include "lang\japanese.nsi"
!include "lang\simpchinese.nsi" !include "lang\simpchinese.nsi"
!include "lang\tradchinese.nsi" !include "lang\tradchinese.nsi"
!include "lang\turkish.nsi"
!endif !endif
########################################################## ##########################################################
@ -341,13 +342,13 @@ Section "$(str_section_exe)" id_section_exe
File ${VIMSRC}\vim${BIT}.dll File ${VIMSRC}\vim${BIT}.dll
!endif !endif
File /oname=install.exe ${VIMSRC}\installw32.exe File /oname=install.exe ${VIMSRC}\installw32.exe
File /oname=uninstal.exe ${VIMSRC}\uninstalw32.exe File /oname=uninstall.exe ${VIMSRC}\uninstallw32.exe
File ${VIMSRC}\vimrun.exe File ${VIMSRC}\vimrun.exe
File /oname=tee.exe ${VIMSRC}\teew32.exe File /oname=tee.exe ${VIMSRC}\teew32.exe
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
File ..\vimtutor.bat File ..\vimtutor.bat
File ..\README.txt File ..\README.txt
File ..\uninstal.txt File ..\uninstall.txt
File ${VIMRT}\*.vim File ${VIMRT}\*.vim
File ${VIMRT}\rgb.txt File ${VIMRT}\rgb.txt
@ -955,7 +956,7 @@ Section "un.$(str_unsection_register)" id_unsection_register
# delete the context menu entry and batch files # delete the context menu entry and batch files
DetailPrint "$(str_msg_unregistering)" DetailPrint "$(str_msg_unregistering)"
nsExec::Exec "$0\uninstal.exe -nsis" nsExec::Exec "$0\uninstall.exe -nsis"
Pop $3 Pop $3
# We may have been put to the background when uninstall did something. # We may have been put to the background when uninstall did something.

View File

@ -2,5 +2,5 @@
!ifndef __GVIM_VER__NSH__ !ifndef __GVIM_VER__NSH__
!define __GVIM_VER__NSH__ !define __GVIM_VER__NSH__
!define VER_MAJOR 8 !define VER_MAJOR 8
!define VER_MINOR 1 !define VER_MINOR 2
!endif !endif

280
nsis/lang/serbian.nsi Normal file
View File

@ -0,0 +1,280 @@
# vi:set ts=8 sts=4 sw=4 et fdm=marker:
#
# serbian.nsi: Serbian language strings for gvim NSIS installer.
#
# Locale ID : 3098
# fileencoding : UTF-8
# Author : Ivan Pešić
!insertmacro MUI_LANGUAGE "Српски"
# Overwrite the default translation.
# These strings should be always English. Otherwise dosinst.c fails.
LangString ^SetupCaption ${LANG_SERBIAN} \
"$(^Name) Setup"
LangString ^UninstallCaption ${LANG_SERBIAN} \
"$(^Name) Uninstall"
##############################################################################
# MUI Configuration Strings {{{1
##############################################################################
#LangString str_dest_folder ${LANG_SERBIAN} \
# "Destination Folder (Must end with $\"vim$\")"
LangString str_show_readme ${LANG_SERBIAN} \
"Прикажи ПРОЧИТАЈМЕ када се заврши инсталација"
# Install types:
LangString str_type_typical ${LANG_SERBIAN} \
"Типична"
LangString str_type_minimal ${LANG_SERBIAN} \
"Минимална"
LangString str_type_full ${LANG_SERBIAN} \
"Пуна"
##############################################################################
# Section Titles & Description {{{1
##############################################################################
LangString str_section_old_ver ${LANG_SERBIAN} \
"Уклањање постојећ(е/их) верзиј(е/а)"
LangString str_desc_old_ver ${LANG_SERBIAN} \
"Уклања постојећ(у/е) Vim верзииј(у/е) из вашег система."
LangString str_section_exe ${LANG_SERBIAN} \
"Vim ГКИ и фајлови потребни за извршавање"
LangString str_desc_exe ${LANG_SERBIAN} \
"Vim ГКИ извршни фајлови и фајлови потребни током извршавања. Ова компонента је неопходна."
LangString str_section_console ${LANG_SERBIAN} \
"Vim конзолни програм"
LangString str_desc_console ${LANG_SERBIAN} \
"Конзолна верзија програма Vim (vim.exe)."
LangString str_section_batch ${LANG_SERBIAN} \
"Креирај .bat фајлове"
LangString str_desc_batch ${LANG_SERBIAN} \
"Креира у Windows директоријуму .bat фајлове за Vim варијанте \
у циљу коришћења из командне линије."
LangString str_group_icons ${LANG_SERBIAN} \
"Креирај иконе за Vim"
LangString str_desc_icons ${LANG_SERBIAN} \
"Креира иконе за Vim на различитим местима, како би се олакшао приступ."
LangString str_section_desktop ${LANG_SERBIAN} \
"На радној површини"
LangString str_desc_desktop ${LANG_SERBIAN} \
"Креира иконе за gVim извршне фајлове на радној површини."
LangString str_section_start_menu ${LANG_SERBIAN} \
"У фасцикли Програми унутар Старт менија"
LangString str_desc_start_menu ${LANG_SERBIAN} \
"Додаје Vim у фолдер Програми Старт менија."
#LangString str_section_quick_launch ${LANG_SERBIAN} \
# "In the Quick Launch Bar"
#LangString str_desc_quick_launch ${LANG_SERBIAN} \
# "Add Vim shortcut in the quick launch bar."
LangString str_section_edit_with ${LANG_SERBIAN} \
"Додај Vim контекстни мени"
LangString str_desc_edit_with ${LANG_SERBIAN} \
"Додаје Vim у $\"Отвори помоћу...$\" листу контекстног менија."
#LangString str_section_edit_with32 ${LANG_SERBIAN} \
# "32-bit Version"
#LangString str_desc_edit_with32 ${LANG_SERBIAN} \
# "Add Vim to the $\"Open With...$\" context menu list \
# for 32-bit applications."
#LangString str_section_edit_with64 ${LANG_SERBIAN} \
# "64-bit Version"
#LangString str_desc_edit_with64 ${LANG_SERBIAN} \
# "Add Vim to the $\"Open With...$\" context menu list \
# for 64-bit applications."
LangString str_section_vim_rc ${LANG_SERBIAN} \
"Креирај Подразумевану конфигурацију"
LangString str_desc_vim_rc ${LANG_SERBIAN} \
"Креира подразумевани конфиг фајл (_vimrc) ако неки већ не постоји."
LangString str_group_plugin ${LANG_SERBIAN} \
"Креира директоријуме додатака"
LangString str_desc_plugin ${LANG_SERBIAN} \
"Креира директоријуме додатака. Ови директоријуми омогућавају проширење програма Vim \
убацивањем фајла у директоријум."
LangString str_section_plugin_home ${LANG_SERBIAN} \
"Приватне"
LangString str_desc_plugin_home ${LANG_SERBIAN} \
"Креира директоријуме додатака у HOME директоријуму."
LangString str_section_plugin_vim ${LANG_SERBIAN} \
"Дељене"
LangString str_desc_plugin_vim ${LANG_SERBIAN} \
"Креира директоријуме додатака у Vim инсталационом директоријуму, користе их сви \
на систему."
LangString str_section_vis_vim ${LANG_SERBIAN} \
"VisVim проширење"
LangString str_desc_vis_vim ${LANG_SERBIAN} \
"VisVim проширење за Microsoft Visual Studio интеграцију."
LangString str_section_nls ${LANG_SERBIAN} \
"Подршка за домаћи језик"
LangString str_desc_nls ${LANG_SERBIAN} \
"Инсталира фајлове за домаћу језичку подршку."
LangString str_unsection_register ${LANG_SERBIAN} \
"Поништи регистрацију Vim"
LangString str_desc_unregister ${LANG_SERBIAN} \
"Поништава регистрацију програма Vim на систему."
LangString str_unsection_exe ${LANG_SERBIAN} \
"Уклони Vim извршне фајлове/фајлове потребне у време извршавања"
LangString str_desc_rm_exe ${LANG_SERBIAN} \
"Уклања све Vim извршне фајлове и оне потребне у време извршавања."
LangString str_ungroup_plugin ${LANG_SERBIAN} \
"Укони директоријуме додатака"
LangString str_desc_rm_plugin ${LANG_SERBIAN} \
"Уклања директоријуме додатака ако су празни."
LangString str_unsection_plugin_home ${LANG_SERBIAN} \
"Приватне"
LangString str_desc_rm_plugin_home ${LANG_SERBIAN} \
"Уклања директоријуме додатака из HOME директоријума."
LangString str_unsection_plugin_vim ${LANG_SERBIAN} \
"Дељене"
LangString str_desc_rm_plugin_vim ${LANG_SERBIAN} \
"Уклања директоријуме додатака из Vim инсталациониг директоријума."
LangString str_unsection_rootdir ${LANG_SERBIAN} \
"Уклони Vim корени директоријум"
LangString str_desc_rm_rootdir ${LANG_SERBIAN} \
"Уклања Vim корени директоријум. Он садржи ваше Vim конфигурационе фајлове!"
##############################################################################
# Messages {{{1
##############################################################################
#LangString str_msg_too_many_ver ${LANG_SERBIAN} \
# "Found $vim_old_ver_count Vim versions on your system.$\r$\n\
# This installer can only handle ${VIM_MAX_OLD_VER} versions \
# at most.$\r$\n\
# Please remove some versions and start again."
#LangString str_msg_invalid_root ${LANG_SERBIAN} \
# "Invalid install path: $vim_install_root!$\r$\n\
# It should end with $\"vim$\"."
#LangString str_msg_bin_mismatch ${LANG_SERBIAN} \
# "Binary path mismatch!$\r$\n$\r$\n\
# Expect the binary path to be $\"$vim_bin_path$\",$\r$\n\
# but system indicates the binary path is $\"$INSTDIR$\"."
#LangString str_msg_vim_running ${LANG_SERBIAN} \
# "Vim is still running on your system.$\r$\n\
# Please close all instances of Vim before you continue."
#LangString str_msg_register_ole ${LANG_SERBIAN} \
# "Attempting to register Vim with OLE. \
# There is no message indicates whether this works or not."
#LangString str_msg_unreg_ole ${LANG_SERBIAN} \
# "Attempting to unregister Vim with OLE. \
# There is no message indicates whether this works or not."
#LangString str_msg_rm_start ${LANG_SERBIAN} \
# "Uninstalling the following version:"
#LangString str_msg_rm_fail ${LANG_SERBIAN} \
# "Fail to uninstall the following version:"
#LangString str_msg_no_rm_key ${LANG_SERBIAN} \
# "Cannot find uninstaller registry key."
#LangString str_msg_no_rm_reg ${LANG_SERBIAN} \
# "Cannot find uninstaller from registry."
#LangString str_msg_no_rm_exe ${LANG_SERBIAN} \
# "Cannot access uninstaller."
#LangString str_msg_rm_copy_fail ${LANG_SERBIAN} \
# "Fail to copy uninstaller to temporary directory."
#LangString str_msg_rm_run_fail ${LANG_SERBIAN} \
# "Fail to run uninstaller."
#LangString str_msg_abort_install ${LANG_SERBIAN} \
# "Installer will abort."
LangString str_msg_install_fail ${LANG_SERBIAN} \
"Инсталација није успела. Више среће идући пут."
LangString str_msg_rm_exe_fail ${LANG_SERBIAN} \
"Неки фајлови у $0 нису обрисани!$\r$\n\
Морате то ручно да обавите."
#LangString str_msg_rm_root_fail ${LANG_SERBIAN} \
# "WARNING: Cannot remove $\"$vim_install_root$\", it is not empty!"
LangString str_msg_uninstalling ${LANG_SERBIAN} \
"Уклањање старе верзије..."
LangString str_msg_registering ${LANG_SERBIAN} \
"Регистровање..."
LangString str_msg_unregistering ${LANG_SERBIAN} \
"Поништавање регистрације..."
##############################################################################
# Dialog Box {{{1
##############################################################################
LangString str_vimrc_page_title ${LANG_SERBIAN} \
"Изаберите _vimrc подешавања"
LangString str_vimrc_page_subtitle ${LANG_SERBIAN} \
"Изаберите подешавања за побољшања, тастатуру и миша."
LangString str_msg_compat_title ${LANG_SERBIAN} \
" Vi / Vim понашање "
LangString str_msg_compat_desc ${LANG_SERBIAN} \
"&Компатибилност и побољшања"
LangString str_msg_compat_vi ${LANG_SERBIAN} \
"Vi компатибилно"
LangString str_msg_compat_vim ${LANG_SERBIAN} \
"Vim оригинално"
LangString str_msg_compat_defaults ${LANG_SERBIAN} \
"Vim са неким побољшањима (учитава defaults.vim)"
LangString str_msg_compat_all ${LANG_SERBIAN} \
"Vim са свим побољшањима (учитава vimrc_example.vim) (Подразумевано)"
LangString str_msg_keymap_title ${LANG_SERBIAN} \
" Мапирања "
LangString str_msg_keymap_desc ${LANG_SERBIAN} \
"&Ремапира неколико тастера за Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, итд.)"
LangString str_msg_keymap_default ${LANG_SERBIAN} \
"Немој да ремапираш тастере (Подразумевано)"
LangString str_msg_keymap_windows ${LANG_SERBIAN} \
"Ремапира неколико тастера"
LangString str_msg_mouse_title ${LANG_SERBIAN} \
" Миш "
LangString str_msg_mouse_desc ${LANG_SERBIAN} \
"&Понашање левог и десног тастера"
LangString str_msg_mouse_default ${LANG_SERBIAN} \
"Десни: искачући мени, Леви: визуелни режим (Подразумевано)"
LangString str_msg_mouse_windows ${LANG_SERBIAN} \
"Десни: искачући мени, Леви: режим избора (Windows)"
LangString str_msg_mouse_unix ${LANG_SERBIAN} \
"Десни: проширује избор, Леви: визуелни режим (Unix)"

View File

@ -5,7 +5,7 @@
# #
# Locale ID : 2052 # Locale ID : 2052
# fileencoding : UTF-8 # fileencoding : UTF-8
# Author : Guopeng Wen # Author : Guopeng Wen, David Liu
!insertmacro MUI_LANGUAGE "SimpChinese" !insertmacro MUI_LANGUAGE "SimpChinese"
@ -112,7 +112,7 @@ LangString str_desc_plugin ${LANG_SIMPCHINESE} \
LangString str_section_plugin_home ${LANG_SIMPCHINESE} \ LangString str_section_plugin_home ${LANG_SIMPCHINESE} \
"私有插件目录" "私有插件目录"
LangString str_desc_plugin_home ${LANG_SIMPCHINESE} \ LangString str_desc_plugin_home ${LANG_SIMPCHINESE} \
"Create plugin directories in HOME directory." "在主目录创建私有插件目录。"
LangString str_section_plugin_vim ${LANG_SIMPCHINESE} \ LangString str_section_plugin_vim ${LANG_SIMPCHINESE} \
"公共插件目录" "公共插件目录"
@ -141,14 +141,14 @@ LangString str_desc_rm_exe ${LANG_SIMPCHINESE} \
"删除 Vim 的所有执行文件及脚本。" "删除 Vim 的所有执行文件及脚本。"
LangString str_ungroup_plugin ${LANG_SIMPCHINESE} \ LangString str_ungroup_plugin ${LANG_SIMPCHINESE} \
"Remove plugin directories" "移除插件目录"
LangString str_desc_rm_plugin ${LANG_SIMPCHINESE} \ LangString str_desc_rm_plugin ${LANG_SIMPCHINESE} \
"Remove the plugin directories if they are empty." "移除插件目录(如果目录为空)。"
LangString str_unsection_plugin_home ${LANG_SIMPCHINESE} \ LangString str_unsection_plugin_home ${LANG_SIMPCHINESE} \
"私有插件目录" "私有插件目录"
LangString str_desc_rm_plugin_home ${LANG_SIMPCHINESE} \ LangString str_desc_rm_plugin_home ${LANG_SIMPCHINESE} \
"Remove the plugin directories from HOME directory." "从主目录中移除私有插件目录。"
LangString str_unsection_plugin_vim ${LANG_SIMPCHINESE} \ LangString str_unsection_plugin_vim ${LANG_SIMPCHINESE} \
"公共插件目录" "公共插件目录"
@ -241,37 +241,37 @@ LangString str_msg_unregistering ${LANG_SIMPCHINESE} \
LangString str_vimrc_page_title ${LANG_SIMPCHINESE} \ LangString str_vimrc_page_title ${LANG_SIMPCHINESE} \
"设置 _vimrc" "设置 _vimrc"
LangString str_vimrc_page_subtitle ${LANG_SIMPCHINESE} \ LangString str_vimrc_page_subtitle ${LANG_SIMPCHINESE} \
"选择键盘、鼠标和增强选项" "选择键盘、鼠标和扩展设置"
LangString str_msg_compat_title ${LANG_SIMPCHINESE} \ LangString str_msg_compat_title ${LANG_SIMPCHINESE} \
"Vi / Vim 行为" "Vi / Vim 行为"
LangString str_msg_compat_desc ${LANG_SIMPCHINESE} \ LangString str_msg_compat_desc ${LANG_SIMPCHINESE} \
"&Compatibility and enhancements" "兼容性与扩展(&B)"
LangString str_msg_compat_vi ${LANG_SIMPCHINESE} \ LangString str_msg_compat_vi ${LANG_SIMPCHINESE} \
"Vi compatible" "原始 Vi"
LangString str_msg_compat_vim ${LANG_SIMPCHINESE} \ LangString str_msg_compat_vim ${LANG_SIMPCHINESE} \
"Vim original" "原始 Vim"
LangString str_msg_compat_defaults ${LANG_SIMPCHINESE} \ LangString str_msg_compat_defaults ${LANG_SIMPCHINESE} \
"Vim with some enhancements (load defaults.vim)" "Vim 原始版本和部分扩展 (加载 defaults.vim)"
LangString str_msg_compat_all ${LANG_SIMPCHINESE} \ LangString str_msg_compat_all ${LANG_SIMPCHINESE} \
"Vim with all enhancements (load vimrc_example.vim) (Default)" "Vim 原始版本和所有扩展 (加载 vimrc_example.vim) (缺省)"
LangString str_msg_keymap_title ${LANG_SIMPCHINESE} \ LangString str_msg_keymap_title ${LANG_SIMPCHINESE} \
"键盘映射" "键盘映射"
LangString str_msg_keymap_desc ${LANG_SIMPCHINESE} \ LangString str_msg_keymap_desc ${LANG_SIMPCHINESE} \
"&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)" "为 Windows 映射按键(&R) (例如:Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F)"
LangString str_msg_keymap_default ${LANG_SIMPCHINESE} \ LangString str_msg_keymap_default ${LANG_SIMPCHINESE} \
"Do not remap keys (Default)" "不映射按键 (缺省)"
LangString str_msg_keymap_windows ${LANG_SIMPCHINESE} \ LangString str_msg_keymap_windows ${LANG_SIMPCHINESE} \
"Remap a few keys" "映射一些按键"
LangString str_msg_mouse_title ${LANG_SIMPCHINESE} \ LangString str_msg_mouse_title ${LANG_SIMPCHINESE} \
"鼠标" "鼠标"
LangString str_msg_mouse_desc ${LANG_SIMPCHINESE} \ LangString str_msg_mouse_desc ${LANG_SIMPCHINESE} \
"&Behavior of right and left buttons" "左键和右键行为(&B)"
LangString str_msg_mouse_default ${LANG_SIMPCHINESE} \ LangString str_msg_mouse_default ${LANG_SIMPCHINESE} \
"Right: popup menu, Left: visual mode (Default)" "右键:弹出菜单, 左键:可视化模式 (缺省)"
LangString str_msg_mouse_windows ${LANG_SIMPCHINESE} \ LangString str_msg_mouse_windows ${LANG_SIMPCHINESE} \
"Right: popup menu, Left: select mode (Windows)" "右键:弹出菜单, 左键:选择模式 (Windows)"
LangString str_msg_mouse_unix ${LANG_SIMPCHINESE} \ LangString str_msg_mouse_unix ${LANG_SIMPCHINESE} \
"Right: extends selection, Left: visual mode (Unix)" "右键: 扩展选择, 左键:可视化模式 (Unix)"

190
nsis/lang/turkish.nsi Normal file
View File

@ -0,0 +1,190 @@
# turkish.nsi: Turkish language strings for gvim NSIS installer.
# fileencoding : UTF-8
# Author : Emir SARI
!insertmacro MUI_LANGUAGE "Turkish"
# Overwrite the default translation.
# These strings should be always English. Otherwise dosinst.c fails.
LangString ^SetupCaption ${LANG_TURKISH} \
"$(^Name) Setup"
LangString ^UninstallCaption ${LANG_TURKISH} \
"$(^Name) Uninstall"
LangString str_show_readme ${LANG_TURKISH} \
"Kurulum bittikten sonra README dosyasını"
# Install types:
LangString str_type_typical ${LANG_TURKISH} \
"Normal"
LangString str_type_minimal ${LANG_TURKISH} \
"Küçük"
LangString str_type_full ${LANG_TURKISH} \
"Tam"
##############################################################################
# Section Titles & Description {{{1
##############################################################################
LangString str_section_old_ver ${LANG_TURKISH} \
"Eski sürümü kaldır"
LangString str_desc_old_ver ${LANG_TURKISH} \
"Vim'in eski sürümünü sisteminizden kaldırır."
LangString str_section_exe ${LANG_TURKISH} \
"Vim grafik arabirimi ve çalışma dosyaları"
LangString str_desc_exe ${LANG_TURKISH} \
"Vim program başlatıcı ve çalışma dosyaları. Bu bileşen zorunludur."
LangString str_section_console ${LANG_TURKISH} \
"Vim konsol sürümü"
LangString str_desc_console ${LANG_TURKISH} \
"Vim'in konsol sürümü (vim.exe)."
LangString str_section_batch ${LANG_TURKISH} \
".bat dosyaları oluştur"
LangString str_desc_batch ${LANG_TURKISH} \
"Vim için komut satırında kullanmak üzere .bat dosyaları oluşturur"
LangString str_group_icons ${LANG_TURKISH} \
"Vim için kısayollar oluştur"
LangString str_desc_icons ${LANG_TURKISH} \
"Kolay erişim için Vim kısayolları oluşturur."
LangString str_section_desktop ${LANG_TURKISH} \
"Masaüstünde"
LangString str_desc_desktop ${LANG_TURKISH} \
"gVim programı için Masaüstünde kısayol oluşturur."
LangString str_section_start_menu ${LANG_TURKISH} \
"Başlat Menüsü - Programlar klasöründe"
LangString str_desc_start_menu ${LANG_TURKISH} \
"Vim kısayolunu Başlat Menüsüne ekler."
LangString str_section_edit_with ${LANG_TURKISH} \
"Vim ile Aç"
LangString str_desc_edit_with ${LANG_TURKISH} \
"Vim'i $\"Birlikte $\" sağ tık menüsüne ekler."
LangString str_section_vim_rc ${LANG_TURKISH} \
"Bir yapılandırma dosyası oluştur"
LangString str_desc_vim_rc ${LANG_TURKISH} \
"Eğer yoksa bir yapılandırma dosyası (_vimrc) oluşturur."
LangString str_group_plugin ${LANG_TURKISH} \
"Eklenti dizinleri oluştur"
LangString str_desc_plugin ${LANG_TURKISH} \
"Bu dizinlere Vim eklentilerini yerleştirerek Vim'e yeni \
özellikler kazandırabilirsiniz."
LangString str_section_plugin_home ${LANG_TURKISH} \
"Gizli"
LangString str_desc_plugin_home ${LANG_TURKISH} \
"Eklenti dizinlerini EV dizininde oluşturur."
LangString str_section_plugin_vim ${LANG_TURKISH} \
"Paylaşılan"
LangString str_desc_plugin_vim ${LANG_TURKISH} \
"Eklenti dizinlerini Vim yükleme dizininde oluşturur. Bu eklentilerden \
bilgisayarın tüm kullanıcıları yararlanabilir."
LangString str_section_vis_vim ${LANG_TURKISH} \
"VisVim eklentisi"
LangString str_desc_vis_vim ${LANG_TURKISH} \
"Microsoft Visual Studio entegrasyonu için VisVim eklentisi"
LangString str_section_nls ${LANG_TURKISH} \
"Ek dil desteği"
LangString str_desc_nls ${LANG_TURKISH} \
"Mevcut olan Vim yerelleştirmelerini yükler."
LangString str_unsection_register ${LANG_TURKISH} \
"Vim kaydını kaldır"
LangString str_desc_unregister ${LANG_TURKISH} \
"Vim'in bu bilgisayardaki kaydını kaldırır."
LangString str_unsection_exe ${LANG_TURKISH} \
"Vim programını ve çalıştırma dosyalarını kaldır"
LangString str_desc_rm_exe ${LANG_TURKISH} \
"Vim çalıştırılabilir dosyalarını ve diğer dosyaları kaldırır."
LangString str_ungroup_plugin ${LANG_TURKISH} \
"Eklenti dizinlerini kaldır"
LangString str_desc_rm_plugin ${LANG_TURKISH} \
"Eklenti dizinlerini eğer boş ise kaldırır."
LangString str_unsection_plugin_home ${LANG_TURKISH} \
"Gizli"
LangString str_desc_rm_plugin_home ${LANG_TURKISH} \
"Eklenti dizinlerini EV dizininden kaldırır."
LangString str_unsection_plugin_vim ${LANG_TURKISH} \
"Paylaşılan"
LangString str_desc_rm_plugin_vim ${LANG_TURKISH} \
"Eklenti dizinlerini Vim yükleme dizininden kaldırır."
LangString str_unsection_rootdir ${LANG_TURKISH} \
"Vim kök dizinini kaldır"
LangString str_desc_rm_rootdir ${LANG_TURKISH} \
"Vim kök dizinini kaldırır. Bu dizin Vim yapılandırma dosyalarını içerir!"
LangString str_msg_install_fail ${LANG_TURKISH} \
"Yükleme başarısız oldu. Yeniden deneyin."
LangString str_msg_rm_exe_fail ${LANG_TURKISH} \
"$0 içindeki bazı dosyalar silinemedi!$\r$\n\
Bu dosyaları el ile kaldırmalısınız."
LangString str_msg_uninstalling ${LANG_TURKISH} \
"Eski sürüm kaldırılıyor..."
LangString str_msg_registering ${LANG_TURKISH} \
"Kaydediliyor..."
LangString str_msg_unregistering ${LANG_TURKISH} \
"Kayıt siliniyor..."
##############################################################################
# Dialog Box {{{1
##############################################################################
LangString str_vimrc_page_title ${LANG_TURKISH} \
"_vimrc ayarlarını seçin"
LangString str_vimrc_page_subtitle ${LANG_TURKISH} \
"Yüklenecek ek özellikler, klavye ve fare için ayarları seçin."
LangString str_msg_compat_title ${LANG_TURKISH} \
" Vi / Vim davranışı "
LangString str_msg_compat_desc ${LANG_TURKISH} \
"&Uyumluluk ve ek özellikler"
LangString str_msg_compat_vi ${LANG_TURKISH} \
"Vi uyumlu"
LangString str_msg_compat_vim ${LANG_TURKISH} \
"Vim orijinal"
LangString str_msg_compat_defaults ${LANG_TURKISH} \
"Vim ve ek olarak bazı ek özellikler (load defaults.vim)"
LangString str_msg_compat_all ${LANG_TURKISH} \
"Vim ve ek olarak tüm ek özellikler (load vimrc_example.vim) (Default)"
LangString str_msg_keymap_title ${LANG_TURKISH} \
" Klavye İşlevleri "
LangString str_msg_keymap_desc ${LANG_TURKISH} \
"&Windows için bazı düğmeleri yeniden ayarla (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
LangString str_msg_keymap_default ${LANG_TURKISH} \
"Düğme işlevlerini değiştirme (varsayılan)"
LangString str_msg_keymap_windows ${LANG_TURKISH} \
"Bazı düğmeleri yeniden ayarla"
LangString str_msg_mouse_title ${LANG_TURKISH} \
" Fare İşlevleri "
LangString str_msg_mouse_desc ${LANG_TURKISH} \
"&Sağ ve sol düğme davranışı"
LangString str_msg_mouse_default ${LANG_TURKISH} \
"Sağ: açılır menü, Sol: Görsel Kip (varsayılan)"
LangString str_msg_mouse_windows ${LANG_TURKISH} \
"Sağ: açılır menü, Sol: seçim kipi (Windows)"
LangString str_msg_mouse_unix ${LANG_TURKISH} \
"Sağ: seçimi genişlet, Sol: Görsel Kip (Unix)"

View File

@ -1,7 +1,7 @@
" Vim completion script " Vim completion script
" Language: C " Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2018 Aug 20 " Last Change: 2020 Apr 08
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo&vim set cpo&vim
@ -635,3 +635,5 @@ endfunc
let &cpo = s:cpo_save let &cpo = s:cpo_save
unlet s:cpo_save unlet s:cpo_save
" vim: noet sw=2 sts=2

View File

@ -1,7 +1,7 @@
" Vim functions for file type detection " Vim functions for file type detection
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 Mar 08 " Last Change: 2020 Mar 30
" These functions are moved here from runtime/filetype.vim to make startup " These functions are moved here from runtime/filetype.vim to make startup
" faster. " faster.
@ -298,7 +298,7 @@ endfunc
func dist#ft#FTmms() func dist#ft#FTmms()
let n = 1 let n = 1
while n < 10 while n < 20
let line = getline(n) let line = getline(n)
if line =~ '^\s*\(%\|//\)' || line =~ '^\*' if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
setf mmix setf mmix
@ -325,7 +325,7 @@ endfunc
func dist#ft#FTmm() func dist#ft#FTmm()
let n = 1 let n = 1
while n < 10 while n < 20
let line = getline(n) let line = getline(n)
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)' if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
setf objcpp setf objcpp

View File

@ -22,7 +22,7 @@ if &cp
endif endif
if v:version < 702 if v:version < 702
echohl WarningMsg echohl WarningMsg
echo "***warning*** this version of getscript needs vim 7.2" echo "***warning*** this version of GetLatestVimScripts needs vim 7.2"
echohl Normal echohl Normal
finish finish
endif endif

View File

@ -2,7 +2,7 @@
" Language: Haskell " Language: Haskell
" Maintainer: Daniel Campoverde <alx@sillybytes.net> " Maintainer: Daniel Campoverde <alx@sillybytes.net>
" URL: https://github.com/alx741/haskellcomplete.vim " URL: https://github.com/alx741/haskellcomplete.vim
" Last Change: 2018 Aug 26 " Last Change: 2019 May 14
" Usage: setlocal omnifunc=haskellcomplete#Complete " Usage: setlocal omnifunc=haskellcomplete#Complete
@ -63,6 +63,7 @@ function! haskellcomplete#Complete(findstart, base)
call add(l:matches, extension) call add(l:matches, extension)
endif endif
endfor endfor
let b:completingLangExtension = 0
return l:matches return l:matches
endif endif
@ -78,6 +79,7 @@ function! haskellcomplete#Complete(findstart, base)
call add(l:matches, flag) call add(l:matches, flag)
endif endif
endfor endfor
let b:completingOptionsGHC = 0
return l:matches return l:matches
endif endif
@ -93,6 +95,7 @@ function! haskellcomplete#Complete(findstart, base)
call add(l:matches, module) call add(l:matches, module)
endif endif
endfor endfor
let b:completingModule = 0
return l:matches return l:matches
endif endif

View File

@ -1,7 +1,7 @@
" Vim completion script " Vim completion script
" Language: HTML and XHTML " Language: HTML and XHTML
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) " Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2014 Jun 20 " Last Change: 2019 Sep 27
" Distinguish between HTML versions. " Distinguish between HTML versions.
" To use with other HTML versions add another "elseif" condition to match " To use with other HTML versions add another "elseif" condition to match
@ -245,7 +245,8 @@ function! htmlcomplete#CompleteTags(findstart, base)
" If context contains white space it is attribute. " If context contains white space it is attribute.
" It can be also value of attribute. " It can be also value of attribute.
" We have to get first word to offer proper completions " We have to get first word to offer proper completions
if context == '' if context =~ '^\s*$'
" empty or whitespace line
let tag = '' let tag = ''
else else
let tag = split(context)[0] let tag = split(context)[0]

View File

@ -1,8 +1,8 @@
" netrw.vim: Handles file transfer and remote directory listing across " netrw.vim: Handles file transfer and remote directory listing across
" AUTOLOAD SECTION " AUTOLOAD SECTION
" Date: Jul 16, 2019 " Date: Jan 07, 2020
" Version: 165 " Version: 168
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> " Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
@ -13,6 +13,10 @@
" expressed or implied. By using this plugin, you agree that " expressed or implied. By using this plugin, you agree that
" in no event will the copyright holder be liable for any damages " in no event will the copyright holder be liable for any damages
" resulting from the use of this software. " resulting from the use of this software.
"
" Note: the code here was started in 1999 under a much earlier version of vim. The directory browsing
" code was written using vim v6, which did not have Lists (Lists were first offered with vim-v7).
"
"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore() "redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" "
" But be doers of the Word, and not only hearers, deluding your own selves {{{1 " But be doers of the Word, and not only hearers, deluding your own selves {{{1
@ -39,7 +43,7 @@ if exists("s:needspatches")
endfor endfor
endif endif
let g:loaded_netrw = "v165" let g:loaded_netrw = "v168"
if !exists("s:NOTE") if !exists("s:NOTE")
let s:NOTE = 0 let s:NOTE = 0
let s:WARNING = 1 let s:WARNING = 1
@ -64,7 +68,7 @@ setl cpo&vim
" Usage: netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,"some message",error-number) " Usage: netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,"some message",error-number)
" netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,["message1","message2",...],error-number) " netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,["message1","message2",...],error-number)
" (this function can optionally take a list of messages) " (this function can optionally take a list of messages)
" Mar 21, 2017 : max errnum currently is 105 " Dec 2, 2019 : max errnum currently is 106
fun! netrw#ErrorMsg(level,msg,errnum) fun! netrw#ErrorMsg(level,msg,errnum)
" call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow) " call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow)
@ -232,12 +236,12 @@ if !exists("g:netrw_ftp_options")
let g:netrw_ftp_options= "-i -n" let g:netrw_ftp_options= "-i -n"
endif endif
if !exists("g:netrw_http_cmd") if !exists("g:netrw_http_cmd")
if executable("curl") if executable("wget")
let g:netrw_http_cmd = "curl"
call s:NetrwInit("g:netrw_http_xcmd","-L -o")
elseif executable("wget")
let g:netrw_http_cmd = "wget" let g:netrw_http_cmd = "wget"
call s:NetrwInit("g:netrw_http_xcmd","-q -O") call s:NetrwInit("g:netrw_http_xcmd","-q -O")
elseif executable("curl")
let g:netrw_http_cmd = "curl"
call s:NetrwInit("g:netrw_http_xcmd","-L -o")
elseif executable("elinks") elseif executable("elinks")
let g:netrw_http_cmd = "elinks" let g:netrw_http_cmd = "elinks"
call s:NetrwInit("g:netrw_http_xcmd","-source >") call s:NetrwInit("g:netrw_http_xcmd","-source >")
@ -443,23 +447,9 @@ if !exists("g:netrw_localmovecmd")
let g:netrw_localmovecmd= "" let g:netrw_localmovecmd= ""
endif endif
endif endif
if v:version < 704 || (v:version == 704 && !has("patch1107")) " following serves as an example for how to insert a version&patch specific test
" 1109 provides for delete(tmpdir,"d") which is what will be used "if v:version < 704 || (v:version == 704 && !has("patch1107"))
if exists("g:netrw_local_rmdir") "endif
let g:netrw_localrmdir= g:netrw_local_rmdir
call netrw#ErrorMsg(s:NOTE,"g:netrw_local_rmdir is deprecated in favor of g:netrw_localrmdir",86)
endif
if has("win32") || has("win95") || has("win64") || has("win16")
if g:netrw_cygwin
call s:NetrwInit("g:netrw_localrmdir","rmdir")
else
let g:netrw_localrmdir = expand("$COMSPEC")
let g:netrw_localrmdiropt= " /c rmdir"
endif
else
call s:NetrwInit("g:netrw_localrmdir","rmdir")
endif
endif
call s:NetrwInit("g:netrw_liststyle" , s:THINLIST) call s:NetrwInit("g:netrw_liststyle" , s:THINLIST)
" sanity checks " sanity checks
if g:netrw_liststyle < 0 || g:netrw_liststyle >= s:MAXLIST if g:netrw_liststyle < 0 || g:netrw_liststyle >= s:MAXLIST
@ -689,6 +679,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
" save registers " save registers
if has("clipboard") if has("clipboard")
" call Decho("(netrw#Explore) save @* and @+",'~'.expand("<slnum>"))
sil! let keepregstar = @* sil! let keepregstar = @*
sil! let keepregplus = @+ sil! let keepregplus = @+
endif endif
@ -916,8 +907,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
if !exists("w:netrw_explore_list") " sanity check if !exists("w:netrw_explore_list") " sanity check
NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40) NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40)
if has("clipboard") if has("clipboard")
sil! let @* = keepregstar " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
sil! let @+ = keepregplus if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
endif endif
sil! let @/ = keepregslash sil! let @/ = keepregslash
" call Dret("netrw#Explore") " call Dret("netrw#Explore")
@ -941,8 +933,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
if !exists("w:netrw_explore_list") " sanity check if !exists("w:netrw_explore_list") " sanity check
NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41) NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41)
if has("clipboard") if has("clipboard")
sil! let @* = keepregstar " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
sil! let @+ = keepregplus if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
endif endif
sil! let @/ = keepregslash sil! let @/ = keepregslash
" call Dret("netrw#Explore") " call Dret("netrw#Explore")
@ -996,8 +989,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45) keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45)
if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
if has("clipboard") if has("clipboard")
sil! let @* = keepregstar " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
sil! let @+ = keepregplus if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
endif endif
sil! let @/ = keepregslash sil! let @/ = keepregslash
" call Dret("netrw#Explore : no files matched pattern") " call Dret("netrw#Explore : no files matched pattern")
@ -1032,8 +1026,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/') if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/')
keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42) keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42)
if has("clipboard") if has("clipboard")
sil! let @* = keepregstar " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
sil! let @+ = keepregplus if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
endif endif
sil! let @/ = keepregslash sil! let @/ = keepregslash
" call Dret("netrw#Explore : no files matched") " call Dret("netrw#Explore : no files matched")
@ -1080,8 +1075,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44) keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44)
endif endif
if has("clipboard") if has("clipboard")
sil! let @* = keepregstar " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
sil! let @+ = keepregplus if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
endif endif
sil! let @/ = keepregslash sil! let @/ = keepregslash
" call Dret("netrw#Explore : missing +path_extra") " call Dret("netrw#Explore : missing +path_extra")
@ -1153,8 +1149,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
" Consequently, set s:netrw_events to 2. " Consequently, set s:netrw_events to 2.
let s:netrw_events= 2 let s:netrw_events= 2
if has("clipboard") if has("clipboard")
sil! let @* = keepregstar " call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
sil! let @+ = keepregplus if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
endif endif
sil! let @/ = keepregslash sil! let @/ = keepregslash
" call Dret("netrw#Explore : @/<".@/.">") " call Dret("netrw#Explore : @/<".@/.">")
@ -1528,7 +1525,8 @@ fun! netrw#Obtain(islocal,fname,...)
" -i : turns off interactive prompting from ftp " -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists " -n unix : DON'T use <.netrc>, even though it exists
" -n win32: quit being obnoxious about password " -n win32: quit being obnoxious about password
NetrwKeepj norm! 1Gdd " Note: using "_dd to delete to the black hole register; avoids messing up @@
NetrwKeepj norm! 1G"_dd
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options) call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
if getline(1) !~ "^$" if getline(1) !~ "^$"
@ -1642,7 +1640,6 @@ fun! s:NetrwOptionsSave(vt)
let {a:vt}netrw_cpokeep = &l:cpo let {a:vt}netrw_cpokeep = &l:cpo
let {a:vt}netrw_diffkeep = &l:diff let {a:vt}netrw_diffkeep = &l:diff
let {a:vt}netrw_fenkeep = &l:fen let {a:vt}netrw_fenkeep = &l:fen
" call Decho("saving current settings: got here#1",'~'.expand("<slnum>"))
if !exists("g:netrw_ffkeep") || g:netrw_ffkeep if !exists("g:netrw_ffkeep") || g:netrw_ffkeep
let {a:vt}netrw_ffkeep = &l:ff let {a:vt}netrw_ffkeep = &l:ff
endif endif
@ -1661,7 +1658,6 @@ fun! s:NetrwOptionsSave(vt)
let {a:vt}netrw_rokeep = &l:ro let {a:vt}netrw_rokeep = &l:ro
let {a:vt}netrw_selkeep = &l:sel let {a:vt}netrw_selkeep = &l:sel
let {a:vt}netrw_spellkeep = &l:spell let {a:vt}netrw_spellkeep = &l:spell
" call Decho("saving current settings: got here#2",'~'.expand("<slnum>"))
if !g:netrw_use_noswf if !g:netrw_use_noswf
let {a:vt}netrw_swfkeep = &l:swf let {a:vt}netrw_swfkeep = &l:swf
endif endif
@ -1675,6 +1671,7 @@ fun! s:NetrwOptionsSave(vt)
" call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>")) " call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>"))
if g:netrw_keepdir if g:netrw_keepdir
let {a:vt}netrw_dirkeep = getcwd() let {a:vt}netrw_dirkeep = getcwd()
" call Decho("saving to ".a:vt."netrw_dirkeep<".{a:vt}netrw_dirkeep.">",'~'.expand("<slnum>"))
endif endif
if has("clipboard") if has("clipboard")
sil! let {a:vt}netrw_starkeep = @* sil! let {a:vt}netrw_starkeep = @*
@ -1745,6 +1742,7 @@ fun! s:NetrwOptionsRestore(vt)
" call Dfunc("s:NetrwOptionsRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$")) " call Dfunc("s:NetrwOptionsRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$"))
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
if !exists("{a:vt}netrw_optionsave") if !exists("{a:vt}netrw_optionsave")
" call Decho("case ".a:vt."netrw_optionsave : doesn't exist",'~'.expand("<slnum>"))
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
" call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
" call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist") " call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist")
@ -1829,6 +1827,7 @@ fun! s:NetrwOptionsRestore(vt)
endif endif
endif endif
if has("clipboard") if has("clipboard")
" call Decho("has clipboard",'~'.expand("<slnum>"))
call s:NetrwRestoreSetting(a:vt."netrw_starkeep","@*") call s:NetrwRestoreSetting(a:vt."netrw_starkeep","@*")
call s:NetrwRestoreSetting(a:vt."netrw_pluskeep","@+") call s:NetrwRestoreSetting(a:vt."netrw_pluskeep","@+")
endif endif
@ -1890,7 +1889,7 @@ endfun
" Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting " Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting
" keepvars are set up by s:NetrwOptionsSave " keepvars are set up by s:NetrwOptionsSave
fun! s:NetrwRestoreSetting(keepvar,setting) fun! s:NetrwRestoreSetting(keepvar,setting)
"" call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)") """ call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)")
" typically called from s:NetrwOptionsRestore " typically called from s:NetrwOptionsRestore
" call s:NetrwRestoreSettings(keep-option-variable-name,'associated-option') " call s:NetrwRestoreSettings(keep-option-variable-name,'associated-option')
@ -1905,7 +1904,7 @@ fun! s:NetrwRestoreSetting(keepvar,setting)
"" call Decho("fyi: a:setting<".a:setting."> setting<".setting.">") "" call Decho("fyi: a:setting<".a:setting."> setting<".setting.">")
if setting != keepvarval if setting != keepvarval
"" call Decho("restore setting<".a:setting."=".setting."> to keepvarval<".keepvarval.">") "" call Decho("restore setting<".a:setting."> (currently=".setting.") to keepvarval<".keepvarval.">")
if type(a:setting) == 0 if type(a:setting) == 0
exe "let ".a:setting."= ".keepvarval exe "let ".a:setting."= ".keepvarval
elseif type(a:setting) == 1 elseif type(a:setting) == 1
@ -2195,7 +2194,7 @@ fun! netrw#NetRead(mode,...)
" -i : turns off interactive prompting from ftp " -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists " -n unix : DON'T use <.netrc>, even though it exists
" -n win32: quit being obnoxious about password " -n win32: quit being obnoxious about password
NetrwKeepj norm! 1Gdd NetrwKeepj norm! 1G"_dd
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options) call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
if getline(1) !~ "^$" if getline(1) !~ "^$"
@ -2295,7 +2294,7 @@ fun! netrw#NetRead(mode,...)
NetrwKeepj put ='quit' NetrwKeepj put ='quit'
" perform cadaver operation: " perform cadaver operation:
NetrwKeepj norm! 1Gdd NetrwKeepj norm! 1G"_dd
call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd) call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd)
keepj bd! keepj bd!
endif endif
@ -2611,7 +2610,7 @@ fun! netrw#NetWrite(...) range
" -i : turns off interactive prompting from ftp " -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists " -n unix : DON'T use <.netrc>, even though it exists
" -n win32: quit being obnoxious about password " -n win32: quit being obnoxious about password
NetrwKeepj norm! 1Gdd NetrwKeepj norm! 1G"_dd
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options) call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
if getline(1) !~ "^$" if getline(1) !~ "^$"
@ -2677,7 +2676,7 @@ fun! netrw#NetWrite(...) range
NetrwKeepj put ='put '.tmpfile.' '.netrw_fname NetrwKeepj put ='put '.tmpfile.' '.netrw_fname
" perform cadaver operation: " perform cadaver operation:
NetrwKeepj norm! 1Gdd NetrwKeepj norm! 1G"_dd
call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd) call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd)
" remove enew buffer (quietly) " remove enew buffer (quietly)
@ -2863,7 +2862,7 @@ fun! s:NetrwGetFile(readcmd, tfile, method)
" readcmd=='t': simply do nothing " readcmd=='t': simply do nothing
if a:readcmd == 't' if a:readcmd == 't'
" call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) " call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
" call Dret("NetrwGetFile : skip read of <".a:tfile.">") " call Dret("NetrwGetFile : skip read of tfile<".a:tfile.">")
return return
endif endif
@ -4359,7 +4358,7 @@ fun! s:NetrwGetWord()
let curline= getline('.') let curline= getline('.')
if curline =~# '"\s*Sorted by\s' if curline =~# '"\s*Sorted by\s'
NetrwKeepj norm! s NetrwKeepj norm! "_s
let s:netrw_skipbrowse= 1 let s:netrw_skipbrowse= 1
echo 'Pressing "s" also works' echo 'Pressing "s" also works'
@ -5194,17 +5193,31 @@ fun! s:NetrwBrowseUpDir(islocal)
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" netrw#BrowseX: (implements "x") executes a special "viewer" script or program for the {{{2 " netrw#BrowseX: (implements "x" and "gx") executes a special "viewer" script or program for the {{{2
" given filename; typically this means given their extension. " given filename; typically this means given their extension.
" 0=local, 1=remote " 0=local, 1=remote
fun! netrw#BrowseX(fname,remote) fun! netrw#BrowseX(fname,remote)
" call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.")") let use_ctrlo= 1
" call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.") implements x and gx maps")
" if its really just a local directory, then do a "gf" instead if a:remote == 0 && isdirectory(a:fname)
if (a:remote == 0 && isdirectory(a:fname)) || (a:remote == 1 && a:fname =~ '/$' && a:fname !~ '^https\=:') " if its really just a local directory, then do a "gf" instead
" call Decho("remote≡0 and a:fname<".a:fname."> ".(isdirectory(a:fname)? "is a directory" : "is not a directory"),'~'.expand("<slnum>"))
" call Decho("..appears to be a local directory; using e ".a:fname." instead",'~'.expand("<slnum>"))
exe "e ".a:fname
" call Dret("netrw#BrowseX")
return
elseif a:remote == 1 && a:fname !~ '^https\=:' && a:fname =~ '/$'
" remote directory, not a webpage access, looks like an attempt to do a directory listing
" call Decho("remote≡1 and a:fname<".a:fname.">",'~'.expand("<slnum>"))
" call Decho("..and fname ".((a:fname =~ '^https\=:')? 'matches' : 'does not match').'^https\=:','~'.expand("<slnum>"))
" call Decho("..and fname ".((a:fname =~ '/$')? 'matches' : 'does not match').' /$','~'.expand("<slnum>"))
" call Decho("..appears to be a remote directory listing request; using gf instead",'~'.expand("<slnum>"))
norm! gf norm! gf
" call Dret("(netrw#BrowseX) did gf instead") " call Dret("netrw#BrowseX")
return
endif endif
" call Decho("not a local file nor a webpage request",'~'.expand("<slnum>"))
let ykeep = @@ let ykeep = @@
let screenposn = winsaveview() let screenposn = winsaveview()
@ -5302,10 +5315,9 @@ fun! netrw#BrowseX(fname,remote)
endif endif
" call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>")) " call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>"))
" extract any viewing options. Assumes that they're set apart by quotes. " extract any viewing options. Assumes that they're set apart by spaces.
" call Decho("extract any viewing options",'~'.expand("<slnum>"))
if exists("g:netrw_browsex_viewer") if exists("g:netrw_browsex_viewer")
" call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) " call Decho("extract any viewing options from g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
if g:netrw_browsex_viewer =~ '\s' if g:netrw_browsex_viewer =~ '\s'
let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','') let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','')
let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." " let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." "
@ -5328,16 +5340,16 @@ fun! netrw#BrowseX(fname,remote)
" execute the file handler " execute the file handler
" call Decho("execute the file handler (if any)",'~'.expand("<slnum>")) " call Decho("execute the file handler (if any)",'~'.expand("<slnum>"))
if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-' if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-'
" call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) " call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
let ret= netrwFileHandlers#Invoke(exten,fname) let ret= netrwFileHandlers#Invoke(exten,fname)
elseif exists("g:netrw_browsex_viewer") && executable(viewer) elseif exists("g:netrw_browsex_viewer") && executable(viewer)
" call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) " call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir) call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir)
let ret= v:shell_error let ret= v:shell_error
elseif has("win32") || has("win64") elseif has("win32") || has("win64")
" call Decho("win".(has("win32")? "32" : "64")",'~'.expand("<slnum>")) " call Decho("(netrw#BrowseX) win".(has("win32")? "32" : "64"),'~'.expand("<slnum>"))
if executable("start") if executable("start")
call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1))
elseif executable("rundll32") elseif executable("rundll32")
@ -5345,56 +5357,68 @@ fun! netrw#BrowseX(fname,remote)
else else
call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74)
endif endif
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let ret= v:shell_error let ret= v:shell_error
elseif has("win32unix") elseif has("win32unix")
let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g') let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g')
" call Decho("cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>")) " call Decho("(netrw#BrowseX) cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>"))
if executable("start") if executable("start")
" call Decho("(netrw#BrowseX) win32unix+start",'~'.expand("<slnum>"))
call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1))
elseif executable("rundll32") elseif executable("rundll32")
" call Decho("(netrw#BrowseX) win32unix+rundll32",'~'.expand("<slnum>"))
call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1))
elseif executable("cygstart") elseif executable("cygstart")
" call Decho("(netrw#BrowseX) win32unix+cygstart",'~'.expand("<slnum>"))
call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1)) call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1))
else else
call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74)
endif endif
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let ret= v:shell_error let ret= v:shell_error
elseif has("unix") && executable("kfmclient") && s:CheckIfKde() elseif has("unix") && executable("kfmclient") && s:CheckIfKde()
" call Decho("unix and kfmclient",'~'.expand("<slnum>")) " call Decho("(netrw#BrowseX) unix and kfmclient",'~'.expand("<slnum>"))
call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir) call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir)
let ret= v:shell_error let ret= v:shell_error
elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid") elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid")
" call Decho("unix, exo-open, xdg-open",'~'.expand("<slnum>")) " call Decho("(netrw#BrowseX) unix, exo-open, xdg-open",'~'.expand("<slnum>"))
call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir) call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir)
let ret= v:shell_error let ret= v:shell_error
elseif has("unix") && $DESKTOP_SESSION == "mate" && executable("atril") elseif has("unix") && $DESKTOP_SESSION == "mate" && executable("atril")
" call Decho("unix and atril",'~'.expand("<slnum>")) " call Decho("(netrw#BrowseX) unix and atril",'~'.expand("<slnum>"))
call s:NetrwExe("sil !atril ".s:ShellEscape(fname,1).redir) if a:fname =~ '^https\=://'
" atril does not appear to understand how to handle html -- so use gvim to edit the document
let use_ctrlo= 0
" call Decho("(COMBAK) fname<".fname.">")
" call Decho("(COMBAK) a:fname<".a:fname.">")
call s:NetrwExe("sil! !gvim ".fname.' -c "keepj keepalt file '.fnameescape(a:fname).'"')
else
call s:NetrwExe("sil !atril ".s:ShellEscape(fname,1).redir)
endif
let ret= v:shell_error let ret= v:shell_error
elseif has("unix") && executable("xdg-open") elseif has("unix") && executable("xdg-open")
" call Decho("unix and xdg-open",'~'.expand("<slnum>")) " call Decho("(netrw#BrowseX) unix and xdg-open",'~'.expand("<slnum>"))
call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir) call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir)
let ret= v:shell_error let ret= v:shell_error
elseif has("macunix") && executable("open") elseif has("macunix") && executable("open")
" call Decho("macunix and open",'~'.expand("<slnum>")) " call Decho("(netrw#BrowseX) macunix and open",'~'.expand("<slnum>"))
call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir) call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir)
let ret= v:shell_error let ret= v:shell_error
else else
" netrwFileHandlers#Invoke() always returns 0 " netrwFileHandlers#Invoke() always returns 0
" call Decho("(netrw#BrowseX) use netrwFileHandlers",'~'.expand("<slnum>"))
let ret= netrwFileHandlers#Invoke(exten,fname) let ret= netrwFileHandlers#Invoke(exten,fname)
endif endif
" if unsuccessful, attempt netrwFileHandlers#Invoke() " if unsuccessful, attempt netrwFileHandlers#Invoke()
if ret if ret
" call Decho("(netrw#BrowseX) ret=".ret," indicates unsuccessful thus far",'~'.expand("<slnum>"))
let ret= netrwFileHandlers#Invoke(exten,fname) let ret= netrwFileHandlers#Invoke(exten,fname)
endif endif
@ -5416,8 +5440,9 @@ fun! netrw#BrowseX(fname,remote)
if g:netrw_use_noswf if g:netrw_use_noswf
setl noswf setl noswf
endif endif
exe "sil! NetrwKeepj norm! \<c-o>" if use_ctrlo
" redraw! exe "sil! NetrwKeepj norm! \<c-o>"
endif
endif endif
" call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) " call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))
call winrestview(screenposn) call winrestview(screenposn)
@ -5446,11 +5471,11 @@ endfun
" netrw#BrowseXVis: used by gx in visual mode to select a file for browsing {{{2 " netrw#BrowseXVis: used by gx in visual mode to select a file for browsing {{{2
fun! netrw#BrowseXVis() fun! netrw#BrowseXVis()
" call Dfunc("netrw#BrowseXVis()") " call Dfunc("netrw#BrowseXVis()")
let atkeep = @@ let akeep = @a
norm! gvy norm! gv"ay
" call Decho("@@<".@@.">",'~'.expand("<slnum>")) let gxfile= @a
call netrw#BrowseX(@@,netrw#CheckIfRemote(@@)) let @a = akeep
let @@ = atkeep call netrw#BrowseX(gxfile,netrw#CheckIfRemote(gxfile))
" call Dret("netrw#BrowseXVis") " call Dret("netrw#BrowseXVis")
endfun endfun
@ -6070,13 +6095,12 @@ fun! s:NetrwSLeftrelease(islocal)
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" s:NetrwListHide: uses [range]g~...~d to delete files that match comma {{{2 " s:NetrwListHide: uses [range]g~...~d to delete files that match {{{2
" separated patterns given in g:netrw_list_hide " comma-separated patterns given in g:netrw_list_hide
fun! s:NetrwListHide() fun! s:NetrwListHide()
" call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">") " call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">")
" call Decho("initial: ".string(getline(w:netrw_bannercnt,'$'))) " call Decho("initial: ".string(getline(w:netrw_bannercnt,'$')))
let ykeep= @@ let ykeep= @@
" call DechoBuf(bufnr("%"),"COMBAK#3")
" find a character not in the "hide" string to use as a separator for :g and :v commands " find a character not in the "hide" string to use as a separator for :g and :v commands
" How-it-works: take the hiding command, convert it into a range. " How-it-works: take the hiding command, convert it into a range.
@ -6085,8 +6109,8 @@ fun! s:NetrwListHide()
" Use the first character left as a separator character. " Use the first character left as a separator character.
" call Decho("find a character not in the hide string to use as a separator") " call Decho("find a character not in the hide string to use as a separator")
let listhide= g:netrw_list_hide let listhide= g:netrw_list_hide
let sep = strpart(substitute('/~@#$%^&*{};:,<.>?|1234567890','['.escape(listhide,'-]^\').']','','ge'),1,1) let sep = strpart(substitute('~@#$%^&*{};:,<.>?|1234567890','['.escape(listhide,'-]^\').']','','ge'),1,1)
" call Decho("sep=".sep,'~'.expand("<slnum>")) " call Decho("sep=".sep," (sep not in hide string)'~'.expand("<slnum>"))
while listhide != "" while listhide != ""
if listhide =~ ',' if listhide =~ ','
@ -6096,10 +6120,19 @@ fun! s:NetrwListHide()
let hide = listhide let hide = listhide
let listhide = "" let listhide = ""
endif endif
" call Decho("hide<".hide."> listhide<".listhide.'>','~'.expand("<slnum>")) " call Decho("..extracted from listhide: hide<".hide."> g:netrw_sort_by<".g:netrw_sort_by.'>','~'.expand("<slnum>"))
if g:netrw_sort_by =~ '^[ts]'
if hide =~ '^\^'
" call Decho("..modify hide to handle a \"^...\" pattern",'~'.expand("<slnum>"))
let hide= substitute(hide,'^\^','^\(\\d\\+/\)','')
elseif hide =~ '^\\(\^'
let hide= substitute(hide,'^\\(\^','\\(^\\(\\d\\+/\\)','')
endif
" call Decho("..hide<".hide."> listhide<".listhide.'>','~'.expand("<slnum>"))
endif
" Prune the list by hiding any files which match " Prune the list by hiding any files which match
" call Decho("prune the list by hiding any files which ",((g:netrw_hide == 1)? "" : "don't")." match hide<".hide.">") " call Decho("..prune the list by hiding any files which ",((g:netrw_hide == 1)? "" : "don't")." match hide<".hide.">")
if g:netrw_hide == 1 if g:netrw_hide == 1
" call Decho("..hiding<".hide.">",'~'.expand("<slnum>")) " call Decho("..hiding<".hide.">",'~'.expand("<slnum>"))
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d' exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d'
@ -6120,7 +6153,6 @@ fun! s:NetrwListHide()
" remove any blank lines that have somehow remained. " remove any blank lines that have somehow remained.
" This seems to happen under Windows. " This seems to happen under Windows.
exe 'sil! NetrwKeepj 1,$g@^\s*$@d' exe 'sil! NetrwKeepj 1,$g@^\s*$@d'
" call DechoBuf(bufnr("%"),"COMBAK#4")
let @@= ykeep let @@= ykeep
" call Dret("s:NetrwListHide") " call Dret("s:NetrwListHide")
@ -6328,7 +6360,7 @@ fun! s:NetrwMaps(islocal)
" generate default <Plug> maps {{{3 " generate default <Plug> maps {{{3
if !hasmapto('<Plug>NetrwHide') |nmap <buffer> <silent> <nowait> a <Plug>NetrwHide_a|endif if !hasmapto('<Plug>NetrwHide') |nmap <buffer> <silent> <nowait> a <Plug>NetrwHide_a|endif
if !hasmapto('<Plug>NetrwBrowseUpDir') |nmap <buffer> <silent> <nowait> - <Plug>NetrwBrowseUpDir |endif if !hasmapto('<Plug>NetrwBrowseUpDir') |nmap <buffer> <silent> <nowait> - <Plug>NetrwBrowseUpDir|endif
if !hasmapto('<Plug>NetrwOpenFile') |nmap <buffer> <silent> <nowait> % <Plug>NetrwOpenFile|endif if !hasmapto('<Plug>NetrwOpenFile') |nmap <buffer> <silent> <nowait> % <Plug>NetrwOpenFile|endif
if !hasmapto('<Plug>NetrwBadd_cb') |nmap <buffer> <silent> <nowait> cb <Plug>NetrwBadd_cb|endif if !hasmapto('<Plug>NetrwBadd_cb') |nmap <buffer> <silent> <nowait> cb <Plug>NetrwBadd_cb|endif
if !hasmapto('<Plug>NetrwBadd_cB') |nmap <buffer> <silent> <nowait> cB <Plug>NetrwBadd_cB|endif if !hasmapto('<Plug>NetrwBadd_cB') |nmap <buffer> <silent> <nowait> cB <Plug>NetrwBadd_cB|endif
@ -6645,9 +6677,9 @@ fun! s:NetrwMarkFiles(islocal,...)
while i <= a:0 while i <= a:0
if a:islocal if a:islocal
if v:version > 704 || (v:version == 704 && has("patch656")) if v:version > 704 || (v:version == 704 && has("patch656"))
let mffiles= glob(fnameescape(a:{i}),0,1,1) let mffiles= glob(a:{i},0,1,1)
else else
let mffiles= glob(fnameescape(a:{i}),0,1) let mffiles= glob(a:{i},0,1)
endif endif
else else
let mffiles= [a:{i}] let mffiles= [a:{i}]
@ -6788,13 +6820,15 @@ fun! s:NetrwMarkFile(islocal,fname)
if index(s:netrwmarkfilelist,dname) == -1 if index(s:netrwmarkfilelist,dname) == -1
" append new filename to global markfilelist " append new filename to global markfilelist
call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname)) call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname))
" call Decho("append filename<".a:fname."> to global markfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) " call Decho("append filename<".a:fname."> to global s:markfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
else else
" remove new filename from global markfilelist " remove new filename from global markfilelist
" call Decho("filter(".string(s:netrwmarkfilelist).",'v:val != '.".dname.")",'~'.expand("<slnum>")) " call Decho("remove new filename from global s:markfilelist",'~'.expand("<slnum>"))
" call Decho("..filter(".string(s:netrwmarkfilelist).",'v:val != '.".dname.")",'~'.expand("<slnum>"))
call filter(s:netrwmarkfilelist,'v:val != "'.dname.'"') call filter(s:netrwmarkfilelist,'v:val != "'.dname.'"')
" call Decho("ending s:netrwmarkfilelist <".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) " call Decho("..ending s:netrwmarkfilelist <".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
if s:netrwmarkfilelist == [] if s:netrwmarkfilelist == []
" call Decho("s:netrwmarkfilelist is empty; unlet it",'~'.expand("<slnum>"))
unlet s:netrwmarkfilelist unlet s:netrwmarkfilelist
endif endif
endif endif
@ -6818,7 +6852,8 @@ fun! s:NetrwMarkFile(islocal,fname)
endif endif
endif endif
let @@= ykeep let @@= ykeep
" call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist").">") " call Decho("s:netrwmarkfilelist[".(exists("s:netrwmarkfilelist")? string(s:netrwmarkfilelist) : "")."] (avail in all buffers)",'~'.expand("<slnum>"))
" call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist")."> (buf#".curbufnr."list)")
endfun endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
@ -7109,17 +7144,8 @@ fun! s:NetrwMarkFileCopy(islocal,...)
" call Dret("s:NetrwMarkFileCopy : lcd failure") " call Dret("s:NetrwMarkFileCopy : lcd failure")
return return
endif endif
if v:version < 704 || (v:version == 704 && !has("patch1107")) if delete(tmpdir,"d")
call s:NetrwExe("sil !".g:netrw_localrmdir.g:netrw_localrmdiropt." ".s:ShellEscape(tmpdir,1)) call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".tmpdir.">!",103)
if v:shell_error != 0
call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localrmdir<".g:netrw_localrmdir."> to something that works",80)
" " call Dret("s:NetrwMarkFileCopy : failed: sil !".g:netrw_localrmdir." ".s:ShellEscape(tmpdir,1) )
return
endif
else
if delete(tmpdir,"d")
call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".tmpdir.">!",103)
endif
endif endif
else else
if s:NetrwLcd(curdir) if s:NetrwLcd(curdir)
@ -7573,8 +7599,9 @@ fun! s:NetrwMarkFileGrep(islocal)
let curdir = s:NetrwGetCurdir(a:islocal) let curdir = s:NetrwGetCurdir(a:islocal)
if exists("s:netrwmarkfilelist") if exists("s:netrwmarkfilelist")
" call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) " call Decho("using s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)")) let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)"))
" call Decho("keeping copy of s:netrwmarkfilelist in function-local variable,'~'.expand("<slnum>"))"
call s:NetrwUnmarkAll() call s:NetrwUnmarkAll()
else else
" call Decho('no marked files, using "*"','~'.expand("<slnum>")) " call Decho('no marked files, using "*"','~'.expand("<slnum>"))
@ -7582,6 +7609,7 @@ fun! s:NetrwMarkFileGrep(islocal)
endif endif
" ask user for pattern " ask user for pattern
" call Decho("ask user for search pattern",'~'.expand("<slnum>"))
call inputsave() call inputsave()
let pat= input("Enter pattern: ","") let pat= input("Enter pattern: ","")
call inputrestore() call inputrestore()
@ -8694,7 +8722,7 @@ fun! s:NetrwUpload(fname,tgt,...)
" -i : turns off interactive prompting from ftp " -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists " -n unix : DON'T use <.netrc>, even though it exists
" -n win32: quit being obnoxious about password " -n win32: quit being obnoxious about password
NetrwKeepj norm! 1Gdd NetrwKeepj norm! 1G"_dd
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options) call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
sil NetrwKeepj g/Local directory now/d sil NetrwKeepj g/Local directory now/d
@ -9532,15 +9560,19 @@ fun! s:NetrwWideListing()
" fpl: filenames per line " fpl: filenames per line
" fpc: filenames per column " fpc: filenames per column
setl ma noro setl ma noro
let keepa= @a
" call Decho("setl ma noro",'~'.expand("<slnum>")) " call Decho("setl ma noro",'~'.expand("<slnum>"))
let b:netrw_cpf= 0 let b:netrw_cpf= 0
if line("$") >= w:netrw_bannercnt if line("$") >= w:netrw_bannercnt
" determine the maximum filename size; use that to set cpf
exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif' exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif'
NetrwKeepj call histdel("/",-1) NetrwKeepj call histdel("/",-1)
else else
let @a= keepa
" call Dret("NetrwWideListing") " call Dret("NetrwWideListing")
return return
endif endif
" allow for two spaces to separate columns
let b:netrw_cpf= b:netrw_cpf + 2 let b:netrw_cpf= b:netrw_cpf + 2
" call Decho("b:netrw_cpf=max_filename_length+2=".b:netrw_cpf,'~'.expand("<slnum>")) " call Decho("b:netrw_cpf=max_filename_length+2=".b:netrw_cpf,'~'.expand("<slnum>"))
@ -9560,6 +9592,7 @@ fun! s:NetrwWideListing()
let newcolend = newcolstart + fpc - 1 let newcolend = newcolstart + fpc - 1
" call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]",'~'.expand("<slnum>")) " call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]",'~'.expand("<slnum>"))
if has("clipboard") if has("clipboard")
" call Decho("(s:NetrwWideListing) save @* and @+",'~'.expand("<slnum>"))
sil! let keepregstar = @* sil! let keepregstar = @*
sil! let keepregplus = @+ sil! let keepregplus = @+
endif endif
@ -9567,17 +9600,19 @@ fun! s:NetrwWideListing()
if newcolend > line("$") | let newcolend= line("$") | endif if newcolend > line("$") | let newcolend= line("$") | endif
let newcolqty= newcolend - newcolstart let newcolqty= newcolend - newcolstart
exe newcolstart exe newcolstart
" COMBAK: both of the visual-mode using lines below are problematic vis-a-vis @*
if newcolqty == 0 if newcolqty == 0
exe "sil! NetrwKeepj norm! 0\<c-v>$hx".w:netrw_bannercnt."G$p" exe "sil! NetrwKeepj norm! 0\<c-v>$h\"ax".w:netrw_bannercnt."G$\"ap"
else else
exe "sil! NetrwKeepj norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p' exe "sil! NetrwKeepj norm! 0\<c-v>".newcolqty.'j$h"ax'.w:netrw_bannercnt.'G$"ap'
endif endif
exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _' exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _'
exe 'sil! NetrwKeepj '.w:netrw_bannercnt exe 'sil! NetrwKeepj '.w:netrw_bannercnt
endwhile endwhile
if has("clipboard") if has("clipboard")
sil! let @*= keepregstar " call Decho("(s:NetrwWideListing) restore @* and @+",'~'.expand("<slnum>"))
sil! let @+= keepregplus if @* != keepregstar | sil! let @* = keepregstar | endif
if @+ != keepregplus | sil! let @+ = keepregplus | endif
endif endif
exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/\s\+$//e' exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/\s\+$//e'
NetrwKeepj call histdel("/",-1) NetrwKeepj call histdel("/",-1)
@ -9585,6 +9620,7 @@ fun! s:NetrwWideListing()
exe 'nno <buffer> <silent> b :call search(''^.\\|\s\s\zs\S'',''bW'')'."\<cr>" exe 'nno <buffer> <silent> b :call search(''^.\\|\s\s\zs\S'',''bW'')'."\<cr>"
" call Decho("NetrwWideListing) setl noma nomod ro",'~'.expand("<slnum>")) " call Decho("NetrwWideListing) setl noma nomod ro",'~'.expand("<slnum>"))
exe "setl ".g:netrw_bufsettings exe "setl ".g:netrw_bufsettings
let @a= keepa
" call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
" call Dret("NetrwWideListing") " call Dret("NetrwWideListing")
return return
@ -9782,6 +9818,7 @@ fun! s:PerformListing(islocal)
exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
endif endif
endif endif
" remove priority pattern prefix " remove priority pattern prefix
" call Decho("remove priority pattern prefix",'~'.expand("<slnum>")) " call Decho("remove priority pattern prefix",'~'.expand("<slnum>"))
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e' exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e'
@ -9820,6 +9857,7 @@ fun! s:PerformListing(islocal)
" call Decho('exe sil NetrwKeepj '.w:netrw_bannercnt.',$sort!','~'.expand("<slnum>")) " call Decho('exe sil NetrwKeepj '.w:netrw_bannercnt.',$sort!','~'.expand("<slnum>"))
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
endif endif
" call Decho("remove leading digits/ (sorting) information from listing",'~'.expand("<slnum>"))
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e' exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
NetrwKeepj call histdel("/",-1) NetrwKeepj call histdel("/",-1)
endif endif
@ -9882,6 +9920,7 @@ fun! s:PerformListing(islocal)
" call Decho("exe setl ts=".(g:netrw_maxfilenamelen+1),'~'.expand("<slnum>")) " call Decho("exe setl ts=".(g:netrw_maxfilenamelen+1),'~'.expand("<slnum>"))
exe "setl ts=".(g:netrw_maxfilenamelen+1) exe "setl ts=".(g:netrw_maxfilenamelen+1)
endif endif
" call Decho("PerformListing buffer:",'~'.expand("<slnum>"))
" call DechoBuf(bufnr("%")) " call DechoBuf(bufnr("%"))
if exists("s:treecurpos") if exists("s:treecurpos")
@ -10849,7 +10888,6 @@ fun! s:LocalListing()
for filename in filelist for filename in filelist
" call Decho(" ",'~'.expand("<slnum>")) " call Decho(" ",'~'.expand("<slnum>"))
" call Decho("for filename in filelist: filename<".filename.">",'~'.expand("<slnum>")) " call Decho("for filename in filelist: filename<".filename.">",'~'.expand("<slnum>"))
" call DechoBuf(bufnr("%"),"COMBAK#1")
if getftype(filename) == "link" if getftype(filename) == "link"
" indicate a symbolic link " indicate a symbolic link
@ -10907,10 +10945,10 @@ fun! s:LocalListing()
if w:netrw_liststyle == s:LONGLIST if w:netrw_liststyle == s:LONGLIST
let sz = getfsize(filename) let sz = getfsize(filename)
let fsz = strpart(" ",1,15-strlen(sz)).sz
if g:netrw_sizestyle =~# "[hH]" if g:netrw_sizestyle =~# "[hH]"
let sz= s:NetrwHumanReadable(sz) let sz= s:NetrwHumanReadable(sz)
endif endif
let fsz = strpart(" ",1,15-strlen(sz)).sz
let longfile= printf("%-".(g:netrw_maxfilenamelen+1)."s",pfile) let longfile= printf("%-".(g:netrw_maxfilenamelen+1)."s",pfile)
let pfile = longfile.fsz." ".strftime(g:netrw_timefmt,getftime(filename)) let pfile = longfile.fsz." ".strftime(g:netrw_timefmt,getftime(filename))
" call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>")) " call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>"))
@ -10918,10 +10956,11 @@ fun! s:LocalListing()
if g:netrw_sort_by =~# "^t" if g:netrw_sort_by =~# "^t"
" sort by time (handles time up to 1 quintillion seconds, US) " sort by time (handles time up to 1 quintillion seconds, US)
" Decorate listing by prepending a timestamp/ . Sorting will then be done based on time.
" call Decho("getftime(".filename.")=".getftime(filename),'~'.expand("<slnum>")) " call Decho("getftime(".filename.")=".getftime(filename),'~'.expand("<slnum>"))
let t = getftime(filename) let t = getftime(filename)
let ft = strpart("000000000000000000",1,18-strlen(t)).t let ft = strpart("000000000000000000",1,18-strlen(t)).t
" call Decho("exe NetrwKeepj put ='".ft.'/'.filename."'",'~'.expand("<slnum>")) " call Decho("exe NetrwKeepj put ='".ft.'/'.pfile."'",'~'.expand("<slnum>"))
let ftpfile= ft.'/'.pfile let ftpfile= ft.'/'.pfile
sil! NetrwKeepj put=ftpfile sil! NetrwKeepj put=ftpfile
@ -10942,7 +10981,7 @@ fun! s:LocalListing()
" call Decho("exe NetrwKeepj put ='".pfile."'",'~'.expand("<slnum>")) " call Decho("exe NetrwKeepj put ='".pfile."'",'~'.expand("<slnum>"))
sil! NetrwKeepj put=pfile sil! NetrwKeepj put=pfile
endif endif
" call DechoBuf(bufnr("%"),"COMBAK#2") " call DechoBuf(bufnr("%"),"bufnr(%)")
endfor endfor
" cleanup any windows mess at end-of-line " cleanup any windows mess at end-of-line
@ -10989,9 +11028,10 @@ fun! s:NetrwLocalRename(path) range
" call Dfunc("NetrwLocalRename(path<".a:path.">)") " call Dfunc("NetrwLocalRename(path<".a:path.">)")
" preparation for removing multiple files/directories " preparation for removing multiple files/directories
let ykeep = @@ let ykeep = @@
let ctr = a:firstline let ctr = a:firstline
let svpos = winsaveview() let svpos = winsaveview()
let all = 0
" call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
" rename files given by the markfilelist " rename files given by the markfilelist
@ -11019,6 +11059,23 @@ fun! s:NetrwLocalRename(path) range
let newname = substitute(oldname,subfrom,subto,'') let newname = substitute(oldname,subfrom,subto,'')
endif endif
endif endif
if !all && filereadable(newname)
call inputsave()
let response= input("File<".newname."> already exists; do you want to overwrite it? (y/all/n) ")
call inputrestore()
if response == "all"
let all= 1
elseif response != "y" && response != "yes"
" refresh the directory
" call Decho("refresh the directory listing",'~'.expand("<slnum>"))
NetrwKeepj call s:NetrwRefresh(1,s:NetrwBrowseChgDir(1,'./'))
" call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
NetrwKeepj call winrestview(svpos)
let @@= ykeep
" call Dret("NetrwLocalRename")
return
endif
endif
call rename(oldname,newname) call rename(oldname,newname)
endfor endfor
call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir) call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)
@ -11042,14 +11099,14 @@ fun! s:NetrwLocalRename(path) range
NetrwKeepj norm! 0 NetrwKeepj norm! 0
let oldname= s:ComposePath(a:path,curword) let oldname= s:ComposePath(a:path,curword)
" call Decho("oldname<".oldname.">",'~'.expand("<slnum>")) " call Decho("oldname<".oldname.">",'~'.expand("<slnum>"))
call inputsave() call inputsave()
let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e')) let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e'))
call inputrestore() call inputrestore()
call rename(oldname,newname) call rename(oldname,newname)
" call Decho("renaming <".oldname."> to <".newname.">",'~'.expand("<slnum>")) " call Decho("renaming <".oldname."> to <".newname.">",'~'.expand("<slnum>"))
let ctr= ctr + 1 let ctr= ctr + 1
endwhile endwhile
@ -11259,7 +11316,9 @@ fun! netrw#Expose(varname)
" call Dfunc("netrw#Expose(varname<".a:varname.">)") " call Dfunc("netrw#Expose(varname<".a:varname.">)")
if exists("s:".a:varname) if exists("s:".a:varname)
exe "let retval= s:".a:varname exe "let retval= s:".a:varname
" call Decho("retval=".retval,'~'.expand("<slnum>"))
if exists("g:netrw_pchk") if exists("g:netrw_pchk")
" call Decho("type(g:netrw_pchk=".g:netrw_pchk.")=".type(retval),'~'.expand("<slnum>"))
if type(retval) == 3 if type(retval) == 3
let retval = copy(retval) let retval = copy(retval)
let i = 0 let i = 0
@ -11268,10 +11327,13 @@ fun! netrw#Expose(varname)
let i = i + 1 let i = i + 1
endwhile endwhile
endif endif
" call Dret("netrw#Expose ".string(retval)) " call Dret("netrw#Expose ".string(retval)),'~'.expand("<slnum>"))
return string(retval) return string(retval)
else
" call Decho("g:netrw_pchk doesn't exist",'~'.expand("<slnum>"))
endif endif
else else
" call Decho("s:".a:varname." doesn't exist",'~'.expand("<slnum>"))
let retval= "n/a" let retval= "n/a"
endif endif
@ -11832,6 +11894,9 @@ fun! s:NetrwExe(cmd)
" call Decho("exe ".a:cmd,'~'.expand("<slnum>")) " call Decho("exe ".a:cmd,'~'.expand("<slnum>"))
exe a:cmd exe a:cmd
endif endif
if v:shell_error
call netrw#ErrorMsg(s:WARNING,"shell signalled an error",106)
endif
" call Dret("s:NetrwExe : v:shell_error=".v:shell_error) " call Dret("s:NetrwExe : v:shell_error=".v:shell_error)
endfun endfun

View File

@ -1,6 +1,6 @@
" netrwSettings.vim: makes netrw settings simpler " netrwSettings.vim: makes netrw settings simpler
" Date: Nov 09, 2016 " Date: Nov 09, 2016
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz> " Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" Version: 16 " Version: 16
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1 " Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,

View File

@ -18,61 +18,5 @@
" holder be liable for any damages resulting from the use " holder be liable for any damages resulting from the use
" of this software. " of this software.
function! netrw_gitignore#Hide(...) function! netrw_gitignore#Hide(...)
let additional_files = a:000 return substitute(substitute(system('git ls-files --other --ignored --exclude-standard --directory'), '\n', ',', 'g'), ',$', '', '')
let default_files = ['.gitignore', '.git/info/exclude']
" get existing global/system gitignore files
let global_gitignore = expand(substitute(system("git config --global core.excludesfile"), '\n', '', 'g'))
if global_gitignore !=# ''
let default_files = add(default_files, global_gitignore)
endif
let system_gitignore = expand(substitute(system("git config --system core.excludesfile"), '\n', '', 'g'))
if system_gitignore !=# ''
let default_files = add(default_files, system_gitignore)
endif
" append additional files if given as function arguments
if additional_files !=# []
let files = extend(default_files, additional_files)
else
let files = default_files
endif
" keep only existing/readable files
let gitignore_files = []
for file in files
if filereadable(file)
let gitignore_files = add(gitignore_files, file)
endif
endfor
" get contents of gitignore patterns from those files
let gitignore_lines = []
for file in gitignore_files
for line in readfile(file)
" filter empty lines and comments
if line !~# '^#' && line !~# '^$'
let gitignore_lines = add(gitignore_lines, line)
endif
endfor
endfor
" convert gitignore patterns to Netrw/Vim regex patterns
let escaped_lines = []
for line in gitignore_lines
let escaped = line
let escaped = substitute(escaped, '\*\*', '*', 'g')
let escaped = substitute(escaped, '\.', '\\.', 'g')
let escaped = substitute(escaped, '\$', '\\$', 'g')
let escaped = substitute(escaped, '*', '.*', 'g')
" correction: dot, dollar and asterisks chars shouldn't be escaped when
" within regex matching groups.
let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\.', '\.', 'g')
let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\$', '\$', 'g')
let escaped = substitute(escaped, '\(\[[^]]*\)\zs\.\*', '*', 'g')
let escaped_lines = add(escaped_lines, escaped)
endfor
return join(escaped_lines, ',')
endfunction endfunction

View File

@ -3,7 +3,7 @@
" Maintainer: Mark Guzman <segfault@hasno.info> " Maintainer: Mark Guzman <segfault@hasno.info>
" URL: https://github.com/vim-ruby/vim-ruby " URL: https://github.com/vim-ruby/vim-ruby
" Release Coordinator: Doug Kearns <dougkearns@gmail.com> " Release Coordinator: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2019 Jan 06 " Last Change: 2019 Feb 25
" ---------------------------------------------------------------------------- " ----------------------------------------------------------------------------
" "
" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com) " Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
@ -53,6 +53,23 @@ if !exists("g:rubycomplete_include_objectspace")
endif endif
" }}} configuration failsafe initialization " }}} configuration failsafe initialization
" {{{ regex patterns
" Regex that defines the start-match for the 'end' keyword.
let s:end_start_regex =
\ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
\ '\<\%(module\|class\|if\|for\|while\|until\|case\|unless\|begin' .
\ '\|\%(\K\k*[!?]\?\s\+\)\=def\):\@!\>' .
\ '\|\%(^\|[^.:@$]\)\@<=\<do:\@!\>'
" Regex that defines the middle-match for the 'end' keyword.
let s:end_middle_regex = '\<\%(ensure\|else\|\%(\%(^\|;\)\s*\)\@<=\<rescue:\@!\>\|when\|elsif\):\@!\>'
" Regex that defines the end-match for the 'end' keyword.
let s:end_end_regex = '\%(^\|[^.:@$]\)\@<=\<end:\@!\>'
" }}} regex patterns
" {{{ vim-side support functions " {{{ vim-side support functions
let s:rubycomplete_debug = 0 let s:rubycomplete_debug = 0
@ -103,7 +120,7 @@ function! s:GetBufferRubyEntity( name, type, ... )
endif endif
let curpos = getpos(".") let curpos = getpos(".")
let [enum,ecol] = searchpairpos( crex, '', '\(end\|}\)', 'W' ) let [enum,ecol] = searchpairpos( s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'W' )
call cursor(lastpos[1], lastpos[2]) call cursor(lastpos[1], lastpos[2])
if lnum > enum if lnum > enum
@ -128,19 +145,28 @@ function! s:IsPosInClassDef(pos)
return ret return ret
endfunction endfunction
function! s:IsInComment(pos)
let stack = synstack(a:pos[0], a:pos[1])
if !empty(stack)
return synIDattr(stack[0], 'name') =~ 'ruby\%(.*Comment\|Documentation\)'
else
return 0
endif
endfunction
function! s:GetRubyVarType(v) function! s:GetRubyVarType(v)
let stopline = 1 let stopline = 1
let vtp = '' let vtp = ''
let pos = getpos('.') let curpos = getpos('.')
let sstr = '^\s*#\s*@var\s*'.escape(a:v, '*').'\>\s\+[^ \t]\+\s*$' let sstr = '^\s*#\s*@var\s*'.escape(a:v, '*').'\>\s\+[^ \t]\+\s*$'
let [lnum,lcol] = searchpos(sstr,'nb',stopline) let [lnum,lcol] = searchpos(sstr,'nb',stopline)
if lnum != 0 && lcol != 0 if lnum != 0 && lcol != 0
call setpos('.',pos) call setpos('.',curpos)
let str = getline(lnum) let str = getline(lnum)
let vtp = substitute(str,sstr,'\1','') let vtp = substitute(str,sstr,'\1','')
return vtp return vtp
endif endif
call setpos('.',pos) call setpos('.',curpos)
let ctors = '\(now\|new\|open\|get_instance' let ctors = '\(now\|new\|open\|get_instance'
if exists('g:rubycomplete_rails') && g:rubycomplete_rails == 1 && s:rubycomplete_rails_loaded == 1 if exists('g:rubycomplete_rails') && g:rubycomplete_rails == 1 && s:rubycomplete_rails_loaded == 1
let ctors = ctors.'\|find\|create' let ctors = ctors.'\|find\|create'
@ -150,9 +176,13 @@ function! s:GetRubyVarType(v)
let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)' let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)'
let sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr let sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr
let [lnum,lcol] = searchpos(sstr,'nb',stopline) let pos = searchpos(sstr,'bW')
if lnum != 0 && lcol != 0 while pos != [0,0] && s:IsInComment(pos)
let str = matchstr(getline(lnum),fstr,lcol) let pos = searchpos(sstr,'bW')
endwhile
if pos != [0,0]
let [lnum, col] = pos
let str = matchstr(getline(lnum),fstr,col)
let str = substitute(str,'^=\s*','','') let str = substitute(str,'^=\s*','','')
call setpos('.',pos) call setpos('.',pos)
@ -174,7 +204,7 @@ function! s:GetRubyVarType(v)
end end
return '' return ''
endif endif
call setpos('.',pos) call setpos('.',curpos)
return '' return ''
endfunction endfunction
@ -671,11 +701,10 @@ class VimRubyCompletion
methods.delete_if { |c| c.match( /'/ ) } methods.delete_if { |c| c.match( /'/ ) }
end end
when /^::([A-Z][^:\.\(]*)$/ # Absolute Constant or class methods when /^::([A-Z][^:\.\(]*)?$/ # Absolute Constant or class methods
dprint "const or cls" dprint "const or cls"
receiver = $1 receiver = $1
methods = Object.constants methods = Object.constants.collect{ |c| c.to_s }.grep(/^#{receiver}/)
methods.grep(/^#{receiver}/).collect{|e| "::" + e}
when /^(((::)?[A-Z][^:.\(]*)+?)::?([^:.]*)$/ # Constant or class methods when /^(((::)?[A-Z][^:.\(]*)+?)::?([^:.]*)$/ # Constant or class methods
receiver = $1 receiver = $1
@ -684,13 +713,13 @@ class VimRubyCompletion
load_buffer_class( receiver ) load_buffer_class( receiver )
load_buffer_module( receiver ) load_buffer_module( receiver )
begin begin
classes = eval("#{receiver}.constants") constants = eval("#{receiver}.constants").collect{ |c| c.to_s }.grep(/^#{message}/)
#methods = eval("#{receiver}.methods") methods = eval("#{receiver}.methods").collect{ |m| m.to_s }.grep(/^#{message}/)
rescue Exception rescue Exception
dprint "exception: %s" % $! dprint "exception: %s" % $!
constants = []
methods = [] methods = []
end end
methods.grep(/^#{message}/).collect{|e| receiver + "::" + e}
when /^(:[^:.]+)\.([^.]*)$/ # Symbol when /^(:[^:.]+)\.([^.]*)$/ # Symbol
dprint "symbol" dprint "symbol"

View File

@ -2,7 +2,7 @@
" Language: All languages, uses existing syntax highlighting rules " Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com> " Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 13.0 " Version: 13.0
" Last Change: 2013 May 14 " Last Change: 2019 Aug 08
" Usage: For detailed help, ":help ft-syntax-omni" " Usage: For detailed help, ":help ft-syntax-omni"
" History " History
@ -597,7 +597,7 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" Remove all non-word characters " Remove all non-word characters
" let syn_list = substitute( syn_list, '\<match /\zs.\{-}\<\W\+\>.\{-}\ze\/ ', "", 'g' ) " let syn_list = substitute( syn_list, '\<match /\zs.\{-}\<\W\+\>.\{-}\ze\/ ', "", 'g' )
" let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\W\+\ze.\{-}\/ ', ' ', 'g' ) " let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\W\+\ze.\{-}\/ ', ' ', 'g' )
" Do this by using the outer substitue() call to gather all " Do this by using the outer substitute() call to gather all
" text between the match /.../ tags. " text between the match /.../ tags.
" The inner substitute() call operates on the text selected " The inner substitute() call operates on the text selected
" and replaces all non-word characters. " and replaces all non-word characters.

View File

@ -1,13 +1,13 @@
" tar.vim: Handles browsing tarfiles " tar.vim: Handles browsing tarfiles
" AUTOLOAD PORTION " AUTOLOAD PORTION
" Date: Apr 17, 2013 " Date: Jan 07, 2020
" Version: 29 " Version: 32
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> " Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" License: Vim License (see vim's :help license) " License: Vim License (see vim's :help license)
" "
" Contains many ideas from Michael Toren's <tar.vim> " Contains many ideas from Michael Toren's <tar.vim>
" "
" Copyright: Copyright (C) 2005-2011 Charles E. Campbell {{{1 " Copyright: Copyright (C) 2005-2017 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free, " notice is copied with it. Like anything else that's free,
@ -22,7 +22,7 @@
if &cp || exists("g:loaded_tar") if &cp || exists("g:loaded_tar")
finish finish
endif endif
let g:loaded_tar= "v29" let g:loaded_tar= "v32"
if v:version < 702 if v:version < 702
echohl WarningMsg echohl WarningMsg
echo "***warning*** this version of tar needs vim 7.2" echo "***warning*** this version of tar needs vim 7.2"
@ -48,6 +48,9 @@ endif
if !exists("g:tar_writeoptions") if !exists("g:tar_writeoptions")
let g:tar_writeoptions= "uf" let g:tar_writeoptions= "uf"
endif endif
if !exists("g:tar_delfile")
let g:tar_delfile="--delete -f"
endif
if !exists("g:netrw_cygwin") if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$' if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
@ -109,6 +112,7 @@ fun! tar#Browse(tarfile)
" sanity checks " sanity checks
if !executable(g:tar_cmd) if !executable(g:tar_cmd)
redraw! redraw!
" call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
let &report= repkeep let &report= repkeep
" call Dret("tar#Browse") " call Dret("tar#Browse")
@ -119,6 +123,7 @@ fun! tar#Browse(tarfile)
if a:tarfile !~# '^\a\+://' if a:tarfile !~# '^\a\+://'
" if it's an url, don't complain, let url-handlers such as vim do its thing " if it's an url, don't complain, let url-handlers such as vim do its thing
redraw! redraw!
" call Decho("***error*** (tar#Browse) File not readable<".a:tarfile.">")
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
endif endif
let &report= repkeep let &report= repkeep
@ -152,12 +157,27 @@ fun! tar#Browse(tarfile)
" assuming cygwin " assuming cygwin
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e') let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif endif
let curlast= line("$") let curlast= line("$")
if tarfile =~# '\.\(gz\|tgz\)$'
let gzip_command = s:get_gzip_command(tarfile) if tarfile =~# '\.\(gz\)$'
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") " call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! " . gzip_command . " -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$'
if has("unix") && executable("file")
let filekind= system("file ".shellescape(tarfile,1)) =~ "bzip2"
else
let filekind= ""
endif
if filekind =~ "bzip2"
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif filekind =~ "XZ"
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
else
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
endif
elseif tarfile =~# '\.lrp' elseif tarfile =~# '\.lrp'
" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ") " call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - " exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
@ -184,7 +204,7 @@ fun! tar#Browse(tarfile)
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">") " call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
return return
endif endif
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)') if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~# '\c\%(warning\|error\|inappropriate\|unrecognized\)')
redraw! redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
keepj sil! %d keepj sil! %d
@ -197,8 +217,13 @@ fun! tar#Browse(tarfile)
return return
endif endif
" set up maps supported for tar
setlocal noma nomod ro setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr> noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
noremap <silent> <buffer> x :call tar#Extract()<cr>
if &mouse != ""
noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>TarBrowseSelect()<cr>
endif
let &report= repkeep let &report= repkeep
" call Dret("tar#Browse : b:tarfile<".b:tarfile.">") " call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
@ -235,7 +260,8 @@ fun! s:TarBrowseSelect()
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e') let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif endif
new " open a new window (tar#Read will read a file into it)
noswapfile new
if !exists("g:tar_nomax") || g:tar_nomax == 0 if !exists("g:tar_nomax") || g:tar_nomax == 0
wincmd _ wincmd _
endif endif
@ -267,7 +293,7 @@ fun! tar#Read(fname,mode)
if fname =~ '\.bz2$' && executable("bzcat") if fname =~ '\.bz2$' && executable("bzcat")
let decmp= "|bzcat" let decmp= "|bzcat"
let doro = 1 let doro = 1
elseif fname =~ '\.gz$' && executable("zcat") elseif fname =~ '\.t\=gz$' && executable("zcat")
let decmp= "|zcat" let decmp= "|zcat"
let doro = 1 let doro = 1
elseif fname =~ '\.lzma$' && executable("lzcat") elseif fname =~ '\.lzma$' && executable("lzcat")
@ -291,20 +317,29 @@ fun! tar#Read(fname,mode)
endif endif
if tarfile =~# '\.bz2$' if tarfile =~# '\.bz2$'
" call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(gz\|tgz\)$' elseif tarfile =~# '\.\(gz\)$'
let gzip_command = s:get_gzip_command(tarfile) exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
" call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
exe "sil! r! " . gzip_command . " -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp elseif tarfile =~# '\(\.tgz\|\.tbz\|\.txz\)'
if has("unix") && executable("file")
let filekind= system("file ".shellescape(tarfile,1))
else
let filekind= ""
endif
if filekind =~ "bzip2"
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif filekind =~ "XZ"
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
else
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
endif
elseif tarfile =~# '\.lrp$' elseif tarfile =~# '\.lrp$'
" call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.lzma$' elseif tarfile =~# '\.lzma$'
" call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(xz\|txz\)$' elseif tarfile =~# '\.\(xz\|txz\)$'
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
else else
if tarfile =~ '^\s*-' if tarfile =~ '^\s*-'
@ -348,13 +383,14 @@ fun! tar#Write(fname)
" sanity checks " sanity checks
if !executable(g:tar_cmd) if !executable(g:tar_cmd)
redraw! redraw!
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' " call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
let &report= repkeep let &report= repkeep
" call Dret("tar#Write") " call Dret("tar#Write")
return return
endif endif
if !exists("*mkdir") if !exists("*mkdir")
redraw! redraw!
" call Decho("***error*** (tar#Write) sorry, mkdir() doesn't work on your system")
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
let &report= repkeep let &report= repkeep
" call Dret("tar#Write") " call Dret("tar#Write")
@ -375,6 +411,7 @@ fun! tar#Write(fname)
exe "cd ".fnameescape(tmpdir) exe "cd ".fnameescape(tmpdir)
catch /^Vim\%((\a\+)\)\=:E344/ catch /^Vim\%((\a\+)\)\=:E344/
redraw! redraw!
" call Decho("***error*** (tar#Write) cannot cd to temporary directory")
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
let &report= repkeep let &report= repkeep
" call Dret("tar#Write") " call Dret("tar#Write")
@ -393,8 +430,6 @@ fun! tar#Write(fname)
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','') let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','') let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
let gzip_command = s:get_gzip_command(tarfile)
" handle compressed archives " handle compressed archives
if tarfile =~# '\.bz2' if tarfile =~# '\.bz2'
call system("bzip2 -d -- ".shellescape(tarfile,0)) call system("bzip2 -d -- ".shellescape(tarfile,0))
@ -402,12 +437,12 @@ fun! tar#Write(fname)
let compress= "bzip2 -- ".shellescape(tarfile,0) let compress= "bzip2 -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">") " call Decho("compress<".compress.">")
elseif tarfile =~# '\.gz' elseif tarfile =~# '\.gz'
call system(gzip_command . " -d -- ".shellescape(tarfile,0)) call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.gz','','e') let tarfile = substitute(tarfile,'\.gz','','e')
let compress= "gzip -- ".shellescape(tarfile,0) let compress= "gzip -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">") " call Decho("compress<".compress.">")
elseif tarfile =~# '\.tgz' elseif tarfile =~# '\.tgz'
call system(gzip_command . " -d -- ".shellescape(tarfile,0)) call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.tgz','.tar','e') let tarfile = substitute(tarfile,'\.tgz','.tar','e')
let compress= "gzip -- ".shellescape(tarfile,0) let compress= "gzip -- ".shellescape(tarfile,0)
let tgz = 1 let tgz = 1
@ -427,6 +462,7 @@ fun! tar#Write(fname)
if v:shell_error != 0 if v:shell_error != 0
redraw! redraw!
" call Decho("***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname)
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
else else
@ -459,10 +495,11 @@ fun! tar#Write(fname)
endif endif
" delete old file from tarfile " delete old file from tarfile
" call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")") " call Decho("system(".g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0)) call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0 if v:shell_error != 0
redraw! redraw!
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
else else
@ -471,6 +508,7 @@ fun! tar#Write(fname)
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0)) call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0 if v:shell_error != 0
redraw! redraw!
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
elseif exists("compress") elseif exists("compress")
" call Decho("call system(".compress.")") " call Decho("call system(".compress.")")
@ -486,11 +524,11 @@ fun! tar#Write(fname)
if s:tblfile_{winnr()} =~ '^\a\+://' if s:tblfile_{winnr()} =~ '^\a\+://'
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">") " call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
let tblfile= s:tblfile_{winnr()} let tblfile= s:tblfile_{winnr()}
1split|enew 1split|noswapfile enew
let binkeep= &l:binary let binkeep= &l:binary
let eikeep = &ei let eikeep = &ei
set binary ei=all set binary ei=all
exe "e! ".fnameescape(tarfile) exe "noswapfile e! ".fnameescape(tarfile)
call netrw#NetWrite(tblfile) call netrw#NetWrite(tblfile)
let &ei = eikeep let &ei = eikeep
let &l:binary = binkeep let &l:binary = binkeep
@ -524,7 +562,7 @@ fun! tar#Diff(userfname,fname)
" sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes) " sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes)
diffthis diffthis
wincmd v wincmd v
exe "e ".fnameescape(fname) exe "noswapfile e ".fnameescape(fname)
diffthis diffthis
else else
redraw! redraw!
@ -533,6 +571,119 @@ fun! tar#Diff(userfname,fname)
" call Dret("tar#Diff") " call Dret("tar#Diff")
endfun endfun
" ---------------------------------------------------------------------
" tar#Extract: extract a file from a (possibly compressed) tar archive {{{2
fun! tar#Extract()
" call Dfunc("tar#Extract()")
let repkeep= &report
set report=10
let fname= getline(".")
" call Decho("fname<".fname.">")
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
redraw!
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
return
endif
" sanity check
if fname =~ '^"'
let &report= repkeep
" call Dret("TarBrowseSelect")
return
endif
let tarball = expand("%")
" call Decho("tarball<".tarball.">")
let tarbase = substitute(tarball,'\..*$','','')
" call Decho("tarbase<".tarbase.">")
let extractcmd= netrw#WinPath(g:tar_extractcmd)
if filereadable(tarbase.".tar")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tgz")
let extractcmd= substitute(extractcmd,"-","-z","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tgz ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd."t ".tarbase.".tgz ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tar.gz")
let extractcmd= substitute(extractcmd,"-","-z","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tbz")
let extractcmd= substitute(extractcmd,"-","-j","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tar.bz2")
let extractcmd= substitute(extractcmd,"-","-j","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".txz")
let extractcmd= substitute(extractcmd,"-","-J","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
elseif filereadable(tarbase.".tar.xz")
let extractcmd= substitute(extractcmd,"-","-J","")
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname).")")
call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname))
if v:shell_error != 0
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!" | echohl NONE
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!")
else
echo "***note*** successfully extracted ".fname
endif
endif
" restore option
let &report= repkeep
" call Dret("tar#Extract")
endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" s:Rmdir: {{{2 " s:Rmdir: {{{2
fun! s:Rmdir(fname) fun! s:Rmdir(fname)
@ -587,10 +738,7 @@ fun! tar#Vimuntar(...)
" if necessary, decompress the tarball; then, extract it " if necessary, decompress the tarball; then, extract it
if tartail =~ '\.tgz' if tartail =~ '\.tgz'
let gzip_command = s:get_gzip_command(tarfile) if executable("gunzip")
if executable(gzip_command)
silent exe "!" . gzip_command . " -d ".shellescape(tartail)
elseif executable("gunzip")
silent exe "!gunzip ".shellescape(tartail) silent exe "!gunzip ".shellescape(tartail)
elseif executable("gzip") elseif executable("gzip")
silent exe "!gzip -d ".shellescape(tartail) silent exe "!gzip -d ".shellescape(tartail)
@ -628,28 +776,6 @@ fun! tar#Vimuntar(...)
" call Dret("tar#Vimuntar") " call Dret("tar#Vimuntar")
endfun endfun
func s:get_gzip_command(file)
" Try using the "file" command to get the actual compression type, since
" there is no standard way for the naming: ".tgz", ".tbz", ".txz", etc.
" If the "file" command doesn't work fall back to just using the file name.
if a:file =~# 'z$'
let filetype = system('file ' . a:file)
if filetype =~ 'bzip2 compressed' && executable('bzip2')
return 'bzip2'
endif
if filetype =~ 'XZ compressed' && executable('xz')
return 'xz'
endif
endif
if a:file =~# 'bz2$'
return 'bzip2'
endif
if a:file =~# 'xz$'
return 'xz'
endif
return 'gzip'
endfunc
" ===================================================================== " =====================================================================
" Modelines And Restoration: {{{1 " Modelines And Restoration: {{{1
let &cpo= s:keepcpo let &cpo= s:keepcpo

View File

@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin. " Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com> " Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2018 Nov 11 " Last Change: 2019 Aug 16
" "
" Additional contributors: " Additional contributors:
" "
@ -364,6 +364,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
let body_line = '' let body_line = ''
let html = [] let html = []
let s:html5 = 0
if s:settings.use_xhtml if s:settings.use_xhtml
call add(html, xml_line) call add(html, xml_line)
endif endif
@ -371,8 +372,9 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call add(html, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">") call add(html, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">")
call add(html, '<html xmlns="http://www.w3.org/1999/xhtml">') call add(html, '<html xmlns="http://www.w3.org/1999/xhtml">')
elseif s:settings.use_css && !s:settings.no_pre elseif s:settings.use_css && !s:settings.no_pre
call add(html, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">") call add(html, "<!DOCTYPE html>")
call add(html, '<html>') call add(html, '<html>')
let s:html5 = 1
else else
call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"') call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"')
call add(html, ' "http://www.w3.org/TR/html4/loose.dtd">') call add(html, ' "http://www.w3.org/TR/html4/loose.dtd">')
@ -383,7 +385,11 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
" include encoding as close to the top as possible, but only if not already " include encoding as close to the top as possible, but only if not already
" contained in XML information " contained in XML information
if s:settings.encoding != "" && !s:settings.use_xhtml if s:settings.encoding != "" && !s:settings.use_xhtml
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close) if s:html5
call add(html, '<meta charset="' . s:settings.encoding . '"' . tag_close)
else
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
endif
endif endif
call add(html, '<title>diff</title>') call add(html, '<title>diff</title>')
@ -392,6 +398,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call add(html, '<meta name="settings" content="'. call add(html, '<meta name="settings" content="'.
\ join(filter(keys(s:settings),'s:settings[v:val]'),','). \ join(filter(keys(s:settings),'s:settings[v:val]'),',').
\ ',prevent_copy='.s:settings.prevent_copy. \ ',prevent_copy='.s:settings.prevent_copy.
\ ',use_input_for_pc='.s:settings.use_input_for_pc.
\ '"'.tag_close) \ '"'.tag_close)
call add(html, '<meta name="colorscheme" content="'. call add(html, '<meta name="colorscheme" content="'.
\ (exists('g:colors_name') \ (exists('g:colors_name')
@ -400,16 +407,8 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call add(html, '</head>') call add(html, '</head>')
let body_line_num = len(html) let body_line_num = len(html)
if !empty(s:settings.prevent_copy) call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
call add(html, "<body onload='FixCharWidth();".(s:settings.line_ids ? " JumpToLine();" : "")."'>") call add(html, "<table ".(s:settings.use_css? "" : "border='1' width='100%' ")."id='vimCodeElement".s:settings.id_suffix."'>")
call add(html, "<!-- hidden divs used by javascript to get the width of a char -->")
call add(html, "<div id='oneCharWidth'>0</div>")
call add(html, "<div id='oneInputWidth'><input size='1' value='0'".tag_close."</div>")
call add(html, "<div id='oneEmWidth' style='width: 1em;'></div>")
else
call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
endif
call add(html, "<table border='1' width='100%' id='vimCodeElement".s:settings.id_suffix."'>")
call add(html, '<tr>') call add(html, '<tr>')
for buf in a:win_list for buf in a:win_list
@ -443,7 +442,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
" Grab the style information. Some of this will be duplicated so only insert " Grab the style information. Some of this will be duplicated so only insert
" it if it's not already there. {{{ " it if it's not already there. {{{
1 1
let style_start = search('^<style type="text/css">') let style_start = search('^<style\( type="text/css"\)\?>')
1 1
let style_end = search('^</style>') let style_end = search('^</style>')
if style_start > 0 && style_end > 0 if style_start > 0 && style_end > 0
@ -481,7 +480,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
" TODO: restore using grabbed lines if undolevel is 1? " TODO: restore using grabbed lines if undolevel is 1?
normal! 2u normal! 2u
if s:settings.use_css if s:settings.use_css
call add(html, '<td valign="top"><div>') call add(html, '<td><div>')
elseif s:settings.use_xhtml elseif s:settings.use_xhtml
call add(html, '<td nowrap="nowrap" valign="top"><div>') call add(html, '<td nowrap="nowrap" valign="top"><div>')
else else
@ -515,7 +514,13 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e") let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e")
let i += 1 let i += 1
endwhile endwhile
let s:ei_sav = &eventignore
set eventignore+=FileType
exe "topleft new " . name exe "topleft new " . name
let &eventignore=s:ei_sav
unlet s:ei_sav
setlocal modifiable setlocal modifiable
" just in case some user autocmd creates content in the new buffer, make sure " just in case some user autocmd creates content in the new buffer, make sure
@ -544,7 +549,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
" add required javascript in reverse order so we can just call append again " add required javascript in reverse order so we can just call append again
" and again without adjusting {{{ " and again without adjusting {{{
let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids || !empty(s:settings.prevent_copy) let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids
" insert script closing tag if needed " insert script closing tag if needed
if s:uses_script if s:uses_script
@ -555,31 +560,6 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
\ ]) \ ])
endif endif
" insert script which corrects the size of small input elements in
" prevent_copy mode. See 2html.vim for details on why this is needed and how
" it works.
if !empty(s:settings.prevent_copy)
call append(style_start, [
\ '',
\ '/* simulate a "ch" unit by asking the browser how big a zero character is */',
\ 'function FixCharWidth() {',
\ ' /* get the hidden element which gives the width of a single character */',
\ ' var goodWidth = document.getElementById("oneCharWidth").clientWidth;',
\ ' /* get all input elements, we''ll filter on class later */',
\ ' var inputTags = document.getElementsByTagName("input");',
\ ' var ratio = 5;',
\ ' var inputWidth = document.getElementById("oneInputWidth").clientWidth;',
\ ' var emWidth = document.getElementById("oneEmWidth").clientWidth;',
\ ' if (inputWidth > goodWidth) {',
\ ' while (ratio < 100*goodWidth/emWidth && ratio < 100) {',
\ ' ratio += 5;',
\ ' }',
\ ' document.getElementById("vimCodeElement'.s:settings.id_suffix.'").className = "em"+ratio;',
\ ' }',
\ '}'
\ ])
endif
" insert javascript to get IDs from line numbers, and to open a fold before " insert javascript to get IDs from line numbers, and to open a fold before
" jumping to any lines contained therein " jumping to any lines contained therein
if s:settings.line_ids if s:settings.line_ids
@ -659,10 +639,9 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
endif endif
if s:uses_script if s:uses_script
" insert script tag; javascript is always needed for the line number " insert script tag if needed
" normalization for URL hashes
call append(style_start, [ call append(style_start, [
\ "<script type='text/javascript'>", \ "<script" . (s:html5 ? "" : " type='text/javascript'") . ">",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"]) \ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
endif endif
@ -673,11 +652,13 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
" is pretty useless for really long lines. {{{ " is pretty useless for really long lines. {{{
if s:settings.use_css if s:settings.use_css
call append(style_start, call append(style_start,
\ ['<style type="text/css">']+ \ ['<style' . (s:html5 ? '' : 'type="text/css"') . '>']+
\ style+ \ style+
\ [ s:settings.use_xhtml ? '' : '<!--', \ [ s:settings.use_xhtml ? '' : '<!--',
\ 'table { table-layout: fixed; }', \ 'table { table-layout: fixed; }',
\ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }', \ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }',
\ 'table, td, th { border: 1px solid; }',
\ 'td { vertical-align: top; }',
\ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }', \ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }',
\ 'td div { overflow: auto; }', \ 'td div { overflow: auto; }',
\ s:settings.use_xhtml ? '' : '-->', \ s:settings.use_xhtml ? '' : '-->',
@ -720,21 +701,22 @@ func! tohtml#GetUserSettings() "{{{
endif endif
" get current option settings with appropriate defaults {{{ " get current option settings with appropriate defaults {{{
call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") ) call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") )
call tohtml#GetOption(user_settings, 'diff_one_file', 0 ) call tohtml#GetOption(user_settings, 'diff_one_file', 0 )
call tohtml#GetOption(user_settings, 'number_lines', &number ) call tohtml#GetOption(user_settings, 'number_lines', &number )
call tohtml#GetOption(user_settings, 'pre_wrap', &wrap ) call tohtml#GetOption(user_settings, 'pre_wrap', &wrap )
call tohtml#GetOption(user_settings, 'use_css', 1 ) call tohtml#GetOption(user_settings, 'use_css', 1 )
call tohtml#GetOption(user_settings, 'ignore_conceal', 0 ) call tohtml#GetOption(user_settings, 'ignore_conceal', 0 )
call tohtml#GetOption(user_settings, 'ignore_folding', 0 ) call tohtml#GetOption(user_settings, 'ignore_folding', 0 )
call tohtml#GetOption(user_settings, 'dynamic_folds', 0 ) call tohtml#GetOption(user_settings, 'dynamic_folds', 0 )
call tohtml#GetOption(user_settings, 'no_foldcolumn', user_settings.ignore_folding) call tohtml#GetOption(user_settings, 'no_foldcolumn', user_settings.ignore_folding)
call tohtml#GetOption(user_settings, 'hover_unfold', 0 ) call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
call tohtml#GetOption(user_settings, 'no_pre', 0 ) call tohtml#GetOption(user_settings, 'no_pre', 0 )
call tohtml#GetOption(user_settings, 'no_invalid', 0 ) call tohtml#GetOption(user_settings, 'no_invalid', 0 )
call tohtml#GetOption(user_settings, 'whole_filler', 0 ) call tohtml#GetOption(user_settings, 'whole_filler', 0 )
call tohtml#GetOption(user_settings, 'use_xhtml', 0 ) call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
call tohtml#GetOption(user_settings, 'line_ids', user_settings.number_lines ) call tohtml#GetOption(user_settings, 'line_ids', user_settings.number_lines )
call tohtml#GetOption(user_settings, 'use_input_for_pc', 'fallback')
" }}} " }}}
" override those settings that need it {{{ " override those settings that need it {{{
@ -868,6 +850,16 @@ func! tohtml#GetUserSettings() "{{{
let user_settings.no_invalid = 0 let user_settings.no_invalid = 0
endif endif
" enforce valid values for use_input_for_pc
if user_settings.use_input_for_pc !~# 'fallback\|none\|all'
let user_settings.use_input_for_pc = 'fallback'
echohl WarningMsg
echomsg '2html: "' . g:html_use_input_for_pc . '" is not valid for g:html_use_input_for_pc'
echomsg '2html: defaulting to "' . user_settings.use_input_for_pc . '"'
echohl None
sleep 3
endif
if exists('g:html_id_expr') if exists('g:html_id_expr')
let user_settings.id_suffix = eval(g:html_id_expr) let user_settings.id_suffix = eval(g:html_id_expr)
if user_settings.id_suffix !~ '^[-_:.A-Za-z0-9]*$' if user_settings.id_suffix !~ '^[-_:.A-Za-z0-9]*$'

View File

@ -1,6 +1,6 @@
" Vim plugin for formatting XML " Vim plugin for formatting XML
" Last Change: Thu, 07 Dec 2018 " Last Change: 2020 Jan 06
" Version: 0.1 " Version: 0.3
" Author: Christian Brabandt <cb@256bit.org> " Author: Christian Brabandt <cb@256bit.org>
" Repository: https://github.com/chrisbra/vim-xml-ftplugin " Repository: https://github.com/chrisbra/vim-xml-ftplugin
" License: VIM License " License: VIM License
@ -15,51 +15,92 @@ let s:keepcpo = &cpo
set cpo&vim set cpo&vim
" Main function: Format the input {{{1 " Main function: Format the input {{{1
func! xmlformat#Format() func! xmlformat#Format() abort
" only allow reformatting through the gq command " only allow reformatting through the gq command
" (e.g. Vim is in normal mode) " (e.g. Vim is in normal mode)
if mode() != 'n' if mode() != 'n'
" do not fall back to internal formatting " do not fall back to internal formatting
return 0 return 0
endif endif
let count_orig = v:count
let sw = shiftwidth() let sw = shiftwidth()
let prev = prevnonblank(v:lnum-1) let prev = prevnonblank(v:lnum-1)
let s:indent = indent(prev)/sw let s:indent = indent(prev)/sw
let result = [] let result = []
let lastitem = prev ? getline(prev) : '' let lastitem = prev ? getline(prev) : ''
let is_xml_decl = 0 let is_xml_decl = 0
" split on `<`, but don't split on very first opening < " go through every line, but don't join all content together and join it
for item in split(join(getline(v:lnum, (v:lnum + v:count - 1))), '.\@<=[>]\zs') " back. We might lose empty lines
if s:EndTag(item) let list = getline(v:lnum, (v:lnum + count_orig - 1))
let s:indent = s:DecreaseIndent() let current = 0
call add(result, s:Indent(item)) for line in list
elseif s:EmptyTag(lastitem) " Keep empty input lines?
call add(result, s:Indent(item)) if empty(line)
elseif s:StartTag(lastitem) && s:IsTag(item) call add(result, '')
let s:indent += 1 continue
call add(result, s:Indent(item)) elseif line !~# '<[/]\?[^>]*>'
else let nextmatch = match(list, '<[/]\?[^>]*>', current)
if !s:IsTag(item) if nextmatch > -1
" Simply split on '<' let line .= ' '. join(list[(current + 1):(nextmatch-1)], " ")
let t=split(item, '.<\@=\zs') call remove(list, current+1, nextmatch-1)
let s:indent+=1
call add(result, s:Indent(t[0]))
let s:indent = s:DecreaseIndent()
call add(result, s:Indent(t[1]))
else
call add(result, s:Indent(item))
endif endif
endif endif
let lastitem = item " split on `>`, but don't split on very first opening <
endfor " this means, items can be like ['<tag>', 'tag content</tag>']
for item in split(line, '.\@<=[>]\zs')
if s:EndTag(item)
call s:DecreaseIndent()
call add(result, s:Indent(item))
elseif s:EmptyTag(lastitem)
call add(result, s:Indent(item))
elseif s:StartTag(lastitem) && s:IsTag(item)
let s:indent += 1
call add(result, s:Indent(item))
else
if !s:IsTag(item)
" Simply split on '<', if there is one,
" but reformat according to &textwidth
let t=split(item, '.<\@=\zs')
if !empty(result) " if the content fits well within a single line, add it there
exe v:lnum. ",". (v:lnum + v:count - 1). 'd' " so that the output looks like this:
"
" <foobar>1</foobar>
if s:TagContent(lastitem) is# s:TagContent(t[1]) && strlen(result[-1]) + strlen(item) <= s:Textwidth()
let result[-1] .= item
let lastitem = t[1]
continue
endif
" t should only contain 2 items, but just be safe here
if s:IsTag(lastitem)
let s:indent+=1
endif
let result+=s:FormatContent([t[0]])
if s:EndTag(t[1])
call s:DecreaseIndent()
endif
"for y in t[1:]
let result+=s:FormatContent(t[1:])
"endfor
else
call add(result, s:Indent(item))
endif
endif
let lastitem = item
endfor
let current += 1
endfor
if !empty(result)
let lastprevline = getline(v:lnum + count_orig)
let delete_lastline = v:lnum + count_orig - 1 == line('$')
exe v:lnum. ",". (v:lnum + count_orig - 1). 'd'
call append(v:lnum - 1, result) call append(v:lnum - 1, result)
" Might need to remove the last line, if it became empty because of the " Might need to remove the last line, if it became empty because of the
" append() call " append() call
let last = v:lnum + len(result) let last = v:lnum + len(result)
if getline(last) is '' " do not use empty(), it returns true for `empty(0)`
if getline(last) is '' && lastprevline is '' && delete_lastline
exe last. 'd' exe last. 'd'
endif endif
endif endif
@ -68,15 +109,15 @@ func! xmlformat#Format()
return 0 return 0
endfunc endfunc
" Check if given tag is XML Declaration header {{{1 " Check if given tag is XML Declaration header {{{1
func! s:IsXMLDecl(tag) func! s:IsXMLDecl(tag) abort
return a:tag =~? '^\s*<?xml\s\?\%(version="[^"]*"\)\?\s\?\%(encoding="[^"]*"\)\? ?>\s*$' return a:tag =~? '^\s*<?xml\s\?\%(version="[^"]*"\)\?\s\?\%(encoding="[^"]*"\)\? ?>\s*$'
endfunc endfunc
" Return tag indented by current level {{{1 " Return tag indented by current level {{{1
func! s:Indent(item) func! s:Indent(item) abort
return repeat(' ', shiftwidth()*s:indent). s:Trim(a:item) return repeat(' ', shiftwidth()*s:indent). s:Trim(a:item)
endfu endfu
" Return item trimmed from leading whitespace {{{1 " Return item trimmed from leading whitespace {{{1
func! s:Trim(item) func! s:Trim(item) abort
if exists('*trim') if exists('*trim')
return trim(a:item) return trim(a:item)
else else
@ -84,30 +125,77 @@ func! s:Trim(item)
endif endif
endfunc endfunc
" Check if tag is a new opening tag <tag> {{{1 " Check if tag is a new opening tag <tag> {{{1
func! s:StartTag(tag) func! s:StartTag(tag) abort
let is_comment = s:IsComment(a:tag) let is_comment = s:IsComment(a:tag)
return a:tag =~? '^\s*<[^/?]' && !is_comment return a:tag =~? '^\s*<[^/?]' && !is_comment
endfunc endfunc
func! s:IsComment(tag) " Check if tag is a Comment start {{{1
func! s:IsComment(tag) abort
return a:tag =~? '<!--' return a:tag =~? '<!--'
endfunc endfunc
" Remove one level of indentation {{{1 " Remove one level of indentation {{{1
func! s:DecreaseIndent() func! s:DecreaseIndent() abort
return (s:indent > 0 ? s:indent - 1 : 0) let s:indent = (s:indent > 0 ? s:indent - 1 : 0)
endfunc endfunc
" Check if tag is a closing tag </tag> {{{1 " Check if tag is a closing tag </tag> {{{1
func! s:EndTag(tag) func! s:EndTag(tag) abort
return a:tag =~? '^\s*</' return a:tag =~? '^\s*</'
endfunc endfunc
" Check that the tag is actually a tag and not {{{1 " Check that the tag is actually a tag and not {{{1
" something like "foobar</foobar>" " something like "foobar</foobar>"
func! s:IsTag(tag) func! s:IsTag(tag) abort
return s:Trim(a:tag)[0] == '<' return s:Trim(a:tag)[0] == '<'
endfunc endfunc
" Check if tag is empty <tag/> {{{1 " Check if tag is empty <tag/> {{{1
func! s:EmptyTag(tag) func! s:EmptyTag(tag) abort
return a:tag =~ '/>\s*$' return a:tag =~ '/>\s*$'
endfunc endfunc
func! s:TagContent(tag) abort "{{{1
" Return content of a tag
return substitute(a:tag, '^\s*<[/]\?\([^>]*\)>\s*$', '\1', '')
endfunc
func! s:Textwidth() abort "{{{1
" return textwidth (or 80 if not set)
return &textwidth == 0 ? 80 : &textwidth
endfunc
" Format input line according to textwidth {{{1
func! s:FormatContent(list) abort
let result=[]
let limit = s:Textwidth()
let column=0
let idx = -1
let add_indent = 0
let cnt = 0
for item in a:list
for word in split(item, '\s\+\S\+\zs')
if match(word, '^\s\+$') > -1
" skip empty words
continue
endif
let column += strdisplaywidth(word, column)
if match(word, "^\\s*\n\\+\\s*$") > -1
call add(result, '')
let idx += 1
let column = 0
let add_indent = 1
elseif column > limit || cnt == 0
let add = s:Indent(s:Trim(word))
call add(result, add)
let column = strdisplaywidth(add)
let idx += 1
else
if add_indent
let result[idx] = s:Indent(s:Trim(word))
else
let result[idx] .= ' '. s:Trim(word)
endif
let add_indent = 0
endif
let cnt += 1
endfor
endfor
return result
endfunc
" Restoration And Modelines: {{{1 " Restoration And Modelines: {{{1
let &cpo= s:keepcpo let &cpo= s:keepcpo
unlet s:keepcpo unlet s:keepcpo

View File

@ -1,10 +1,10 @@
" zip.vim: Handles browsing zipfiles " zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION " AUTOLOAD PORTION
" Date: Sep 13, 2016 " Date: Jan 07, 2020
" Version: 28 " Version: 30
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> " Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
" License: Vim License (see vim's :help license) " License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1 " Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free, " notice is copied with it. Like anything else that's free,
@ -20,7 +20,7 @@
if &cp || exists("g:loaded_zip") if &cp || exists("g:loaded_zip")
finish finish
endif endif
let g:loaded_zip= "v28" let g:loaded_zip= "v30"
if v:version < 702 if v:version < 702
echohl WarningMsg echohl WarningMsg
echo "***warning*** this version of zip needs vim 7.2 or later" echo "***warning*** this version of zip needs vim 7.2 or later"
@ -68,7 +68,7 @@ fun! zip#Browse(zipfile)
" sanity check: ensure that the zipfile has "PK" as its first two letters " sanity check: ensure that the zipfile has "PK" as its first two letters
" (zipped files have a leading PK as a "magic cookie") " (zipped files have a leading PK as a "magic cookie")
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK' if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
exe "noautocmd e ".fnameescape(a:zipfile) exe "noswapfile noautocmd noswapfile e ".fnameescape(a:zipfile)
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">") " call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
return return
" else " Decho " else " Decho
@ -141,8 +141,11 @@ fun! zip#Browse(zipfile)
" Maps associated with zip plugin " Maps associated with zip plugin
setlocal noma nomod ro setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr> noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
noremap <silent> <buffer> x :call zip#Extract()<cr> noremap <silent> <buffer> x :call zip#Extract()<cr>
if &mouse != ""
noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>ZipBrowseSelect()<cr>
endif
let &report= repkeep let &report= repkeep
" call Dret("zip#Browse") " call Dret("zip#Browse")
@ -175,17 +178,17 @@ fun! s:ZipBrowseSelect()
" get zipfile to the new-window " get zipfile to the new-window
let zipfile = b:zipfile let zipfile = b:zipfile
let curfile= expand("%") let curfile = expand("%")
" call Decho("zipfile<".zipfile.">") " call Decho("zipfile<".zipfile.">")
" call Decho("curfile<".curfile.">") " call Decho("curfile<".curfile.">")
new noswapfile new
if !exists("g:zip_nomax") || g:zip_nomax == 0 if !exists("g:zip_nomax") || g:zip_nomax == 0
wincmd _ wincmd _
endif endif
let s:zipfile_{winnr()}= curfile let s:zipfile_{winnr()}= curfile
" call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname)) " call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
exe "e ".fnameescape("zipfile:".zipfile.'::'.fname) exe "noswapfile e ".fnameescape("zipfile:".zipfile.'::'.fname)
filetype detect filetype detect
let &report= repkeep let &report= repkeep
@ -339,7 +342,7 @@ fun! zip#Write(fname)
let binkeep= &binary let binkeep= &binary
let eikeep = &ei let eikeep = &ei
set binary ei=all set binary ei=all
exe "e! ".fnameescape(zipfile) exe "noswapfile e! ".fnameescape(zipfile)
call netrw#NetWrite(netzipfile) call netrw#NetWrite(netzipfile)
let &ei = eikeep let &ei = eikeep
let &binary = binkeep let &binary = binkeep

View File

@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: ESLint for JavaScript
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
" Last Change: 2020 May 17
if exists("current_compiler")
finish
endif
let current_compiler = "eslint"
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=eslint\ --format\ compact
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#

View File

@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: Standard for JavaScript
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
" Last Change: 2020 May 17
if exists("current_compiler")
finish
endif
let current_compiler = "standard"
if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=standard
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#

View File

@ -1,7 +1,7 @@
" The default vimrc file. " The default vimrc file.
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2019 Feb 18 " Last change: 2019 Oct 27
" "
" This is loaded if no vimrc file was found. " This is loaded if no vimrc file was found.
" Except when Vim is run with "-u NONE" or "-C". " Except when Vim is run with "-u NONE" or "-C".
@ -75,8 +75,14 @@ inoremap <C-U> <C-G>u<C-U>
" In many terminal emulators the mouse works just fine. By enabling it you " In many terminal emulators the mouse works just fine. By enabling it you
" can position the cursor, Visually select and scroll with the mouse. " can position the cursor, Visually select and scroll with the mouse.
" Only xterm can grab the mouse events when using the shift key, for other
" terminals use ":", select text and press Esc.
if has('mouse') if has('mouse')
set mouse=a if &term =~ 'xterm'
set mouse=a
else
set mouse=nvi
endif
endif endif
" Switch syntax highlighting on when the terminal has colors or when using the " Switch syntax highlighting on when the terminal has colors or when using the

View File

@ -2,25 +2,31 @@
" Warning: This also deletes all menus defined by the user! " Warning: This also deletes all menus defined by the user!
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2001 May 27 " Last Change: 2019 Dec 10
aunmenu * aunmenu *
tlunmenu * tlunmenu *
silent! unlet did_install_default_menus unlet! g:did_install_default_menus
silent! unlet did_install_syntax_menu unlet! g:did_install_syntax_menu
if exists("did_menu_trans")
if exists('g:did_menu_trans')
menutrans clear menutrans clear
unlet did_menu_trans unlet g:did_menu_trans
endif endif
silent! unlet find_help_dialog unlet! g:find_help_dialog
silent! unlet menutrans_help_dialog unlet! g:menutrans_fileformat_choices
silent! unlet menutrans_path_dialog unlet! g:menutrans_fileformat_dialog
silent! unlet menutrans_tags_dialog unlet! g:menutrans_help_dialog
silent! unlet menutrans_textwidth_dialog unlet! g:menutrans_no_file
silent! unlet menutrans_fileformat_dialog unlet! g:menutrans_path_dialog
silent! unlet menutrans_no_file unlet! g:menutrans_set_lang_to
unlet! g:menutrans_spell_add_ARG_to_word_list
unlet! g:menutrans_spell_change_ARG_to
unlet! g:menutrans_spell_ignore_ARG
unlet! g:menutrans_tags_dialog
unlet! g:menutrans_textwidth_dialog
" vim: set sw=2 : " vim: set sw=2 :

View File

@ -64,6 +64,7 @@ DOCS = \
os_amiga.txt \ os_amiga.txt \
os_beos.txt \ os_beos.txt \
os_dos.txt \ os_dos.txt \
os_haiku.txt \
os_mac.txt \ os_mac.txt \
os_mint.txt \ os_mint.txt \
os_msdos.txt \ os_msdos.txt \
@ -140,6 +141,7 @@ DOCS = \
usr_43.txt \ usr_43.txt \
usr_44.txt \ usr_44.txt \
usr_45.txt \ usr_45.txt \
usr_46.txt \
usr_90.txt \ usr_90.txt \
usr_toc.txt \ usr_toc.txt \
various.txt \ various.txt \
@ -149,6 +151,7 @@ DOCS = \
version7.txt \ version7.txt \
version8.txt \ version8.txt \
vi_diff.txt \ vi_diff.txt \
vim9.txt \
visual.txt \ visual.txt \
windows.txt \ windows.txt \
workshop.txt workshop.txt
@ -203,6 +206,7 @@ HTMLS = \
os_amiga.html \ os_amiga.html \
os_beos.html \ os_beos.html \
os_dos.html \ os_dos.html \
os_haiku.html \
os_mac.html \ os_mac.html \
os_mint.html \ os_mint.html \
os_msdos.html \ os_msdos.html \
@ -279,6 +283,7 @@ HTMLS = \
usr_43.html \ usr_43.html \
usr_44.html \ usr_44.html \
usr_45.html \ usr_45.html \
usr_46.html \
usr_90.html \ usr_90.html \
usr_toc.html \ usr_toc.html \
various.html \ various.html \
@ -289,6 +294,7 @@ HTMLS = \
version8.html \ version8.html \
vi_diff.html \ vi_diff.html \
vimindex.html \ vimindex.html \
vim9.html \
visual.html \ visual.html \
windows.html \ windows.html \
workshop.html workshop.html
@ -313,7 +319,11 @@ CONVERTED = \
evim-ru.UTF-8.1 \ evim-ru.UTF-8.1 \
vimdiff-ru.UTF-8.1 \ vimdiff-ru.UTF-8.1 \
vimtutor-ru.UTF-8.1 \ vimtutor-ru.UTF-8.1 \
xxd-ru.UTF-8.1 xxd-ru.UTF-8.1 \
vim-tr.UTF-8.1 \
evim-tr.UTF-8.1 \
vimdiff-tr.UTF-8.1 \
vimtutor-tr.UTF-8.1
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .c .o .txt .html .SUFFIXES: .c .o .txt .html
@ -323,7 +333,7 @@ all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED)
# Use Vim to generate the tags file. Can only be used when Vim has been # Use Vim to generate the tags file. Can only be used when Vim has been
# compiled and installed. Supports multiple languages. # compiled and installed. Supports multiple languages.
vimtags: $(DOCS) vimtags: $(DOCS)
$(VIMEXE) -u NONE -esX -c "helptags ++t ." -c quit @$(VIMEXE) --clean -esX -V1 -u doctags.vim
# Use "doctags" to generate the tags file. Only works for English! # Use "doctags" to generate the tags file. Only works for English!
tags: doctags $(DOCS) tags: doctags $(DOCS)
@ -420,6 +430,9 @@ os_beos.txt:
os_dos.txt: os_dos.txt:
touch os_dos.txt touch os_dos.txt
os_haiku.txt:
touch os_haiku.txt
os_mac.txt: os_mac.txt:
touch os_mac.txt touch os_mac.txt
@ -502,3 +515,15 @@ vimtutor-ru.UTF-8.1: vimtutor-ru.1
xxd-ru.UTF-8.1: xxd-ru.1 xxd-ru.UTF-8.1: xxd-ru.1
iconv -f KOI8-R -t utf-8 $< >$@ iconv -f KOI8-R -t utf-8 $< >$@
vim-tr.UTF-8.1: vim-tr.1
iconv -f latin5 -t utf-8 $< >$@
evim-tr.UTF-8.1: evim-tr.1
iconv -f latin5 -t utf-8 $< >$@
vimdiff-tr.UTF-8.1: vimdiff-tr.1
iconv -f latin5 -t utf-8 $< >$@
vimtutor-tr.UTF-8.1: vimtutor-tr.1
iconv -f latin5 -t utf-8 $< >$@

View File

@ -1,4 +1,4 @@
*arabic.txt* For Vim version 8.1. Last change: 2019 May 05 *arabic.txt* For Vim version 8.2. Last change: 2019 May 05
VIM REFERENCE MANUAL by Nadim Shaikli VIM REFERENCE MANUAL by Nadim Shaikli

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.1. Last change: 2019 Jun 26 *autocmd.txt* For Vim version 8.2. Last change: 2020 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -268,7 +268,6 @@ Name triggered by ~
|BufCreate| just after adding a buffer to the buffer list |BufCreate| just after adding a buffer to the buffer list
|BufDelete| before deleting a buffer from the buffer list |BufDelete| before deleting a buffer from the buffer list
|BufWipeout| before completely deleting a buffer |BufWipeout| before completely deleting a buffer
|TerminalOpen| after a terminal buffer was created
|BufFilePre| before changing the name of the current buffer |BufFilePre| before changing the name of the current buffer
|BufFilePost| after changing the name of the current buffer |BufFilePost| after changing the name of the current buffer
@ -302,6 +301,10 @@ Name triggered by ~
|VimLeavePre| before exiting Vim, before writing the viminfo file |VimLeavePre| before exiting Vim, before writing the viminfo file
|VimLeave| before exiting Vim, after writing the viminfo file |VimLeave| before exiting Vim, after writing the viminfo file
Terminal
|TerminalOpen| after a terminal buffer was created
|TerminalWinOpen| after a terminal buffer was created in a new window
Various Various
|FileChangedShell| Vim notices that a file changed since editing started |FileChangedShell| Vim notices that a file changed since editing started
|FileChangedShellPost| After handling a file changed since editing started |FileChangedShellPost| After handling a file changed since editing started
@ -355,6 +358,10 @@ Name triggered by ~
when popup menu visible when popup menu visible
|TextYankPost| after text has been yanked or deleted |TextYankPost| after text has been yanked or deleted
|SafeState| nothing pending, going to wait for the user to type a
character
|SafeStateAgain| repeated SafeState
|ColorSchemePre| before loading a color scheme |ColorSchemePre| before loading a color scheme
|ColorScheme| after loading a color scheme |ColorScheme| after loading a color scheme
@ -367,9 +374,13 @@ Name triggered by ~
|MenuPopup| just before showing the popup menu |MenuPopup| just before showing the popup menu
|CompleteChanged| after Insert mode completion menu changed |CompleteChanged| after Insert mode completion menu changed
|CompleteDone| after Insert mode completion is done |CompleteDonePre| after Insert mode completion is done, before clearing
info
|CompleteDone| after Insert mode completion is done, after clearing
info
|User| to be used in combination with ":doautocmd" |User| to be used in combination with ":doautocmd"
|SigUSR1| after the SIGUSR1 signal has been detected
The alphabetical list of autocommand events: *autocmd-events-abc* The alphabetical list of autocommand events: *autocmd-events-abc*
@ -380,6 +391,8 @@ BufAdd or BufCreate Just after creating a new buffer which is
to the buffer list. to the buffer list.
Also used just after a buffer in the buffer Also used just after a buffer in the buffer
list has been renamed. list has been renamed.
Not triggered for the initial buffers created
during startup.
The BufCreate event is for historic reasons. The BufCreate event is for historic reasons.
NOTE: When this autocommand is executed, the NOTE: When this autocommand is executed, the
current buffer "%" may be different from the current buffer "%" may be different from the
@ -554,16 +567,14 @@ CmdlineLeave Before leaving the command line.
*CmdwinEnter* *CmdwinEnter*
CmdwinEnter After entering the command-line window. CmdwinEnter After entering the command-line window.
Useful for setting options specifically for Useful for setting options specifically for
this special type of window. This is this special type of window.
triggered _instead_ of BufEnter and WinEnter.
<afile> is set to a single character, <afile> is set to a single character,
indicating the type of command-line. indicating the type of command-line.
|cmdwin-char| |cmdwin-char|
*CmdwinLeave* *CmdwinLeave*
CmdwinLeave Before leaving the command-line window. CmdwinLeave Before leaving the command-line window.
Useful to clean up any global setting done Useful to clean up any global setting done
with CmdwinEnter. This is triggered _instead_ with CmdwinEnter.
of BufLeave and WinLeave.
<afile> is set to a single character, <afile> is set to a single character,
indicating the type of command-line. indicating the type of command-line.
|cmdwin-char| |cmdwin-char|
@ -579,11 +590,11 @@ ColorScheme After loading a color scheme. |:colorscheme|
ColorSchemePre Before loading a color scheme. |:colorscheme| ColorSchemePre Before loading a color scheme. |:colorscheme|
Useful to setup removing things added by a Useful to setup removing things added by a
color scheme, before another one is loaded. color scheme, before another one is loaded.
CompleteChanged *CompleteChanged* CompleteChanged *CompleteChanged*
After each time the Insert mode completion After each time the Insert mode completion
menu changed. Not fired on popup menu hide, menu changed. Not fired on popup menu hide,
use |CompleteDone| for that. Never triggered use |CompleteDonePre| or |CompleteDone| for
recursively. that. Never triggered recursively.
Sets these |v:event| keys: Sets these |v:event| keys:
completed_item See |complete-items|. completed_item See |complete-items|.
@ -595,10 +606,26 @@ CompleteChanged *CompleteChanged*
scrollbar TRUE if visible scrollbar TRUE if visible
It is not allowed to change the text |textlock|. It is not allowed to change the text |textlock|.
The size and position of the popup are also
available by calling |pum_getpos()|.
*CompleteDonePre*
CompleteDonePre After Insert mode completion is done. Either
when something was completed or abandoning
completion. |ins-completion|
|complete_info()| can be used, the info is
cleared after triggering CompleteDonePre.
The |v:completed_item| variable contains
information about the completed item.
*CompleteDone* *CompleteDone*
CompleteDone After Insert mode completion is done. Either CompleteDone After Insert mode completion is done. Either
when something was completed or abandoning when something was completed or abandoning
completion. |ins-completion| completion. |ins-completion|
|complete_info()| cannot be used, the info is
cleared before triggering CompleteDone. Use
CompleteDonePre if you need it.
The |v:completed_item| variable contains The |v:completed_item| variable contains
information about the completed item. information about the completed item.
@ -628,7 +655,7 @@ CursorHold When the user doesn't press a key for the time
Hint: to force an update of the status lines Hint: to force an update of the status lines
use: > use: >
:let &ro = &ro :let &ro = &ro
< {only on Amiga, Unix, Win32, MSDOS and all GUI < {only on Amiga, Unix, Win32 and all GUI
versions} versions}
*CursorHoldI* *CursorHoldI*
CursorHoldI Just like CursorHold, but in Insert mode. CursorHoldI Just like CursorHold, but in Insert mode.
@ -953,6 +980,32 @@ RemoteReply When a reply from a Vim that functions as
Note that even if an autocommand is defined, Note that even if an autocommand is defined,
the reply should be read with |remote_read()| the reply should be read with |remote_read()|
to consume it. to consume it.
*SafeState*
SafeState When nothing is pending, going to wait for the
user to type a character.
This will not be triggered when:
- an operator is pending
- a register was entered with "r
- halfway executing a command
- executing a mapping
- there is typeahead
- Insert mode completion is active
- Command line completion is active
You can use `mode()` to find out what state
Vim is in. That may be:
- VIsual mode
- Normal mode
- Insert mode
- Command-line mode
Depending on what you want to do, you may also
check more with `state()`, e.g. whether the
screen was scrolled for messages.
*SafeStateAgain*
SafeStateAgain Like SafeState but after processing any
messages and invoking callbacks. This may be
triggered often, don't do something that takes
time.
*SessionLoadPost* *SessionLoadPost*
SessionLoadPost After loading the session file created using SessionLoadPost After loading the session file created using
the |:mksession| command. the |:mksession| command.
@ -1049,6 +1102,12 @@ TerminalOpen Just after a terminal buffer was created, with
`:terminal` or |term_start()|. This event is `:terminal` or |term_start()|. This event is
triggered even if the buffer is created triggered even if the buffer is created
without a window, with the ++hidden option. without a window, with the ++hidden option.
*TerminalWinOpen*
TerminalWinOpen Just after a terminal buffer was created, with
`:terminal` or |term_start()|. This event is
triggered only if the buffer is created
with a window. Can be used to set window
local options for the terminal window.
*TermResponse* *TermResponse*
TermResponse After the response to |t_RV| is received from TermResponse After the response to |t_RV| is received from
the terminal. The value of |v:termresponse| the terminal. The value of |v:termresponse|
@ -1085,8 +1144,8 @@ TextYankPost After text has been yanked or deleted in the
current buffer. The following values of current buffer. The following values of
|v:event| can be used to determine the operation |v:event| can be used to determine the operation
that triggered this autocmd: that triggered this autocmd:
operator The operation performed. operator The operation performed.
regcontents Text that was stored in the regcontents Text that was stored in the
register, as a list of lines, register, as a list of lines,
like with: > like with: >
getreg(r, 1, 1) getreg(r, 1, 1)
@ -1095,11 +1154,14 @@ TextYankPost After text has been yanked or deleted in the
register. register.
regtype Type of the register, see regtype Type of the register, see
|getregtype()|. |getregtype()|.
visual True if the operation is
performed on a |Visual| area.
Not triggered when |quote_| is used nor when Not triggered when |quote_| is used nor when
called recursively. called recursively.
It is not allowed to change the buffer text, It is not allowed to change the buffer text,
see |textlock|. see |textlock|.
{only when compiled with the +eval feature} {only when compiled with the +eval feature}
*User* *User*
User Never executed automatically. To be used for User Never executed automatically. To be used for
autocommands that are only executed with autocommands that are only executed with
@ -1108,6 +1170,15 @@ User Never executed automatically. To be used for
used while there are no matching autocommands, used while there are no matching autocommands,
you will get an error. If you don't want you will get an error. If you don't want
that, define a dummy autocommand yourself. that, define a dummy autocommand yourself.
*SigUSR1*
SigUSR1 After the SIGUSR1 signal has been detected.
Could be used if other ways of notifying Vim
are not feasible. E.g. to check for the
result of a build that takes a long time, or
when a motion sensor is triggered.
{only on Unix}
*UserGettingBored* *UserGettingBored*
UserGettingBored When the user presses the same key 42 times. UserGettingBored When the user presses the same key 42 times.
Just kidding! :-) Just kidding! :-)
@ -1122,7 +1193,7 @@ VimEnter After doing all the startup stuff, including
if v:vim_did_enter if v:vim_did_enter
call s:init() call s:init()
else else
au VimEnter * call s:init() au VimEnter * call s:init()
endif endif
< *VimLeave* < *VimLeave*
VimLeave Before exiting Vim, just after writing the VimLeave Before exiting Vim, just after writing the
@ -1246,8 +1317,8 @@ The pattern is interpreted like mostly used in file names:
[^ch] match any character but 'c' and 'h' [^ch] match any character but 'c' and 'h'
Note that for all systems the '/' character is used for path separator (even Note that for all systems the '/' character is used for path separator (even
MS-DOS and OS/2). This was done because the backslash is difficult to use for MS-Windows). This was done because the backslash is difficult to use in a
in a pattern and to make the autocommands portable across different systems. pattern and to make the autocommands portable across different systems.
It is possible to use |pattern| items, but they may not work as expected, It is possible to use |pattern| items, but they may not work as expected,
because of the translation done for the above. because of the translation done for the above.

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 8.1. Last change: 2019 Jul 04 *change.txt* For Vim version 8.2. Last change: 2020 Jun 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -209,7 +209,7 @@ gR Enter Virtual Replace mode: Each character you type
start insert (for {Visual} see |Visual-mode|). start insert (for {Visual} see |Visual-mode|).
*v_r* *v_r*
{Visual}["x]r{char} Replace all selected characters by {char}. {Visual}r{char} Replace all selected characters by {char}.
*v_C* *v_C*
{Visual}["x]C Delete the highlighted lines [into register x] and {Visual}["x]C Delete the highlighted lines [into register x] and
@ -611,7 +611,7 @@ attack or other people reading your file). When Vim exits the directory and
all files in it are deleted. When Vim has the setuid bit set this may cause all files in it are deleted. When Vim has the setuid bit set this may cause
problems, the temp file is owned by the setuid user but the filter command problems, the temp file is owned by the setuid user but the filter command
probably runs as the original user. probably runs as the original user.
On MS-DOS and OS/2 the first of these directories that works is used: $TMP, On MS-Windows the first of these directories that works is used: $TMP,
$TEMP, c:\TMP, c:\TEMP. $TEMP, c:\TMP, c:\TEMP.
For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME. For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
For MS-Windows the GetTempFileName() system function is used. For MS-Windows the GetTempFileName() system function is used.
@ -636,6 +636,8 @@ For other systems the tmpnam() library function is used.
|cmdline-ranges|. |cmdline-ranges|.
See |:s_flags| for [flags]. See |:s_flags| for [flags].
The delimiter doesn't need to be /, see
|pattern-delimiter|.
:[range]s[ubstitute] [flags] [count] :[range]s[ubstitute] [flags] [count]
:[range]&[&][flags] [count] *:&* :[range]&[&][flags] [count] *:&*
@ -691,10 +693,8 @@ The flags that you can use for the substitute commands:
<Esc> to quit substituting <Esc> to quit substituting
'a' to substitute this and all remaining matches 'a' to substitute this and all remaining matches
'q' to quit substituting 'q' to quit substituting
CTRL-E to scroll the screen up {not available when compiled CTRL-E to scroll the screen up
without the |+insert_expand| feature} CTRL-Y to scroll the screen down
CTRL-Y to scroll the screen down {not available when compiled
without the |+insert_expand| feature}
If the 'edcompatible' option is on, Vim remembers the [c] flag and If the 'edcompatible' option is on, Vim remembers the [c] flag and
toggles it each time you use it, but resets it when you give a new toggles it each time you use it, but resets it when you give a new
search pattern. search pattern.
@ -777,7 +777,7 @@ This deletes "TESTING" from all lines, but only one per line.
For compatibility with Vi these two exceptions are allowed: For compatibility with Vi these two exceptions are allowed:
"\/{string}/" and "\?{string}?" do the same as "//{string}/r". "\/{string}/" and "\?{string}?" do the same as "//{string}/r".
"\&{string}&" does the same as "//{string}/". "\&{string}&" does the same as "//{string}/".
*E146* *pattern-delimiter* *E146*
Instead of the '/' which surrounds the pattern and replacement string, you Instead of the '/' which surrounds the pattern and replacement string, you
can use any other single-byte character, but not an alphanumeric character, can use any other single-byte character, but not an alphanumeric character,
'\', '"' or '|'. This is useful if you want to include a '/' in the search '\', '"' or '|'. This is useful if you want to include a '/' in the search
@ -996,14 +996,18 @@ inside of strings can change! Also see 'softtabstop' option. >
5. Copying and moving text *copy-move* 5. Copying and moving text *copy-move*
*quote* *quote*
"{a-zA-Z0-9.%#:-"} Use register {a-zA-Z0-9.%#:-"} for next delete, yank "{register} Use {register} for next delete, yank or put. Use
or put (use uppercase character to append with an uppercase character to append with delete and yank.
delete and yank) ({.%#:} only work with put). Registers ".", "%", "#" and ":" only work with put.
*:reg* *:registers* *:reg* *:registers*
:reg[isters] Display the contents of all numbered and named :reg[isters] Display the type and contents of all numbered and
registers. If a register is written to for |:redir| named registers. If a register is written to for
it will not be listed. |:redir| it will not be listed.
Type can be one of:
"c" for |characterwise| text
"l" for |linewise| text
"b" for |blockwise-visual| text
:reg[isters] {arg} Display the contents of the numbered and named :reg[isters] {arg} Display the contents of the numbered and named
@ -1174,7 +1178,7 @@ Rationale: In Vi the "y" command followed by a backwards motion would
With a linewise yank command the cursor is put in the first line, but the With a linewise yank command the cursor is put in the first line, but the
column is unmodified, thus it may not be on the first yanked character. column is unmodified, thus it may not be on the first yanked character.
There are ten types of registers: *registers* *E354* There are ten types of registers: *registers* *{register}* *E354*
1. The unnamed register "" 1. The unnamed register ""
2. 10 numbered registers "0 to "9 2. 10 numbered registers "0 to "9
3. The small delete register "- 3. The small delete register "-
@ -1314,7 +1318,7 @@ When writing to this register, nothing happens. This can be used to delete
text without affecting the normal registers. When reading from this register, text without affecting the normal registers. When reading from this register,
nothing is returned. nothing is returned.
10. Last search pattern register "/ *quote_/* *quote/* 10. Last search pattern register "/ *quote_/* *quote/*
Contains the most recent search-pattern. This is used for "n" and 'hlsearch'. Contains the most recent search-pattern. This is used for "n" and 'hlsearch'.
It is writable with `:let`, you can change it to have 'hlsearch' highlight It is writable with `:let`, you can change it to have 'hlsearch' highlight
other matches without actually searching. You can't yank or delete into this other matches without actually searching. You can't yank or delete into this
@ -1454,7 +1458,7 @@ text. Put it in your autoload directory, e.g. ~/.vim/autoload/format.vim: >
func! format#Format() func! format#Format()
" only reformat on explicit gq command " only reformat on explicit gq command
if mode() != 'n' if mode() != 'n'
" fall back to Vims internal reformatting " fall back to Vim's internal reformatting
return 1 return 1
endif endif
let lines = getline(v:lnum, v:lnum + v:count - 1) let lines = getline(v:lnum, v:lnum + v:count - 1)
@ -1620,8 +1624,6 @@ By default, "b:#" is included. This means that a line that starts with
"#include" is not recognized as a comment line. But a line that starts with "#include" is not recognized as a comment line. But a line that starts with
"# define" is recognized. This is a compromise. "# define" is recognized. This is a compromise.
{not available when compiled without the |+comments| feature}
*fo-table* *fo-table*
You can use the 'formatoptions' option to influence how Vim formats text. You can use the 'formatoptions' option to influence how Vim formats text.
'formatoptions' is a string that can contain any of the letters below. The 'formatoptions' is a string that can contain any of the letters below. The
@ -1686,6 +1688,10 @@ B When joining lines, don't insert a space between two multi-byte
characters. Overruled by the 'M' flag. characters. Overruled by the 'M' flag.
1 Don't break a line after a one-letter word. It's broken before it 1 Don't break a line after a one-letter word. It's broken before it
instead (if possible). instead (if possible).
] Respect textwidth rigorously. With this flag set, no line can be
longer than textwidth, unless line-break-prohibition rules make this
impossible. Mainly for CJK scripts and works only if 'encoding' is
"utf-8".
j Where it makes sense, remove a comment leader when joining lines. For j Where it makes sense, remove a comment leader when joining lines. For
example, joining: example, joining:
int i; // the index ~ int i; // the index ~

View File

@ -1,4 +1,4 @@
*channel.txt* For Vim version 8.1. Last change: 2019 Jul 28 *channel.txt* For Vim version 8.2. Last change: 2020 Jun 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -120,6 +120,9 @@ Use |ch_status()| to see if the channel could be opened.
{address} has the form "hostname:port". E.g., "localhost:8765". {address} has the form "hostname:port". E.g., "localhost:8765".
When using an IPv6 address, enclose it within square brackets. E.g.,
"[2001:db8::1]:8765".
{options} is a dictionary with optional entries: *channel-open-options* {options} is a dictionary with optional entries: *channel-open-options*
"mode" can be: *channel-mode* "mode" can be: *channel-mode*
@ -223,7 +226,7 @@ ch_open() fails quickly. On MS-Windows "waittime" applies.
*E898* *E901* *E902* *E898* *E901* *E902*
If there is an error reading or writing a channel it will be closed. If there is an error reading or writing a channel it will be closed.
*E630* *E631* *E630* *E631*
============================================================================== ==============================================================================
4. Using a JSON or JS channel *channel-use* 4. Using a JSON or JS channel *channel-use*
@ -474,18 +477,25 @@ ch_canread({handle}) *ch_canread()*
Note that messages are dropped when the channel does not have Note that messages are dropped when the channel does not have
a callback. Add a close callback to avoid that. a callback. Add a close callback to avoid that.
Can also be used as a |method|: >
GetChannel()->ch_canread()
ch_close({handle}) *ch_close()* ch_close({handle}) *ch_close()*
Close {handle}. See |channel-close|. Close {handle}. See |channel-close|.
{handle} can be a Channel or a Job that has a Channel. {handle} can be a Channel or a Job that has a Channel.
A close callback is not invoked. A close callback is not invoked.
Can also be used as a |method|: >
GetChannel()->ch_close()
ch_close_in({handle}) *ch_close_in()* ch_close_in({handle}) *ch_close_in()*
Close the "in" part of {handle}. See |channel-close-in|. Close the "in" part of {handle}. See |channel-close-in|.
{handle} can be a Channel or a Job that has a Channel. {handle} can be a Channel or a Job that has a Channel.
A close callback is not invoked. A close callback is not invoked.
Can also be used as a |method|: >
GetChannel()->ch_close_in()
ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()* ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
Send {expr} over {handle}. The {expr} is encoded Send {expr} over {handle}. The {expr} is encoded
@ -501,6 +511,12 @@ ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
expression. When there is an error or timeout it returns an expression. When there is an error or timeout it returns an
empty string. empty string.
Note that while waiting for the response, Vim handles other
messages. You need to make sure this doesn't cause trouble.
Can also be used as a |method|: >
GetChannel()->ch_evalexpr(expr)
ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()* ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
Send {string} over {handle}. Send {string} over {handle}.
@ -516,6 +532,8 @@ ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
need to use |ch_readraw()| to fetch the rest. need to use |ch_readraw()| to fetch the rest.
See |channel-use|. See |channel-use|.
Can also be used as a |method|: >
GetChannel()->ch_evalraw(rawstring)
ch_getbufnr({handle}, {what}) *ch_getbufnr()* ch_getbufnr({handle}, {what}) *ch_getbufnr()*
Get the buffer number that {handle} is using for {what}. Get the buffer number that {handle} is using for {what}.
@ -524,12 +542,17 @@ ch_getbufnr({handle}, {what}) *ch_getbufnr()*
socket output. socket output.
Returns -1 when there is no buffer. Returns -1 when there is no buffer.
Can also be used as a |method|: >
GetChannel()->ch_getbufnr(what)
ch_getjob({channel}) *ch_getjob()* ch_getjob({channel}) *ch_getjob()*
Get the Job associated with {channel}. Get the Job associated with {channel}.
If there is no job calling |job_status()| on the returned Job If there is no job calling |job_status()| on the returned Job
will result in "fail". will result in "fail".
Can also be used as a |method|: >
GetChannel()->ch_getjob()
ch_info({handle}) *ch_info()* ch_info({handle}) *ch_info()*
Returns a Dictionary with information about {handle}. The Returns a Dictionary with information about {handle}. The
@ -558,6 +581,9 @@ ch_info({handle}) *ch_info()*
"in_io" "null", "pipe", "file" or "buffer" "in_io" "null", "pipe", "file" or "buffer"
"in_timeout" timeout in msec "in_timeout" timeout in msec
Can also be used as a |method|: >
GetChannel()->ch_info()
ch_log({msg} [, {handle}]) *ch_log()* ch_log({msg} [, {handle}]) *ch_log()*
Write {msg} in the channel log file, if it was opened with Write {msg} in the channel log file, if it was opened with
@ -567,6 +593,9 @@ ch_log({msg} [, {handle}]) *ch_log()*
{handle} can be a Channel or a Job that has a Channel. The {handle} can be a Channel or a Job that has a Channel. The
Channel must be open for the channel number to be used. Channel must be open for the channel number to be used.
Can also be used as a |method|: >
'did something'->ch_log()
ch_logfile({fname} [, {mode}]) *ch_logfile()* ch_logfile({fname} [, {mode}]) *ch_logfile()*
Start logging channel activity to {fname}. Start logging channel activity to {fname}.
@ -584,6 +613,9 @@ ch_logfile({fname} [, {mode}]) *ch_logfile()*
aware that this may contain confidential and privacy sensitive aware that this may contain confidential and privacy sensitive
information, e.g. a password you type in a terminal window. information, e.g. a password you type in a terminal window.
Can also be used as a |method|: >
'logfile'->ch_logfile('w')
ch_open({address} [, {options}]) *ch_open()* ch_open({address} [, {options}]) *ch_open()*
Open a channel to {address}. See |channel|. Open a channel to {address}. See |channel|.
@ -592,9 +624,15 @@ ch_open({address} [, {options}]) *ch_open()*
{address} has the form "hostname:port", e.g., {address} has the form "hostname:port", e.g.,
"localhost:8765". "localhost:8765".
When using an IPv6 address, enclose it within square brackets.
E.g., "[2001:db8::1]:8765".
If {options} is given it must be a |Dictionary|. If {options} is given it must be a |Dictionary|.
See |channel-open-options|. See |channel-open-options|.
Can also be used as a |method|: >
GetAddress()->ch_open()
ch_read({handle} [, {options}]) *ch_read()* ch_read({handle} [, {options}]) *ch_read()*
Read from {handle} and return the received message. Read from {handle} and return the received message.
@ -603,11 +641,17 @@ ch_read({handle} [, {options}]) *ch_read()*
there is nothing more to read (channel was closed). there is nothing more to read (channel was closed).
See |channel-more|. See |channel-more|.
Can also be used as a |method|: >
GetChannel()->ch_read()
ch_readblob({handle} [, {options}]) *ch_readblob()* ch_readblob({handle} [, {options}]) *ch_readblob()*
Like ch_read() but reads binary data and returns a |Blob|. Like ch_read() but reads binary data and returns a |Blob|.
See |channel-more|. See |channel-more|.
Can also be used as a |method|: >
GetChannel()->ch_readblob()
ch_readraw({handle} [, {options}]) *ch_readraw()* ch_readraw({handle} [, {options}]) *ch_readraw()*
Like ch_read() but for a JS and JSON channel does not decode Like ch_read() but for a JS and JSON channel does not decode
@ -615,6 +659,9 @@ ch_readraw({handle} [, {options}]) *ch_readraw()*
the NL to arrive, but otherwise works like ch_read(). the NL to arrive, but otherwise works like ch_read().
See |channel-more|. See |channel-more|.
Can also be used as a |method|: >
GetChannel()->ch_readraw()
ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()* ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
Send {expr} over {handle}. The {expr} is encoded Send {expr} over {handle}. The {expr} is encoded
@ -623,6 +670,9 @@ ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
See |channel-use|. *E912* See |channel-use|. *E912*
{handle} can be a Channel or a Job that has a Channel. {handle} can be a Channel or a Job that has a Channel.
Can also be used as a |method|: >
GetChannel()->ch_sendexpr(expr)
ch_sendraw({handle}, {expr} [, {options}]) *ch_sendraw()* ch_sendraw({handle}, {expr} [, {options}]) *ch_sendraw()*
Send |String| or |Blob| {expr} over {handle}. Send |String| or |Blob| {expr} over {handle}.
@ -633,6 +683,9 @@ ch_sendraw({handle}, {expr} [, {options}]) *ch_sendraw()*
is removed. is removed.
See |channel-use|. See |channel-use|.
Can also be used as a |method|: >
GetChannel()->ch_sendraw(rawexpr)
ch_setoptions({handle}, {options}) *ch_setoptions()* ch_setoptions({handle}, {options}) *ch_setoptions()*
Set options on {handle}: Set options on {handle}:
@ -648,6 +701,9 @@ ch_setoptions({handle}, {options}) *ch_setoptions()*
These options cannot be changed: These options cannot be changed:
"waittime" only applies to |ch_open()| "waittime" only applies to |ch_open()|
Can also be used as a |method|: >
GetChannel()->ch_setoptions(options)
ch_status({handle} [, {options}]) *ch_status()* ch_status({handle} [, {options}]) *ch_status()*
Return the status of {handle}: Return the status of {handle}:
@ -664,6 +720,8 @@ ch_status({handle} [, {options}]) *ch_status()*
"err". For example, to get the error status: > "err". For example, to get the error status: >
ch_status(job, {"part": "err"}) ch_status(job, {"part": "err"})
< <
Can also be used as a |method|: >
GetChannel()->ch_status()
============================================================================== ==============================================================================
9. Starting a job with a channel *job-start* *job* 9. Starting a job with a channel *job-start* *job*
@ -700,7 +758,7 @@ handle that separately, add an "err_cb" handler: >
If you want to handle both stderr and stdout with one handler use the If you want to handle both stderr and stdout with one handler use the
"callback" option: > "callback" option: >
let job = job_start(command, {"callback": "MyHandler"}) let job = job_start(command, {"callback": "MyHandler"})
Depending on the system, starting a job can put Vim in the background, the Depending on the system, starting a job can put Vim in the background, the
started job gets the focus. To avoid that, use the `foreground()` function. started job gets the focus. To avoid that, use the `foreground()` function.
@ -792,6 +850,8 @@ job_getchannel({job}) *job_getchannel()*
To check if the job has no channel: > To check if the job has no channel: >
if string(job_getchannel()) == 'channel fail' if string(job_getchannel()) == 'channel fail'
< <
Can also be used as a |method|: >
GetJob()->job_getchannel()
job_info([{job}]) *job_info()* job_info([{job}]) *job_info()*
Returns a Dictionary with information about {job}: Returns a Dictionary with information about {job}:
@ -817,12 +877,18 @@ job_info([{job}]) *job_info()*
Without any arguments, returns a List with all Job objects. Without any arguments, returns a List with all Job objects.
Can also be used as a |method|: >
GetJob()->job_info()
job_setoptions({job}, {options}) *job_setoptions()* job_setoptions({job}, {options}) *job_setoptions()*
Change options for {job}. Supported are: Change options for {job}. Supported are:
"stoponexit" |job-stoponexit| "stoponexit" |job-stoponexit|
"exit_cb" |job-exit_cb| "exit_cb" |job-exit_cb|
Can also be used as a |method|: >
GetJob()->job_setoptions(options)
job_start({command} [, {options}]) *job_start()* job_start({command} [, {options}]) *job_start()*
Start a job and return a Job object. Unlike |system()| and Start a job and return a Job object. Unlike |system()| and
@ -881,6 +947,9 @@ job_start({command} [, {options}]) *job_start()*
{options} must be a Dictionary. It can contain many optional {options} must be a Dictionary. It can contain many optional
items, see |job-options|. items, see |job-options|.
Can also be used as a |method|: >
BuildCommand()->job_start()
job_status({job}) *job_status()* *E916* job_status({job}) *job_status()* *E916*
Returns a String with the status of {job}: Returns a String with the status of {job}:
@ -897,6 +966,9 @@ job_status({job}) *job_status()* *E916*
For more information see |job_info()|. For more information see |job_info()|.
Can also be used as a |method|: >
GetJob()->job_status()
job_stop({job} [, {how}]) *job_stop()* job_stop({job} [, {how}]) *job_stop()*
Stop the {job}. This can also be used to signal the job. Stop the {job}. This can also be used to signal the job.
@ -940,6 +1012,9 @@ job_stop({job} [, {how}]) *job_stop()*
When using "kill" Vim will assume the job will die and close When using "kill" Vim will assume the job will die and close
the channel. the channel.
Can also be used as a |method|: >
GetJob()->job_stop()
============================================================================== ==============================================================================
12. Job options *job-options* 12. Job options *job-options*
@ -1160,8 +1235,8 @@ If you want to type input for the job in a Vim window you have a few options:
- Use a terminal window. This works well if what you type goes directly to - Use a terminal window. This works well if what you type goes directly to
the job and the job output is directly displayed in the window. the job and the job output is directly displayed in the window.
See |terminal-window|. See |terminal-window|.
- Use a prompt window. This works well when entering a line for the job in Vim - Use a window with a prompt buffer. This works well when entering a line for
while displaying (possibly filtered) output from the job. the job in Vim while displaying (possibly filtered) output from the job.
A prompt buffer is created by setting 'buftype' to "prompt". You would A prompt buffer is created by setting 'buftype' to "prompt". You would
normally only do that in a newly created buffer. normally only do that in a newly created buffer.
@ -1195,5 +1270,46 @@ Any command that starts Insert mode, such as "a", "i", "A" and "I", will move
the cursor to the last line. "A" will move to the end of the line, "I" to the the cursor to the last line. "A" will move to the end of the line, "I" to the
start of the line. start of the line.
Here is an example for Unix. It starts a shell in the background and prompts
for the next shell command. Output from the shell is displayed above the
prompt. >
" Create a channel log so we can see what happens.
call ch_logfile('logfile', 'w')
" Function handling a line of text has been typed.
func TextEntered(text)
" Send the text to a shell with Enter appended.
call ch_sendraw(g:shell_job, a:text .. "\n")
endfunc
" Function handling output from the shell: Added above the prompt.
func GotOutput(channel, msg)
call append(line("$") - 1, "- " . a:msg)
endfunc
" Function handling the shell exist: close the window.
func JobExit(job, status)
quit!
endfunc
" Start a shell in the background.
let shell_job = job_start(["/bin/sh"], #{
\ out_cb: function('GotOutput'),
\ err_cb: function('GotOutput'),
\ exit_cb: function('JobExit'),
\ })
let shell_ch = job_getchannel(shell_job)
new
set buftype=prompt
let buf = bufnr('')
call prompt_setcallback(buf, function("TextEntered"))
eval prompt_setprompt(buf, "shell command: ")
" start accepting shell commands
startinsert
<
vim:tw=78:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.1. Last change: 2019 Aug 06 *cmdline.txt* For Vim version 8.2. Last change: 2020 Apr 23
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -75,12 +75,19 @@ CTRL-V Insert next non-digit literally. Up to three digits form the
decimal value of a single byte. The non-digit and the three decimal value of a single byte. The non-digit and the three
digits are not considered for mapping. This works the same digits are not considered for mapping. This works the same
way as in Insert mode (see above, |i_CTRL-V|). way as in Insert mode (see above, |i_CTRL-V|).
Note: Under Windows CTRL-V is often mapped to paste text. Note: Under MS-Windows CTRL-V is often mapped to paste text.
Use CTRL-Q instead then. Use CTRL-Q instead then.
When |modifyOtherKeys| is enabled then special Escape sequence
is converted back to what it was without |modifyOtherKeys|,
unless the Shift key is also pressed.
*c_CTRL-Q* *c_CTRL-Q*
CTRL-Q Same as CTRL-V. But with some terminals it is used for CTRL-Q Same as CTRL-V. But with some terminals it is used for
control flow, it doesn't work then. control flow, it doesn't work then.
CTRL-SHIFT-V *c_CTRL-SHIFT-V* *c_CTRL-SHIFT-Q*
CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
then it inserts the Escape sequence for a key with modifiers.
*c_<Left>* *c_Left* *c_<Left>* *c_Left*
<Left> cursor left <Left> cursor left
*c_<Right>* *c_Right* *c_<Right>* *c_Right*
@ -129,7 +136,7 @@ CTRL-K {char1} {char2} *c_CTRL-K*
enter digraph (see |digraphs|). When {char1} is a special enter digraph (see |digraphs|). When {char1} is a special
key, the code for that key is inserted in <> form. key, the code for that key is inserted in <> form.
CTRL-R {0-9a-z"%#:-=.} *c_CTRL-R* *c_<C-R>* CTRL-R {register} *c_CTRL-R* *c_<C-R>*
Insert the contents of a numbered or named register. Between Insert the contents of a numbered or named register. Between
typing CTRL-R and the second character '"' will be displayed typing CTRL-R and the second character '"' will be displayed
to indicate that you are expected to enter the name of a to indicate that you are expected to enter the name of a
@ -191,8 +198,8 @@ CTRL-R CTRL-L *c_CTRL-R_CTRL-L* *c_<C-R>_<C-L>*
*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>* *c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
*c_CTRL-R_CTRL-O* *c_<C-R>_<C-O>* *c_CTRL-R_CTRL-O* *c_<C-R>_<C-O>*
CTRL-R CTRL-R {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L} CTRL-R CTRL-R {register CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
CTRL-R CTRL-O {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L} CTRL-R CTRL-O {register CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
Insert register or object under the cursor. Works like Insert register or object under the cursor. Works like
|c_CTRL-R| but inserts the text literally. For example, if |c_CTRL-R| but inserts the text literally. For example, if
register a contains "xy^Hz" (where ^H is a backspace), register a contains "xy^Hz" (where ^H is a backspace),
@ -380,10 +387,8 @@ word before the cursor. This is available for:
- Mappings: Only after a ":map" or similar command. - Mappings: Only after a ":map" or similar command.
- Variable and function names: Only after a ":if", ":call" or similar command. - Variable and function names: Only after a ":if", ":call" or similar command.
When Vim was compiled without the |+cmdline_compl| feature only file names, The number of help item matches is limited (currently to 300) to avoid a long
directories and help items can be completed. The number of help item matches delay when there are very many matches.
is limited (currently to 300) to avoid a long delay when there are very many
matches.
These are the commands that can be used: These are the commands that can be used:
@ -471,6 +476,10 @@ emulate it. For example, this mimics autolist=ambiguous:
This will find the longest match with the first 'wildchar', then list all This will find the longest match with the first 'wildchar', then list all
matching files with the next. matching files with the next.
*complete-script-local-functions*
When completing user function names, prepend "s:" to find script-local
functions.
*suffixes* *suffixes*
For file name completion you can use the 'suffixes' option to set a priority For file name completion you can use the 'suffixes' option to set a priority
between files with almost the same name. If there are multiple matches, between files with almost the same name. If there are multiple matches,
@ -581,6 +590,7 @@ followed by another Vim command:
:command :command
:cscope :cscope
:debug :debug
:eval
:folddoopen :folddoopen
:folddoclosed :folddoclosed
:function :function
@ -605,6 +615,7 @@ followed by another Vim command:
:tcl :tcl
:tcldo :tcldo
:tclfile :tclfile
:terminal
:vglobal :vglobal
:windo :windo
:write ! :write !
@ -911,8 +922,7 @@ Note: these are typed literally, they are not special keys!
*%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs* *%:S* *%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs* *%:S*
The file name modifiers can be used after "%", "#", "#n", "<cfile>", "<sfile>", The file name modifiers can be used after "%", "#", "#n", "<cfile>", "<sfile>",
"<afile>" or "<abuf>". They are also used with the |fnamemodify()| function. "<afile>" or "<abuf>". They are also used with the |fnamemodify()| function.
These are not available when Vim has been compiled without the |+modify_fname|
feature.
These modifiers can be given, in this order: These modifiers can be given, in this order:
:p Make file name a full path. Must be the first modifier. Also :p Make file name a full path. Must be the first modifier. Also
changes "~/" (and "~user/" for Unix and VMS) to the path for changes "~/" (and "~user/" for Unix and VMS) to the path for
@ -929,8 +939,7 @@ These modifiers can be given, in this order:
directory. directory.
:. Reduce file name to be relative to current directory, if :. Reduce file name to be relative to current directory, if
possible. File name is unmodified if it is not below the possible. File name is unmodified if it is not below the
current directory, but on MS-Windows the drive is removed if current directory.
it is the current drive.
For maximum shortness, use ":~:.". For maximum shortness, use ":~:.".
:h Head of the file name (the last component and any separators :h Head of the file name (the last component and any separators
removed). Cannot be used with :e, :r or :t. removed). Cannot be used with :e, :r or :t.
@ -939,9 +948,9 @@ These modifiers can be given, in this order:
separator is removed. Thus ":p:h" on a directory name results separator is removed. Thus ":p:h" on a directory name results
on the directory name itself (without trailing slash). on the directory name itself (without trailing slash).
When the file name is an absolute path (starts with "/" for When the file name is an absolute path (starts with "/" for
Unix; "x:\" for MS-DOS, WIN32, OS/2; "drive:" for Amiga), that Unix; "x:\" for Win32; "drive:" for Amiga), that part is not
part is not removed. When there is no head (path is relative removed. When there is no head (path is relative to current
to current directory) the result is empty. directory) the result is empty.
:t Tail of the file name (last component of the name). Must :t Tail of the file name (last component of the name). Must
precede any :r or :e. precede any :r or :e.
:r Root of the file name (the last extension removed). When :r Root of the file name (the last extension removed). When
@ -1038,12 +1047,12 @@ option contains "sh", this is done twice, to avoid the shell trying to expand
the "!". the "!".
*filename-backslash* *filename-backslash*
For filesystems that use a backslash as directory separator (MS-DOS, Windows, For filesystems that use a backslash as directory separator (MS-Windows), it's
OS/2), it's a bit difficult to recognize a backslash that is used to escape a bit difficult to recognize a backslash that is used to escape the special
the special meaning of the next character. The general rule is: If the meaning of the next character. The general rule is: If the backslash is
backslash is followed by a normal file name character, it does not have a followed by a normal file name character, it does not have a special meaning.
special meaning. Therefore "\file\foo" is a valid file name, you don't have Therefore "\file\foo" is a valid file name, you don't have to type the
to type the backslash twice. backslash twice.
An exception is the '$' sign. It is a valid character in a file name. But An exception is the '$' sign. It is a valid character in a file name. But
to avoid a file name like "$home" to be interpreted as an environment variable, to avoid a file name like "$home" to be interpreted as an environment variable,
@ -1174,11 +1183,9 @@ edited as described in |cmdwin-char|.
AUTOCOMMANDS AUTOCOMMANDS
Two autocommand events are used: |CmdwinEnter| and |CmdwinLeave|. Since this Two autocommand events are used: |CmdwinEnter| and |CmdwinLeave|. You can use
window is of a special type, the WinEnter, WinLeave, BufEnter and BufLeave the Cmdwin events to do settings specifically for the command-line window.
events are not triggered. You can use the Cmdwin events to do settings Be careful not to cause side effects!
specifically for the command-line window. Be careful not to cause side
effects!
Example: > Example: >
:au CmdwinEnter : let b:cpt_save = &cpt | set cpt=. :au CmdwinEnter : let b:cpt_save = &cpt | set cpt=.
:au CmdwinLeave : let &cpt = b:cpt_save :au CmdwinLeave : let &cpt = b:cpt_save

View File

@ -1,4 +1,4 @@
*debug.txt* For Vim version 8.1. Last change: 2019 May 07 *debug.txt* For Vim version 8.2. Last change: 2019 May 07
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*debugger.txt* For Vim version 8.1. Last change: 2019 Jul 06 *debugger.txt* For Vim version 8.2. Last change: 2019 Dec 21
VIM REFERENCE MANUAL by Gordon Prieur VIM REFERENCE MANUAL by Gordon Prieur
@ -12,8 +12,6 @@ For the debugger running in a Vim terminal window see |terminal-debugger|.
1. Debugger Features |debugger-features| 1. Debugger Features |debugger-features|
2. Vim Compile Options |debugger-compilation| 2. Vim Compile Options |debugger-compilation|
3. Integrated Debuggers |debugger-integration|
============================================================================== ==============================================================================
1. Debugger Features *debugger-features* 1. Debugger Features *debugger-features*
@ -114,10 +112,10 @@ other settings apply.
============================================================================== ==============================================================================
2. Vim Compile Options *debugger-compilation* 2. Vim Compile Options *debugger-compilation*
The debugger features were added explicitly for use with Sun's Visual The debugger features were added for use with Sun's Visual WorkShop Integrated
WorkShop Integrated Programming Environment (ipe). However, they were done Programming Environment (ipe). However, they were done in as generic a manner
in as generic a manner as possible so that integration with other debuggers as possible so that integration with other debuggers could also use these
could also use some or all of the tools used with Sun's ipe. features.
The following compile time preprocessor variables control the features: The following compile time preprocessor variables control the features:
@ -127,18 +125,10 @@ The following compile time preprocessor variables control the features:
Message Footer FEAT_FOOTER Message Footer FEAT_FOOTER
Balloon Evaluation FEAT_BEVAL Balloon Evaluation FEAT_BEVAL
The first integration with a full IPE/IDE was with Sun Visual WorkShop. To The support specifically for Sun Visual WorkShop has been removed, since the
compile a gvim which interfaces with VWS set the following flag, which sets product no longer exists.
all the above flags:
Sun Visual WorkShop FEAT_SUN_WORKSHOP
==============================================================================
3. Integrated Debuggers *debugger-integration*
One fully integrated debugger/IPE/IDE is Sun's Visual WorkShop Integrated
Programming Environment.
For Sun NetBeans support see |netbeans|. For Sun NetBeans support see |netbeans|.
vim:tw=78:sw=4:ts=8:noet:ft=help:norl: vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*develop.txt* For Vim version 8.1. Last change: 2019 Aug 05 *develop.txt* For Vim version 8.2. Last change: 2020 Apr 13
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -151,7 +151,8 @@ VIM IS... NOT *design-not*
A satirical way to say this: "Unlike Emacs, Vim does not attempt to include A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
everything but the kitchen sink, but some people say that you can clean one everything but the kitchen sink, but some people say that you can clean one
with it. ;-)" with it. ;-)"
To use Vim with gdb see: http://www.agide.org and http://clewn.sf.net. To use Vim with gdb see |terminal-debugger|. Other (older) tools can be
found at http://www.agide.org and http://clewn.sf.net.
- Vim is not a fancy GUI editor that tries to look nice at the cost of - Vim is not a fancy GUI editor that tries to look nice at the cost of
being less consistent over all platforms. But functional GUI features are being less consistent over all platforms. But functional GUI features are
welcomed. welcomed.
@ -195,10 +196,14 @@ problems for existing patches. Only use them for new and changed code.
Comments ~ Comments ~
Traditionally Vim uses /* comments */. We intend to keep it that way, Traditionally Vim uses /* comments */. We intend to keep it that way
especially for file and function headers. For new code or lines of code that for file and function headers and larger blocks of code, E.g.:
change, it is allowed to use // comments. Especially when it comes after /*
code: * The "foo" argument does something useful.
* Return OK or FAIL.
*/
For new code or lines of code that change, it is preferred to use // comments.
Especially when it comes after code:
int some_var; // single line comment useful here int some_var; // single line comment useful here
Enums ~ Enums ~

View File

@ -1,4 +1,4 @@
*diff.txt* For Vim version 8.1. Last change: 2019 Jul 27 *diff.txt* For Vim version 8.2. Last change: 2019 Nov 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -68,11 +68,12 @@ reset to the global value.
The options can still be overruled from a modeline when re-editing the file. The options can still be overruled from a modeline when re-editing the file.
However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is
set. set.
See `:diffoff` for an easy way to revert the options.
The differences shown are actually the differences in the buffer. Thus if you The differences shown are actually the differences in the buffer. Thus if you
make changes after loading a file, these will be included in the displayed make changes after loading a file, these will be included in the displayed
diffs. You might have to do ":diffupdate" now and then, not all changes are diffs. You might have to do ":diffupdate" now and then, not all changes are
immediately taken into account. immediately taken into account, especially when using an external diff command.
In your .vimrc file you could do something special when Vim was started in In your .vimrc file you could do something special when Vim was started in
diff mode. You could use a construct like this: > diff mode. You could use a construct like this: >

View File

@ -1,4 +1,4 @@
*digraph.txt* For Vim version 8.1. Last change: 2019 May 05 *digraph.txt* For Vim version 8.2. Last change: 2019 May 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

13
runtime/doc/doctags.vim Normal file
View File

@ -0,0 +1,13 @@
" This script makes a tags file for help text.
"
" Usage: vim -eX -u doctags.vim
try
helptags ++t .
echo 'help tags updated'
catch
echo v:exception
echo 'help tags failed update'
endtry
echo ''
qa!

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.1. Last change: 2019 Jun 10 *editing.txt* For Vim version 8.2. Last change: 2020 Jun 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -100,7 +100,7 @@ g CTRL-G Prints the current position of the cursor in five
:buffers :buffers
:files :files
:ls List all the currently known file names. See :ls List all the currently known file names. See
'windows.txt' |:files| |:buffers| |:ls|. |windows.txt| |:files| |:buffers| |:ls|.
Vim will remember the full path name of a file name that you enter. In most Vim will remember the full path name of a file name that you enter. In most
cases when the file name is displayed only the name you typed is shown, but cases when the file name is displayed only the name you typed is shown, but
@ -131,7 +131,7 @@ You can use this file if you discover that you need the original file. See
also the 'patchmode' option. The name of the backup file is normally the same also the 'patchmode' option. The name of the backup file is normally the same
as the original file with 'backupext' appended. The default "~" is a bit as the original file with 'backupext' appended. The default "~" is a bit
strange to avoid accidentally overwriting existing files. If you prefer ".bak" strange to avoid accidentally overwriting existing files. If you prefer ".bak"
change the 'backupext' option. Extra dots are replaced with '_' on MS-DOS change the 'backupext' option. Extra dots are replaced with '_' on MS-Windows
machines, when Vim has detected that an MS-DOS-like filesystem is being used machines, when Vim has detected that an MS-DOS-like filesystem is being used
(e.g., messydos or crossdos) or when the 'shortname' option is on. The (e.g., messydos or crossdos) or when the 'shortname' option is on. The
backup file can be placed in another directory by setting 'backupdir'. backup file can be placed in another directory by setting 'backupdir'.
@ -331,10 +331,13 @@ CTRL-^ Edit the alternate file. Mostly the alternate file is
*gF* *gF*
[count]gF Same as "gf", except if a number follows the file [count]gF Same as "gf", except if a number follows the file
name, then the cursor is positioned on that line in name, then the cursor is positioned on that line in
the file. The file name and the number must be the file.
separated by a non-filename (see 'isfname') and The file name and the number must be separated by a
non-numeric character. White space between the non-filename (see 'isfname') and non-numeric
filename, the separator and the number are ignored. character. " line " is also recognized, like it is
used in the output of `:verbose command UserCmd`
White space between the filename, the separator and
the number are ignored.
Examples: Examples:
eval.c:10 ~ eval.c:10 ~
eval.c @ 20 ~ eval.c @ 20 ~
@ -472,6 +475,9 @@ This edits the same file again with 'fileformat' set to "unix". >
:w ++enc=latin1 newfile :w ++enc=latin1 newfile
This writes the current buffer to "newfile" in latin1 format. This writes the current buffer to "newfile" in latin1 format.
The message given when writing a file will show "[converted]" when
'fileencoding' or the value specified with ++enc differs from 'encoding'.
There may be several ++opt arguments, separated by white space. They must all There may be several ++opt arguments, separated by white space. They must all
appear before any |+cmd| argument. appear before any |+cmd| argument.
@ -519,9 +525,9 @@ The 'fileformat' option sets the <EOL> style for a file:
Previously 'textmode' was used. It is obsolete now. Previously 'textmode' was used. It is obsolete now.
When reading a file, the mentioned characters are interpreted as the <EOL>. When reading a file, the mentioned characters are interpreted as the <EOL>.
In DOS format (default for MS-DOS, OS/2 and Win32), <CR><NL> and <NL> are both In DOS format (default for Win32), <CR><NL> and <NL> are both interpreted as
interpreted as the <EOL>. Note that when writing the file in DOS format, the <EOL>. Note that when writing the file in DOS format, <CR> characters
<CR> characters will be added for each single <NL>. Also see |file-read|. will be added for each single <NL>. Also see |file-read|.
When writing a file, the mentioned characters are used for <EOL>. For DOS When writing a file, the mentioned characters are used for <EOL>. For DOS
format <CR><NL> is used. Also see |DOS-format-write|. format <CR><NL> is used. Also see |DOS-format-write|.
@ -542,15 +548,16 @@ If you start editing a new file and the 'fileformats' option is not empty
(which is the default), Vim will try to detect whether the lines in the file (which is the default), Vim will try to detect whether the lines in the file
are separated by the specified formats. When set to "unix,dos", Vim will are separated by the specified formats. When set to "unix,dos", Vim will
check for lines with a single <NL> (as used on Unix and Amiga) or by a <CR> check for lines with a single <NL> (as used on Unix and Amiga) or by a <CR>
<NL> pair (MS-DOS). Only when ALL lines end in <CR><NL>, 'fileformat' is set <NL> pair (MS-Windows). Only when ALL lines end in <CR><NL>, 'fileformat' is
to "dos", otherwise it is set to "unix". When 'fileformats' includes "mac", set to "dos", otherwise it is set to "unix". When 'fileformats' includes
and no <NL> characters are found in the file, 'fileformat' is set to "mac". "mac", and no <NL> characters are found in the file, 'fileformat' is set to
"mac".
If the 'fileformat' option is set to "dos" on non-MS-DOS systems the message If the 'fileformat' option is set to "dos" on non-MS-Windows systems the
"[dos format]" is shown to remind you that something unusual is happening. On message "[dos format]" is shown to remind you that something unusual is
MS-DOS systems you get the message "[unix format]" if 'fileformat' is set to happening. On MS-Windows systems you get the message "[unix format]" if
"unix". On all systems but the Macintosh you get the message "[mac format]" 'fileformat' is set to "unix". On all systems but the Macintosh you get the
if 'fileformat' is set to "mac". message "[mac format]" if 'fileformat' is set to "mac".
If the 'fileformats' option is empty and DOS format is used, but while reading If the 'fileformats' option is empty and DOS format is used, but while reading
a file some lines did not end in <CR><NL>, "[CR missing]" will be included in a file some lines did not end in <CR><NL>, "[CR missing]" will be included in
@ -1023,11 +1030,11 @@ lost the original file.
*DOS-format-write* *DOS-format-write*
If the 'fileformat' is "dos", <CR> <NL> is used for <EOL>. This is default If the 'fileformat' is "dos", <CR> <NL> is used for <EOL>. This is default
for MS-DOS, Win32 and OS/2. On other systems the message "[dos format]" is for Win32. On other systems the message "[dos format]" is shown to remind you
shown to remind you that an unusual <EOL> was used. that an unusual <EOL> was used.
*Unix-format-write* *Unix-format-write*
If the 'fileformat' is "unix", <NL> is used for <EOL>. On MS-DOS, Win32 and If the 'fileformat' is "unix", <NL> is used for <EOL>. On Win32 the message
OS/2 the message "[unix format]" is shown. "[unix format]" is shown.
*Mac-format-write* *Mac-format-write*
If the 'fileformat' is "mac", <CR> is used for <EOL>. On non-Mac systems the If the 'fileformat' is "mac", <CR> is used for <EOL>. On non-Mac systems the
message "[mac format]" is shown. message "[mac format]" is shown.
@ -1056,11 +1063,11 @@ When the file name is actually a device name, Vim will not make a backup (that
would be impossible). You need to use "!", since the device already exists. would be impossible). You need to use "!", since the device already exists.
Example for Unix: > Example for Unix: >
:w! /dev/lpt0 :w! /dev/lpt0
and for MS-DOS or MS-Windows: > and for MS-Windows: >
:w! lpt0 :w! lpt0
For Unix a device is detected when the name doesn't refer to a normal file or For Unix a device is detected when the name doesn't refer to a normal file or
a directory. A fifo or named pipe also looks like a device to Vim. a directory. A fifo or named pipe also looks like a device to Vim.
For MS-DOS and MS-Windows the device is detected by its name: For MS-Windows the device is detected by its name:
AUX AUX
CON CON
CLOCK$ CLOCK$
@ -1075,9 +1082,9 @@ The names can be in upper- or lowercase.
*:q* *:quit* *:q* *:quit*
:q[uit] Quit the current window. Quit Vim if this is the last :q[uit] Quit the current window. Quit Vim if this is the last
window. This fails when changes have been made and |edit-window|. This fails when changes have been made
Vim refuses to |abandon| the current buffer, and when and Vim refuses to |abandon| the current buffer, and
the last file in the argument list has not been when the last file in the argument list has not been
edited. edited.
If there are other tab pages and quitting the last If there are other tab pages and quitting the last
window in the current tab page the current tab page is window in the current tab page the current tab page is
@ -1103,18 +1110,22 @@ The names can be in upper- or lowercase.
|quickfix|). |quickfix|).
*:wq* *:wq*
:wq [++opt] Write the current file and quit. Writing fails when :wq [++opt] Write the current file and close the window. If this
the file is read-only or the buffer does not have a was the last |edit-window| Vim quits.
name. Quitting fails when the last file in the Writing fails when the file is read-only or the buffer
argument list has not been edited. does not have a name. Quitting fails when the last
file in the argument list has not been edited.
:wq! [++opt] Write the current file and quit. Writing fails when :wq! [++opt] Write the current file and close the window. If this
the current buffer does not have a name. was the last |edit-window| Vim quits. Writing fails
when the current buffer does not have a name.
:wq [++opt] {file} Write to {file} and quit. Quitting fails when the :wq [++opt] {file} Write to {file} and close the window. If this was the
last |edit-window| Vim quits. Quitting fails when the
last file in the argument list has not been edited. last file in the argument list has not been edited.
:wq! [++opt] {file} Write to {file} and quit. :wq! [++opt] {file} Write to {file} and close the current window. Quit
Vim if this was the last |edit-window|.
:[range]wq[!] [++opt] [file] :[range]wq[!] [++opt] [file]
Same as above, but only write the lines in [range]. Same as above, but only write the lines in [range].
@ -1131,10 +1142,10 @@ The names can be in upper- or lowercase.
Same as :xit. Same as :xit.
*ZZ* *ZZ*
ZZ Write current file, if modified, and quit (same as ZZ Write current file, if modified, and close the current
":x"). (Note: If there are several windows for the window (same as ":x").
current file, the file is written if it was modified If there are several windows for the current file,
and the window is closed). only the current window is closed.
*ZQ* *ZQ*
ZQ Quit without checking for changes (same as ":q!"). ZQ Quit without checking for changes (same as ":q!").
@ -1233,7 +1244,7 @@ The syntax is best shown via some examples: >
< Open the browser in the C:/bar directory, with the current < Open the browser in the C:/bar directory, with the current
buffer filename as default, and save the buffer under the buffer filename as default, and save the buffer under the
filename chosen. filename chosen.
Also see the |'browsedir'| option. Also see the 'browsedir' option.
For versions of Vim where browsing is not supported, the command is executed For versions of Vim where browsing is not supported, the command is executed
unmodified. unmodified.
@ -1294,7 +1305,7 @@ present in 'cpoptions' and "!" is not used in the command.
Does not change the meaning of an already opened file, Does not change the meaning of an already opened file,
because its full path name is remembered. Files from because its full path name is remembered. Files from
the |arglist| may change though! the |arglist| may change though!
On MS-DOS this also changes the active drive. On MS-Windows this also changes the active drive.
To change to the directory of the current file: > To change to the directory of the current file: >
:cd %:h :cd %:h
< <
@ -1315,6 +1326,10 @@ present in 'cpoptions' and "!" is not used in the command.
*:tch* *:tchdir* *:tch* *:tchdir*
:tch[dir][!] Same as |:tcd|. :tch[dir][!] Same as |:tcd|.
*:tcd-*
:tcd[!] - Change to the previous current directory, before the
last ":tcd {path}" command.
*:lc* *:lcd* *:lc* *:lcd*
:lc[d][!] {path} Like |:cd|, but only set the current directory when :lc[d][!] {path} Like |:cd|, but only set the current directory when
the cursor is in the current window. The current the cursor is in the current window. The current
@ -1324,9 +1339,28 @@ present in 'cpoptions' and "!" is not used in the command.
*:lch* *:lchdir* *:lch* *:lchdir*
:lch[dir][!] Same as |:lcd|. :lch[dir][!] Same as |:lcd|.
*:lcd-*
:lcd[!] - Change to the previous current directory, before the
last ":lcd {path}" command.
*:pw* *:pwd* *E187* *:pw* *:pwd* *E187*
:pw[d] Print the current directory name. :pw[d] Print the current directory name.
Also see |getcwd()|. Also see |getcwd()|.
*:pwd-verbose*
When 'verbose' is non-zero, |:pwd| will also display
what scope the current directory was set. Example: >
" Set by :cd
:verbose pwd
[global] /path/to/current
" Set by :lcd
:verbose pwd
[window] /path/to/current
" Set by :tcd
:verbose pwd
[tabpage] /path/to/current
So long as no |:lcd| or |:tcd| command has been used, all windows share the So long as no |:lcd| or |:tcd| command has been used, all windows share the
same current directory. Using a command to jump to another window doesn't same current directory. Using a command to jump to another window doesn't
@ -1452,7 +1486,7 @@ Do this before writing the file. When reading an encrypted file it will be
set automatically to the method used when that file was written. You can set automatically to the method used when that file was written. You can
change 'cryptmethod' before writing that file to change the method. change 'cryptmethod' before writing that file to change the method.
To set the default method, used for new files, use this in your |vimrc| To set the default method, used for new files, use this in your |vimrc|
file: > file: >
set cm=blowfish2 set cm=blowfish2
Using "blowfish2" is highly recommended. Only use another method if you Using "blowfish2" is highly recommended. Only use another method if you
@ -1554,7 +1588,7 @@ focus.
If you want to automatically reload a file when it has been changed outside of If you want to automatically reload a file when it has been changed outside of
Vim, set the 'autoread' option. This doesn't work at the moment you write the Vim, set the 'autoread' option. This doesn't work at the moment you write the
file though, only when the file wasn't changed inside of Vim. file though, only when the file wasn't changed inside of Vim.
*ignore-timestamp*
If you do not want to be asked or automatically reload the file, you can use If you do not want to be asked or automatically reload the file, you can use
this: > this: >
set buftype=nofile set buftype=nofile

File diff suppressed because it is too large Load Diff

0
runtime/doc/evim-it.1 Executable file → Normal file
View File

48
runtime/doc/evim-tr.1 Normal file
View File

@ -0,0 +1,48 @@
.TH EVIM 1 "16 <20>ubat 2002"
.SH AD
evim \- kolay Vim, bir dosyay<61> Vim ile herhangi bir kip olmadan d<>zenleyin
.SH <EFBFBD>ZET
.br
.B evim
[se<73>enekler] [dosya ..]
.br
.B eview
.SH TANIM
.B eVim,
.B Vim'i
ba<EFBFBD>lat<EFBFBD>r ve onu herhangi bir kipsiz d<>zenleyici gibi davranmas<61>n<EFBFBD> sa<73>lar.
Bu bildi<64>iniz Vim'dir, ancak bir t<>kla ve yaz d<>zenleyicisi gibi <20>al<61><6C><EFBFBD>r.
Bir <20>rnek vermek gerekirse MS-Windows <20>zerindeki Not Defteri gibi d<><64><EFBFBD>n<EFBFBD>n.
.B eVim
men<EFBFBD>lere ve ara<72> <20>ubuklar<61>na eri<72>im sa<73>layabilmeniz i<>in grafik arabirimde <20>al<61><6C><EFBFBD>r.
.PP
Yaln<EFBFBD>zca Vim ile normal bi<62>imde <20>al<61><6C>amayan ki<6B>ilerin kullan<61>m<EFBFBD> i<>indir.
Dosya d<>zenleme i<>i <20>ok daha verimsiz olacakt<6B>r.
.PP
.B eview'<27>n
ayn<EFBFBD>s<EFBFBD>d<EFBFBD>r, ancak saltokunur kipte ba<62>lar. evim \-R ile de ba<62>lat<61>labilir.
.PP
Vim hakk<6B>nda ayr<79>nt<6E>l<EFBFBD> bilgi i<>in: vim(1)
.PP
Do<EFBFBD>rudan metin giri<72>ini sa<73>layabilmek i<>in 'insertmode' se<73>ene<6E>i a<><61>l<EFBFBD>r.
.br
E<EFBFBD>lemlemeler Kopyala ve Yap<61><70>t<EFBFBD>r MS-Windows ile ayn<79> olacak bi<62>imde ayarlan<61>r.
CTRL-X metni keser, CTRL-C metni kopyalar ve CTRL-V metni yap<61><70>t<EFBFBD>r<EFBFBD>r.
CTRL-V'nin orijinal i<>levi i<>in CTRL-Q kullan<61>n.
.SH SE<EFBFBD>ENEKLER
Bilgi i<>in: vim(1).
.SH DOSYALAR
.TP 15
/usr/local/lib/vim/evim.vim
eVim'i ilklendirmek i<>in kullan<61>lan betik.
.SH NAM-I D<EFBFBD><EFBFBD>ER
Nam-<2D> di<64>er "Lastik <20>izmeliler i<>in Vim" (Gumbies, Monty Python).
eVim'i kullan<61>rken bir mendili al<61>p iki ucundan birer d<><64><EFBFBD>m yapman<61>z
ve kafan<61>za takman<61>z beklenir.
.SH AYRICA BAKINIZ
vim(1)
.SH YAZAR
.B Vim'in
b<EFBFBD>y<EFBFBD>k <20>o<EFBFBD>unlu<6C>u Bram Moolenaar taraf<61>ndan ba<62>kalar<61>n<EFBFBD>n kayda de<64>er
yard<EFBFBD>mlar<EFBFBD>yla yaz<61>lm<6C><6D>t<EFBFBD>r.
Ek bilgi i<>in Yard<72>m/Te<54>ekk<6B>rler men<65>s<EFBFBD>ne bak<61>n.

View File

@ -0,0 +1,48 @@
.TH EVIM 1 "16 Şubat 2002"
.SH AD
evim \- kolay Vim, bir dosyayı Vim ile herhangi bir kip olmadan düzenleyin
.SH ÖZET
.br
.B evim
[seçenekler] [dosya ..]
.br
.B eview
.SH TANIM
.B eVim,
.B Vim'i
başlatır ve onu herhangi bir kipsiz düzenleyici gibi davranmasını sağlar.
Bu bildiğiniz Vim'dir, ancak bir tıkla ve yaz düzenleyicisi gibi çalışır.
Bir örnek vermek gerekirse MS-Windows üzerindeki Not Defteri gibi düşünün.
.B eVim
menülere ve araç çubuklarına erişim sağlayabilmeniz için grafik arabirimde çalışır.
.PP
Yalnızca Vim ile normal biçimde çalışamayan kişilerin kullanımı içindir.
Dosya düzenleme işi çok daha verimsiz olacaktır.
.PP
.B eview'ün
aynısıdır, ancak saltokunur kipte başlar. evim \-R ile de başlatılabilir.
.PP
Vim hakkında ayrıntılı bilgi için: vim(1)
.PP
Doğrudan metin girişini sağlayabilmek için 'insertmode' seçeneği açılır.
.br
Eşlemlemeler Kopyala ve Yapıştır MS-Windows ile aynı olacak biçimde ayarlanır.
CTRL-X metni keser, CTRL-C metni kopyalar ve CTRL-V metni yapıştırır.
CTRL-V'nin orijinal işlevi için CTRL-Q kullanın.
.SH SEÇENEKLER
Bilgi için: vim(1).
.SH DOSYALAR
.TP 15
/usr/local/lib/vim/evim.vim
eVim'i ilklendirmek için kullanılan betik.
.SH NAM-I DİĞER
Nam-ı diğer "Lastik Çizmeliler için Vim" (Gumbies, Monty Python).
eVim'i kullanırken bir mendili alıp iki ucundan birer düğüm yapmanız
ve kafanıza takmanız beklenir.
.SH AYRICA BAKINIZ
vim(1)
.SH YAZAR
.B Vim'in
büyük çoğunluğu Bram Moolenaar tarafından başkalarının kayda değer
yardımlarıyla yazılmıştır.
Ek bilgi için Yardım/Teşekkürler menüsüne bakın.

View File

@ -1,4 +1,4 @@
*farsi.txt* For Vim version 8.1. Last change: 2019 May 05 *farsi.txt* For Vim version 8.2. Last change: 2019 May 05
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran VIM REFERENCE MANUAL by Mortaza Ghassab Shiran

View File

@ -1,4 +1,4 @@
*filetype.txt* For Vim version 8.1. Last change: 2019 Jul 16 *filetype.txt* For Vim version 8.2. Last change: 2019 Jul 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -34,8 +34,7 @@ if you didn't do that already.
Detail: The ":filetype on" command will load one of these files: Detail: The ":filetype on" command will load one of these files:
Amiga $VIMRUNTIME/filetype.vim Amiga $VIMRUNTIME/filetype.vim
Mac $VIMRUNTIME:filetype.vim Mac $VIMRUNTIME:filetype.vim
MS-DOS $VIMRUNTIME\filetype.vim MS-Windows $VIMRUNTIME\filetype.vim
RiscOS Vim:Filetype
Unix $VIMRUNTIME/filetype.vim Unix $VIMRUNTIME/filetype.vim
VMS $VIMRUNTIME/filetype.vim VMS $VIMRUNTIME/filetype.vim
This file is a Vim script that defines autocommands for the This file is a Vim script that defines autocommands for the
@ -308,13 +307,13 @@ all loaded. For example, if this command: >
produces this output: produces this output:
runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim60 ~ runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim82 ~
then Vim will load all plugins in these directories and below: then Vim will load all plugins in these directories and below:
/etc/vim/plugin/ ~ /etc/vim/plugin/ ~
~/.vim/plugin/ ~ ~/.vim/plugin/ ~
/usr/local/share/vim/vim60/plugin/ ~ /usr/local/share/vim/vim82/plugin/ ~
Note that the last one is the value of $VIMRUNTIME which has been expanded. Note that the last one is the value of $VIMRUNTIME which has been expanded.
@ -595,6 +594,10 @@ If you do not like the default folding, use an autocommand to add your desired
folding style instead. For example: > folding style instead. For example: >
autocmd FileType man setlocal foldmethod=indent foldenable autocmd FileType man setlocal foldmethod=indent foldenable
If you would like :Man {number} {name} to behave like man {number} {name} by
not running man {name} if no page is found, then use this: >
let g:ft_man_no_sect_fallback = 1
You may also want to set 'keywordprg' to make the |K| command open a manual You may also want to set 'keywordprg' to make the |K| command open a manual
page in a Vim window: > page in a Vim window: >
set keywordprg=:Man set keywordprg=:Man

View File

@ -1,4 +1,4 @@
*fold.txt* For Vim version 8.1. Last change: 2019 Jun 02 *fold.txt* For Vim version 8.2. Last change: 2019 Jun 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*ft_ada.txt* For Vim version 8.1. Last change: 2010 Jul 20 *ft_ada.txt* For Vim version 8.2. Last change: 2010 Jul 20
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~ ADA FILE TYPE PLUG-INS REFERENCE MANUAL~

View File

@ -1,4 +1,4 @@
*ft_rust.txt* For Vim version 8.1. Last change: 2017 Nov 02 *ft_rust.txt* For Vim version 8.2. Last change: 2017 Nov 02
This is documentation for the Rust filetype plugin. This is documentation for the Rust filetype plugin.

View File

@ -1,4 +1,4 @@
*ft_sql.txt* For Vim version 8.1. Last change: 2013 May 15 *ft_sql.txt* For Vim version 8.2. Last change: 2019 Dec 07
by David Fishburn by David Fishburn
@ -342,8 +342,8 @@ The defaults static maps are: >
imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O> imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O> imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
The use of "<C-C>" can be user chosen by using the following in your |.vimrc| as it The use of "<C-C>" can be user chosen by using the following in your |.vimrc|
may not work properly on all platforms: > as it may not work properly on all platforms: >
let g:ftplugin_sql_omni_key = '<C-C>' let g:ftplugin_sql_omni_key = '<C-C>'
> >
The static maps (which are based on the syntax highlight groups) follow this The static maps (which are based on the syntax highlight groups) follow this
@ -522,7 +522,7 @@ The SQL completion plugin can also display a list of columns for particular
tables. The column completion is trigger via <C-C>c. tables. The column completion is trigger via <C-C>c.
NOTE: The following example uses <Right> to trigger a column list while NOTE: The following example uses <Right> to trigger a column list while
the popup window is active. the popup window is active.
Example of using column completion: Example of using column completion:
- Press <C-C>t again to display the list of tables. - Press <C-C>t again to display the list of tables.

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 8.1. Last change: 2019 May 20 *gui.txt* For Vim version 8.2. Last change: 2020 Mar 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -95,12 +95,11 @@ terminal version.
Recommended place for your personal GUI initializations: Recommended place for your personal GUI initializations:
Unix $HOME/.gvimrc or $HOME/.vim/gvimrc Unix $HOME/.gvimrc or $HOME/.vim/gvimrc
OS/2 $HOME/.gvimrc, $HOME/vimfiles/gvimrc Win32 $HOME/_gvimrc, $HOME/vimfiles/gvimrc
or $VIM/.gvimrc
MS-DOS and Win32 $HOME/_gvimrc, $HOME/vimfiles/gvimrc
or $VIM/_gvimrc or $VIM/_gvimrc
Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
or $VIM/.gvimrc or $VIM/.gvimrc
Haiku $HOME/config/settings/vim/gvimrc
The personal initialization files are searched in the order specified above The personal initialization files are searched in the order specified above
and only the first one that is found is read. and only the first one that is found is read.
@ -309,7 +308,7 @@ because the menu command will always be applied to the top window.
If you are on the ':' line (or '/' or '?'), then clicking the left or right If you are on the ':' line (or '/' or '?'), then clicking the left or right
mouse button will position the cursor on the ':' line (if 'mouse' contains mouse button will position the cursor on the ':' line (if 'mouse' contains
'c', 'a' or 'A'). 'c' or 'a').
In any situation the middle mouse button may be clicked to paste the current In any situation the middle mouse button may be clicked to paste the current
selection. selection.
@ -560,8 +559,9 @@ floating menus that do not appear on the main menu bar.
*E330* *E327* *E331* *E336* *E333* *E330* *E327* *E331* *E336* *E333*
*E328* *E329* *E337* *E792* *E328* *E329* *E337* *E792*
To create a new menu item, use the ":menu" commands. They are mostly like To create a new menu item, use the ":menu" commands. They are mostly like
the ":map" set of commands but the first argument is a menu item name, given the ":map" set of commands (see |map-modes|), but the first argument is a menu
as a path of menus and submenus with a '.' between them, e.g.: > item name, given as a path of menus and submenus with a '.' between them,
e.g.: >
:menu File.Save :w<CR> :menu File.Save :w<CR>
:inoremenu File.Save <C-O>:w<CR> :inoremenu File.Save <C-O>:w<CR>
@ -578,9 +578,11 @@ tooltips for menus. See |terminal-typing|.
Special characters in a menu name: Special characters in a menu name:
*menu-shortcut*
& The next character is the shortcut key. Make sure each & The next character is the shortcut key. Make sure each
shortcut key is only used once in a (sub)menu. If you want to shortcut key is only used once in a (sub)menu. If you want to
insert a literal "&" in the menu name use "&&". insert a literal "&" in the menu name use "&&".
*menu-text*
<Tab> Separates the menu name from right-aligned text. This can be <Tab> Separates the menu name from right-aligned text. This can be
used to show the equivalent typed command. The text "<Tab>" used to show the equivalent typed command. The text "<Tab>"
can be used here for convenience. If you are using a real can be used here for convenience. If you are using a real
@ -853,6 +855,8 @@ Special characters in the list, just before the rhs:
* The menu was defined with "nore" to disallow remapping. * The menu was defined with "nore" to disallow remapping.
& The menu was defined with "<script>" to allow remapping script-local & The menu was defined with "<script>" to allow remapping script-local
mappings only. mappings only.
s The menu was defined with "<silent>" to avoid showing what it is
mapped to when triggered.
- The menu was disabled. - The menu was disabled.
Note that hitting <Tab> while entering a menu name after a menu command may Note that hitting <Tab> while entering a menu name after a menu command may
@ -954,7 +958,7 @@ item for the keyword under the cursor. The register "z" is used. >
mappings, or put these lines in your gvimrc; "<C-R>" is CTRL-R, "<CR>" is mappings, or put these lines in your gvimrc; "<C-R>" is CTRL-R, "<CR>" is
the <CR> key. |<>|) the <CR> key. |<>|)
*tooltips* *menu-tips*
5.8 Tooltips & Menu tips 5.8 Tooltips & Menu tips
See section |42.4| in the user manual. See section |42.4| in the user manual.
@ -1013,7 +1017,7 @@ it behaves in a strange way.
have at least one subentry, but need not have at least one subentry, but need not
appear on the menu-bar (see |hidden-menus|). appear on the menu-bar (see |hidden-menus|).
{only available for Win32 and GTK GUI or in {only available for Win32 and GTK GUI or in
the terminal when compiled with +insert_expand} the terminal}
:popu[p]! {name} Like above, but use the position of the mouse :popu[p]! {name} Like above, but use the position of the mouse
pointer instead of the cursor. pointer instead of the cursor.

View File

@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 8.1. Last change: 2019 May 05 *gui_w32.txt* For Vim version 8.2. Last change: 2020 Mar 25
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -106,8 +106,6 @@ when you have got a new version):
You can also install Vim in the "Send To" menu: You can also install Vim in the "Send To" menu:
1. Start a Windows Explorer 1. Start a Windows Explorer
2. Navigate to your sendto directory: 2. Navigate to your sendto directory:
Windows NT: %windir%\profiles\%user%\sendto (e.g.
"c:\winnt\profiles\mattha\sendto")
Windows XP: C:\Documents and Settings\%user%\SendTo Windows XP: C:\Documents and Settings\%user%\SendTo
Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo . Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
3. Right-click in the file pane and select New->Shortcut 3. Right-click in the file pane and select New->Shortcut
@ -115,7 +113,8 @@ You can also install Vim in the "Send To" menu:
When you 'send a file to Vim', Vim changes to that file's directory. Note, When you 'send a file to Vim', Vim changes to that file's directory. Note,
however, that any long directory names will appear in their short (MS-DOS) however, that any long directory names will appear in their short (MS-DOS)
form. This is a limitation of the Windows "Send To" mechanism. form on some Windows versions. This is a limitation of the Windows "Send To"
mechanism.
*notepad* *notepad*
You could replace notepad.exe with gvim.exe, but that has a few side effects. You could replace notepad.exe with gvim.exe, but that has a few side effects.
@ -169,16 +168,16 @@ you can.
Vim Shell Extension Vim Shell Extension
HKEY_LOCAL_MACHINE\Software\Vim\Gvim HKEY_LOCAL_MACHINE\Software\Vim\Gvim
path {path}\gvim.exe path {path}\gvim.exe
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 5.6 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 8.2
DisplayName Vim 5.6: Edit with Vim popup menu entry DisplayName Vim 8.2: Edit with Vim popup menu entry
UninstallString {path}\uninstal.exe UninstallString {path}\uninstall.exe
Replace {path} with the path that leads to the executable. Replace {path} with the path that leads to the executable.
Don't type {default}, this is the value for the key itself. Don't type {default}, this is the value for the key itself.
To remove "Edit with Vim" from the popup menu, just remove the registry To remove "Edit with Vim" from the popup menu, just remove the registry
entries mentioned above. The "uninstal.exe" program can do this for you. You entries mentioned above. The "uninstall.exe" program can do this for you.
can also use the entry in the Windows standard "Add/Remove Programs" list. You can also use the entry in the Windows standard "Add/Remove Programs" list.
If you notice that this entry overrules other file type associations, set If you notice that this entry overrules other file type associations, set
those associations again by hand (using Windows Explorer, see above). This those associations again by hand (using Windows Explorer, see above). This
@ -200,7 +199,7 @@ With..." menu. This means you can use Vim to edit many files. Not every file
One reason to add this is to be able to edit HTML files directly from Internet One reason to add this is to be able to edit HTML files directly from Internet
Explorer. To enable this use the "Tools" menu, "Internet Options..." entry. Explorer. To enable this use the "Tools" menu, "Internet Options..." entry.
In the dialog select the "Programs" tab and select Vim in the "HTML editor" In the dialog select the "Programs" tab and select Vim in the "HTML editor"
choice. If it's not there than installing didn't work properly. choice. If it's not there then installing didn't work properly.
Doing this manually can be done with this script: Doing this manually can be done with this script:
@ -214,7 +213,7 @@ REGEDIT4
[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit] [HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]
[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command] [HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command]
@="c:\\vim\\vim62\\gvim.exe \"%1\"" @="c:\\vim\\vim82\\gvim.exe \"%1\""
[HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe] [HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe]
@ -222,7 +221,7 @@ REGEDIT4
---------------------------------------------------------- ----------------------------------------------------------
Change the "c:\\vim\\vim62" bit to where gvim.exe is actually located. Change the "c:\\vim\\vim82" bit to where gvim.exe is actually located.
To uninstall this run the Vim uninstall program or manually delete the To uninstall this run the Vim uninstall program or manually delete the
registry entries with "regedit". registry entries with "regedit".
@ -457,8 +456,12 @@ See the Make_mvc.mak file for instructions, search for XPM.
To try out if XPM support works do this: > To try out if XPM support works do this: >
:help :help
:exe 'sign define vimxpm icon=' . $VIMRUNTIME . '\\vim16x16.xpm' :let runtime = escape($VIMRUNTIME, ' \')
:exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p') :exe 'sign define vimxpm icon=' .. runtime .. '\\vim16x16.xpm'
:exe 'sign place 1 line=1 name=vimxpm file=' .. expand('%:p')
< <
You may need to get the vim16x16.xpm file from github:
https://github.com/vim/vim/blob/master/runtime/vim16x16.xpm
vim:tw=78:sw=4:ts=8:noet:ft=help:norl: vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 8.1. Last change: 2019 May 05 *gui_x11.txt* For Vim version 8.2. Last change: 2020 Jun 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -356,6 +356,9 @@ need to set those up in some sort of gtkrc file. You'll have to refer
to the GTK documentation, however little there is, on how to do this. to the GTK documentation, however little there is, on how to do this.
See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
for more information. for more information.
*gtk3-slow*
If you are using GTK3 and Vim appears to be slow, try setting the environment
variable $GDK_RENDERING to "image".
Tooltip Colors ~ Tooltip Colors ~

View File

@ -1,112 +1,17 @@
*hangulin.txt* For Vim version 8.1. Last change: 2015 Nov 24 *hangulin.txt* For Vim version 8.2. Last change: 2019 Nov 21
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
*hangul*
Vim had built-in support for hangul, the Korean language, for users without
XIM (X Input Method). Since it didn't work well and was not maintained it was
removed in Vim 8.1.2327.
Introduction *hangul* If you want this hangul input mehod you can go back to Vim 8.1.2326 or
------------ earlier. If you think this code is still useful and want to maintain it, make
It is to input hangul, the Korean language, with Vim GUI version. a patch to add it back. However, making it work with UTF-8 encoding would be
If you have a XIM program, you can use another |+xim| feature. best.
Basically, it is for anybody who has no XIM program.
Compile
-------
Next is a basic option. You can add any other configure option. >
./configure --with-x --enable-multibyte --enable-hangulinput \
--disable-xim
And you should check feature.h. If |+hangul_input| feature is enabled
by configure, you can select more options such as keyboard type, 2 bulsik
or 3 bulsik. You can find keywords like next in there. >
#define HANGUL_DEFAULT_KEYBOARD 2
#define ESC_CHG_TO_ENG_MODE
/* #define X_LOCALE */
Environment variables
---------------------
You should set LANG variable to Korean locale such as ko, ko_KR.eucKR
or ko_KR.UTF-8.
If you set LC_ALL variable, it should be set to Korean locale also.
Vim resource
------------
You may want to set 'encoding' and 'fileencodings'.
Next are examples: >
:set encoding=euc-kr
:set encoding=utf-8
:set fileencodings=ucs-bom,utf-8,cp949,euc-kr,latin1
Keyboard
--------
You can change keyboard type (2 bulsik or 3 bulsik) using VIM_KEYBOARD
or HANGUL_KEYBOARD_TYPE environment variables. For sh, just do (2 bulsik): >
export VIM_KEYBOARD="2"
or >
export HANGUL_KEYBOARD_TYPE="2"
If both are set, VIM_KEYBOARD has higher priority.
Hangul Fonts
------------
If you use GTK version of gvim, you should set 'guifont' and 'guifontwide'.
For example: >
set guifont=Courier\ 12
set guifontwide=NanumGothicCoding\ 12
If you use Motif or Athena version of gvim, you should set 'guifontset' in
your vimrc. You can set fontset in the .Xdefaults file.
$HOME/.gvimrc: >
set guifontset=english_font,hangul_font
$HOME/.Xdefaults: >
Vim.font: english_font
! Nexts are for hangul menu with Athena
*international: True
Vim*fontSet: english_font,hangul_font
! Nexts are for hangul menu with Motif
*international: True
Vim*fontList: english_font;hangul_font:
attention! the , (comma) or ; (semicolon)
And there should be no ':set guifont'. If it exists, then gvim ignores
':set guifontset'. It means Vim runs without fontset supporting.
So, you can see only English. Hangul does not be correctly displayed.
After "fontset" feature is enabled, Vim does not allow using english
font only in "font" setting for syntax.
For example, if you use >
:set guifontset=eng_font,your_font
in your .gvimrc, then you should do for syntax >
:hi Comment guifg=Cyan font=another_eng_font,another_your_font
If you just do >
:hi Comment font=another_eng_font
then you can see a error message. Be careful!
hangul_font width should be twice than english_font width.
Unsupported Feature
-------------------
We don't support Johab font.
We don't support Hanja input.
And We don't have any plan to support them.
If you really need such features, you can use console version of Vim with a
capable terminal emulator.
Bug or Comment
--------------
Send comments, patches and suggestions to:
SungHyun Nam <goweol@gmail.com>
Chi-Deok Hwang <...>
vim:tw=78:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*hebrew.txt* For Vim version 8.1. Last change: 2019 May 05 *hebrew.txt* For Vim version 8.2. Last change: 2019 May 05
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem) VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)

View File

@ -1,4 +1,4 @@
*help.txt* For Vim version 8.1. Last change: 2019 Jul 21 *help.txt* For Vim version 8.2. Last change: 2020 Apr 05
VIM - main help file VIM - main help file
k k
@ -31,7 +31,7 @@ Get specific help: It is possible to go directly to whatever you want help
help entries for "word". help entries for "word".
Or use ":helpgrep word". |:helpgrep| Or use ":helpgrep word". |:helpgrep|
Getting started: Do the Vim tutor, a 20 minute interactive training for the Getting started: Do the Vim tutor, a 30-minute interactive course for the
basic commands, see |vimtutor|. basic commands, see |vimtutor|.
Read the user manual from start to end: |usr_01.txt| Read the user manual from start to end: |usr_01.txt|
@ -41,7 +41,7 @@ through the help of many others. See |credits|.
*doc-file-list* *Q_ct* *doc-file-list* *Q_ct*
BASIC: BASIC:
|quickref| Overview of the most common commands you will use |quickref| Overview of the most common commands you will use
|tutor| 20 minutes training course for beginners |tutor| 30-minute interactive course for beginners
|copying| About copyrights |copying| About copyrights
|iccf| Helping poor children in Uganda |iccf| Helping poor children in Uganda
|sponsor| Sponsor Vim development, become a registered Vim user |sponsor| Sponsor Vim development, become a registered Vim user
@ -144,7 +144,7 @@ Special issues ~
|remote.txt| using Vim as a server or client |remote.txt| using Vim as a server or client
|term.txt| using different terminals and mice |term.txt| using different terminals and mice
|terminal.txt| Terminal window support |terminal.txt| Terminal window support
|popup.txt| popop window support |popup.txt| popup window support
Programming language support ~ Programming language support ~
|indent.txt| automatic indenting for C and other languages |indent.txt| automatic indenting for C and other languages
@ -197,7 +197,8 @@ Remarks about specific systems ~
|os_390.txt| OS/390 Unix |os_390.txt| OS/390 Unix
|os_amiga.txt| Amiga |os_amiga.txt| Amiga
|os_beos.txt| BeOS and BeBox |os_beos.txt| BeOS and BeBox
|os_dos.txt| MS-DOS and MS-Windows NT/95 common items |os_dos.txt| MS-DOS and MS-Windows common items
|os_haiku.txt| Haiku
|os_mac.txt| Macintosh |os_mac.txt| Macintosh
|os_mint.txt| Atari MiNT |os_mint.txt| Atari MiNT
|os_msdos.txt| MS-DOS (plain DOS and DOS box under Windows) |os_msdos.txt| MS-DOS (plain DOS and DOS box under Windows)
@ -206,7 +207,7 @@ Remarks about specific systems ~
|os_risc.txt| RISC-OS |os_risc.txt| RISC-OS
|os_unix.txt| Unix |os_unix.txt| Unix
|os_vms.txt| VMS |os_vms.txt| VMS
|os_win32.txt| MS-Windows 95/98/NT |os_win32.txt| MS-Windows
*standard-plugin-list* *standard-plugin-list*
Standard plugins ~ Standard plugins ~
|pi_getscript.txt| Downloading latest version of Vim scripts |pi_getscript.txt| Downloading latest version of Vim scripts

View File

@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 8.1. Last change: 2019 May 04 *helphelp.txt* For Vim version 8.2. Last change: 2020 Mar 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -102,7 +102,11 @@ Help on help files *helphelp*
current file. See |help-translated|. current file. See |help-translated|.
*:helpc* *:helpclose* *:helpc* *:helpclose*
:helpc[lose] Close one help window, if there is one. :helpc[lose] Close one help window, if there is one.
Vim will try to restore the window layout (including
cursor position) to the same layout it was before
opening the help window initially. This might cause
triggering several autocommands.
*:helpg* *:helpgrep* *:helpg* *:helpgrep*
:helpg[rep] {pattern}[@xx] :helpg[rep] {pattern}[@xx]
@ -364,4 +368,15 @@ highlighting. So do these:
You can find the details in $VIMRUNTIME/syntax/help.vim You can find the details in $VIMRUNTIME/syntax/help.vim
*inclusion*
Some people make a big deal about using "his" when referring to the user,
thinking it means we assume the user is male. That is of course not the case,
it's just a habit of writing help text, which quite often is many years old.
Also, a lot of the text is written by contributors for who English is not
their first language. We do not make any assumptions about the gender of the
user, no matter how the text is phrased. And we do not want to waste time on
this discussion. The goal is that the reader understands how Vim works, the
exact wording is secondary.
vim:tw=78:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*howto.txt* For Vim version 8.1. Last change: 2006 Apr 02 *howto.txt* For Vim version 8.2. Last change: 2006 Apr 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*if_cscop.txt* For Vim version 8.1. Last change: 2019 May 05 *if_cscop.txt* For Vim version 8.2. Last change: 2019 May 05
VIM REFERENCE MANUAL by Andy Kahn VIM REFERENCE MANUAL by Andy Kahn

View File

@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 8.1. Last change: 2019 Jul 21 *if_lua.txt* For Vim version 8.2. Last change: 2020 May 17
VIM REFERENCE MANUAL by Luis Carvalho VIM REFERENCE MANUAL by Luis Carvalho
@ -32,7 +32,7 @@ Examples:
:lua local curbuf = vim.buffer() curbuf[7] = "line #7" :lua local curbuf = vim.buffer() curbuf[7] = "line #7"
< <
:[range]lua << [endmarker] :[range]lua << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
Execute Lua script {script}. Execute Lua script {script}.
@ -40,10 +40,9 @@ Examples:
feature wasn't compiled in. To avoid errors, see feature wasn't compiled in. To avoid errors, see
|script-here|. |script-here|.
The {endmarker} must NOT be preceded by any white space.
If [endmarker] is omitted from after the "<<", a dot '.' must be used after If [endmarker] is omitted from after the "<<", a dot '.' must be used after
{script}, like for the |:append| and |:insert| commands. {script}, like for the |:append| and |:insert| commands. Refer to
|:let-heredoc| for more information.
This form of the |:lua| command is mainly useful for including Lua code This form of the |:lua| command is mainly useful for including Lua code
in Vim scripts. in Vim scripts.
@ -200,6 +199,15 @@ Vim evaluation and command execution, and others.
returns it. Note that the buffer is not set as returns it. Note that the buffer is not set as
current. current.
vim.call({name} [,{args}])
Proxy to call Vim function named {name} with
arguments {args}. Example: >
:lua print(vim.call('has', 'timers'))
<
vim.fn Proxy to call Vim functions. Proxy methods are
created on demand. Example: >
:lua print(vim.fn.has('timers'))
<
============================================================================== ==============================================================================
3. List userdata *lua-list* 3. List userdata *lua-list*

View File

@ -1,4 +1,4 @@
*if_mzsch.txt* For Vim version 8.1. Last change: 2019 Jul 21 *if_mzsch.txt* For Vim version 8.2. Last change: 2019 Dec 07
VIM REFERENCE MANUAL by Sergey Khorev VIM REFERENCE MANUAL by Sergey Khorev
@ -39,7 +39,7 @@ To speed up the process, you might also want to use --disable-gracket and
:[range]mz[scheme] {stmt} :[range]mz[scheme] {stmt}
Execute MzScheme statement {stmt}. Execute MzScheme statement {stmt}.
:[range]mz[scheme] << [endmarker] :[range]mz[scheme] << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
Execute inlined MzScheme script {script}. Execute inlined MzScheme script {script}.
@ -47,12 +47,11 @@ To speed up the process, you might also want to use --disable-gracket and
feature wasn't compiled in. To avoid errors, see feature wasn't compiled in. To avoid errors, see
|script-here|. |script-here|.
The {endmarker} below the {script} must NOT be
preceded by any white space.
If [endmarker] is omitted from after the "<<", a dot If [endmarker] is omitted from after the "<<", a dot
'.' must be used after {script}, like for the '.' must be used after {script}, like for the
|:append| and |:insert| commands. |:append| and |:insert| commands. Refer to
|:let-heredoc| for more information.
*:mzfile* *:mzf* *:mzfile* *:mzf*
:[range]mzf[ile] {file} Execute the MzScheme script in {file}. :[range]mzf[ile] {file} Execute the MzScheme script in {file}.
@ -87,7 +86,7 @@ To avoid clashes with MzScheme, consider using prefix when requiring module,
e.g.: > e.g.: >
:mzscheme (require (prefix vim- vimext)) :mzscheme (require (prefix vim- vimext))
< <
All the examples below assume this naming scheme. All the examples below assume this naming scheme.
*mzscheme-sandbox* *mzscheme-sandbox*
When executed in the |sandbox|, access to some filesystem and Vim interface When executed in the |sandbox|, access to some filesystem and Vim interface

View File

@ -1,4 +1,4 @@
*if_ole.txt* For Vim version 8.1. Last change: 2019 May 05 *if_ole.txt* For Vim version 8.2. Last change: 2019 Dec 07
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore
@ -39,7 +39,7 @@ instance), code similar to the following should be used:
$vim = new Win32::OLE 'Vim.Application'; $vim = new Win32::OLE 'Vim.Application';
[C#] > [C#] >
// Add a reference to Vim in your project. // Add a reference to Vim in your project.
// Choose the COM tab. // Choose the COM tab.
// Select "Vim Ole Interface 1.1 Type Library" // Select "Vim Ole Interface 1.1 Type Library"
Vim.Vim vimobj = new Vim.Vim(); Vim.Vim vimobj = new Vim.Vim();

View File

@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 8.1. Last change: 2019 Jul 21 *if_perl.txt* For Vim version 8.2. Last change: 2019 Dec 07
VIM REFERENCE MANUAL by Sven Verdoolaege VIM REFERENCE MANUAL by Sven Verdoolaege
@ -55,14 +55,14 @@ The ActiveState one should work, Strawberry Perl is a good alternative.
working: > working: >
:perl VIM::Msg("Hello") :perl VIM::Msg("Hello")
:pe[rl] << [endpattern] :pe[rl] << [trim] [{endmarker}]
{script} {script}
{endpattern} {endmarker}
Execute Perl script {script}. Execute Perl script {script}.
The {endpattern} after {script} must NOT be preceded The {endmarker} after {script} must NOT be preceded by
by any white space. any white space.
If [endpattern] is omitted, it defaults to a dot '.' If [endmarker] is omitted, it defaults to a dot '.'
like for the |:append| and |:insert| commands. Using like for the |:append| and |:insert| commands. Using
'.' helps when inside a function, because "$i;" looks '.' helps when inside a function, because "$i;" looks
like the start of an |:insert| command to Vim. like the start of an |:insert| command to Vim.
@ -180,7 +180,7 @@ VIM::Windows([{wn}...]) With no arguments, returns a list of all the windows
VIM::DoCommand({cmd}) Executes Ex command {cmd}. VIM::DoCommand({cmd}) Executes Ex command {cmd}.
*perl-Eval* *perl-Eval*
VIM::Eval({expr}) Evaluates {expr} and returns (success, value) in list VIM::Eval({expr}) Evaluates {expr} and returns (success, value) in list
context or just value in scalar context. context or just value in scalar context.
success=1 indicates that val contains the value of success=1 indicates that val contains the value of
{expr}; success=0 indicates a failure to evaluate {expr}; success=0 indicates a failure to evaluate

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 8.1. Last change: 2019 Jul 21 *if_pyth.txt* For Vim version 8.2. Last change: 2019 Dec 07
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore
@ -34,7 +34,7 @@ Both can be available at the same time, but read |python-2-and-3|.
the `:python` command is working: > the `:python` command is working: >
:python print "Hello" :python print "Hello"
:[range]py[thon] << [endmarker] :[range]py[thon] << [trim] [{endmarker}]
{script} {script}
{endmarker} {endmarker}
Execute Python script {script}. Execute Python script {script}.
@ -42,10 +42,9 @@ Both can be available at the same time, but read |python-2-and-3|.
feature wasn't compiled in. To avoid errors, see feature wasn't compiled in. To avoid errors, see
|script-here|. |script-here|.
The {endmarker} below the {script} must NOT be preceded by any white space.
If [endmarker] is omitted from after the "<<", a dot '.' must be used after If [endmarker] is omitted from after the "<<", a dot '.' must be used after
{script}, like for the |:append| and |:insert| commands. {script}, like for the |:append| and |:insert| commands. Refer to
|:let-heredoc| for more information.
This form of the |:python| command is mainly useful for including python code This form of the |:python| command is mainly useful for including python code
in Vim scripts. in Vim scripts.
@ -183,7 +182,7 @@ vim.eval(str) *python-eval*
:py text_width = vim.eval("&tw") :py text_width = vim.eval("&tw")
: :
:" contents of the 'a' register :" contents of the 'a' register
:py a_reg = vim.eval("@a") :py a_reg = vim.eval("@a")
: :
:" Result is a string! Use string.atoi() to convert to a number. :" Result is a string! Use string.atoi() to convert to a number.
:py str = vim.eval("12+12") :py str = vim.eval("12+12")
@ -194,25 +193,25 @@ vim.eval(str) *python-eval*
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] ~ 'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] ~
vim.bindeval(str) *python-bindeval* vim.bindeval(str) *python-bindeval*
Like |python-eval|, but returns special objects described in Like |python-eval|, but returns special objects described in
|python-bindeval-objects|. These python objects let you modify (|List| |python-bindeval-objects|. These python objects let you modify (|List|
or |Dictionary|) or call (|Funcref|) vim objects. or |Dictionary|) or call (|Funcref|) vim objects.
vim.strwidth(str) *python-strwidth* vim.strwidth(str) *python-strwidth*
Like |strwidth()|: returns number of display cells str occupies, tab Like |strwidth()|: returns number of display cells str occupies, tab
is counted as one cell. is counted as one cell.
vim.foreach_rtp(callable) *python-foreach_rtp* vim.foreach_rtp(callable) *python-foreach_rtp*
Call the given callable for each path in 'runtimepath' until either Call the given callable for each path in 'runtimepath' until either
callable returns something but None, the exception is raised or there callable returns something but None, the exception is raised or there
are no longer paths. If stopped in case callable returned non-None, are no longer paths. If stopped in case callable returned non-None,
vim.foreach_rtp function returns the value returned by callable. vim.foreach_rtp function returns the value returned by callable.
vim.chdir(*args, **kwargs) *python-chdir* vim.chdir(*args, **kwargs) *python-chdir*
vim.fchdir(*args, **kwargs) *python-fchdir* vim.fchdir(*args, **kwargs) *python-fchdir*
Run os.chdir or os.fchdir, then all appropriate vim stuff. Run os.chdir or os.fchdir, then all appropriate vim stuff.
Note: you should not use these functions directly, use os.chdir and Note: you should not use these functions directly, use os.chdir and
os.fchdir instead. Behavior of vim.fchdir is undefined in case os.fchdir instead. Behavior of vim.fchdir is undefined in case
os.fchdir does not exist. os.fchdir does not exist.
Error object of the "vim" module Error object of the "vim" module
@ -247,15 +246,15 @@ vim.windows *python-windows*
:py w in vim.windows # Membership test :py w in vim.windows # Membership test
:py n = len(vim.windows) # Number of elements :py n = len(vim.windows) # Number of elements
:py for w in vim.windows: # Sequential access :py for w in vim.windows: # Sequential access
< Note: vim.windows object always accesses current tab page. < Note: vim.windows object always accesses current tab page.
|python-tabpage|.windows objects are bound to parent |python-tabpage| |python-tabpage|.windows objects are bound to parent |python-tabpage|
object and always use windows from that tab page (or throw vim.error object and always use windows from that tab page (or throw vim.error
in case tab page was deleted). You can keep a reference to both in case tab page was deleted). You can keep a reference to both
without keeping a reference to vim module object or |python-tabpage|, without keeping a reference to vim module object or |python-tabpage|,
they will not lose their properties in this case. they will not lose their properties in this case.
vim.tabpages *python-tabpages* vim.tabpages *python-tabpages*
A sequence object providing access to the list of vim tab pages. The A sequence object providing access to the list of vim tab pages. The
object supports the following operations: > object supports the following operations: >
:py t = vim.tabpages[i] # Indexing (read-only) :py t = vim.tabpages[i] # Indexing (read-only)
:py t in vim.tabpages # Membership test :py t in vim.tabpages # Membership test
@ -276,12 +275,12 @@ vim.current *python-current*
"current range". A range is a bit like a buffer, but with all access "current range". A range is a bit like a buffer, but with all access
restricted to a subset of lines. See |python-range| for more details. restricted to a subset of lines. See |python-range| for more details.
Note: When assigning to vim.current.{buffer,window,tabpage} it expects Note: When assigning to vim.current.{buffer,window,tabpage} it expects
valid |python-buffer|, |python-window| or |python-tabpage| objects valid |python-buffer|, |python-window| or |python-tabpage| objects
respectively. Assigning triggers normal (with |autocommand|s) respectively. Assigning triggers normal (with |autocommand|s)
switching to given buffer, window or tab page. It is the only way to switching to given buffer, window or tab page. It is the only way to
switch UI objects in python: you can't assign to switch UI objects in python: you can't assign to
|python-tabpage|.window attribute. To switch without triggering |python-tabpage|.window attribute. To switch without triggering
autocommands use > autocommands use >
py << EOF py << EOF
saved_eventignore = vim.options['eventignore'] saved_eventignore = vim.options['eventignore']
@ -294,12 +293,12 @@ vim.current *python-current*
< <
vim.vars *python-vars* vim.vars *python-vars*
vim.vvars *python-vvars* vim.vvars *python-vvars*
Dictionary-like objects holding dictionaries with global (|g:|) and Dictionary-like objects holding dictionaries with global (|g:|) and
vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`, vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`,
but faster. but faster.
vim.options *python-options* vim.options *python-options*
Object partly supporting mapping protocol (supports setting and Object partly supporting mapping protocol (supports setting and
getting items) providing a read-write access to global options. getting items) providing a read-write access to global options.
Note: unlike |:set| this provides access only to global options. You Note: unlike |:set| this provides access only to global options. You
cannot use this object to obtain or set local options' values or cannot use this object to obtain or set local options' values or
@ -310,7 +309,7 @@ vim.options *python-options*
buffer-local options and |python-window| objects to access to buffer-local options and |python-window| objects to access to
window-local options. window-local options.
Type of this object is available via "Options" attribute of vim Type of this object is available via "Options" attribute of vim
module. module.
Output from Python *python-output* Output from Python *python-output*
@ -331,10 +330,10 @@ Output from Python *python-output*
*python2-directory* *python3-directory* *pythonx-directory* *python2-directory* *python3-directory* *pythonx-directory*
Python 'runtimepath' handling *python-special-path* Python 'runtimepath' handling *python-special-path*
In python vim.VIM_SPECIAL_PATH special directory is used as a replacement for In python vim.VIM_SPECIAL_PATH special directory is used as a replacement for
the list of paths found in 'runtimepath': with this directory in sys.path and the list of paths found in 'runtimepath': with this directory in sys.path and
vim.path_hooks in sys.path_hooks python will try to load module from vim.path_hooks in sys.path_hooks python will try to load module from
{rtp}/python2 (or python3) and {rtp}/pythonx (for both python versions) for {rtp}/python2 (or python3) and {rtp}/pythonx (for both python versions) for
each {rtp} found in 'runtimepath'. each {rtp} found in 'runtimepath'.
Implementation is similar to the following, but written in C: > Implementation is similar to the following, but written in C: >
@ -362,8 +361,8 @@ Implementation is similar to the following, but written in C: >
fmr = find_module(fullname, path) fmr = find_module(fullname, path)
return load_module(fullname, *fmr) return load_module(fullname, *fmr)
# It uses vim module itself in place of VimPathFinder class: it does not # It uses vim module itself in place of VimPathFinder class: it does not
# matter for python which object has find_module function attached to as # matter for python which object has find_module function attached to as
# an attribute. # an attribute.
class VimPathFinder(object): class VimPathFinder(object):
@classmethod @classmethod
@ -386,28 +385,28 @@ Implementation is similar to the following, but written in C: >
sys.path_hooks.append(hook) sys.path_hooks.append(hook)
vim.VIM_SPECIAL_PATH *python-VIM_SPECIAL_PATH* vim.VIM_SPECIAL_PATH *python-VIM_SPECIAL_PATH*
String constant used in conjunction with vim path hook. If path hook String constant used in conjunction with vim path hook. If path hook
installed by vim is requested to handle anything but path equal to installed by vim is requested to handle anything but path equal to
vim.VIM_SPECIAL_PATH constant it raises ImportError. In the only other vim.VIM_SPECIAL_PATH constant it raises ImportError. In the only other
case it uses special loader. case it uses special loader.
Note: you must not use value of this constant directly, always use Note: you must not use value of this constant directly, always use
vim.VIM_SPECIAL_PATH object. vim.VIM_SPECIAL_PATH object.
vim.find_module(...) *python-find_module* vim.find_module(...) *python-find_module*
vim.path_hook(path) *python-path_hook* vim.path_hook(path) *python-path_hook*
Methods or objects used to implement path loading as described above. Methods or objects used to implement path loading as described above.
You should not be using any of these directly except for vim.path_hook You should not be using any of these directly except for vim.path_hook
in case you need to do something with sys.meta_path. It is not in case you need to do something with sys.meta_path. It is not
guaranteed that any of the objects will exist in the future vim guaranteed that any of the objects will exist in the future vim
versions. versions.
vim._get_paths *python-_get_paths* vim._get_paths *python-_get_paths*
Methods returning a list of paths which will be searched for by path Methods returning a list of paths which will be searched for by path
hook. You should not rely on this method being present in future hook. You should not rely on this method being present in future
versions, but can use it for debugging. versions, but can use it for debugging.
It returns a list of {rtp}/python2 (or {rtp}/python3) and It returns a list of {rtp}/python2 (or {rtp}/python3) and
{rtp}/pythonx directories for each {rtp} in 'runtimepath'. {rtp}/pythonx directories for each {rtp} in 'runtimepath'.
============================================================================== ==============================================================================
@ -436,21 +435,21 @@ line numbers, which start from 1. This is particularly relevant when dealing
with marks (see below) which use vim line numbers. with marks (see below) which use vim line numbers.
The buffer object attributes are: The buffer object attributes are:
b.vars Dictionary-like object used to access b.vars Dictionary-like object used to access
|buffer-variable|s. |buffer-variable|s.
b.options Mapping object (supports item getting, setting and b.options Mapping object (supports item getting, setting and
deleting) that provides access to buffer-local options deleting) that provides access to buffer-local options
and buffer-local values of |global-local| options. Use and buffer-local values of |global-local| options. Use
|python-window|.options if option is window-local, |python-window|.options if option is window-local,
this object will raise KeyError. If option is this object will raise KeyError. If option is
|global-local| and local value is missing getting it |global-local| and local value is missing getting it
will return None. will return None.
b.name String, RW. Contains buffer name (full path). b.name String, RW. Contains buffer name (full path).
Note: when assigning to b.name |BufFilePre| and Note: when assigning to b.name |BufFilePre| and
|BufFilePost| autocommands are launched. |BufFilePost| autocommands are launched.
b.number Buffer number. Can be used as |python-buffers| key. b.number Buffer number. Can be used as |python-buffers| key.
Read-only. Read-only.
b.valid True or False. Buffer object becomes invalid when b.valid True or False. Buffer object becomes invalid when
corresponding buffer is wiped out. corresponding buffer is wiped out.
The buffer object methods are: The buffer object methods are:
@ -538,16 +537,16 @@ Window attributes are:
This is a tuple, (row,col). This is a tuple, (row,col).
height (read-write) The window height, in rows height (read-write) The window height, in rows
width (read-write) The window width, in columns width (read-write) The window width, in columns
vars (read-only) The window |w:| variables. Attribute is vars (read-only) The window |w:| variables. Attribute is
unassignable, but you can change window unassignable, but you can change window
variables this way variables this way
options (read-only) The window-local options. Attribute is options (read-only) The window-local options. Attribute is
unassignable, but you can change window unassignable, but you can change window
options this way. Provides access only to options this way. Provides access only to
window-local options, for buffer-local use window-local options, for buffer-local use
|python-buffer| and for global ones use |python-buffer| and for global ones use
|python-options|. If option is |global-local| |python-options|. If option is |global-local|
and local value is missing getting it will and local value is missing getting it will
return None. return None.
number (read-only) Window number. The first window has number 1. number (read-only) Window number. The first window has number 1.
This is zero in case it cannot be determined This is zero in case it cannot be determined
@ -556,7 +555,7 @@ Window attributes are:
row, col (read-only) On-screen window position in display cells. row, col (read-only) On-screen window position in display cells.
First position is zero. First position is zero.
tabpage (read-only) Window tab page. tabpage (read-only) Window tab page.
valid (read-write) True or False. Window object becomes invalid valid (read-write) True or False. Window object becomes invalid
when corresponding window is closed. when corresponding window is closed.
The height attribute is writable only if the screen is split horizontally. The height attribute is writable only if the screen is split horizontally.
@ -567,21 +566,21 @@ Window object type is available using "Window" attribute of vim module.
============================================================================== ==============================================================================
6. Tab page objects *python-tabpage* 6. Tab page objects *python-tabpage*
Tab page objects represent vim tab pages. You can obtain them in a number of Tab page objects represent vim tab pages. You can obtain them in a number of
ways: ways:
- via vim.current.tabpage (|python-current|) - via vim.current.tabpage (|python-current|)
- from indexing vim.tabpages (|python-tabpages|) - from indexing vim.tabpages (|python-tabpages|)
You can use this object to access tab page windows. They have no methods and You can use this object to access tab page windows. They have no methods and
no sequence or other interfaces. no sequence or other interfaces.
Tab page attributes are: Tab page attributes are:
number The tab page number like the one returned by number The tab page number like the one returned by
|tabpagenr()|. |tabpagenr()|.
windows Like |python-windows|, but for current tab page. windows Like |python-windows|, but for current tab page.
vars The tab page |t:| variables. vars The tab page |t:| variables.
window Current tabpage window. window Current tabpage window.
valid True or False. Tab page object becomes invalid when valid True or False. Tab page object becomes invalid when
corresponding tab page is closed. corresponding tab page is closed.
TabPage object type is available using "TabPage" attribute of vim module. TabPage object type is available using "TabPage" attribute of vim module.
@ -598,8 +597,8 @@ vim.Dictionary object *python-Dictionary*
zero Variable is not locked zero Variable is not locked
vim.VAR_LOCKED Variable is locked, but can be unlocked vim.VAR_LOCKED Variable is locked, but can be unlocked
vim.VAR_FIXED Variable is locked and can't be unlocked vim.VAR_FIXED Variable is locked and can't be unlocked
Read-write. You can unlock locked variable by assigning Read-write. You can unlock locked variable by assigning
`True` or `False` to this attribute. No recursive locking `True` or `False` to this attribute. No recursive locking
is supported. is supported.
scope One of scope One of
Value Description ~ Value Description ~
@ -615,23 +614,23 @@ vim.Dictionary object *python-Dictionary*
update(iterable), update(dictionary), update(**kwargs) update(iterable), update(dictionary), update(**kwargs)
Adds keys to dictionary. Adds keys to dictionary.
get(key[, default=None]) get(key[, default=None])
Obtain key from dictionary, returning the default if it is Obtain key from dictionary, returning the default if it is
not present. not present.
pop(key[, default]) pop(key[, default])
Remove specified key from dictionary and return Remove specified key from dictionary and return
corresponding value. If key is not found and default is corresponding value. If key is not found and default is
given returns the default, otherwise raises KeyError. given returns the default, otherwise raises KeyError.
popitem() popitem()
Remove random key from dictionary and return (key, value) Remove random key from dictionary and return (key, value)
pair. pair.
has_key(key) has_key(key)
Check whether dictionary contains specified key, similar Check whether dictionary contains specified key, similar
to `key in dict`. to `key in dict`.
__new__(), __new__(iterable), __new__(dictionary), __new__(update) __new__(), __new__(iterable), __new__(dictionary), __new__(update)
You can use `vim.Dictionary()` to create new vim You can use `vim.Dictionary()` to create new vim
dictionaries. `d=vim.Dictionary(arg)` is the same as dictionaries. `d=vim.Dictionary(arg)` is the same as
`d=vim.bindeval('{}');d.update(arg)`. Without arguments `d=vim.bindeval('{}');d.update(arg)`. Without arguments
constructs empty dictionary. constructs empty dictionary.
Examples: > Examples: >
@ -652,15 +651,15 @@ vim.Dictionary object *python-Dictionary*
vim.List object *python-List* vim.List object *python-List*
Sequence-like object providing access to vim |List| type. Sequence-like object providing access to vim |List| type.
Supports `.locked` attribute, see |python-.locked|. Also supports the Supports `.locked` attribute, see |python-.locked|. Also supports the
following methods: following methods:
Method Description ~ Method Description ~
extend(item) Add items to the list. extend(item) Add items to the list.
__new__(), __new__(iterable) __new__(), __new__(iterable)
You can use `vim.List()` to create new vim lists. You can use `vim.List()` to create new vim lists.
`l=vim.List(iterable)` is the same as `l=vim.List(iterable)` is the same as
`l=vim.bindeval('[]');l.extend(iterable)`. Without `l=vim.bindeval('[]');l.extend(iterable)`. Without
arguments constructs empty list. arguments constructs empty list.
Examples: > Examples: >
l = vim.List("abc") # Constructor, result: ['a', 'b', 'c'] l = vim.List("abc") # Constructor, result: ['a', 'b', 'c']
@ -674,24 +673,24 @@ vim.List object *python-List*
class List(vim.List): # Subclassing class List(vim.List): # Subclassing
vim.Function object *python-Function* vim.Function object *python-Function*
Function-like object, acting like vim |Funcref| object. Accepts special Function-like object, acting like vim |Funcref| object. Accepts special
keyword argument `self`, see |Dictionary-function|. You can also use keyword argument `self`, see |Dictionary-function|. You can also use
`vim.Function(name)` constructor, it is the same as `vim.Function(name)` constructor, it is the same as
`vim.bindeval('function(%s)'%json.dumps(name))`. `vim.bindeval('function(%s)'%json.dumps(name))`.
Attributes (read-only): Attributes (read-only):
Attribute Description ~ Attribute Description ~
name Function name. name Function name.
args `None` or a |python-List| object with arguments. Note args `None` or a |python-List| object with arguments. Note
that this is a copy of the arguments list, constructed that this is a copy of the arguments list, constructed
each time you request this attribute. Modifications made each time you request this attribute. Modifications made
to the list will be ignored (but not to the containers to the list will be ignored (but not to the containers
inside argument list: this is like |copy()| and not inside argument list: this is like |copy()| and not
|deepcopy()|). |deepcopy()|).
self `None` or a |python-Dictionary| object with self self `None` or a |python-Dictionary| object with self
dictionary. Note that explicit `self` keyword used when dictionary. Note that explicit `self` keyword used when
calling resulting object overrides this attribute. calling resulting object overrides this attribute.
auto_rebind Boolean. True if partial created from this Python object auto_rebind Boolean. True if partial created from this Python object
and stored in the Vim script dictionary should be and stored in the Vim script dictionary should be
automatically rebound to the dictionary it is stored in automatically rebound to the dictionary it is stored in
when this dictionary is indexed. Exposes Vim internal when this dictionary is indexed. Exposes Vim internal
@ -699,11 +698,11 @@ vim.Function object *python-Function*
`function(dict.func,dict)` (auto_rebind=False). This `function(dict.func,dict)` (auto_rebind=False). This
attribute makes no sense if `self` attribute is `None`. attribute makes no sense if `self` attribute is `None`.
Constructor additionally accepts `args`, `self` and `auto_rebind` Constructor additionally accepts `args`, `self` and `auto_rebind`
keywords. If `args` and/or `self` argument is given then it constructs keywords. If `args` and/or `self` argument is given then it constructs
a partial, see |function()|. `auto_rebind` is only used when `self` a partial, see |function()|. `auto_rebind` is only used when `self`
argument is given, otherwise it is assumed to be `True` regardless of argument is given, otherwise it is assumed to be `True` regardless of
whether it was given or not. If `self` is given then it defaults to whether it was given or not. If `self` is given then it defaults to
`False`. `False`.
Examples: > Examples: >
@ -726,7 +725,7 @@ vim.Function object *python-Function*
============================================================================== ==============================================================================
8. pyeval() and py3eval() Vim functions *python-pyeval* 8. pyeval() and py3eval() Vim functions *python-pyeval*
To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()| To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
functions to evaluate Python expressions and pass their values to Vim script. functions to evaluate Python expressions and pass their values to Vim script.
|pyxeval()| is also available. |pyxeval()| is also available.
@ -767,17 +766,28 @@ match the Python 2.x or Python 3 version Vim was compiled with.
10. Python 3 *python3* 10. Python 3 *python3*
*:py3* *:python3* *:py3* *:python3*
The `:py3` and `:python3` commands work similar to `:python`. A simple check :[range]py3 {stmt}
if the `:py3` command is working: > :[range]py3 << [trim] [{endmarker}]
:py3 print("Hello") {script}
{endmarker}
To see what version of Python you have: > :[range]python3 {stmt}
:py3 import sys :[range]python3 << [trim] [{endmarker}]
:py3 print(sys.version) {script}
{endmarker}
The `:py3` and `:python3` commands work similar to `:python`. A
simple check if the `:py3` command is working: >
:py3 print("Hello")
<
To see what version of Python you have: >
:py3 import sys
:py3 print(sys.version)
< *:py3file* < *:py3file*
The `:py3file` command works similar to `:pyfile`. :[range]py3f[ile] {file}
The `:py3file` command works similar to `:pyfile`.
*:py3do* *:py3do*
The `:py3do` command works similar to `:pydo`. :[range]py3do {body}
The `:py3do` command works similar to `:pydo`.
Vim can be built in four ways (:version output): Vim can be built in four ways (:version output):

Some files were not shown because too many files have changed in this diff Show More