patch 9.0.1442: mapset() does not restore non-script context

Problem:    mapset() does not restore non-script context.
Solution:   Also accept negative sid. (closes #12132)
diff --git a/src/map.c b/src/map.c
index 7c95286..d56895b 100644
--- a/src/map.c
+++ b/src/map.c
@@ -227,7 +227,7 @@
 	int	    is_abbr,
 #ifdef FEAT_EVAL
 	int	    expr,
-	scid_T	    sid,	    // -1 to use current_sctx
+	scid_T	    sid,	    // 0 to use current_sctx
 	int	    scriptversion,
 	linenr_T    lnum,
 #endif
@@ -266,7 +266,7 @@
     mp->m_simplified = simplified;
 #ifdef FEAT_EVAL
     mp->m_expr = expr;
-    if (sid > 0)
+    if (sid != 0)
     {
 	mp->m_script_ctx.sc_sid = sid;
 	mp->m_script_ctx.sc_lnum = lnum;
@@ -924,7 +924,7 @@
 	if (map_add(map_table, abbr_table, keys, rhs, orig_rhs,
 		    noremap, nowait, silent, mode, abbrev,
 #ifdef FEAT_EVAL
-		    expr, /* sid */ -1, /* scriptversion */ 0, /* lnum */ 0,
+		    expr, /* sid */ 0, /* scriptversion */ 0, /* lnum */ 0,
 #endif
 		    keyround1_simplified) == FAIL)
 	{