+/* Maps errnum to an error-message string */\r
+char * strerror (int errnum)\r
+{\r
+ return NULL;\r
+}\r
+\r
+/* Computes the length of the maximum initial segment of the string pointed to by s1\r
+ which consists entirely of characters from the string pointed to by s2. */\r
+size_t strspn (const char *s1 , const char *s2)\r
+{\r
+ UINT8 Map[32];\r
+ UINT32 Index;\r
+ size_t Count;\r
+\r
+ for (Index = 0; Index < 32; Index++) {\r
+ Map[Index] = 0;\r
+ }\r
+\r
+ while (*s2) {\r
+ Map[*s2 >> 3] |= (1 << (*s2 & 7));\r
+ s2++;\r
+ }\r
+\r
+ if (*s1) {\r
+ Count = 0;\r
+ while (Map[*s1 >> 3] & (1 << (*s1 & 7))) {\r
+ Count++;\r
+ s1++;\r
+ }\r
+\r
+ return Count;\r
+ }\r
+\r
+ return 0;\r
+}\r
+\r
+/* Computes the length of the maximum initial segment of the string pointed to by s1\r
+ which consists entirely of characters not from the string pointed to by s2. */\r
+size_t strcspn (const char *s1, const char *s2)\r
+{\r
+ UINT8 Map[32];\r
+ UINT32 Index;\r
+ size_t Count;\r
+\r
+ for (Index = 0; Index < 32; Index++) {\r
+ Map[Index] = 0;\r
+ }\r
+\r
+ while (*s2) {\r
+ Map[*s2 >> 3] |= (1 << (*s2 & 7));\r
+ s2++;\r
+ }\r
+\r
+ Map[0] |= 1;\r
+\r
+ Count = 0;\r
+ while (!(Map[*s1 >> 3] & (1 << (*s1 & 7)))) {\r
+ Count ++;\r
+ s1++;\r
+ }\r
+\r
+ return Count;\r
+}\r
+\r