2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
8 /*****************************************************************************
21 Calculate str1 - str2 for upto n chars or upto the first 0 byte.
24 str1, str2 - Strings to compare
27 The difference of the strings. The difference is 0, if both are
28 equal, < 0 if str1 < str2 and > 0 if str1 > str2. Note that
29 it may be greater then 1 or less than -1.
32 This function is not part of a library and may thus be called
43 ******************************************************************************/
46 If n == 0, then this will not be initialized, even though it is
47 returned at the end, so we say two strings of 0 length are equal
51 /* No need to check *str2 since: a) str1 is equal str2 (both are 0),
52 then *str1 will terminate the loop b) str1 and str2 are not equal
53 (eg. *str2 is 0), then the diff part will be FALSE. I calculate
54 the diff first since a) it's more probable that the first chars
55 will be different and b) I don't need to initialize diff then. */
56 while (n
&& !(diff
= *(unsigned char*) str1
- *(unsigned char*) str2
) && *str1
)
58 /* advance both strings. I do that here, since doing it in the
59 check above would mean to advance the strings once too often */
65 /* Now return the difference. */