0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

updated for version 7.0-207

This commit is contained in:
Bram Moolenaar
2007-03-04 20:22:01 +00:00
parent 733f0a286e
commit 81b85876ad
4 changed files with 35 additions and 0 deletions

View File

@@ -4440,6 +4440,35 @@ vim_strsave_escape_csi(p)
return res; return res;
} }
/*
* Remove escaping from CSI and K_SPECIAL characters. Reverse of
* vim_strsave_escape_csi(). Works in-place.
*/
void
vim_unescape_csi(p)
char_u *p;
{
char_u *s = p, *d = p;
while (*s != NUL)
{
if (s[0] == K_SPECIAL && s[1] == KS_SPECIAL && s[2] == KE_FILLER)
{
*d++ = K_SPECIAL;
s += 3;
}
else if ((s[0] == K_SPECIAL || s[0] == CSI)
&& s[1] == KS_EXTRA && s[2] == (int)KE_CSI)
{
*d++ = CSI;
s += 3;
}
else
*d++ = *s++;
}
*d = NUL;
}
/* /*
* Write map commands for the current mappings to an .exrc file. * Write map commands for the current mappings to an .exrc file.
* Return FAIL on error, OK otherwise. * Return FAIL on error, OK otherwise.

View File

@@ -1042,6 +1042,9 @@ do_record(c)
retval = FAIL; retval = FAIL;
else else
{ {
/* Remove escaping for CSI and K_SPECIAL in multi-byte chars. */
vim_unescape_csi(p);
/* /*
* We don't want to change the default register here, so save and * We don't want to change the default register here, so save and
* restore the current register name. * restore the current register name.

View File

@@ -56,6 +56,7 @@ extern char_u *set_context_in_map_cmd __ARGS((expand_T *xp, char_u *cmd, char_u
extern int ExpandMappings __ARGS((regmatch_T *regmatch, int *num_file, char_u ***file)); extern int ExpandMappings __ARGS((regmatch_T *regmatch, int *num_file, char_u ***file));
extern int check_abbr __ARGS((int c, char_u *ptr, int col, int mincol)); extern int check_abbr __ARGS((int c, char_u *ptr, int col, int mincol));
extern char_u *vim_strsave_escape_csi __ARGS((char_u *p)); extern char_u *vim_strsave_escape_csi __ARGS((char_u *p));
extern void vim_unescape_csi __ARGS((char_u *p));
extern int makemap __ARGS((FILE *fd, buf_T *buf)); extern int makemap __ARGS((FILE *fd, buf_T *buf));
extern int put_escstr __ARGS((FILE *fd, char_u *strstart, int what)); extern int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
extern void check_map_keycodes __ARGS((void)); extern void check_map_keycodes __ARGS((void));

View File

@@ -666,6 +666,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
207,
/**/ /**/
206, 206,
/**/ /**/