Index: uspace/lib/posix/ctype.c
===================================================================
--- uspace/lib/posix/ctype.c	(revision 8d7e82c1c02f3c7b1ece4573180e967341db9006)
+++ uspace/lib/posix/ctype.c	(revision 21abb9a902a5d87d20e6a543f6b73f216a4dadec)
@@ -38,14 +38,72 @@
 #include "ctype.h"
 
+// TODO: propose for inclusion in libc
+
 /**
- * 
- * @param ch
+ * Checks whether character is a hexadecimal digit.
+ *
+ * @param c
  * @return
  */
-int posix_isxdigit(int ch)
+int posix_isxdigit(int c)
 {
-	return isdigit(ch) ||
-	    (ch >= 'a' && ch <= 'f') ||
-	    (ch >= 'A' && ch <= 'F');
+	return isdigit(c) ||
+	    (c >= 'a' && c <= 'f') ||
+	    (c >= 'A' && c <= 'F');
+}
+
+/**
+ * Checks whether character is a word separator.
+ *
+ * @param c
+ * @return
+ */
+int posix_isblank(int c)
+{
+	return c == ' ' || c == '\t';
+}
+
+/**
+ * Checks whether character is a control character.
+ *
+ * @param c
+ * @return
+ */
+int posix_iscntrl(int c)
+{
+	return c < 0x20 || c == 0x7E;
+}
+
+/**
+ * Checks whether character is any printing character except space.
+ *
+ * @param c
+ * @return
+ */
+int posix_isgraph(int c)
+{
+	return posix_isprint(c) && c != ' ';
+}
+
+/**
+ * Checks whether character is a printing character.
+ *
+ * @param c
+ * @return
+ */
+int posix_isprint(int c)
+{
+	return !posix_iscntrl(c);
+}
+
+/**
+ * Checks whether character is a punctuation.
+ *
+ * @param c
+ * @return
+ */
+int posix_ispunct(int c)
+{
+	return !isspace(c) && !isalnum(c);
 }
 
Index: uspace/lib/posix/ctype.h
===================================================================
--- uspace/lib/posix/ctype.h	(revision 8d7e82c1c02f3c7b1ece4573180e967341db9006)
+++ uspace/lib/posix/ctype.h	(revision 21abb9a902a5d87d20e6a543f6b73f216a4dadec)
@@ -40,8 +40,18 @@
 
 /* Classification of Characters */
-extern int posix_isxdigit(int ch);
+extern int posix_isxdigit(int c);
+extern int posix_isblank(int c);
+extern int posix_iscntrl(int c);
+extern int posix_isgraph(int c);
+extern int posix_isprint(int c);
+extern int posix_ispunct(int c);
 
 #ifndef LIBPOSIX_INTERNAL
 	#define isxdigit posix_isxdigit
+	#define isblank posix_isblank
+	#define iscntrl posix_iscntrl
+	#define isgraph posix_isgraph
+	#define isprint posix_isprint
+	#define ispunct posix_ispunct
 #endif
 
