diff options
Diffstat (limited to 'ext/mysql/libmysql/strcend.c')
| -rw-r--r-- | ext/mysql/libmysql/strcend.c | 39 | 
1 files changed, 39 insertions, 0 deletions
diff --git a/ext/mysql/libmysql/strcend.c b/ext/mysql/libmysql/strcend.c new file mode 100644 index 0000000000..f65eb16837 --- /dev/null +++ b/ext/mysql/libmysql/strcend.c @@ -0,0 +1,39 @@ +/*  File   : strcend.c +    Author : Michael Widenius:	ifdef MC68000 +    Updated: 20 April 1984 +    Defines: strcend() + +    strcend(s, c) returns a pointer to the  first  place  in  s where  c +    occurs,  or a pointer to the end-null of s if c does not occur in s. +*/ + +#include <global.h> +#include "m_string.h" + +#if defined(MC68000) && defined(DS90) + +char *strcend(const char *s, pchar c) +{ +asm("		movl	4(a7),a0	"); +asm("		movl	8(a7),d1	"); +asm(".L2:	movb	(a0)+,d0	"); +asm("		cmpb	d0,d1		"); +asm("		beq	.L1		"); +asm("		tstb	d0		"); +asm("		bne	.L2		"); +asm(".L1:	movl	a0,d0		"); +asm("		subql	#1,d0		"); +} + +#else + +char *strcend(register const char *s, register pchar c) +{ +  for (;;) +  { +     if (*s == (char) c) return (char*) s; +     if (!*s++) return (char*) s-1; +  } +} + +#endif  | 
