patch 8.1.2036: the str2nr() tests fail

Problem:    The str2nr() tests fail.
Solution:   Add missing part of patch.
diff --git a/src/charset.c b/src/charset.c
index d47ccfd..09e7820 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1773,6 +1773,7 @@
  * If "what" contains STR2NR_OCT recognize octal numbers
  * If "what" contains STR2NR_HEX recognize hex numbers
  * If "what" contains STR2NR_FORCE always assume bin/oct/hex.
+ * If "what" contains STR2NR_QUOTE ignore embedded single quotes
  * If maxlen > 0, check at a maximum maxlen chars.
  * If strict is TRUE, check the number strictly. return *len = 0 if fail.
  */
@@ -1841,7 +1842,8 @@
 
     // Do the conversion manually to avoid sscanf() quirks.
     n = 1;
-    if (pre == 'B' || pre == 'b' || what == STR2NR_BIN + STR2NR_FORCE)
+    if (pre == 'B' || pre == 'b'
+			     || ((what & STR2NR_BIN) && (what & STR2NR_FORCE)))
     {
 	/* bin */
 	if (pre != 0)
@@ -1856,9 +1858,16 @@
 	    ++ptr;
 	    if (n++ == maxlen)
 		break;
+	    if ((what & STR2NR_QUOTE) && *ptr == '\''
+					     && '0' <= ptr[1] && ptr[1] <= '1')
+	    {
+		++ptr;
+		if (n++ == maxlen)
+		    break;
+	    }
 	}
     }
-    else if (pre == '0' || what == STR2NR_OCT + STR2NR_FORCE)
+    else if (pre == '0' || ((what & STR2NR_OCT) && (what & STR2NR_FORCE)))
     {
 	/* octal */
 	while ('0' <= *ptr && *ptr <= '7')
@@ -1871,9 +1880,16 @@
 	    ++ptr;
 	    if (n++ == maxlen)
 		break;
+	    if ((what & STR2NR_QUOTE) && *ptr == '\''
+					     && '0' <= ptr[1] && ptr[1] <= '7')
+	    {
+		++ptr;
+		if (n++ == maxlen)
+		    break;
+	    }
 	}
     }
-    else if (pre != 0 || what == STR2NR_HEX + STR2NR_FORCE)
+    else if (pre != 0 || ((what & STR2NR_HEX) && (what & STR2NR_FORCE)))
     {
 	/* hex */
 	if (pre != 0)
@@ -1888,6 +1904,12 @@
 	    ++ptr;
 	    if (n++ == maxlen)
 		break;
+	    if ((what & STR2NR_QUOTE) && *ptr == '\'' && vim_isxdigit(ptr[1]))
+	    {
+		++ptr;
+		if (n++ == maxlen)
+		    break;
+	    }
 	}
     }
     else
@@ -1906,8 +1928,15 @@
 	    ++ptr;
 	    if (n++ == maxlen)
 		break;
+	    if ((what & STR2NR_QUOTE) && *ptr == '\'' && VIM_ISDIGIT(ptr[1]))
+	    {
+		++ptr;
+		if (n++ == maxlen)
+		    break;
+	    }
 	}
     }
+
     // Check for an alpha-numeric character immediately following, that is
     // most likely a typo.
     if (strict && n - 1 != maxlen && ASCII_ISALNUM(*ptr))