Patch 8.2.1014
Problem: Using "name" for a string result is confusing.
Solution: Rename to "end".
Files: src/typval.c
*** ../vim-8.2.1013/src/typval.c 2020-05-31 22:06:48.081779441 +0200
--- src/typval.c 2020-06-19 19:28:33.713791837 +0200
***************
*** 1182,1188 ****
get_string_tv(char_u **arg, typval_T *rettv, int evaluate)
{
char_u *p;
! char_u *name;
int extra = 0;
int len;
--- 1182,1188 ----
get_string_tv(char_u **arg, typval_T *rettv, int evaluate)
{
char_u *p;
! char_u *end;
int extra = 0;
int len;
***************
*** 1216,1227 ****
// Copy the string into allocated memory, handling backslashed
// characters.
len = (int)(p - *arg + extra);
! name = alloc(len);
! if (name == NULL)
return FAIL;
! rettv->v_type = VAR_STRING;
! rettv->vval.v_string = name;
for (p = *arg + 1; *p != NUL && *p != '"'; )
{
--- 1216,1227 ----
// Copy the string into allocated memory, handling backslashed
// characters.
+ rettv->v_type = VAR_STRING;
len = (int)(p - *arg + extra);
! rettv->vval.v_string = alloc(len);
! if (rettv->vval.v_string == NULL)
return FAIL;
! end = rettv->vval.v_string;
for (p = *arg + 1; *p != NUL && *p != '"'; )
{
***************
*** 1229,1240 ****
{
switch (*++p)
{
! case 'b': *name++ = BS; ++p; break;
! case 'e': *name++ = ESC; ++p; break;
! case 'f': *name++ = FF; ++p; break;
! case 'n': *name++ = NL; ++p; break;
! case 'r': *name++ = CAR; ++p; break;
! case 't': *name++ = TAB; ++p; break;
case 'X': // hex: "\x1", "\x12"
case 'x':
--- 1229,1240 ----
{
switch (*++p)
{
! case 'b': *end++ = BS; ++p; break;
! case 'e': *end++ = ESC; ++p; break;
! case 'f': *end++ = FF; ++p; break;
! case 'n': *end++ = NL; ++p; break;
! case 'r': *end++ = CAR; ++p; break;
! case 't': *end++ = TAB; ++p; break;
case 'X': // hex: "\x1", "\x12"
case 'x':
***************
*** 1261,1269 ****
// For "\u" store the number according to
// 'encoding'.
if (c != 'X')
! name += (*mb_char2bytes)(nr, name);
else
! *name++ = nr;
}
break;
--- 1261,1269 ----
// For "\u" store the number according to
// 'encoding'.
if (c != 'X')
! end += (*mb_char2bytes)(nr, end);
else
! *end++ = nr;
}
break;
***************
*** 1275,1288 ****
case '4':
case '5':
case '6':
! case '7': *name = *p++ - '0';
if (*p >= '0' && *p <= '7')
{
! *name = (*name << 3) + *p++ - '0';
if (*p >= '0' && *p <= '7')
! *name = (*name << 3) + *p++ - '0';
}
! ++name;
break;
// Special key, e.g.: "\<C-W>"
--- 1275,1288 ----
case '4':
case '5':
case '6':
! case '7': *end = *p++ - '0';
if (*p >= '0' && *p <= '7')
{
! *end = (*end << 3) + *p++ - '0';
if (*p >= '0' && *p <= '7')
! *end = (*end << 3) + *p++ - '0';
}
! ++end;
break;
// Special key, e.g.: "\<C-W>"
***************
*** 1292,1317 ****
if (p[1] != '*')
flags |= FSK_SIMPLIFY;
! extra = trans_special(&p, name, flags, NULL);
if (extra != 0)
{
! name += extra;
! if (name >= rettv->vval.v_string + len)
iemsg("get_string_tv() used more space
than allocated");
break;
}
}
// FALLTHROUGH
! default: MB_COPY_CHAR(p, name);
break;
}
}
else
! MB_COPY_CHAR(p, name);
!
}
! *name = NUL;
if (*p != NUL) // just in case
++p;
*arg = p;
--- 1292,1316 ----
if (p[1] != '*')
flags |= FSK_SIMPLIFY;
! extra = trans_special(&p, end, flags, NULL);
if (extra != 0)
{
! end += extra;
! if (end >= rettv->vval.v_string + len)
iemsg("get_string_tv() used more space
than allocated");
break;
}
}
// FALLTHROUGH
! default: MB_COPY_CHAR(p, end);
break;
}
}
else
! MB_COPY_CHAR(p, end);
}
! *end = NUL;
if (*p != NUL) // just in case
++p;
*arg = p;
*** ../vim-8.2.1013/src/version.c 2020-06-19 19:10:55.477199015 +0200
--- src/version.c 2020-06-19 19:29:17.661643557 +0200
***************
*** 756,757 ****
--- 756,759 ----
{ /* Add new patch number below this line */
+ /**/
+ 1014,
/**/
--
[Autumn changed into Winter ... Winter changed into Spring ... Spring
changed back into Autumn and Autumn gave Winter and Spring a miss and
went straight on into Summer ... Until one day ...]
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/202006191731.05JHVQ92663181%40masaka.moolenaar.net.