~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mystrings/strcend.c

Removed strcend.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 2000 MySQL AB
2
 
 
3
 
   This program is free software; you can redistribute it and/or modify
4
 
   it under the terms of the GNU General Public License as published by
5
 
   the Free Software Foundation; version 2 of the License.
6
 
 
7
 
   This program is distributed in the hope that it will be useful,
8
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
9
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
 
   GNU General Public License for more details.
11
 
 
12
 
   You should have received a copy of the GNU General Public License
13
 
   along with this program; if not, write to the Free Software
14
 
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
 
 
16
 
/*  File   : strcend.c
17
 
    Author : Michael Widenius:  ifdef MC68000
18
 
    Updated: 20 April 1984
19
 
    Defines: strcend()
20
 
 
21
 
    strcend(s, c) returns a pointer to the  first  place  in  s where  c
22
 
    occurs,  or a pointer to the end-null of s if c does not occur in s.
23
 
*/
24
 
 
25
 
#include "m_string.h"
26
 
 
27
 
#if defined(MC68000) && defined(DS90)
28
 
 
29
 
char *strcend(const char *s, char c)
30
 
{
31
 
asm("           movl    4(a7),a0        ");
32
 
asm("           movl    8(a7),d1        ");
33
 
asm(".L2:       movb    (a0)+,d0        ");
34
 
asm("           cmpb    d0,d1           ");
35
 
asm("           beq     .L1             ");
36
 
asm("           tstb    d0              ");
37
 
asm("           bne     .L2             ");
38
 
asm(".L1:       movl    a0,d0           ");
39
 
asm("           subql   #1,d0           ");
40
 
}
41
 
 
42
 
#else
43
 
 
44
 
char *strcend(register const char *s, register char c)
45
 
{
46
 
  for (;;)
47
 
  {
48
 
     if (*s == (char) c) return (char*) s;
49
 
     if (!*s++) return (char*) s-1;
50
 
  }
51
 
}
52
 
 
53
 
#endif