#include <ctype.h>

int pstrncmp(short *str1, short *str2,int n)
{
	while (*str1++ == *str2++ && --n);
	if (!n)
		return 0;
	return(*--str1 > *--str2) ? 1 : -1 ;
		
}
int pstrcmp(short *str1, short *str2)
{
	while (*str1 && *str1 == *str2) {
		str1++;
		str2++;
	}
	if (*(str1) == 0)
		if ( *(str2) == 0)
			return 0;
		else
			return -1;
	if (str1 > str2)
		return 1;
	else
		return -1;
}
void pstrcpy(short *str1, short *str2)
{
	while (*str2)
		*str1++ = *str2++;
	*str1 = 0;
}
void pstrncpy(short *str1, short *str2, int len)
{
	memcpy(str1,str2,len*sizeof(short));
}
void pstrcat(short *str1,short *str2)
{
	while (*str1++) ;
	str1--;
	while (*str2)
		*str1++ = *str2++;
	*str1++ = 0;
}
short *pstrchr(short *str, short ch)
{
	while (*str && *str != ch)
		str++;
	if (*str)
		return str;
	return 0;
}
short *pstrrchr(short *str, short ch)
{
	short *start = str;
	while (*str++) ;
	str--;
	while (str != start-1 && *str != ch)
		str--;
	if (str != start-1)
		return str;
	return 0;
}
int pstrlen(short *s)
{
  int len = 0;
	while (*s++) len++;
	return len;
}
short *pstrstr(short *str1, short *str2)
{
	while (1) {
		short *pt = pstrchr(str1,str2[0]);
		if (!pt)
			return 0;
		if (!pstrncmp(pt,str2,pstrlen(str2)))
			return pt;
		str1 = pt + 1;
	}
}
/* warning!!!! does not cope with phi-text */
short *pstrupr(short *str)
{
	short *p=str;
	while (*p) {
		*p= toupper(*p);
		p++;
	}
}