code: plan9front

Download patch

ref: 806896c19ddafcb3444cd37be906a140381a20f8
parent: b8d7bbf22365952636169b3540a7efac74752752
author: Michael Forney <mforney@mforney.org>
date: Thu May 26 16:23:11 EDT 2022

tmparse: remove incorrect isalpha definition

Checking the range of c|0x60 incorrectly classifies many characters
as alphabetic (digits, control characters 0x01-0x20, and punctuation
characters '!'-':'). This prevents tmparse from parsing dates with
a timezone bounded by those characters (for example, "12:11:56 (PDT)").

Instead, just reuse the isalpha macro provided by ctype.h.

--- a/sys/src/libc/port/date.c
+++ b/sys/src/libc/port/date.c
@@ -1,5 +1,6 @@
 #include <u.h>
 #include <libc.h>
+#include <ctype.h>
 
 typedef struct Tzabbrev Tzabbrev;
 typedef struct Tzoffpair Tzoffpair;
@@ -61,9 +62,6 @@
 	char *abbr;
 	int off;
 };
-
-#define isalpha(c)\
-	(((c)|0x60) >= 'a' && ((c)|0x60) <= 'z')
 
 /* Obsolete time zone names. Hardcoded to match RFC5322 */
 static Tzabbrev tzabbrev[] = {