~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mystrings/stpcpy.c

  • Committer: Stewart Smith
  • Date: 2008-09-15 07:13:59 UTC
  • mfrom: (383.1.21 drizzle)
  • mto: This revision was merged to the branch mainline in revision 408.
  • Revision ID: stewart@flamingspork.com-20080915071359-f8bznznyaiqrtqxa
merged

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
  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.  stpcpy(stpcpy(dst,a),b) moves a//b
21
21
  into dst, which seems useful.
22
22
*/
23
23
 
24
24
#include "m_string.h"
25
25
 
26
 
#ifdef BAD_STRING_COMPILER
27
 
#undef strmov
28
 
#define strmov strmov_overlapp
29
 
#endif
30
 
 
31
 
#ifndef strmov
32
 
 
33
 
#if !defined(MC68000) && !defined(DS90)
34
 
 
35
 
char *strmov(register char *dst, register const char *src)
 
26
#ifndef stpcpy
 
27
 
 
28
char *stpcpy(register char *dst, register const char *src)
36
29
{
37
30
  while ((*dst++ = *src++)) ;
38
31
  return dst-1;
39
32
}
40
33
 
41
 
#else
42
 
 
43
 
char *strmov(dst, src)
44
 
     char *dst, *src;
45
 
{
46
 
  asm("         movl    4(a7),a1        ");
47
 
  asm("         movl    8(a7),a0        ");
48
 
  asm(".L4:     movb    (a0)+,(a1)+     ");
49
 
  asm("         jne     .L4             ");
50
 
  asm("         movl    a1,d0           ");
51
 
  asm("         subql   #1,d0           ");
52
 
}
53
 
 
54
 
#endif
55
 
 
56
 
#endif /* strmov */
 
34
#endif /* stpcpy */