WARC reader: avoid use of isblank()

Fixes #874
diff --git a/libarchive/archive_read_support_format_warc.c b/libarchive/archive_read_support_format_warc.c
index 5e22438..b162465 100644
--- a/libarchive/archive_read_support_format_warc.c
+++ b/libarchive/archive_read_support_format_warc.c
@@ -543,7 +543,7 @@
 
 	/* as a courtesy to our callers, and since this is a non-standard
 	 * routine, we skip leading whitespace */
-	while (isblank((unsigned char)*s))
+	while (*s == ' ' || *s == '\t')
 		++s;
 
 	/* read year */
@@ -589,6 +589,7 @@
 _warc_rdver(const char *buf, size_t bsz)
 {
 	static const char magic[] = "WARC/";
+	const char *c;
 	unsigned int ver = 0U;
 	unsigned int end = 0U;
 
@@ -615,11 +616,12 @@
 		 * WARC below version 0.12 has a space-separated header
 		 * WARC 0.12 and above terminates the version with a CRLF
 		 */
+		c = buf + 3U + end;
 		if (ver >= 1200U) {
-			if (memcmp(buf + 3U + end, "\r\n", 2U) != 0)
+			if (memcmp(c, "\r\n", 2U) != 0)
 				ver = 0U;
 		} else if (ver < 1200U) {
-			if (!isblank(*(buf + 3U + end)))
+			if (*c != ' ' && *c != '\t')
 				ver = 0U;
 		}
 	}
@@ -643,7 +645,7 @@
 	}
 
 	/* overread whitespace */
-	while (val < eol && isblank((unsigned char)*val))
+	while (val < eol && (*val == ' ' || *val == '\t'))
 		++val;
 
 	if (val + 8U == eol) {
@@ -673,7 +675,7 @@
 		return res;
 	}
 
-	while (val < eol && isblank((unsigned char)*val))
+	while (val < eol && (*val == ' ' || *val == '\t'))
 		++val;
 
 	/* overread URL designators */
@@ -731,7 +733,7 @@
 	}
 
 	/* skip leading whitespace */
-	while (val < eol && isblank(*val))
+	while (val < eol && (*val == ' ' || *val == '\t'))
 		val++;
 	/* there must be at least one digit */
 	if (!isdigit(*val))