Patch 8.2.0045 (after 8.2.0044)
Problem: Script test fails.
Solution: For numbers "is" and "isnot" work like "==" and "!=".
Files: src/eval.c
*** ../vim-8.2.0044/src/eval.c 2019-12-25 18:14:10.481839651 +0100
--- src/eval.c 2019-12-25 19:32:38.508741445 +0100
***************
*** 6261,6267 ****
else if (typ1->v_type == VAR_FUNC || typ2->v_type == VAR_FUNC
|| typ1->v_type == VAR_PARTIAL || typ2->v_type == VAR_PARTIAL)
{
! if (type != ETYPE_EQUAL && type != ETYPE_NEQUAL)
{
emsg(_("E694: Invalid operation for Funcrefs"));
clear_tv(typ1);
--- 6261,6268 ----
else if (typ1->v_type == VAR_FUNC || typ2->v_type == VAR_FUNC
|| typ1->v_type == VAR_PARTIAL || typ2->v_type == VAR_PARTIAL)
{
! if (type != ETYPE_EQUAL && type != ETYPE_NEQUAL
! && type != ETYPE_IS && type != ETYPE_ISNOT)
{
emsg(_("E694: Invalid operation for Funcrefs"));
clear_tv(typ1);
***************
*** 6306,6320 ****
n1 = FALSE;
switch (type)
{
case ETYPE_EQUAL: n1 = (f1 == f2); break;
case ETYPE_NEQUAL: n1 = (f1 != f2); break;
case ETYPE_GREATER: n1 = (f1 > f2); break;
case ETYPE_GEQUAL: n1 = (f1 >= f2); break;
case ETYPE_SMALLER: n1 = (f1 < f2); break;
case ETYPE_SEQUAL: n1 = (f1 <= f2); break;
case ETYPE_UNKNOWN:
- case ETYPE_IS:
- case ETYPE_ISNOT:
case ETYPE_MATCH:
case ETYPE_NOMATCH: break; // avoid gcc warning
}
--- 6307,6321 ----
n1 = FALSE;
switch (type)
{
+ case ETYPE_IS:
case ETYPE_EQUAL: n1 = (f1 == f2); break;
+ case ETYPE_ISNOT:
case ETYPE_NEQUAL: n1 = (f1 != f2); break;
case ETYPE_GREATER: n1 = (f1 > f2); break;
case ETYPE_GEQUAL: n1 = (f1 >= f2); break;
case ETYPE_SMALLER: n1 = (f1 < f2); break;
case ETYPE_SEQUAL: n1 = (f1 <= f2); break;
case ETYPE_UNKNOWN:
case ETYPE_MATCH:
case ETYPE_NOMATCH: break; // avoid gcc warning
}
***************
*** 6322,6330 ****
#endif
/*
! * If one of the two variables is a number, compare as a number.
! * When using "=~" or "!~", always compare as string.
! */
else if ((typ1->v_type == VAR_NUMBER || typ2->v_type == VAR_NUMBER)
&& type != ETYPE_MATCH && type != ETYPE_NOMATCH)
{
--- 6323,6331 ----
#endif
/*
! * If one of the two variables is a number, compare as a number.
! * When using "=~" or "!~", always compare as string.
! */
else if ((typ1->v_type == VAR_NUMBER || typ2->v_type == VAR_NUMBER)
&& type != ETYPE_MATCH && type != ETYPE_NOMATCH)
{
***************
*** 6332,6346 ****
n2 = tv_get_number(typ2);
switch (type)
{
case ETYPE_EQUAL: n1 = (n1 == n2); break;
case ETYPE_NEQUAL: n1 = (n1 != n2); break;
case ETYPE_GREATER: n1 = (n1 > n2); break;
case ETYPE_GEQUAL: n1 = (n1 >= n2); break;
case ETYPE_SMALLER: n1 = (n1 < n2); break;
case ETYPE_SEQUAL: n1 = (n1 <= n2); break;
case ETYPE_UNKNOWN:
- case ETYPE_IS:
- case ETYPE_ISNOT:
case ETYPE_MATCH:
case ETYPE_NOMATCH: break; // avoid gcc warning
}
--- 6333,6347 ----
n2 = tv_get_number(typ2);
switch (type)
{
+ case ETYPE_IS:
case ETYPE_EQUAL: n1 = (n1 == n2); break;
+ case ETYPE_ISNOT:
case ETYPE_NEQUAL: n1 = (n1 != n2); break;
case ETYPE_GREATER: n1 = (n1 > n2); break;
case ETYPE_GEQUAL: n1 = (n1 >= n2); break;
case ETYPE_SMALLER: n1 = (n1 < n2); break;
case ETYPE_SEQUAL: n1 = (n1 <= n2); break;
case ETYPE_UNKNOWN:
case ETYPE_MATCH:
case ETYPE_NOMATCH: break; // avoid gcc warning
}
***************
*** 6356,6362 ****
--- 6357,6365 ----
n1 = FALSE;
switch (type)
{
+ case ETYPE_IS:
case ETYPE_EQUAL: n1 = (i == 0); break;
+ case ETYPE_ISNOT:
case ETYPE_NEQUAL: n1 = (i != 0); break;
case ETYPE_GREATER: n1 = (i > 0); break;
case ETYPE_GEQUAL: n1 = (i >= 0); break;
***************
*** 6370,6377 ****
n1 = !n1;
break;
- case ETYPE_IS:
- case ETYPE_ISNOT:
case ETYPE_UNKNOWN: break; // avoid gcc warning
}
}
--- 6373,6378 ----
*** ../vim-8.2.0044/src/version.c 2019-12-25 18:14:10.481839651 +0100
--- src/version.c 2019-12-25 19:30:49.517142276 +0100
***************
*** 744,745 ****
--- 744,747 ----
{ /* Add new patch number below this line */
+ /**/
+ 45,
/**/
--
DEAD PERSON: I'm getting better!
CUSTOMER: No, you're not -- you'll be stone dead in a moment.
MORTICIAN: Oh, I can't take him like that -- it's against regulations.
The Quest for the Holy Grail (Monty Python)
/// 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/201912251833.xBPIXuqb018311%40masaka.moolenaar.net.