xref: /csrg-svn/old/sh/string.c (revision 14480)
1*14480Ssam #ifndef lint
2*14480Ssam static char sccsid[] = "@(#)string.c	4.2 08/11/83";
3*14480Ssam #endif
46706Smckusick 
56706Smckusick #
66706Smckusick /*
76706Smckusick  * UNIX shell
86706Smckusick  *
96706Smckusick  * S. R. Bourne
106706Smckusick  * Bell Telephone Laboratories
116706Smckusick  *
126706Smckusick  */
136706Smckusick 
146706Smckusick #include	"defs.h"
156706Smckusick 
166706Smckusick 
176706Smckusick /* ========	general purpose string handling ======== */
186706Smckusick 
196706Smckusick 
movstr(a,b)206706Smckusick STRING	movstr(a,b)
216706Smckusick 	REG STRING	a, b;
226706Smckusick {
236706Smckusick 	WHILE *b++ = *a++ DONE
246706Smckusick 	return(--b);
256706Smckusick }
266706Smckusick 
any(c,s)276706Smckusick INT	any(c,s)
286706Smckusick 	REG CHAR	c;
296706Smckusick 	STRING		s;
306706Smckusick {
316706Smckusick 	REG CHAR d;
326706Smckusick 
336706Smckusick 	WHILE d = *s++
346706Smckusick 	DO	IF d==c
356706Smckusick 		THEN	return(TRUE);
366706Smckusick 		FI
376706Smckusick 	OD
386706Smckusick 	return(FALSE);
396706Smckusick }
406706Smckusick 
cf(s1,s2)416706Smckusick INT	cf(s1, s2)
426706Smckusick 	REG STRING s1, s2;
436706Smckusick {
446706Smckusick 	WHILE *s1++ == *s2
456706Smckusick 	DO	IF *s2++==0
466706Smckusick 		THEN	return(0);
476706Smckusick 		FI
486706Smckusick 	OD
496706Smckusick 	return(*--s1 - *s2);
506706Smckusick }
516706Smckusick 
length(as)526706Smckusick INT	length(as)
536706Smckusick 	STRING as;
546706Smckusick {
556706Smckusick 	REG STRING s;
566706Smckusick 
576706Smckusick 	IF s=as THEN WHILE *s++ DONE FI
586706Smckusick 	return(s-as);
596706Smckusick }
60