~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mystrings/stpcpy.c

  • Committer: Monty Taylor
  • Date: 2008-10-16 06:32:30 UTC
  • mto: (511.1.5 codestyle)
  • mto: This revision was merged to the branch mainline in revision 521.
  • Revision ID: monty@inaugust.com-20081016063230-4brxsra0qsmsg84q
Added -Wunused-macros.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
15
 
16
16
/*
17
 
  strmov(dst, src) moves all the  characters  of  src  (including  the
 
17
  my_stpcpy(dst, src) moves all the  characters  of  src  (including  the
18
18
  closing NUL) to dst, and returns a pointer to the new closing NUL in
19
19
  dst.   The similar UNIX routine strcpy returns the old value of dst,
20
 
  which I have never found useful.  strmov(strmov(dst,a),b) moves a//b
 
20
  which I have never found useful.  my_stpcpy(my_stpcpy(dst,a),b) moves a//b
21
21
  into dst, which seems useful.
22
22
*/
23
23
 
24
 
#include <my_global.h>
25
24
#include "m_string.h"
26
25
 
27
 
#ifdef BAD_STRING_COMPILER
28
 
#undef strmov
29
 
#define strmov strmov_overlapp
30
 
#endif
31
 
 
32
 
#ifndef strmov
33
 
 
34
 
#if !defined(MC68000) && !defined(DS90)
35
 
 
36
 
char *strmov(register char *dst, register const char *src)
 
26
#ifndef my_stpcpy
 
27
 
 
28
char *my_stpcpy(register char *dst, register const char *src)
37
29
{
38
30
  while ((*dst++ = *src++)) ;
39
31
  return dst-1;
40
32
}
41
33
 
42
 
#else
43
 
 
44
 
char *strmov(dst, src)
45
 
     char *dst, *src;
46
 
{
47
 
  asm("         movl    4(a7),a1        ");
48
 
  asm("         movl    8(a7),a0        ");
49
 
  asm(".L4:     movb    (a0)+,(a1)+     ");
50
 
  asm("         jne     .L4             ");
51
 
  asm("         movl    a1,d0           ");
52
 
  asm("         subql   #1,d0           ");
53
 
}
54
 
 
55
 
#endif
56
 
 
57
 
#endif /* strmov */
 
34
#endif /* my_stpcpy */