Index: libsm/index.c
===================================================================
--- libsm/index.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/index.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -6,5 +6,5 @@
 */
 
-char *index(char *str, char c)
+int8_t *index(int8_t *str, int8_t c)
 {
 	while (*str) {
@@ -16,5 +16,5 @@
 	}
 
-	return((char *)0);
+	return((int8_t *)0);
 }
 
Index: libsm/memccpy.c
===================================================================
--- libsm/memccpy.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/memccpy.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -11,8 +11,8 @@
 */
 
-void *memccpy(void *vp1, void *vp2, char c, int n)
+void *memccpy(void *vp1, void *vp2, int8_t c, int16_t n)
 {
-	char *cp1 = vp1;
-	char *cp2 = vp2;
+	int8_t *cp1 = vp1;
+	int8_t *cp2 = vp2;
 
 	while (--n >= 0)
Index: libsm/memchr.c
===================================================================
--- libsm/memchr.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/memchr.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,7 +9,7 @@
 */
 
-void *memchr(void *vp, char c, int n)
+void *memchr(void *vp, int8_t c, int16_t n)
 {
-	char *cp = vp;
+	int8_t *cp = vp;
 
 	while (--n >= 0)
Index: libsm/memcmp.c
===================================================================
--- libsm/memcmp.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/memcmp.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -8,9 +8,9 @@
 */
 
-int memcmp(void *vp1, void *vp2, int n)
+int16_t memcmp(void *vp1, void *vp2, int16_t n)
 {
-	char *cp1 = vp1;
-	char *cp2 = vp2;
-	register int	diff;
+	int8_t *cp1 = vp1;
+	int8_t *cp2 = vp2;
+	register int16_t	diff;
 
 	if (cp1 != cp2)
Index: libsm/memcmpu.c
===================================================================
--- libsm/memcmpu.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/memcmpu.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -8,9 +8,9 @@
 #include "ctype.h"
 
-int memcmpu(void *vp1, void *vp2, int n)
+int16_t memcmpu(void *vp1, void *vp2, int16_t n)
 {
-	char *cp1 = vp1;
-	char *cp2 = vp2;
-	register char c1, c2;
+	int8_t *cp1 = vp1;
+	int8_t *cp2 = vp2;
+	register int8_t c1, c2;
 
 	while (n) {
Index: libsm/memcpy.c
===================================================================
--- libsm/memcpy.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/memcpy.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,8 +9,8 @@
  */
 
-void *memcpy(void *vp1, void *vp2, int n)
+void *memcpy(void *vp1, void *vp2, int16_t n)
 {
-	char *cp1 = vp1;
-	char *cp2 = vp2;
+	int8_t *cp1 = vp1;
+	int8_t *cp2 = vp2;
 
 	while (--n >= 0)
Index: libsm/memcpyw.c
===================================================================
--- libsm/memcpyw.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/memcpyw.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,8 +9,8 @@
 */
 
-void *memcpyw(void *vp1, void *vp2, int n)
+void *memcpyw(void *vp1, void *vp2, int16_t n)
 {
-	short *sp1 = vp1;
-	short *sp2 = vp2;
+	int16_t *sp1 = vp1;
+	int16_t *sp2 = vp2;
 
 	while (--n >= 0)
Index: libsm/memset.c
===================================================================
--- libsm/memset.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/memset.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,7 +9,7 @@
 */
 
-void *memset(void *vp, char c, int n)
+void *memset(void *vp, int8_t c, int16_t n)
 {
-	char *cp = vp;
+	int8_t *cp = vp;
 
 	while (--n >= 0)
Index: libsm/memsetw.c
===================================================================
--- libsm/memsetw.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/memsetw.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,7 +9,7 @@
 */
 
-void *memsetw(void *vp, short s, short n)
+void *memsetw(void *vp, int16_t s, int16_t n)
 {
-	short *sp = vp;
+	int16_t *sp = vp;
 
 	while (--n >= 0)
Index: libsm/rindex.c
===================================================================
--- libsm/rindex.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/rindex.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -6,7 +6,7 @@
 */
 
-char *rindex(char *str, char c)
+int8_t *rindex(int8_t *str, int8_t c)
 {
-	register char *cp;
+	register int8_t *cp;
 
 	for (cp = str ;*cp++ ; )
@@ -17,4 +17,5 @@
 			return(cp);
 
-	return((char *)0);
+	return((int8_t *)0);
 }
+
Index: libsm/str2lc.c
===================================================================
--- libsm/str2lc.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/str2lc.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -6,8 +6,8 @@
 */
 
-char *str2lc(char *s)
+int8_t *str2lc(int8_t *s)
 {
-	register char c;
-	register char *r = s;
+	register int8_t c;
+	register int8_t *r = s;
 
 	while (c = *s)
Index: libsm/str2uc.c
===================================================================
--- libsm/str2uc.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/str2uc.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -6,8 +6,8 @@
 */
 
-char *str2uc(char *s)
+int8_t *str2uc(int8_t *s)
 {
-	register char c;
-	register char *r = s;
+	register int8_t c;
+	register int8_t *r = s;
 
 	while (c = *s)
Index: libsm/strcat.c
===================================================================
--- libsm/strcat.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strcat.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,7 +9,7 @@
 */
 
-char *strcat(char *s1, char *s2)
+int8_t *strcat(int8_t *s1, int8_t *s2)
 {
-        register char *os1;
+        register int8_t *os1;
 
         os1 = s1;
Index: libsm/strccpy.c
===================================================================
--- libsm/strccpy.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strccpy.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -16,8 +16,8 @@
  */
 
-char *strccpy(char *s1, char *s2, char c)
+int8_t *strccpy(int8_t *s1, int8_t *s2, int8_t c)
 {
-        register char *os1;
-	register char x;
+        register int8_t *os1;
+	register int8_t x;
 
         os1 = s1;
Index: libsm/strchr.c
===================================================================
--- libsm/strchr.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strchr.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -10,5 +10,5 @@
 #define NULL    0
 
-char *strchr(char *sp, char c)
+int8_t *strchr(int8_t *sp, int8_t c)
 {
 	do {
@@ -17,4 +17,5 @@
 	} while(*sp++);
 
-	return((char *)NULL);
+	return((int8_t *)NULL);
 }
+
Index: libsm/strcmp.c
===================================================================
--- libsm/strcmp.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strcmp.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -8,5 +8,5 @@
 */
 
-int strcmp(char *s1, char *s2)
+int16_t strcmp(int8_t *s1, int8_t *s2)
 {
 	if(s1 == s2)
@@ -17,4 +17,5 @@
 			 return(0);
 
-	return((int)*s1 - (int)*--s2);
+	return((int16_t)*s1 - (int16_t)*--s2);
 }
+
Index: libsm/strcpy.c
===================================================================
--- libsm/strcpy.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strcpy.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,7 +9,7 @@
 */
 
-char *strcpy(char *s1, char *s2)
+int8_t *strcpy(int8_t *s1, int8_t *s2)
 {
-	register char *os1;
+	register int8_t *os1;
 
 	os1 = s1;
Index: libsm/strcspn.c
===================================================================
--- libsm/strcspn.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strcspn.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,8 +9,8 @@
 */
 
-int strcspn(char *string, char *charset)
+int16_t strcspn(int8_t *string, int8_t *charset)
 {
-        register char *p, *q;
-	register int n = 0;
+        register int8_t *p, *q;
+	register int16_t n = 0;
 
         for(q = string; *q != '\0'; ++q , ++n) {
Index: libsm/strfill.c
===================================================================
--- libsm/strfill.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strfill.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -13,8 +13,8 @@
 */
 
-char *strfill(char *s, char c, unsigned n)
+int8_t *strfill(int8_t *s, int8_t c, uint16_t n)
 {
-	register unsigned i;
-	char *p;
+	register uint16_t i;
+	int8_t *p;
 
 	p = s;
Index: libsm/strlcmp.c
===================================================================
--- libsm/strlcmp.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strlcmp.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -15,7 +15,7 @@
 */
 
-int strlcmp(char *s, char *l[])
+int16_t strlcmp(int8_t *s, int8_t *l[])
 {
-	int	rc;
+	int16_t	rc;
 
 	rc = 0;
Index: libsm/strlen.c
===================================================================
--- libsm/strlen.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strlen.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,7 +9,7 @@
 
 
-int strlen(char *s)
+int16_t strlen(int8_t *s)
 {
-        register int n = 0;
+        register int16_t n = 0;
 
         while (*s++ != '\0')
Index: libsm/strltrm.c
===================================================================
--- libsm/strltrm.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strltrm.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -10,8 +10,8 @@
 #include "stddefs.h"
 
-char *strltrm(char *s)
+int8_t *strltrm(int8_t *s)
 {
-	register char c;
-	register char *lp, *rp;
+	register int8_t c;
+	register int8_t *lp, *rp;
 
 	if (*s NE ' ')
Index: libsm/strncat.c
===================================================================
--- libsm/strncat.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strncat.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -10,7 +10,7 @@
 */
 
-char *strncat(char *s1, char *s2, int n)
+int8_t *strncat(int8_t *s1, int8_t *s2, int16_t n)
 {
-	register char *os1;
+	register int8_t *os1;
 
 	os1 = s1;
Index: libsm/strncmp.c
===================================================================
--- libsm/strncmp.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strncmp.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,5 +9,5 @@
 */
 
-int strncmp(char *s1, char *s2, int n)
+int16_t strncmp(int8_t *s1, int8_t *s2, int16_t n)
 {
 	if (s1 == s2)
@@ -18,4 +18,5 @@
 			return(0);
 
-	return((n < 0) ? 0 : (int)(*s1 - *--s2));
+	return((n < 0) ? 0 : (int16_t)(*s1 - *--s2));
 }
+
Index: libsm/strncpy.c
===================================================================
--- libsm/strncpy.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strncpy.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,7 +9,7 @@
 */
 
-char *strncpy(char *s1, char *s2, int n)
+int8_t *strncpy(int8_t *s1, int8_t *s2, int16_t n)
 {
-	register char *os1 = s1;
+	register int8_t *os1 = s1;
 
 	while (--n >= 0)
Index: libsm/strpbrk.c
===================================================================
--- libsm/strpbrk.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strpbrk.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,7 +9,7 @@
 */
 
-char *strpbrk(char *string, char *brkset)
+int8_t *strpbrk(int8_t *string, int8_t *brkset)
 {
-	register char *p;
+	register int8_t *p;
 
 	do {
@@ -25,4 +25,5 @@
 		;
 
-	return((char *)0);
+	return((int8_t *)0);
 }
+
Index: libsm/strrchr.c
===================================================================
--- libsm/strrchr.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strrchr.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,9 +9,9 @@
 */
 
-#define	NULL	(char *)0
+#define	NULL	(int8_t *)0
 
-char *strrchr(char *sp, char c)
+int8_t *strrchr(int8_t *sp, int8_t c)
 {
-	register char *r;
+	register int8_t *r;
 
 	r = NULL;
Index: libsm/strrev.c
===================================================================
--- libsm/strrev.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strrev.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -14,8 +14,8 @@
 */
 
-char *strrev(char *s1, char *s2)
+int8_t *strrev(int8_t *s1, int8_t *s2)
 {
-	register char *s3;
-	register long i;
+	register int8_t *s3;
+	register int32_t i;
 
 	i = 0L;				/* initialize string length */
Index: libsm/strrevi.c
===================================================================
--- libsm/strrevi.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strrevi.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -12,9 +12,9 @@
 */
 
-char *strrevi(char *s)
+int8_t *strrevi(int8_t *s)
 {
-	register char *p1, *p2;
-	register long i;
-	register char c;
+	register int8_t *p1, *p2;
+	register int32_t i;
+	register int8_t c;
 
 	p1 = s;			/* initialize left end pointer */
Index: libsm/strrtrm.c
===================================================================
--- libsm/strrtrm.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strrtrm.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -10,7 +10,7 @@
 #include "stddefs.h"
 
-char *strrtrm(char *s)
+int8_t *strrtrm(int8_t *s)
 {
-	register char *lp, *rp;
+	register int8_t *lp, *rp;
 
 	lp = s;
@@ -20,5 +20,5 @@
 		++rp;
 
-	while ((long)(--rp) GE (long)lp) {
+	while ((int32_t)(--rp) GE (int32_t)lp) {
 
 		if (*rp EQ ' ')
Index: libsm/strspn.c
===================================================================
--- libsm/strspn.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strspn.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -9,8 +9,8 @@
 */
 
-int strspn(char *string, char *charset)
+int16_t strspn(int8_t *string, int8_t *charset)
 {
-	register char *p, *q;
-	register int n = 0;
+	register int8_t *p, *q;
+	register int16_t n = 0;
 
 	for (q = string; *q != '\0'; ++q) {
Index: libsm/strtok.c
===================================================================
--- libsm/strtok.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strtok.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -11,13 +11,13 @@
 */
 
-#define	NULL	(char *)0
+#define	NULL	(int8_t *)0
 
-extern int strspn(char *string, char *charset);
-extern char *strpbrk(char *string, char *brkset);
+extern int16_t strspn(int8_t *string, int8_t *charset);
+extern int8_t *strpbrk(int8_t *string, int8_t *brkset);
 
-char *strtok(char *string, char *sepset)
+int8_t *strtok(int8_t *string, int8_t *sepset)
 {
-	register char *p, *q, *r;
-	static char *savept;
+	register int8_t *p, *q, *r;
+	static int8_t *savept;
 
 	/* first or subsequent call ? */
Index: libsm/strtol.c
===================================================================
--- libsm/strtol.c	(revision 5c13d6473fc3b87b0f3add3efa9e24cfc9622d76)
+++ libsm/strtol.c	(revision 7258c6ac4de2518c5430095742a27be7af0c89d7)
@@ -12,11 +12,11 @@
 #define MBASE   ('z' - 'a' + 1 + 10)
 
-long strtol(char *str, char **ptr, int base)
+int32_t strtol(int8_t *str, int8_t **ptr, int16_t base)
 {
-	register long val;
-	register int c;
-	int xx, neg = 0;
+	register int32_t val;
+	register int16_t c;
+	int16_t xx, neg = 0;
 
-	if (ptr != (char **)0)
+	if (ptr != (int8_t **)0)
 		*ptr = str; /* in case no number is formed */
 
@@ -62,5 +62,5 @@
 		val = base * val - xx;
 
-	if (ptr != (char **)0)
+	if (ptr != (int8_t **)0)
 		*ptr = str;
 
