xref: /csrg-svn/usr.bin/f77/libF77/s_cmp.c (revision 47940)
1*47940Sbostic /*-
2*47940Sbostic  * Copyright (c) 1980 The Regents of the University of California.
3*47940Sbostic  * All rights reserved.
422978Skre  *
5*47940Sbostic  * %sccs.include.proprietary.c%
610541Sdlw  */
710541Sdlw 
8*47940Sbostic #ifndef lint
9*47940Sbostic static char sccsid[] = "@(#)s_cmp.c	5.2 (Berkeley) 04/12/91";
10*47940Sbostic #endif /* not lint */
11*47940Sbostic 
s_cmp(a,b,la,lb)1210541Sdlw int s_cmp(a, b, la, lb)	/* compare two strings */
1310541Sdlw register char *a, *b;
1410541Sdlw long int la, lb;
1510541Sdlw {
1610541Sdlw register char *aend, *bend;
1710541Sdlw aend = a + la;
1810541Sdlw bend = b + lb;
1910541Sdlw 
2010541Sdlw if(la <= lb)
2110541Sdlw 	{
2210541Sdlw 	while(a < aend)
2310541Sdlw 		if(*a != *b)
2410541Sdlw 			return( *a - *b );
2510541Sdlw 		else
2610541Sdlw 			{ ++a; ++b; }
2710541Sdlw 
2810541Sdlw 	while(b < bend)
2910541Sdlw 		if(*b != ' ')
3010541Sdlw 			return( ' ' - *b );
3110541Sdlw 		else	++b;
3210541Sdlw 	}
3310541Sdlw 
3410541Sdlw else
3510541Sdlw 	{
3610541Sdlw 	while(b < bend)
3710541Sdlw 		if(*a == *b)
3810541Sdlw 			{ ++a; ++b; }
3910541Sdlw 		else
4010541Sdlw 			return( *a - *b );
4110541Sdlw 	while(a < aend)
4210541Sdlw 		if(*a != ' ')
4310541Sdlw 			return(*a - ' ');
4410541Sdlw 		else	++a;
4510541Sdlw 	}
4610541Sdlw return(0);
4710541Sdlw }
48