mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-07 15:37:14 +02:00
Merge branch 'vim'
Conflicts: src/os_unix.c
This commit is contained in:
+11
-8
@@ -6670,11 +6670,6 @@ ex_sign(eap)
|
||||
sp = (sign_T *)alloc_clear((unsigned)sizeof(sign_T));
|
||||
if (sp == NULL)
|
||||
return;
|
||||
if (sp_prev == NULL)
|
||||
first_sign = sp;
|
||||
else
|
||||
sp_prev->sn_next = sp;
|
||||
sp->sn_name = vim_strnsave(arg, (int)(p - arg));
|
||||
|
||||
/* If the name is a number use that for the typenr,
|
||||
* otherwise use a negative number. */
|
||||
@@ -6687,13 +6682,14 @@ ex_sign(eap)
|
||||
|
||||
for (lp = first_sign; lp != NULL; lp = lp->sn_next)
|
||||
{
|
||||
if (lp->sn_typenr == last_sign_typenr)
|
||||
if (lp->sn_typenr == -last_sign_typenr)
|
||||
{
|
||||
--last_sign_typenr;
|
||||
if (last_sign_typenr == 0)
|
||||
last_sign_typenr = MAX_TYPENR;
|
||||
if (last_sign_typenr == start)
|
||||
{
|
||||
vim_free(sp);
|
||||
EMSG(_("E612: Too many signs defined"));
|
||||
return;
|
||||
}
|
||||
@@ -6702,10 +6698,17 @@ ex_sign(eap)
|
||||
}
|
||||
}
|
||||
|
||||
sp->sn_typenr = last_sign_typenr--;
|
||||
if (last_sign_typenr == 0)
|
||||
sp->sn_typenr = -last_sign_typenr;
|
||||
if (--last_sign_typenr == 0)
|
||||
last_sign_typenr = MAX_TYPENR; /* wrap around */
|
||||
}
|
||||
|
||||
/* add the new sign to the list of signs */
|
||||
if (sp_prev == NULL)
|
||||
first_sign = sp;
|
||||
else
|
||||
sp_prev->sn_next = sp;
|
||||
sp->sn_name = vim_strnsave(arg, (int)(p - arg));
|
||||
}
|
||||
|
||||
/* set values for a defined sign. */
|
||||
|
||||
+21
-38
@@ -10736,7 +10736,7 @@ ses_fname(fd, buf, flagp)
|
||||
* Write a file name to the session file.
|
||||
* Takes care of the "slash" option in 'sessionoptions' and escapes special
|
||||
* characters.
|
||||
* Returns FAIL if writing fails.
|
||||
* Returns FAIL if writing fails or out of memory.
|
||||
*/
|
||||
static int
|
||||
ses_put_fname(fd, name, flagp)
|
||||
@@ -10745,49 +10745,32 @@ ses_put_fname(fd, name, flagp)
|
||||
unsigned *flagp;
|
||||
{
|
||||
char_u *sname;
|
||||
char_u *p;
|
||||
int retval = OK;
|
||||
int c;
|
||||
|
||||
sname = home_replace_save(NULL, name);
|
||||
if (sname != NULL)
|
||||
name = sname;
|
||||
while (*name != NUL)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
{
|
||||
int l;
|
||||
if (sname == NULL)
|
||||
return FAIL;
|
||||
|
||||
if (has_mbyte && (l = (*mb_ptr2len)(name)) > 1)
|
||||
{
|
||||
/* copy a multibyte char */
|
||||
while (--l >= 0)
|
||||
{
|
||||
if (putc(*name, fd) != *name)
|
||||
retval = FAIL;
|
||||
++name;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
c = *name++;
|
||||
if (c == '\\' && (*flagp & SSOP_SLASH))
|
||||
/* change a backslash to a forward slash */
|
||||
c = '/';
|
||||
else if ((vim_strchr(escape_chars, c) != NULL
|
||||
#ifdef BACKSLASH_IN_FILENAME
|
||||
&& c != '\\'
|
||||
#endif
|
||||
) || c == '#' || c == '%')
|
||||
{
|
||||
/* escape a special character with a backslash */
|
||||
if (putc('\\', fd) != '\\')
|
||||
retval = FAIL;
|
||||
}
|
||||
if (putc(c, fd) != c)
|
||||
retval = FAIL;
|
||||
if (*flagp & SSOP_SLASH)
|
||||
{
|
||||
/* change all backslashes to forward slashes */
|
||||
for (p = sname; *p != NUL; mb_ptr_adv(p))
|
||||
if (*p == '\\')
|
||||
*p = '/';
|
||||
}
|
||||
|
||||
/* escapse special characters */
|
||||
p = vim_strsave_fnameescape(sname, FALSE);
|
||||
vim_free(sname);
|
||||
if (p == NULL)
|
||||
return FAIL;
|
||||
|
||||
/* write the result */
|
||||
if (fputs((char *)p, fd) < 0)
|
||||
retval = FAIL;
|
||||
|
||||
vim_free(p);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
+7
-2
@@ -5700,8 +5700,13 @@ nv_ident(cap)
|
||||
else if (cmdchar == '#')
|
||||
aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
|
||||
else if (tag_cmd)
|
||||
/* Don't escape spaces and Tabs in a tag with a backslash */
|
||||
aux_ptr = (char_u *)"\\|\"\n[";
|
||||
{
|
||||
if (curbuf->b_help)
|
||||
/* ":help" handles unescaped argument */
|
||||
aux_ptr = (char_u *)"";
|
||||
else
|
||||
aux_ptr = (char_u *)"\\|\"\n[";
|
||||
}
|
||||
else
|
||||
aux_ptr = (char_u *)"\\|\"\n*?[";
|
||||
|
||||
|
||||
@@ -4153,9 +4153,10 @@ do_join(count, insert_space, save_undo)
|
||||
int save_undo;
|
||||
{
|
||||
char_u *curr = NULL;
|
||||
char_u *curr_start = NULL;
|
||||
char_u *cend;
|
||||
char_u *newp;
|
||||
char_u *spaces; /* number of spaces inserte before a line */
|
||||
char_u *spaces; /* number of spaces inserted before a line */
|
||||
int endcurr1 = NUL;
|
||||
int endcurr2 = NUL;
|
||||
int currsize = 0; /* size of the current line */
|
||||
@@ -4181,7 +4182,7 @@ do_join(count, insert_space, save_undo)
|
||||
*/
|
||||
for (t = 0; t < count; ++t)
|
||||
{
|
||||
curr = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
|
||||
curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
|
||||
if (insert_space && t > 0)
|
||||
{
|
||||
curr = skipwhite(curr);
|
||||
@@ -4265,10 +4266,10 @@ do_join(count, insert_space, save_undo)
|
||||
copy_spaces(cend, (size_t)(spaces[t]));
|
||||
}
|
||||
mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t,
|
||||
(long)(cend - newp + spaces[t]));
|
||||
(long)(cend - newp + spaces[t] - (curr - curr_start)));
|
||||
if (t == 0)
|
||||
break;
|
||||
curr = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
|
||||
curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
|
||||
if (insert_space && t > 1)
|
||||
curr = skipwhite(curr);
|
||||
currsize = (int)STRLEN(curr);
|
||||
|
||||
+1
-1
@@ -10150,7 +10150,7 @@ buf_copy_options(buf, flags)
|
||||
buf->b_p_smc = p_smc;
|
||||
#endif
|
||||
#ifdef FEAT_SPELL
|
||||
buf->b_s.b_p_spc = vim_strsave(p_spf);
|
||||
buf->b_s.b_p_spc = vim_strsave(p_spc);
|
||||
(void)compile_cap_prog(&buf->b_s);
|
||||
buf->b_s.b_p_spf = vim_strsave(p_spf);
|
||||
buf->b_s.b_p_spl = vim_strsave(p_spl);
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
Error: MACOS 9 is no longer supported in Vim 7
|
||||
#endif
|
||||
|
||||
/* Avoid a conflict for the definition of Boolean between Mac header files and
|
||||
* X11 header files. */
|
||||
#define NO_X11_INCLUDES
|
||||
|
||||
#include "vim.h"
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
|
||||
+8
-7
@@ -4174,9 +4174,6 @@ mch_call_shell(cmd, options)
|
||||
# ifdef FEAT_GUI
|
||||
if (pty_master_fd >= 0)
|
||||
{
|
||||
# ifndef FEAT_GUI_MACVIM
|
||||
close(pty_slave_fd); /* close slave side of pty */
|
||||
# endif
|
||||
fromshell_fd = pty_master_fd;
|
||||
toshell_fd = dup(pty_master_fd);
|
||||
}
|
||||
@@ -4649,10 +4646,14 @@ finished:
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef FEAT_GUI_MACVIM
|
||||
if (pty_slave_fd >= 0)
|
||||
close(pty_slave_fd); /* close slave side of pty */
|
||||
#endif
|
||||
# ifdef FEAT_GUI
|
||||
/* Close slave side of pty. Only do this after the child has
|
||||
* exited, otherwise the child may hang when it tries to write on
|
||||
* the pty. */
|
||||
if (pty_master_fd >= 0)
|
||||
close(pty_slave_fd);
|
||||
# endif
|
||||
|
||||
/* Make sure the child that writes to the external program is
|
||||
* dead. */
|
||||
if (wpid > 0)
|
||||
|
||||
+10
-1
@@ -2308,12 +2308,14 @@ fname_case(
|
||||
int len)
|
||||
{
|
||||
char szTrueName[_MAX_PATH + 2];
|
||||
char szTrueNameTemp[_MAX_PATH + 2];
|
||||
char *ptrue, *ptruePrev;
|
||||
char *porig, *porigPrev;
|
||||
int flen;
|
||||
WIN32_FIND_DATA fb;
|
||||
HANDLE hFind;
|
||||
int c;
|
||||
int slen;
|
||||
|
||||
flen = (int)STRLEN(name);
|
||||
if (flen == 0 || flen > _MAX_PATH)
|
||||
@@ -2358,12 +2360,19 @@ fname_case(
|
||||
}
|
||||
*ptrue = NUL;
|
||||
|
||||
/* To avoid a slow failure append "\*" when searching a directory,
|
||||
* server or network share. */
|
||||
STRCPY(szTrueNameTemp, szTrueName);
|
||||
slen = strlen(szTrueNameTemp);
|
||||
if (*porig == psepc && slen + 2 < _MAX_PATH)
|
||||
STRCPY(szTrueNameTemp + slen, "\\*");
|
||||
|
||||
/* Skip "", "." and "..". */
|
||||
if (ptrue > ptruePrev
|
||||
&& (ptruePrev[0] != '.'
|
||||
|| (ptruePrev[1] != NUL
|
||||
&& (ptruePrev[1] != '.' || ptruePrev[2] != NUL)))
|
||||
&& (hFind = FindFirstFile(szTrueName, &fb))
|
||||
&& (hFind = FindFirstFile(szTrueNameTemp, &fb))
|
||||
!= INVALID_HANDLE_VALUE)
|
||||
{
|
||||
c = *porig;
|
||||
|
||||
@@ -50,6 +50,17 @@ a b
|
||||
#a b
|
||||
}
|
||||
|
||||
STARTTEST
|
||||
/^{/+2
|
||||
:set tw& fo=a
|
||||
I^^
|
||||
ENDTEST
|
||||
|
||||
{
|
||||
1aa
|
||||
2bb
|
||||
}
|
||||
|
||||
STARTTEST
|
||||
:g/^STARTTEST/.,/^ENDTEST/d
|
||||
:1;/^Results/,$wq! test.out
|
||||
|
||||
@@ -33,3 +33,6 @@ a b
|
||||
#a b
|
||||
}
|
||||
|
||||
|
||||
{ 1aa ^^2bb }
|
||||
|
||||
|
||||
@@ -729,6 +729,22 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
27,
|
||||
/**/
|
||||
26,
|
||||
/**/
|
||||
25,
|
||||
/**/
|
||||
24,
|
||||
/**/
|
||||
23,
|
||||
/**/
|
||||
22,
|
||||
/**/
|
||||
21,
|
||||
/**/
|
||||
20,
|
||||
/**/
|
||||
19,
|
||||
/**/
|
||||
|
||||
@@ -193,8 +193,8 @@
|
||||
#endif
|
||||
|
||||
#ifdef NO_X11_INCLUDES
|
||||
/* In os_mac_conv.c NO_X11_INCLUDES is defined to avoid X11 headers.
|
||||
* Disable all X11 related things to avoid conflicts. */
|
||||
/* In os_mac_conv.c and os_macosx.m NO_X11_INCLUDES is defined to avoid
|
||||
* X11 headers. Disable all X11 related things to avoid conflicts. */
|
||||
# ifdef FEAT_X11
|
||||
# undef FEAT_X11
|
||||
# endif
|
||||
|
||||
Reference in New Issue
Block a user