diff --git a/include/ChangeLog b/include/ChangeLog
index 6d15b6ed74a1a87e596f75ec555ef4d4ef293ca5..d1f4fbc97a6ca43b2f7c3520380338c631d4ee0c 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2001-10-24  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+	* include/safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New.
+
 2001-10-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 	* libiberty.h (hex_init): Revert delete.
diff --git a/include/safe-ctype.h b/include/safe-ctype.h
index ccacda5b31bcda2619eba0afeeff30bde95213f9..b2ad8490bd0454abadb28f1ad694c6a242bf36f4 100644
--- a/include/safe-ctype.h
+++ b/include/safe-ctype.h
@@ -63,7 +63,9 @@ enum {
   _sch_isalnum  = _sch_isalpha|_sch_isdigit,	/* A-Za-z0-9 */
   _sch_isidnum  = _sch_isidst|_sch_isdigit,	/* A-Za-z0-9_ */
   _sch_isgraph  = _sch_isalnum|_sch_ispunct,	/* isprint and not space */
-  _sch_iscppsp  = _sch_isvsp|_sch_isnvsp	/* isspace + \0 */
+  _sch_iscppsp  = _sch_isvsp|_sch_isnvsp,	/* isspace + \0 */
+  _sch_isbasic  = _sch_isprint|_sch_iscppsp     /* basic charset of ISO C
+						   (plus ` and @)  */
 };
 
 /* Character classification.  */
@@ -86,6 +88,7 @@ extern const unsigned short _sch_istable[256];
 
 #define ISIDNUM(c)	_sch_test(c, _sch_isidnum)
 #define ISIDST(c)	_sch_test(c, _sch_isidst)
+#define IS_ISOBASIC(c)	_sch_test(c, _sch_isbasic)
 #define IS_VSPACE(c)	_sch_test(c, _sch_isvsp)
 #define IS_NVSPACE(c)	_sch_test(c, _sch_isnvsp)
 #define IS_SPACE_OR_NUL(c)	_sch_test(c, _sch_iscppsp)