patch 8.2.0315: build failure on HP-UX system

Problem:    Build failure on HP-UX system.
Solution:   Use LONG_LONG_MIN instead of LLONG_MIN.  Add type casts for switch
            statement. (John Marriott)
diff --git a/src/json.c b/src/json.c
index 770e144..d5e5782 100644
--- a/src/json.c
+++ b/src/json.c
@@ -194,7 +194,7 @@
     switch (val->v_type)
     {
 	case VAR_BOOL:
-	    switch (val->vval.v_number)
+	    switch ((long)val->vval.v_number)
 	    {
 		case VVAL_FALSE: ga_concat(gap, (char_u *)"false"); break;
 		case VVAL_TRUE: ga_concat(gap, (char_u *)"true"); break;
@@ -202,7 +202,7 @@
 	    break;
 
 	case VAR_SPECIAL:
-	    switch (val->vval.v_number)
+	    switch ((long)val->vval.v_number)
 	    {
 		case VVAL_NONE: if ((options & JSON_JS) != 0
 					     && (options & JSON_NO_NONE) == 0)
diff --git a/src/structs.h b/src/structs.h
index 7830e64..e68c1f9 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -1279,9 +1279,15 @@
 #else
   typedef long long		varnumber_T;
   typedef unsigned long long	uvarnumber_T;
-# define VARNUM_MIN		LLONG_MIN
-# define VARNUM_MAX		LLONG_MAX
-# define UVARNUM_MAX		ULLONG_MAX
+# ifdef LLONG_MIN
+#  define VARNUM_MIN		LLONG_MIN
+#  define VARNUM_MAX		LLONG_MAX
+#  define UVARNUM_MAX		ULLONG_MAX
+# else
+#  define VARNUM_MIN		LONG_LONG_MIN
+#  define VARNUM_MAX		LONG_LONG_MAX
+#  define UVARNUM_MAX		ULONG_LONG_MAX
+# endif
 #endif
 
 typedef double	float_T;
diff --git a/src/version.c b/src/version.c
index 7f2a454..d4fe485 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    315,
+/**/
     314,
 /**/
     313,