Print right hex value for MIN_INT (#1160)

diff --git a/SStream.c b/SStream.c
index 4850bbb..aafb730 100644
--- a/SStream.c
+++ b/SStream.c
@@ -56,10 +56,6 @@
 // print number with prefix #
 void printInt64Bang(SStream *O, int64_t val)
 {
-	if (val == LONG_MIN) {
-		return;
-	}
-
 	if (val >= 0) {
 		if (val > HEX_THRESHOLD)
 			SStream_concat(O, "#0x%"PRIx64, val);
@@ -67,7 +63,10 @@
 			SStream_concat(O, "#%"PRIu64, val);
 	} else {
 		if (val <- HEX_THRESHOLD)
-			SStream_concat(O, "#-0x%"PRIx64, -val);
+			if (val == LONG_MIN)
+				SStream_concat(O, "#-0x%"PRIx64, val);
+			else
+				SStream_concat(O, "#-0x%"PRIx64, -val);
 		else
 			SStream_concat(O, "#-%"PRIu64, -val);
 	}
@@ -84,10 +83,6 @@
 // print number
 void printInt64(SStream *O, int64_t val)
 {
-	if (val == LONG_MIN) {
-		return;
-	}
-
 	if (val >= 0) {
 		if (val > HEX_THRESHOLD)
 			SStream_concat(O, "0x%"PRIx64, val);
@@ -95,7 +90,10 @@
 			SStream_concat(O, "%"PRIu64, val);
 	} else {
 		if (val <- HEX_THRESHOLD)
-			SStream_concat(O, "-0x%"PRIx64, -val);
+			if (val == LONG_MIN)
+				SStream_concat(O, "-0x%"PRIx64, val);
+			else
+				SStream_concat(O, "-0x%"PRIx64, -val);
 		else
 			SStream_concat(O, "-%"PRIu64, -val);
 	}
@@ -104,22 +102,17 @@
 // print number in decimal mode
 void printInt32BangDec(SStream *O, int32_t val)
 {
-	if (val == INT_MIN) {
-		return;
-	}
-
 	if (val >= 0)
 		SStream_concat(O, "#%u", val);
 	else
-		SStream_concat(O, "#-%u", -val);
+		if (val == INT_MIN)
+			SStream_concat(O, "#-%u", val);
+		else
+			SStream_concat(O, "#-%u", -val);
 }
 
 void printInt32Bang(SStream *O, int32_t val)
 {
-	if (val == INT_MIN) {
-		return;
-	}
-
 	if (val >= 0) {
 		if (val > HEX_THRESHOLD)
 			SStream_concat(O, "#0x%x", val);
@@ -127,7 +120,10 @@
 			SStream_concat(O, "#%u", val);
 	} else {
 		if (val <- HEX_THRESHOLD)
-			SStream_concat(O, "#-0x%x", -val);
+			if (val == INT_MIN)
+				SStream_concat(O, "#-0x%x", val);
+			else
+				SStream_concat(O, "#-0x%x", -val);
 		else
 			SStream_concat(O, "#-%u", -val);
 	}
@@ -135,10 +131,6 @@
 
 void printInt32(SStream *O, int32_t val)
 {
-	if (val == INT_MIN) {
-		return;
-	}
-
 	if (val >= 0) {
 		if (val > HEX_THRESHOLD)
 			SStream_concat(O, "0x%x", val);
@@ -146,7 +138,10 @@
 			SStream_concat(O, "%u", val);
 	} else {
 		if (val <- HEX_THRESHOLD)
-			SStream_concat(O, "-0x%x", -val);
+			if (val == INT_MIN)
+				SStream_concat(O, "-0x%x", val);
+			else
+				SStream_concat(O, "-0x%x", -val);
 		else
 			SStream_concat(O, "-%u", -val);
 	}