| is 1. Currently this is based on the machine's character |
is 1. Currently this is based on the machine's character |
| comparison. In the future, this may change to consider the current |
comparison. In the future, this may change to consider the current |
| locale and its collation order."" |
locale and its collation order."" |
| |
#ifdef MEMCMP_AS_SUBROUTINE |
| |
n = gforth_memcmp(c_addr1, c_addr2, u1<u2 ? u1 : u2); |
| |
#else |
| n = memcmp(c_addr1, c_addr2, u1<u2 ? u1 : u2); |
n = memcmp(c_addr1, c_addr2, u1<u2 ? u1 : u2); |
| |
#endif |
| if (n==0) |
if (n==0) |
| n = u1-u2; |
n = u1-u2; |
| if (n<0) |
if (n<0) |
| THEN ; |
THEN ; |
| |
|
| -text c_addr1 u c_addr2 -- n new dash_text |
-text c_addr1 u c_addr2 -- n new dash_text |
| |
#ifdef MEMCMP_AS_SUBROUTINE |
| |
n = gforth_memcmp(c_addr1, c_addr2, u); |
| |
#else |
| n = memcmp(c_addr1, c_addr2, u); |
n = memcmp(c_addr1, c_addr2, u); |
| |
#endif |
| if (n<0) |
if (n<0) |
| n = -1; |
n = -1; |
| else if (n>0) |
else if (n>0) |
| f83name1=(struct F83Name *)(a_addr[1]); |
f83name1=(struct F83Name *)(a_addr[1]); |
| a_addr=(Cell *)(a_addr[0]); |
a_addr=(Cell *)(a_addr[0]); |
| if ((UCell)F83NAME_COUNT(f83name1)==u && |
if ((UCell)F83NAME_COUNT(f83name1)==u && |
| |
#ifdef MEMCMP_AS_SUBROUTINE |
| |
gforth_memcmp(c_addr, f83name1->name, u)== 0 /* or inline? */) |
| |
#else |
| memcmp(c_addr, f83name1->name, u)== 0 /* or inline? */) |
memcmp(c_addr, f83name1->name, u)== 0 /* or inline? */) |
| |
#endif |
| { |
{ |
| f83name2=f83name1; |
f83name2=f83name1; |
| break; |
break; |