Compare commits

...

8 Commits

Author SHA1 Message Date
Kazuki Sakamoto e80371bfbb MacVim Snapshot 123
Binary targets macOS 10.8+

- Vim patch 8.0.0228

Script interfaces have compatibility with these versions

- Lua 5.2
- Perl 5.16
- Python2 2.7
- Python3 3.6
- Ruby 2.0
2017-01-24 08:24:15 -08:00
Kazuki Sakamoto 43ac38d613 Merge remote-tracking branch 'vim/master' 2017-01-24 08:23:23 -08:00
Bram Moolenaar abbc448bc0 patch 8.0.0228: pasting in xterm on the command line has PasteStart
Problem:    When pasting test in an xterm on the command line it is surrounded
            by <PasteStart> and <PasteEnd>. (Johannes Kaltenbach)
Solution:   Add missing changes.
2017-01-24 15:57:55 +01:00
Bram Moolenaar 2aa5f696b9 patch 8.0.0227: crash with ff=dos when first line in file has no CR
Problem:    Crash when 'fileformat' is forced to "dos" and the first line in
            the file is empty and does not have a CR character.
Solution:   Don't check for CR before the start of the buffer.
2017-01-24 15:46:48 +01:00
Bram Moolenaar 1695f99d08 patch 8.0.0226: test for patch 8.0.0224 missing CR characters
Problem:    The test for patch 8.0.0224 misses the CR characters and passes
            even without the fix. (Christian Brabandt)
Solution:   Use double quotes and \<CR>.
2017-01-24 13:18:43 +01:00
Bram Moolenaar 9957a10d0f patch 8.0.0225: put in Visual block mode terminates early
Problem:    When a block is visually selected and put is used on the end of
            the selection only one line is changed.
Solution:   Check for the end properly. (Christian Brabandt, neovim issue
            5781)
2017-01-23 21:53:53 +01:00
Bram Moolenaar 7a2699e868 patch 8.0.0224: change to 'fileformats' from autocmd does not take effect
Problem:    When 'fileformats' is changed in a BufReadPre auto command, it
            does not take effect in readfile(). (Gary Johnson)
Solution:   Check the value of 'fileformats' after executing auto commands.
            (Christian Brabandt)
2017-01-23 21:31:09 +01:00
Bram Moolenaar fffbf308dd patch 8.0.0223: Coverity warns for an uninitialized variable
Problem:    Coverity gets confused by the flags passed to find_tags() and
            warnts for an uninitialized variable.
Solution:   Disallow using cscope and help tags at the same time.
2017-01-23 20:47:12 +01:00
9 changed files with 84 additions and 11 deletions
+1 -1
View File
@@ -1255,7 +1255,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>122</string>
<string>123</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
+11 -2
View File
@@ -1802,6 +1802,10 @@ getcmdline(
goto cmdline_not_changed;
#endif
case K_PS:
bracketed_paste(PASTE_CMDLINE, FALSE, NULL);
goto cmdline_changed;
default:
#ifdef UNIX
if (c == intr_char)
@@ -2374,8 +2378,7 @@ getexmodeline(
if (ga_grow(&line_ga, 40) == FAIL)
break;
/* Get one character at a time. Don't use inchar(), it can't handle
* special characters. */
/* Get one character at a time. */
prev_char = c1;
c1 = vgetc();
@@ -2390,6 +2393,12 @@ getexmodeline(
break;
}
if (c1 == K_PS)
{
bracketed_paste(PASTE_EX, FALSE, &line_ga);
goto redraw;
}
if (!escaped)
{
/* CR typed means "enter", which is NL */
+14 -4
View File
@@ -274,9 +274,9 @@ readfile(
int msg_save = msg_scroll;
linenr_T read_no_eol_lnum = 0; /* non-zero lnum when last line of
* last read was missing the eol */
int try_mac = (vim_strchr(p_ffs, 'm') != NULL);
int try_dos = (vim_strchr(p_ffs, 'd') != NULL);
int try_unix = (vim_strchr(p_ffs, 'x') != NULL);
int try_mac;
int try_dos;
int try_unix;
int file_rewind = FALSE;
#ifdef FEAT_MBYTE
int can_retry;
@@ -738,6 +738,10 @@ readfile(
curbuf->b_op_start.lnum = ((from == 0) ? 1 : from);
curbuf->b_op_start.col = 0;
try_mac = (vim_strchr(p_ffs, 'm') != NULL);
try_dos = (vim_strchr(p_ffs, 'd') != NULL);
try_unix = (vim_strchr(p_ffs, 'x') != NULL);
#ifdef FEAT_AUTOCMD
if (!read_buffer)
{
@@ -769,6 +773,11 @@ readfile(
else
apply_autocmds_exarg(EVENT_FILEREADPRE, sfname, sfname,
FALSE, NULL, eap);
/* autocommands may have changed it */
try_mac = (vim_strchr(p_ffs, 'm') != NULL);
try_dos = (vim_strchr(p_ffs, 'd') != NULL);
try_unix = (vim_strchr(p_ffs, 'x') != NULL);
if (msg_scrolled == n)
msg_scroll = m;
@@ -2242,8 +2251,9 @@ rewind_retry:
len = (colnr_T)(ptr - line_start + 1);
if (fileformat == EOL_DOS)
{
if (ptr[-1] == CAR) /* remove CR */
if (ptr > line_start && ptr[-1] == CAR)
{
/* remove CR before NL */
ptr[-1] = NUL;
--len;
}
+6 -1
View File
@@ -3774,6 +3774,11 @@ do_put(
*/
if (y_type == MCHAR && y_size == 1)
{
linenr_T end = curbuf->b_visual.vi_end.lnum;
if (curbuf->b_visual.vi_end.lnum < curbuf->b_visual.vi_start.lnum)
end = curbuf->b_visual.vi_start.lnum;
do {
totlen = count * yanklen;
if (totlen > 0)
@@ -3801,7 +3806,7 @@ do_put(
}
if (VIsual_active)
lnum++;
} while (VIsual_active && lnum <= curbuf->b_visual.vi_end.lnum);
} while (VIsual_active && lnum <= end);
if (VIsual_active) /* reset lnum to the last visual line */
lnum--;
+11 -1
View File
@@ -1256,6 +1256,7 @@ prepare_pats(pat_T *pats, int has_re)
* TAG_REGEXP use "pat" as a regexp
* TAG_NOIC don't always ignore case
* TAG_KEEP_LANG keep language
* TAG_CSCOPE use cscope results for tags
*/
int
find_tags(
@@ -1423,6 +1424,14 @@ find_tags(
*/
if (help_only) /* want tags from help file */
curbuf->b_help = TRUE; /* will be restored later */
#ifdef FEAT_CSCOPE
else if (use_cscope)
{
/* Make sure we don't mix help and cscope, confuses Coverity. */
help_only = FALSE;
curbuf->b_help = FALSE;
}
#endif
orgpat.len = (int)STRLEN(pat);
#ifdef FEAT_MULTI_LANG
@@ -2281,7 +2290,8 @@ parse_line:
*/
*tagp.tagname_end = NUL;
len = (int)(tagp.tagname_end - tagp.tagname);
mfp = (char_u *)alloc((int)sizeof(char_u) + len + 10 + ML_EXTRA + 1);
mfp = (char_u *)alloc((int)sizeof(char_u)
+ len + 10 + ML_EXTRA + 1);
if (mfp != NULL)
{
int heuristic;
+2 -2
View File
@@ -3154,7 +3154,7 @@ starttermcap(void)
{
out_str(T_TI); /* start termcap mode */
out_str(T_KS); /* start "keypad transmit" mode */
out_str(T_BE); /* enable bracketed paste moe */
out_str(T_BE); /* enable bracketed paste mode */
out_flush();
termcap_active = TRUE;
screen_start(); /* don't know where cursor is now */
@@ -3204,7 +3204,7 @@ stoptermcap(void)
check_for_codes_from_term();
}
#endif
out_str(T_BD); /* disable bracketed paste moe */
out_str(T_BD); /* disable bracketed paste mode */
out_str(T_KE); /* stop "keypad transmit" mode */
out_flush();
termcap_active = FALSE;
+16
View File
@@ -15,3 +15,19 @@ func Test_fileformat_after_bw()
call assert_equal(test_fileformats, &fileformat)
set fileformats&
endfunc
func Test_fileformat_autocommand()
let filecnt = ["", "foobar\<CR>", "eins\<CR>", "\<CR>", "zwei\<CR>", "drei", "vier", "fünf", ""]
let ffs = &ffs
call writefile(filecnt, 'Xfile', 'b')
au BufReadPre Xfile set ffs=dos ff=dos
new Xfile
call assert_equal('dos', &l:ff)
call assert_equal('dos', &ffs)
" cleanup
call delete('Xfile')
let &ffs = ffs
au! BufReadPre Xfile
bw!
endfunc
+11
View File
@@ -10,3 +10,14 @@ func Test_put_block()
call assert_equal("\u2500x", getline(1))
bwipe!
endfunc
func Test_put_char_block()
new
call setline(1, ['Line 1', 'Line 2'])
f Xfile_put
" visually select both lines and put the cursor at the top of the visual
" selection and then put the buffer name over it
exe "norm! G0\<c-v>ke\"%p"
call assert_equal(['Xfile_put 1', 'Xfile_put 2'], getline(1,2))
bw!
endfunc
+12
View File
@@ -779,6 +779,18 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
228,
/**/
227,
/**/
226,
/**/
225,
/**/
224,
/**/
223,
/**/
222,
/**/